openapi: 3.0.3
info:
title: Visier Administration APIs
description: Visier APIs for managing your tenant or tenants in Visier. You can programmatically manage user accounts in Visier, the profiles and permissions assigned to users, and to make changes in projects and publish projects to production. Administrating tenant users can use administration APIs to manage their analytic tenants and consolidated analytics tenants.<br>**Note:** If you submit API requests for changes that cause a project to publish to production (such as assigning permissions to users or updating permissions), each request is individually published to production, resulting in hundreds or thousands of production versions. We recommend that you use the `ProjectID` request header to make changes in a project, if `ProjectID` is available for the API endpoint.
license:
name: Apache License, Version 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: 22222222.99201.3040
paths:
/v1/admin/capabilities:
get:
tags:
- Permissions
summary: Retrieve a list of all permission capabilities
description: "Retrieve all the permission capabilities in your tenant.\n You can use the returned capabilities in other API calls when creating or updating permissions to assign the capability to the permission.\n\n To specify the project in which to retrieve the permission capabilities, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetCapabilities
parameters:
- name: tenantCode
in: query
description: Specify the tenant to retrieve the capabilities from.
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.GetCapabilitiesAPIResponseDTO'
/v1/admin/capabilities/{capabilityId}:
get:
tags:
- Permissions
summary: Retrieve a permission capability's details
description: "Retrieve the details of a specific capability.\n\n To specify the project in which to retrieve the permission capability, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetCapability
parameters:
- name: capabilityId
in: path
description: The unique identifier of the capability you want to retrieve.
required: true
schema:
type: string
- name: tenantCode
in: query
description: Specify the tenant to retrieve a capability from.
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.CapabilityDTO'
/v1/admin/content-packages:
get:
tags:
- Permissions
summary: Retrieve a list of all content packages
description: "Retrieve the list of available content packages.\n You can use the returned content packages in other API calls when creating or updating permissions to add the content package to the permission.\n\n To specify the project in which to retrieve the available content packages, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetContentPackages
parameters:
- name: tenantCode
in: query
description: Specify the tenant to retrieve the content packages from.
schema:
type: string
- name: searchString
in: query
description: "Optional search string to return only content packages whose display name or description contains that search string.\n If searchString is empty or not provided, the response returns a list of all content packages."
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.GetContentPackagesAPIResponseDTO'
/v1/admin/content-packages/{contentPackageId}:
get:
tags:
- Permissions
summary: Retrieve a content package's details
description: "Retrieve the details of a specific content package.\n\n To specify the project in which to retrieve a content package, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetContentPackage
parameters:
- name: contentPackageId
in: path
description: The unique identifier of the content package you want to retrieve.
required: true
schema:
type: string
- name: tenantCode
in: query
description: Specify the tenant to retrieve a content package from.
schema:
type: string
- name: with
in: query
description: "Controls the amount of detail to return in the response. Omit to return basic information.\n * `details`: Include the content package's artifacts, grouped by artifact type."
schema:
type: array
items:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.ContentPackageDTO'
/v1/admin/data-access-sets:
get:
tags:
- Permissions
summary: Retrieve a list of all data access sets
description: "Retrieve a list of all shareable data access sets. Data access sets define the level of access that users have to properties and property values for the analytic object in a permission. Data access sets also grant access to properties of subjects that are referenced by the analytic object in the permission.\n You can assign data access sets to a permission when creating or updating permissions.\n\n To specify the project in which to retrieve the shareable data access sets, provide a project UUID in the `ProjectID` request header.\n\n **Note:** If the number of valid data access sets exceeds the default limit of 100, the response status code is 206. To retrieve more than 100 data access sets, set `limit` to a higher number."
operationId: Permissions_GetDataAccessSets
parameters:
- name: analyticObjectId
in: query
description: Specify the analytic object ID to retrieve the shareable data access sets for. Default is all analytic objects.
schema:
type: string
- name: with
in: query
description: "The information about the data access set to include in the request response.\n * If empty, returns basic information for the data access set, including its unique ID, display name, description, and analytic object ID.\n * If `details`, returns basic information and property data access information (`propertyAccessConfigs`)."
schema:
type: array
items:
type: string
- name: limit
in: query
description: The maximum number of data access sets to return. Default is 100. Maximum is 1000.
schema:
type: integer
format: int32
- name: correlationIds
in: query
description: "If defined, `correlationIds` limits the response to the data access sets associated with the specified correlation IDs.\n You can specify multiple correlation IDs in the `correlationIds` parameter separated by commas; for example, `correlationIds=123,abc,456`.\n\n **Note**:\n - Correlation IDs must be between 3 and 64 characters long and may only contain alphanumeric characters, underscores and hyphens.\n - Correlation IDs have a lifetime of up to 7 days after creation. After a correlation ID expires, you can only retrieve specific data access sets using the data access set ID.\n - Correlation IDs are optional during data access set creation and are only applicable to those objects created with a defined correlation ID."
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.GetDataAccessSetsAPIResponseDTO'
put:
tags:
- Permissions
summary: Update shareable data access sets
description: "Update shareable data access sets. Shareable data access sets let you reuse common data access configurations in multiple permissions.\n\n To specify the project in which to update shareable data access sets, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_UpdateDataAccessSets
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetRequestDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetResponseDTO'
post:
tags:
- Permissions
summary: Create shareable data access sets
description: "Create shareable data access sets. Shareable data access sets let you reuse common data access configurations in multiple permissions.\n\n To specify the project in which to create shareable data access sets, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_CreateDataAccessSets
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetRequestDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetResponseDTO'
delete:
tags:
- Permissions
summary: Delete shareable data access sets
description: "Delete shareable data access sets.\n\n To specify the project in which to delete shareable data access sets, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_DeleteDataAccessSets
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetDeleteRequestDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetResponseDTO'
/v1/admin/data-access-sets/revert-to-parent:
post:
tags:
- Permissions
summary: Revert data access sets
description: "Revert a shareable data access set to its parent version. For example, if you revert a:\n - Tenant override object: The object reverts to the Blueprint version or, for administrating tenants who revert an analytic tenant's object, the administrating tenant's object version.\n - Tenant object: The API request fails. The object is unique to your tenant and no parent version exists.\n - Blueprint object: Nothing happens. The object is inherited from the parent and there is nothing to revert on this tenant."
operationId: Permissions_RevertDataAccessSetsToParent
parameters:
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetRevertRequestDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.BulkDataAccessSetResponseDTO'
/v1/admin/data-access-sets/{dataAccessSetId}:
get:
tags:
- Permissions
summary: Retrieve a data access set's details
description: "Retrieve the details of a specific shareable data access set. You must know the ID of the data access set to retrieve its details. To retrieve data access set IDs, see `GET v1/admin/data-access-sets`.\n\n To specify the project in which to retrieve the shareable data access set, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetDataAccessSet
parameters:
- name: dataAccessSetId
in: path
description: The unique identifier of the data access set you want to retrieve.
required: true
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.DataAccessSetDTO'
/v1/admin/data-security-objects:
get:
tags:
- Permissions
summary: Retrieve a list of data security objects
description: "Retrieve the list of available data security objects.\n Data security objects are analytic objects and their related objects that are available to define\n permissions' data security profiles.\n\n To specify the project in which to retrieve the available data security objects, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetDataSecurityObjects
parameters:
- name: id
in: query
description: "The unique identifiers of the data security objects (analytic objects) to retrieve.\n Default is all data security objects."
schema:
type: array
items:
type: string
- name: includeDetails
in: query
description: "If `true`, the response includes the analytic objects (display name, ID, and object type), related objects,\n securable properties, and securable dimensions. If `false`, the response only includes analytic objects\n (display name, ID, and object type). Default is `false`."
schema:
type: boolean
- name: tenantCode
in: query
description: Specify the tenant to retrieve data security objects from.
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.GetDataSecurityObjectsAPIResponseDTO'
/v1/admin/permissions:
get:
tags:
- Permissions
summary: Retrieve a list of all permissions
description: "Retrieve the full list of user permissions in your tenant.\n\n To specify the project in which to retrieve permissions, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_GetPermissions
parameters:
- name: tenantCode
in: query
description: Specify the tenant to retrieve the permissions from.
schema:
type: string
- name: includeDetails
in: query
description: "If `true`, returns the permission's details. If `false`, only returns the permissions' ID, display name,\n and description. Default is `false`."
schema:
type: boolean
- name: includeDetailsWithStatus
in: query
description: "If `true`, returns the validity statuses for the permission's properties in data access sets and the\n permission's dimensions, dimension members, and hierarchy properties in member filters. If `false`,\n doesn't return validity status information. Default is `false`."
schema:
type: boolean
- name: correlationIds
in: query
description: "If defined, `correlationIds` limits the response to the permissions associated with the specified correlation IDs.\n You can specify multiple correlation IDs in the `correlationIds` parameter separated by commas; for example, `correlationIds=123,abc,456`.\n\n **Note**:\n - Correlation IDs must be between 3 and 64 characters long and may only contain alphanumeric characters, underscores and hyphens.\n - Correlation IDs have a lifetime of up to 7 days after creation. After a correlation ID expires, you can only retrieve specific permissions using the permission ID.\n - Correlation IDs are optional during permission creation and are only applicable to those objects created with a defined correlation ID."
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.GetPermissionsAPIResponseDTO'
put:
tags:
- Permissions
summary: Update permissions
description: "Update existing permissions.\n\n To specify the project in which to update permissions, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_UpdatePermissions
parameters:
- name: tenantCode
in: query
description: Specify the tenant to update permissions in.
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
- name: FastMode
in: header
description: If `true`, the API skips loading the tenant's data environment. Use `FastMode` to reduce latency when you don't need to perform dynamic permission checks, such as checking for the Super Admin permission assignment. Without the environment, permission checks that depend on dynamic, data-driven security, such as group assignments using dynamic populations, fall back to checks resolvable from the requesting user's static user group or direct assignments. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/admin.PermissionsListDTO'
required: true
responses:
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/servicing.PermissionBulkOperationResponseDTO'
post:
tags:
- Permissions
summary: Create permissions
description: "Create new permissions. Administrating tenant users can specify the tenant in which to add these permissions.\n\n To specify the project in which to create permissions, provide a project UUID in the `ProjectID` request header."
operationId: Permissions_CreatePermissions
parameters:
- name: tenantCode
in: query
description: Specify the tenant to create permissions in.
schema:
type: string
- name: TargetTenantID
in: header
description: Optionally, specify the tenant that you want to execute the API call on. This defines the tenant that you're logged into. If omitted, the request uses the administrating tenant as the login tenant.
schema:
type: string
- name: ProjectID
in: header
description: Optionally, specify a project in which to make the request.
schema:
type: string
format: uuid
- name: NonVersioned
in: header
description: If `true`, the API call executes on non-versioned artifacts and create/update actions take effect without a new production version. If `false`, the API call executes on versioned artifacts and create/update actions release a new production version. Default is `false`.
schema:
type: boolean
- name: FastMode
in: header
description: If `true`, the API skips loading the tenant's data environment. Use `FastMode` to reduce latency when you don't need to perform dynamic permission checks, such as checking for the Super Admin permission assignment. Without the environment, permission checks that depend on dynamic, data-driven security, such as group assignments using dynamic populations, fall back to checks resolvable from the requesting user's static user group or direct assignments. Default is `false`.
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/admin.PermissionsListDTO'
required: true
responses:
default:
# --- truncated at 32 KB (379 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visier/refs/heads/main/openapi/visier-administration-apis-openapi.yaml