diff --git a/docs/integration/admin.md b/docs/integration/admin.md index d276eef..1066256 100644 --- a/docs/integration/admin.md +++ b/docs/integration/admin.md @@ -4,7 +4,7 @@ The following set of APIs are for admins that need to manage their sub accounts, ## User List -The user list returns a list of admins on the account. For a list of agents, please use the [Agents](https://developers.ringcentral.com/engage/voice/api-reference/Integration-Agent-Controller/getAgentList) API. The [public user list](https://developers.ringcentral.com/engage/voice/api-reference/Users/listAllUsers) most developers will use has many details including creation date, enabled status, and roles. However, for integrations, a smaller set of user data may be all that is needed, but with the added ability to distinguish the RingCX user name from the RingEX user name and the environment ID. For this purpose, there's an [integration user list](https://developers.ringcentral.com/engage/voice/api-reference/Integration-User-Controller/getUserList) that can be used instead. +The user list returns a list of admins on the account. For a list of agents, please use the [Agents](https://developers.ringcentral.com/engage/voice/api-reference/Integration-Agent-Controller/getAgentList) API. The [public user list](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/listAllUsers) most developers will use has many details including creation date, enabled status, and roles. However, for integrations, a smaller set of user data may be all that is needed, but with the added ability to distinguish the RingCX user name from the RingEX user name and the environment ID. For this purpose, there's an [integration user list](https://developers.ringcentral.com/engage/voice/api-reference/Integration-User-Controller/getUserList) that can be used instead. ## Sub-Accounts @@ -16,7 +16,7 @@ Most developers will want a list of agents and agent groups, but for workforce m ## Queue Groups with Agents -Once known as gates, queues are inbound routing rules for customers calling in to a number. Typically, queues have agents assigned to them and each queue would have to be iterated through to find all the agents assigned to a queue group. However, the [gate group with agents](https://developers.ringcentral.com/engage/voice/api-reference/Integration-Gate-Group-Controller/getGateGroupsWithAgents) integration API allows you to get a complete list of all queues in a queue group and the agents contained in that queue in a single call. +Once known as gates, queues are inbound routing rules for customers calling in to a number. Typically, queues have agents assigned to them and each queue would have to be iterated through to find all the agents assigned to a queue group. However, the [gate group with agents](https://developers.ringcentral.com/engage/voice/api-reference/Public-Integration-API/getQueuesWithAgents) integration API allows you to get a complete list of all queues in a queue group and the agents contained in that queue in a single call. !!! info "This is not active agents in a queue" This API only returns a list of agents assigned to the queue. It does not return a list of agents actively receivng calls and chats from a queue. diff --git a/docs/users/admin-users-and-permissions.md b/docs/users/admin-users-and-permissions.md new file mode 100644 index 0000000..55a8d1c --- /dev/null +++ b/docs/users/admin-users-and-permissions.md @@ -0,0 +1,230 @@ +# Admin User and Permission APIs + +The Admin User and Permission APIs let you manage RingCX administrative users, role assignments, rights documents, API tokens, and account-level authentication checks. Use them when user and permission changes are driven by an external identity or governance process. + +## Strategic Overview + +Agents and administrators are related but not identical. Agent APIs manage contact-center users who handle interactions. Admin user and permission APIs manage access to the Admin portal and administrative API capabilities. + +### Key Use Cases + +* **User Governance:** List users and inspect effective permissions for audits. +* **Role Automation:** Add or remove platform roles during onboarding and offboarding. +* **Rights Document Management:** Create or update rights documents that define administrative access. +* **Auth Utilities:** Validate tokens and support password reset workflows. + +### Required Permissions & Scopes + +#### 1. Configure OAuth Scopes + +Your application needs the `ReadAccounts` OAuth scope. + +#### 2. Enable RingCX Admin Access + +The authenticating user must have sufficient Admin portal permissions to read users and update roles or rights documents. User create/list operations require `MANAGE_USERS` or `SUPER_USER`; rights document assignment requires `MANAGE_RIGHTS` or `SUPER_USER`. Use least privilege for automation accounts, and separate read-only audit automation from onboarding/offboarding automation. + +!!! warning "Common Authorization Errors" + If the OAuth token is valid but the user cannot manage users, roles, or rights documents, the API returns an error similar to: + ```json + { + "errorCode": "access.denied.exception", + "generalMessage": "You do not have permission to access this resource", + "timestamp": 1611847650696 + } + ``` + +## Users + +| Operation | Method and Path | API Reference | +| --- | --- | --- | +| List users | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/listAllUsers) | +| Create user | `POST https://ringcx.ringcentral.com/voice/api/v1/admin/users` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/createUser) | +| Get user | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getUser) | +| Update user | `PUT https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/updateUser) | +| Set active state | `PUT https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/setIsActive` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/setUserIsActive) | +| Delete user | `DELETE https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/deleteUser) | + +Use `activeOnly=true` to list only enabled users and `flatten=true` when you need a flat list instead of a hierarchy. + +## Roles + +Roles are coarse-grained access assignments. Use role endpoints for straightforward role membership changes. + +| Operation | Method and Path | API Reference | +| --- | --- | --- | +| List user roles | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/roles` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getRoles) | +| Add role | `POST https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/roles/{roleType}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/addRole) | +| Remove role | `DELETE https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/roles/{roleType}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/removeRole) | + +## Rights Documents + +Rights documents provide detailed administrative permissions. Use these endpoints for advanced permission management or audit tooling. + +| Operation | Method and Path | API Reference | +| --- | --- | --- | +| List rights docs | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/rightsDocs` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getRightsDocs) | +| Create rights doc | `POST https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/rightsDocs` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/createRightsDoc) | +| Update rights doc | `PUT https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/rightsDocs/{rightsDocId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/updateRightsDoc) | +| Delete rights doc | `DELETE https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/rightsDocs/{rightsDocId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/deleteRightsDoc) | +| List assigned rights docs | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/assignedRightsDocs` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getUsersAssignedRightsDocs2) | +| List assigned master rights docs | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/assignedMasterRightsDocs` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getUsersAssignedRightsDocs) | +| Assign rights doc | `POST https://ringcx.ringcentral.com/voice/api/v1/admin/rightsDocs/{rightsDocId}/assignments` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/assignRightsDoc) | +| Delete assignment | `DELETE https://ringcx.ringcentral.com/voice/api/v1/admin/rightsDocs/{rightsDocId}/assignments/{assignedUserId}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/deleteRightsDocAssignment) | + +## API Tokens and Auth Utilities + +| Operation | Method and Path | API Reference | +| --- | --- | --- | +| List API tokens | `GET https://ringcx.ringcentral.com/voice/api/v1/admin/token` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/getApiTokensForLoggedInUser) | +| Create API token | `POST https://ringcx.ringcentral.com/voice/api/v1/admin/token` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/createApiTokenForLoggedInUser) | +| Remove API token | `DELETE https://ringcx.ringcentral.com/voice/api/v1/admin/token/{token}` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/removeApiToken) | +| Validate token | `GET https://ringcx.ringcentral.com/voice/api/v1/auth/isTokenValid` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/isTokenValid) | +| Reset password | `POST https://ringcx.ringcentral.com/voice/api/v1/auth/passwordReset` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/passwordReset) | +| Request password reset | `POST https://ringcx.ringcentral.com/voice/api/v1/auth/passwordResetRequest` | [Reference](https://developers.ringcentral.com/engage/voice/api-reference/Admin-Users-and-Permissions/passwordResetRequest) | + +API tokens are long-lived authenticated-user tokens. Create and rotate them only for service accounts that are governed like other administrative users. + +## Recommended Workflow + +1. List or create the user. +2. Apply required roles for broad access. +3. Create or assign rights documents for detailed access. +4. Verify effective access by reading assigned and aggregated rights documents. +5. Remove roles and rights document assignments during offboarding. + +!!! warning + Permission changes can grant administrative access to customer data and configuration. Apply least privilege and log all automated changes for audit review. + +!!! important "Rate Limiting & Stability" + User and permission changes should be serialized per user. Avoid parallel role and rights document updates for the same user because the final effective permission set can be difficult to audit. + +## Request Examples + +### Create a User + +The create endpoint accepts optional query parameters: `parentUserId` places the new user under an existing administrator, `returnUri` supplies a callback URI for onboarding flows, and `isSSO=true` marks the user for SSO-based access. + +```json +{ + "userName": "alex.admin@example.com", + "firstName": "Alex", + "lastName": "Admin", + "enabled": true, + "roles": [ + "USER", + "MANAGE_USERS" + ], + "regionalSettings": { + "timezoneName": "America/Denver" + } +} +``` + +### Assign a Role + +`POST https://ringcx.ringcentral.com/voice/api/v1/admin/users/{userId}/roles/{roleType}` + +Use the `roleType` path parameter for the role being assigned. + +### Create a Rights Document + +The `RightsDocument` schema does not have `description` or `active`. Use `cascade` to control whether the document applies to child users and use `accountPermissions`, `productPermissions`, and `resourcePermissions` to declare what the document grants. + +```json +{ + "rightsDocName": "Reporting audit access", + "cascade": false, + "isMaster": false, + "accountPermissions": [ + "READ" + ], + "productPermissions": [], + "resourcePermissions": [] +} +``` + +### Assign a Rights Document + +`POST https://ringcx.ringcentral.com/voice/api/v1/admin/rightsDocs/{rightsDocId}/assignments?userIds=987654&userIds=987655` + +The assignment endpoint takes one or more `userIds` query parameters. It does not accept a JSON request body. + +To assign multiple rights documents to one user, call the assignment endpoint once for each rights document ID with the same `userIds` value. + +### Example User Response + +```json +{ + "userId": 987654, + "userName": "alex.admin@example.com", + "firstName": "Alex", + "lastName": "Admin", + "enabled": true, + "roles": [ + "USER", + "MANAGE_USERS" + ], + "regionalSettings": { + "timezoneName": "America/Denver" + } +} +``` + +## Response and Schema Notes + +| Resource | Key Fields | Notes | +| --- | --- | --- | +| User | `userId`, `userName`, `firstName`, `lastName`, `enabled`, `regionalSettings`, `roles` | Admin portal identity and lifecycle state. | +| Role | `roleType`, `userId`, `createdOn` | Coarse access grant. Supported role values include `SUPER_USER`, `USER`, `MANAGE_USERS`, `MANAGE_RIGHTS`, `ACCESS_SIBLINGS`, `ACCESS_AUDIT_LOG`, `ASSUME_USERS`, `REPORT_ADMINISTRATIVE_USER`, `WFO_ACCESS`, `ACCESS_GOODDATA_EDITOR`, `ACCESS_GOODDATA_ANALYST`, `ACCESS_GOODDATA_VIEWER`, and `NO_ACCESS`. | +| Rights document | `rightsDocId`, `rightsDocName`, `ownerId`, `cascade`, `isMaster`, `accountPermissions`, `productPermissions`, `resourcePermissions`, `roleCode`, `isSystemRole` | Fine-grained administrative permissions. There is no `description` or `active` field on this resource. | +| Assignment | `rightsDocId`, `userIds`, `rightsDocIds` | Grants rights document access to one or more users. Assignment create operations use query parameters rather than a JSON body. | + +## Common Errors + +| Status | Cause | Resolution | +| --- | --- | --- | +| `400 Bad Request` | Missing user fields, invalid role type, or malformed rights document. | Validate against the generated API reference before submitting. | +| `403 Forbidden` | Caller cannot manage users, roles, or rights docs. | Grant appropriate Admin portal permission to the automation user. | +| `404 Not Found` | User, role, or rights document ID does not exist. | List the target resource before updating or deleting. | +| `409 Conflict` | Username, role, or assignment already exists. | Treat create operations as idempotent by reading current state first. | + +## Sample Implementation (Python) + +```python +import requests + +BASE_URL = "https://ringcx.ringcentral.com/voice/api" + +def onboard_admin_user(token, user_name, role_type, rights_doc_id=None): + headers = {"Authorization": f"Bearer {token}"} + user = requests.post( + f"{BASE_URL}/v1/admin/users", + headers=headers, + json={ + "userName": user_name, + "firstName": "Alex", + "lastName": "Admin", + "enabled": True, + "roles": ["USER"], + "regionalSettings": {"timezoneName": "America/Denver"}, + }, + ) + user.raise_for_status() + user_id = user.json()["userId"] + + role = requests.post( + f"{BASE_URL}/v1/admin/users/{user_id}/roles/{role_type}", + headers=headers, + ) + role.raise_for_status() + + if rights_doc_id is not None: + assignment = requests.post( + f"{BASE_URL}/v1/admin/rightsDocs/{rights_doc_id}/assignments", + headers=headers, + params={"userIds": [user_id]}, + ) + assignment.raise_for_status() + + return user.json() +``` diff --git a/mkdocs.yml b/mkdocs.yml index 9c697da..9b3f358 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,6 +2,9 @@ site_name: RingCentral RingCX Developer Guide site_url: https://engage-voice-api-docs.rtfd.org repo_url: https://github.com/ringcentral/engage-voice-api-docs docs_dir: docs +exclude_docs: | + integration/reports.md + theme: name: ringcentral product_section: engage @@ -68,6 +71,7 @@ nav: - 'Web2Campaign': dialing/leads/web2campaign.md - 'Users': - 'Overview': users/agents/index.md + - 'Admin Users and Permissions': users/admin-users-and-permissions.md - 'Agents': - 'Agents': users/agents/agents.md - 'Agent Groups': users/agents/agent-groups.md diff --git a/specs/engage-voice_openapi3.json b/specs/engage-voice_openapi3.json index 4d0eb35..53731d1 100644 --- a/specs/engage-voice_openapi3.json +++ b/specs/engage-voice_openapi3.json @@ -2109,6 +2109,14 @@ }, "type": "object" }, + "ActiveStateBoolean": { + "properties": { + "isActive": { + "type": "boolean" + } + }, + "type": "object" + }, "AgentAccountAccess": { "properties": { "account": { @@ -14446,34 +14454,91 @@ "WEMDialogSegmentMetaData": { "type": "object", "properties": { - "subAccountId": { "type": "string" }, - "dialogId": { "type": "string" }, - "interactionId": { "type": "string" }, - "channelId": { "type": "string" }, - "channelType": { "type": "string" }, - "channelClass": { "type": "string" }, - "channelEndpointAddress": { "type": "string" }, - "contactEndpointAddress": { "type": "string" }, - "dialogOrigination": { "type": "string" }, - "dialogStartTimeMs": { "type": "string", "format": "date-time" }, - "dialogEndTimeMs": { "type": "string", "format": "date-time" }, - "dialogDurationMs": { "type": "integer" }, - "segmentId": { "type": "string" }, - "segmentType": { "type": "string" }, - "segmentParticipantId": { "type": "string" }, - "segmentParticipantRcExtensionId": { "type": "string" }, - "segmentStartTimeMs": { "type": "string", "format": "date-time" }, - "segmentEndTimeMs": { "type": "string", "format": "date-time" }, - "segmentDurationMs": { "type": "integer" }, - "segmentAgentGroupId": { "type": "string" }, - "systemDisposition": { "type": "string", "nullable": true }, - "agentDisposition": { "type": "string" }, - "agentNotes": { "type": "string" }, - "hasRecording": { "type": "boolean" }, - "hasTranscript": { "type": "boolean" }, + "subAccountId": { + "type": "string" + }, + "dialogId": { + "type": "string" + }, + "interactionId": { + "type": "string" + }, + "channelId": { + "type": "string" + }, + "channelType": { + "type": "string" + }, + "channelClass": { + "type": "string" + }, + "channelEndpointAddress": { + "type": "string" + }, + "contactEndpointAddress": { + "type": "string" + }, + "dialogOrigination": { + "type": "string" + }, + "dialogStartTimeMs": { + "type": "string", + "format": "date-time" + }, + "dialogEndTimeMs": { + "type": "string", + "format": "date-time" + }, + "dialogDurationMs": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "segmentType": { + "type": "string" + }, + "segmentParticipantId": { + "type": "string" + }, + "segmentParticipantRcExtensionId": { + "type": "string" + }, + "segmentStartTimeMs": { + "type": "string", + "format": "date-time" + }, + "segmentEndTimeMs": { + "type": "string", + "format": "date-time" + }, + "segmentDurationMs": { + "type": "integer" + }, + "segmentAgentGroupId": { + "type": "string" + }, + "systemDisposition": { + "type": "string", + "nullable": true + }, + "agentDisposition": { + "type": "string" + }, + "agentNotes": { + "type": "string" + }, + "hasRecording": { + "type": "boolean" + }, + "hasTranscript": { + "type": "boolean" + }, "segmentEvents": { "type": "array", - "items": { "$ref": "#/components/schemas/InteractionSegmentEvent" }, + "items": { + "$ref": "#/components/schemas/InteractionSegmentEvent" + }, "nullable": true } } @@ -14522,60 +14587,185 @@ "AggregatedAgentStats": { "type": "object", "properties": { - "interval": { "type": "integer", "format": "int32" }, - "dateTimeFrom": { "type": "string" }, - "agentId": { "type": "integer", "format": "int32" }, - "agentName": { "type": "string" }, - "availDur": { "type": "integer", "format": "int32" }, - "totWorkDur": { "type": "integer", "format": "int32" }, - "pauseDur": { "type": "integer", "format": "int32" }, - "waitDur": { "type": "integer", "format": "int32" }, - "adminDur": { "type": "integer", "format": "int32" }, - "directOutIxnCnt": { "type": "integer", "format": "int32" }, - "directOutIxnDur": { "type": "integer", "format": "int32" }, - "directInIxnCnt": { "type": "integer", "format": "int32" }, - "directInIxnDur": { "type": "integer", "format": "int32" } + "interval": { + "type": "integer", + "format": "int32" + }, + "dateTimeFrom": { + "type": "string" + }, + "agentId": { + "type": "integer", + "format": "int32" + }, + "agentName": { + "type": "string" + }, + "availDur": { + "type": "integer", + "format": "int32" + }, + "totWorkDur": { + "type": "integer", + "format": "int32" + }, + "pauseDur": { + "type": "integer", + "format": "int32" + }, + "waitDur": { + "type": "integer", + "format": "int32" + }, + "adminDur": { + "type": "integer", + "format": "int32" + }, + "directOutIxnCnt": { + "type": "integer", + "format": "int32" + }, + "directOutIxnDur": { + "type": "integer", + "format": "int32" + }, + "directInIxnCnt": { + "type": "integer", + "format": "int32" + }, + "directInIxnDur": { + "type": "integer", + "format": "int32" + } } }, "AggregatedQueueStats": { "type": "object", "properties": { - "dateTimeFrom": { "type": "string" }, - "interval": { "type": "integer", "format": "int32" }, - "queue": { "type": "integer", "format": "int32" }, - "queueName": { "type": "string" }, - "offdDirectIxnCnt": { "type": "integer", "format": "int32" }, - "answIxnCnt": { "type": "integer", "format": "int32" }, - "abandIxnCnt": { "type": "integer", "format": "int32" }, - "abandShortIxnCnt": { "type": "integer", "format": "int32" }, - "abandWithinSlCnt": { "type": "integer", "format": "int32" }, - "ansServicelevelCnt": { "type": "integer", "format": "int32" }, - "completedContacts": { "type": "integer", "format": "int32" }, - "queuedAndAnswIxnDur": { "type": "integer", "format": "int32" }, - "queuedAndAbandIxnDur": { "type": "integer", "format": "int32" }, - "queuedAnswLongestQueDur": { "type": "integer", "format": "int32" }, - "queuedAbandLongestQueDur": { "type": "integer", "format": "int32" }, - "talkingIxnDur": { "type": "integer", "format": "int32" }, - "wrapUpDur": { "type": "integer", "format": "int32" }, - "waitDur": { "type": "integer", "format": "int32" }, - "segmentHoldTime": { "type": "integer", "format": "int32" }, - "overflowInIxnCnt": { "type": "integer", "format": "int32" }, - "overflowOutIxnCnt": { "type": "integer", "format": "int32" } + "dateTimeFrom": { + "type": "string" + }, + "interval": { + "type": "integer", + "format": "int32" + }, + "queue": { + "type": "integer", + "format": "int32" + }, + "queueName": { + "type": "string" + }, + "offdDirectIxnCnt": { + "type": "integer", + "format": "int32" + }, + "answIxnCnt": { + "type": "integer", + "format": "int32" + }, + "abandIxnCnt": { + "type": "integer", + "format": "int32" + }, + "abandShortIxnCnt": { + "type": "integer", + "format": "int32" + }, + "abandWithinSlCnt": { + "type": "integer", + "format": "int32" + }, + "ansServicelevelCnt": { + "type": "integer", + "format": "int32" + }, + "completedContacts": { + "type": "integer", + "format": "int32" + }, + "queuedAndAnswIxnDur": { + "type": "integer", + "format": "int32" + }, + "queuedAndAbandIxnDur": { + "type": "integer", + "format": "int32" + }, + "queuedAnswLongestQueDur": { + "type": "integer", + "format": "int32" + }, + "queuedAbandLongestQueDur": { + "type": "integer", + "format": "int32" + }, + "talkingIxnDur": { + "type": "integer", + "format": "int32" + }, + "wrapUpDur": { + "type": "integer", + "format": "int32" + }, + "waitDur": { + "type": "integer", + "format": "int32" + }, + "segmentHoldTime": { + "type": "integer", + "format": "int32" + }, + "overflowInIxnCnt": { + "type": "integer", + "format": "int32" + }, + "overflowOutIxnCnt": { + "type": "integer", + "format": "int32" + } } }, "ExtendedAggregatedQueueStats": { "type": "object", "properties": { - "interval": { "type": "integer", "format": "int32" }, - "dateTimeFrom": { "type": "string" }, - "agentId": { "type": "integer", "format": "int32" }, - "agentName": { "type": "string" }, - "queue": { "type": "integer", "format": "int32" }, - "queueName": { "type": "string" }, - "talkingIxnDur": { "type": "integer", "format": "int32" }, - "wrapUpDur": { "type": "integer", "format": "int32" }, - "answIxnCnt": { "type": "integer", "format": "int32" }, - "transferOutIxnCnt": { "type": "integer", "format": "int32" } + "interval": { + "type": "integer", + "format": "int32" + }, + "dateTimeFrom": { + "type": "string" + }, + "agentId": { + "type": "integer", + "format": "int32" + }, + "agentName": { + "type": "string" + }, + "queue": { + "type": "integer", + "format": "int32" + }, + "queueName": { + "type": "string" + }, + "talkingIxnDur": { + "type": "integer", + "format": "int32" + }, + "wrapUpDur": { + "type": "integer", + "format": "int32" + }, + "answIxnCnt": { + "type": "integer", + "format": "int32" + }, + "transferOutIxnCnt": { + "type": "integer", + "format": "int32" + } } }, "CXQueueWithAgents": { @@ -24000,41 +24190,47 @@ }, "/voice/api/v1/admin/users": { "get": { + "tags": [ + "Users" + ], + "summary": "Returns a listing of all users that a user has access to", "description": "Permissions: MANAGE_USERS or SUPER_USER role", "operationId": "listAllUsers", "parameters": [ { - "description": "activeOnly", - "in": "query", "name": "activeOnly", + "in": "query", + "description": "activeOnly", + "required": false, "schema": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } }, { - "description": "flatten", - "in": "query", "name": "flatten", + "in": "query", + "description": "flatten", + "required": false, "schema": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } } ], "responses": { "200": { + "description": "OK", "content": { "application/json": { "schema": { + "type": "array", "items": { "$ref": "#/components/schemas/User" - }, - "type": "array" + } } } - }, - "description": "OK" + } }, "401": { "description": "Unauthorized" @@ -24047,49 +24243,47 @@ } }, "security": [ - { - "BearerAuth": [] - }, - { - "BearerAuth": [] - }, { "BearerAuth": [] } - ], - "summary": "Returns a listing of all users that a user has access to", - "tags": [ - "Users" ] }, "post": { + "tags": [ + "Users" + ], + "summary": "Creates a single new user", "description": "Permissions: MANAGE_USERS or SUPER_USER role", "operationId": "createUser", "parameters": [ { - "description": "parentUserId", - "in": "query", "name": "parentUserId", + "in": "query", + "description": "parentUserId", + "required": false, "schema": { - "format": "int32", - "type": "integer" + "type": "integer", + "format": "int32" } }, { - "description": "returnUri", - "in": "query", "name": "returnUri", + "in": "query", + "description": "returnUri", + "required": false, "schema": { - "type": "string" + "type": "string", + "format": "uri" } }, { - "description": "isSSO", - "in": "query", "name": "isSSO", + "in": "query", + "description": "isSSO", + "required": false, "schema": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } } ], @@ -24101,18 +24295,20 @@ } } }, - "description": "userRequest", - "required": true + "required": false }, "responses": { - "201": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } - }, + } + }, + "201": { "description": "Created" }, "401": { @@ -24126,69 +24322,60 @@ } }, "security": [ - { - "BearerAuth": [] - }, - { - "BearerAuth": [] - }, { "BearerAuth": [] } - ], - "summary": "Creates a single new user", - "tags": [ - "Users" - ], - "x-codegen-request-body-name": "userRequest" + ] } }, "/voice/api/v1/auth/login": { "post": { + "tags": [ + "Legacy Auth" + ], + "summary": "Application login to authenticate and receive an X-Auth-Token", "description": "Permissions: Anonymous User", "operationId": "doLogin", "parameters": [ { - "description": "username", - "in": "query", "name": "username", - "required": true, + "in": "query", + "description": "username", + "required": false, "schema": { "type": "string" } }, { - "description": "password", - "in": "query", "name": "password", - "required": true, + "in": "query", + "description": "password", + "required": false, "schema": { "type": "string" } }, { - "description": "stayLoggedIn", - "in": "query", "name": "stayLoggedIn", + "in": "query", + "description": "stayLoggedIn", + "required": false, "schema": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false } } ], "responses": { "200": { + "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserLoginView" } } - }, - "description": "OK" - }, - "201": { - "description": "Created" + } }, "401": { "description": "Unauthorized" @@ -24201,19 +24388,9 @@ } }, "security": [ - { - "BearerAuth": [] - }, - { - "BearerAuth": [] - }, { "BearerAuth": [] } - ], - "summary": "Application login to authenticate and receive an X-Auth-Token", - "tags": [ - "Legacy Auth" ] } }, @@ -26529,37 +26706,2704 @@ } } } - } - }, - "servers": [ - { - "url": "https://engage.ringcentral.com" - } - ], - "tags": [ - { - "name": "Active Calls" - }, - { - "name": "Audio Streaming" - }, - { - "name": "Agent Access" - }, - { - "name": "Agent Groups" }, - { - "name": "Agents" + "/voice/api/v1/admin/auth": { + "get": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Returns information provided by /v1/auth/login for users who are already authenticated. Additionally, we return the host name of this platform.", + "description": "", + "operationId": "getUserLoginView", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserLoginView" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } }, - { - "name": "Campaigns" + "/voice/api/v1/admin/rightsDocs/{rightsDocId}/assignments": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a listing of users assigned to a rights document", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getRightsDocAssignments", + "parameters": [ + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "post": { + "tags": [ + "Rights Documents" + ], + "summary": "Assigns a rights document to a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "assignRightsDoc", + "parameters": [ + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userIds", + "in": "query", + "description": "Repeat the parameter (e.g. ?userIds=1&userIds=2) to assign the rights document to multiple users.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "style": "form", + "explode": true + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } }, - { - "name": "Countries" + "/voice/api/v1/admin/rightsDocs/{rightsDocId}/assignments/{assignedUserId}": { + "delete": { + "tags": [ + "Rights Documents" + ], + "summary": "Deletes a rights document from a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "deleteRightsDocAssignment", + "parameters": [ + { + "name": "assignedUserId", + "in": "path", + "description": "assignedUserId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "default": { + "description": "successful operation" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } }, - { - "name": "Dial Groups" + "/voice/api/v1/admin/users/availableUserNames": { + "get": { + "tags": [ + "Users" + ], + "summary": "Checks if username is available", + "description": "Permissions: Authenticated User", + "operationId": "isUserNameTaken", + "parameters": [ + { + "name": "userName", + "in": "query", + "description": "userName", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/duplicateAuthenticatedUser": { + "post": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Duplicates this authenticated user's session and returns a new auth token", + "description": "Permissions: Authenticated User", + "operationId": "duplicateAuthenticatedUsers", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatedUser" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/passwordReset": { + "post": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Resets a user's password", + "description": "Permissions: Authenticated User", + "operationId": "securedPasswordRequestRequest", + "parameters": [ + { + "name": "currentPassword", + "in": "query", + "description": "currentPassword", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newPassword", + "in": "query", + "description": "newPassword", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/reassign": { + "put": { + "tags": [ + "Users" + ], + "summary": "Reassigns all existing child users to a new parent user", + "description": "Permissions: MANAGE_USERS or SUPER_USER role", + "operationId": "reassignUsers", + "parameters": [ + { + "name": "oldUserId", + "in": "query", + "description": "oldUserId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "reassignUserId", + "in": "query", + "description": "reassignUserId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/root": { + "post": { + "tags": [ + "Users" + ], + "summary": "Creates a single root user", + "description": "Permissions: SUPER_USER role", + "operationId": "createRootUser", + "parameters": [ + { + "name": "returnUri", + "in": "query", + "description": "returnUri", + "required": false, + "schema": { + "type": "string", + "format": "uri" + } + }, + { + "name": "isSSO", + "in": "query", + "description": "isSSO", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AdminUserRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/root/{userId}/assignAccount": { + "post": { + "tags": [ + "Users" + ], + "summary": "Assigns an account to a root user", + "description": "Permissions: SUPER_USER role", + "operationId": "assignAccountToRootUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "accountId", + "in": "query", + "description": "accountId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isMaster", + "in": "query", + "description": "isMaster", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}": { + "get": { + "tags": [ + "Users" + ], + "summary": "Returns a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER role", + "operationId": "getUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "delete": { + "tags": [ + "Users" + ], + "summary": "Deletes a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER role", + "operationId": "deleteUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "reassignUserId", + "in": "query", + "description": "reassignUserId", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cascadeDelete", + "in": "query", + "description": "cascadeDelete", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "default": { + "description": "successful operation" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "put": { + "tags": [ + "Users" + ], + "summary": "Updates a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER role", + "operationId": "updateUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AdminUserRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/aggregatedRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of aggregated rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getAggregatedRightsDocForAllAccounts", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/assignAccountToAnyUser": { + "post": { + "tags": [ + "Users" + ], + "summary": "Assigns an account to any user", + "description": "Permissions: hasRole('MANAGE_RIGHTS') or hasRole('SUPER_USER')", + "operationId": "assignAccountToAnyUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "accountId", + "in": "query", + "description": "accountId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isMaster", + "in": "query", + "description": "isMaster", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/assignedMasterRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of assigned master rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersAssignedRightsDocs", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/assignedRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of assigned rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersAssignedRightsDocs2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/bulkAssignAccountToAnyUser": { + "post": { + "tags": [ + "Users" + ], + "summary": "Assigns an account to any user", + "description": "Permissions: hasRole('MANAGE_RIGHTS') or hasRole('SUPER_USER')", + "operationId": "assignAccountToAnyUser2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocTable" + } + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/children": { + "get": { + "tags": [ + "Users" + ], + "summary": "Returns a hierarchical listing of all users that a user has access to", + "description": "Permissions: MANAGE_USERS or SUPER_USER role", + "operationId": "listAllUsersChildren", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/dashboards": { + "get": { + "tags": [ + "User Dashboards" + ], + "summary": "Returns a listing of a dashboards for a user", + "description": "Permissions: Authenticated User", + "operationId": "getDashboardList", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Dashboard" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "post": { + "tags": [ + "User Dashboards" + ], + "summary": "Creates a new dashboard for a user", + "description": "Permissions: Authenticated User", + "operationId": "createDashboard", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Dashboard" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Dashboard" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/dashboards/{dashboardId}": { + "get": { + "tags": [ + "User Dashboards" + ], + "summary": "Returns a dashboard for a user", + "description": "Permissions: Authenticated User", + "operationId": "getDashboardDetail", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dashboardId", + "in": "path", + "description": "dashboardId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Dashboard" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "put": { + "tags": [ + "User Dashboards" + ], + "summary": "Updates an existing dashboard for a user", + "description": "Permissions: Authenticated User", + "operationId": "updateDashboard", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dashboardId", + "in": "path", + "description": "dashboardId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Dashboard" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Dashboard" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "delete": { + "tags": [ + "User Dashboards" + ], + "summary": "Deletes a dashboard for a user", + "description": "Permissions: Authenticated User", + "operationId": "deleteDashboard", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dashboardId", + "in": "path", + "description": "dashboardId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/dashboards/{dashboardId}/share": { + "put": { + "tags": [ + "User Dashboards" + ], + "summary": "Creates a copy of the dashboard for each admin id supplied", + "description": "Permissions: Authenticated User", + "operationId": "shareDashboard", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dashboardId", + "in": "path", + "description": "dashboardId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userIds", + "in": "query", + "description": "Repeat the parameter (e.g. ?userIds=1&userIds=2) to share the dashboard with multiple users.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "style": "form", + "explode": true + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/effectiveAssignedRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of merged (master and regular) and aggregated assigned rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getEffectiveAssignedRightsDocForAllAccounts", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/masterRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of master rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersRightsDocs", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "post": { + "tags": [ + "Rights Documents" + ], + "summary": "Creates a new master rights document for a user", + "description": "Permissions: SUPER_USER roles", + "operationId": "createRightsDoc", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/masterRightsDocs/{rightsDocId}": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a single master rights document for a user", + "description": "Permissions: SUPER_USER roles", + "operationId": "getRightsDoc", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "put": { + "tags": [ + "Rights Documents" + ], + "summary": "Updates an existing master rights document for a user", + "description": "Permissions: SUPER_USER roles", + "operationId": "updateRightsDoc", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "delete": { + "tags": [ + "Rights Documents" + ], + "summary": "Deletes an existing master rights document for a user", + "description": "Permissions: SUPER_USER roles", + "operationId": "deleteRightsDoc", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "default": { + "description": "successful operation" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/ownedMasterRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of owned master rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersOwnedRightsDocs", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/ownedRightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of owned rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersOwnedRightsDocs2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/passwordReset": { + "post": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Resets a user's password and sends reset password email", + "description": "Permissions: Authenticated User", + "operationId": "securePasswordRequestResetForUse", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "returnPath", + "in": "query", + "description": "returnPath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "resetViaEngageAuth", + "in": "query", + "description": "resetViaEngageAuth", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/rightsDocs": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getRightsDocs", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "post": { + "tags": [ + "Rights Documents" + ], + "summary": "Creates a new rights document for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "createRightsDoc2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/rightsDocs/{rightsDocId}": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a single rights document for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getRightsDoc2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "put": { + "tags": [ + "Rights Documents" + ], + "summary": "Updates an existing rights document for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "updateRightsDoc2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "delete": { + "tags": [ + "Rights Documents" + ], + "summary": "Deletes an existing rights document for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "deleteRightsDoc2", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "rightsDocId", + "in": "path", + "description": "rightsDocId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "default": { + "description": "successful operation" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/rightsDocsWithSubAccounts": { + "get": { + "tags": [ + "Rights Documents" + ], + "summary": "Returns a map of rights documents for a user", + "description": "Permissions: MANAGE_RIGHTS or SUPER_USER roles", + "operationId": "getUsersRightsDocsByMasterDoc", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enablePreBuiltRoles", + "in": "query", + "description": "enablePreBuiltRoles", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RightsDocument" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/roles": { + "get": { + "tags": [ + "User Roles" + ], + "summary": "Returns a listing of roles for a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER roles", + "operationId": "getRoles", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "SUPER_USER", + "USER", + "MANAGE_USERS", + "MANAGE_RIGHTS", + "ACCESS_SIBLINGS", + "ACCESS_AUDIT_LOG", + "ASSUME_USERS", + "REPORT_ADMINISTRATIVE_USER", + "WFO_ACCESS", + "ACCESS_GOODDATA_EDITOR", + "ACCESS_GOODDATA_ANALYST", + "ACCESS_GOODDATA_VIEWER", + "NO_ACCESS" + ] + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/roles/{roleType}": { + "post": { + "tags": [ + "User Roles" + ], + "summary": "Adds a role to a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER roles", + "operationId": "addRole", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "roleType", + "in": "path", + "description": "roleType", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + }, + "delete": { + "tags": [ + "User Roles" + ], + "summary": "Removes a role from a user", + "description": "Permissions: MANAGE_USERS or SUPER_USER roles", + "operationId": "removeRole", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "roleType", + "in": "path", + "description": "roleType", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/admin/users/{userId}/setIsActive": { + "put": { + "tags": [ + "Users" + ], + "summary": "Set user is active", + "description": "Permissions: Authenticated User", + "operationId": "setUserIsActive", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "userId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveStateBoolean" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/auth/isTokenValid": { + "get": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Checks to see if a given token is valid", + "description": "Permissions: NONE", + "operationId": "isTokenValid", + "parameters": [ + { + "name": "token", + "in": "query", + "description": "token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/auth/passwordReset": { + "post": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Used to reset a users password", + "description": "Permissions: NONE", + "operationId": "passwordReset", + "parameters": [ + { + "name": "token", + "in": "query", + "description": "token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "password", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, + "/voice/api/v1/auth/passwordResetRequest": { + "post": { + "tags": [ + "User Auth Utilities" + ], + "summary": "Resets a password if a user is locked out, an email will be sent to the user", + "description": "Permissions: NONE", + "operationId": "passwordResetRequest", + "parameters": [ + { + "name": "userName", + "in": "query", + "description": "userName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "returnPath", + "in": "query", + "description": "returnPath", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + } + }, + "servers": [ + { + "url": "https://engage.ringcentral.com" + } + ], + "tags": [ + { + "name": "Active Calls" + }, + { + "name": "Audio Streaming" + }, + { + "name": "Agent Access" + }, + { + "name": "Agent Groups" + }, + { + "name": "Agents" + }, + { + "name": "Campaigns" + }, + { + "name": "Countries" + }, + { + "name": "Dial Groups" }, { "name": "Leads" @@ -26608,6 +29452,22 @@ }, { "name": "Users" + }, + { + "name": "User Roles", + "description": "Manage role assignments for RingCX administrative users." + }, + { + "name": "Rights Documents", + "description": "Manage rights documents and rights document assignments for administrative users." + }, + { + "name": "User Dashboards", + "description": "Manage dashboards associated with administrative users." + }, + { + "name": "User Auth Utilities", + "description": "Validate tokens and support administrative authentication utility workflows." } ], "x-tag-groups": [ @@ -26626,7 +29486,11 @@ "tags": [ "Agents", "Agent Groups", - "Users" + "Users", + "User Roles", + "Rights Documents", + "User Dashboards", + "User Auth Utilities" ] }, { @@ -26697,4 +29561,4 @@ ] } ] -} \ No newline at end of file +}