openapi: 3.0.0
info:
title: ThoughtSpot Public REST 10.1.0.cl Groups API
version: '2.0'
servers:
- url: '{base-url}'
variables:
base-url:
default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: Groups
paths:
/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.\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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserGroupRequest'
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}/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"
tags:
- Groups
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.\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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ImportUserGroupsRequest'
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/groups/search:
post:
operationId: searchUserGroups
description: "\n Version: 9.0.0.cl or later\n\nGets a list of user group objects from the ThoughtSpot system.\n\nTo get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group.\n\nAvailable to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required.\n\n**NOTE**: In addition to the GUID and name, `group_identifier` accepts a Custom object ID if one is configured for the group. The response also includes the `obj_id` field for each group that has one set.\n\n**NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`.\n\n\n\n\n#### Endpoint URL\n"
tags:
- Groups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchUserGroupsRequest'
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/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.\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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserGroupRequest'
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'
components:
schemas:
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
- CAN_MODIFY_FOLDERS
- CAN_MANAGE_VARIABLES
- CAN_VIEW_FOLDERS
- CAN_MANAGE_AGENTSPOT
- CAN_ACCESS_AGENTSPOT
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_DOWNLOAD_VISUALS
- CAN_DOWNLOAD_DETAILED_DATA
- CAN_USE_SPOTTER
- CAN_MANAGE_SPOTTER
- CAN_CREATE_LIVEBOARD
- CAN_CREATE_ANSWERS
- CAN_ANALYZE_DATA
- CAN_ADMINISTER_SCHEDULES
- CAN_CREATE_KPI_ALERTS
description: 'Privileges that will be assigned to the group. Note: AUTHORING is a no-op — always inherited via ALL_GROUP, assigning it has no effect.'
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
- TEAM_GROUP
- TENANT_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.
ImportUserGroupsRequest:
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
data will be edited after the import.'
default: true
type: boolean
nullable: true
UserGroup:
type: object
properties:
id:
type: string
nullable: true
name:
type: string
nullable: true
UpdateUserGroupRequest:
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. Note: AUTHORING is a no-op — always inherited via ALL_GROUP, assigning it has no effect.'
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
- CAN_MODIFY_FOLDERS
- CAN_MANAGE_VARIABLES
- CAN_VIEW_FOLDERS
- CAN_MANAGE_AGENTSPOT
- CAN_ACCESS_AGENTSPOT
- PREVIEW_DOCUMENT_SEARCH
- CAN_SETUP_VERSION_CONTROL
- CAN_DOWNLOAD_VISUALS
- CAN_DOWNLOAD_DETAILED_DATA
- CAN_USE_SPOTTER
- CAN_MANAGE_SPOTTER
- CAN_CREATE_LIVEBOARD
- CAN_CREATE_ANSWERS
- CAN_ANALYZE_DATA
- CAN_ADMINISTER_SCHEDULES
- CAN_CREATE_KPI_ALERTS
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
- TEAM_GROUP
- TENANT_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, 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
UserGroupResponse:
type: object
required:
- display_name
- id
- name
- visibility
properties:
obj_id:
type: string
description: 'Custom object ID (obj_id) of the group, if one is set.
Version: 26.9.0.cl or later'
nullable: true
author_id:
type: string
description: The unique identifier of the object
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
- TEAM_GROUP
- TENANT_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
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.
ErrorResponse:
type: object
properties:
error:
type: object
nullable: true
SearchUserGroupsRequest:
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_MODIFY_FOLDERS
- CAN_MANAGE_VARIABLES
- CAN_VIEW_FOLDERS
- CAN_MANAGE_AGENTSPOT
- CAN_ACCESS_AGENTSPOT
- CAN_SETUP_VERSION_CONTROL
- CAN_MANAGE_WEBHOOKS
- CAN_DOWNLOAD_VISUALS
- CAN_DOWNLOAD_DETAILED_DATA
- CAN_USE_SPOTTER
- CAN_MANAGE_SPOTTER
- CAN_CREATE_LIVEBOARD
- CAN_CREATE_ANSWERS
- CAN_ANALYZE_DATA
- CAN_ADMINISTER_SCHEDULES
- CAN_CREATE_KPI_ALERTS
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
- TEAM_GROUP
- TENANT_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,
set 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'
include_users:
description: '