openapi: 3.1.1
info:
title: User Management
description: 'APIs for creating, updating and retrieving individual users.
'
version: 0.0.1
contact:
name: Avaya API Team
url: https://developers.avayacloud.com/avaya-infinity/
license:
name: Avaya Software Development Kit (SDK) Software License Terms
url: https://support.avaya.com/css/P8/documents/101038288
servers:
- url: https://core.{customerId}.ec.avayacloud.com/api/config/v1
description: Production
variables:
customerId:
description: Your organization identifier
default: your-org-id
security:
- BearerAuth: []
tags:
- name: User
description: 'Operations related to individual users.
'
- name: Bulk User
description: 'Bulk operations related to Users: Add, Update, Export.
'
paths:
/users:
get:
tags:
- User
summary: Get List of Users
description: "**Required Role:** Admin Portal or Admin API Consumer\n\n\nRetrieves a list of users with optional filtering\
\ and related data.\n\nQuery parameters control which related data is included in the response (groups, location,\
\ CRM config)\nand whether folder information should be returned.\n\n**Status Filtering:**\n- Use the `status` query\
\ parameter to filter by user status: `ENABLED` (default), `DISABLED`, or `ALL`\n\n**Deleted Users:**\n- Use the `deleted`\
\ query parameter to control visibility of soft-deleted users:\n `EXCLUDE` (default), `INCLUDE`, or `ONLY`\n- When\
\ `deleted=ONLY`, the `status` filter is ignored because deleted users are always disabled\n"
operationId: getUsers
parameters:
- name: status
in: query
description: 'Filter users by status.
- `ENABLED` (default): Only enabled users
- `DISABLED`: Only disabled users
- `ALL`: All users regardless of status
'
required: false
schema:
type: string
enum:
- ENABLED
- DISABLED
- ALL
default: ENABLED
- name: deleted
in: query
description: "Control visibility of soft-deleted users.\n- `EXCLUDE` (default): Hide deleted users\n- `INCLUDE`: Include\
\ deleted users alongside non-deleted users\n- `ONLY`: Return only deleted users (the `status` filter is ignored\
\ because\n deleted users are always disabled)\n"
required: false
schema:
type: string
enum:
- EXCLUDE
- INCLUDE
- ONLY
default: EXCLUDE
- name: folders
in: query
description: Include folder hierarchy and breadcrumbs in the response
required: false
schema:
type: boolean
default: false
- name: folderId
in: query
description: 'Filter users by folderId (includes subfolders recursively).
- Omit parameter: Returns users from all folders
- Empty string (""): Returns users in root folder only (not in any subfolder)
- 26-character folder ID: Returns users in the specified folder AND all subfolders
'
required: false
schema:
oneOf:
- $ref: '#/components/schemas/FolderId'
- type: string
enum:
- ''
description: Empty string for root folder
- name: inFolder
in: query
description: Filter users that are in or not in a folder.
required: false
schema:
type: boolean
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/sortBy'
- name: profileId
in: query
description: Filter by profile ID
required: false
schema:
$ref: '#/components/schemas/ProfileId'
- name: hasProfile
in: query
description: Filter users that have or do not have a profile.
required: false
schema:
type: boolean
- name: licType
in: query
description: Filter by license type
required: false
schema:
$ref: '#/components/schemas/LicenseType'
- name: locationId
in: query
description: Filter by location ID
required: false
schema:
$ref: '#/components/schemas/LocationId'
- name: hasLocation
in: query
description: Filter users that have or do not have a location.
required: false
schema:
type: boolean
- name: groups
in: query
description: Include group memberships with full group details (groupId, name, type)
required: false
schema:
type: boolean
default: true
- name: location
in: query
description: Include E911 location details for each user
required: false
schema:
type: boolean
default: true
- name: crmConfigId
in: query
description: Include CRM configuration details for each user
required: false
schema:
type: boolean
default: true
- name: updatedSince
in: query
description: 'Filter users updated on or after this UTC timestamp.
Must be in ISO 8601 format (e.g., 2026-01-22T00:00:00Z).
When used with updatedUntil, updatedUntil must be greater than updatedSince.
Note: newly created users have lastUpdated set to their creation time.
'
required: false
schema:
type: string
format: date-time
- name: updatedUntil
in: query
description: 'Filter users updated on or before this UTC timestamp.
Must be in ISO 8601 format (e.g., 2026-01-22T23:59:59Z).
When used with updatedSince, must be greater than updatedSince.
'
required: false
schema:
type: string
format: date-time
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNumber'
responses:
'200':
$ref: '#/components/responses/GetUsersResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
post:
tags:
- User
summary: Create a user
description: "**Required Role:** Admin Portal or Admin API Consumer\n\n\nCreates a user.\n\nThe type of user is controlled\
\ by the license type, which is typically\nan agent of some kind, but other types can be supported via the 'nonAgent'\
\ type.\n\nAt a minimum, creating a user requires:\n- the user's email address\n- the user's first and last names\n\
- the user's license type or a profile to apply to the user (the license type will be\n taken from the profile if\
\ specified)\n\n**License Types and Their Defaults:**\n- `nonAgent`: Limited permissions, minimal spaces (1 task,\
\ 1 email, 1 messaging)\n- `voiceOnlyAgent`: Voice-focused permissions, phone space (2 task, 1 phone)\n- `digitalOnlyAgent`:\
\ Digital channels, no phone (3 task, 2 email, 2 messaging)\n- `omniChannelAgent`: All channels except video (3 task,\
\ 2 email, 1 phone, 2 messaging)\n- `omniChannelAgentEnhanced`: All channels with enhanced features and session statistics\n\
- `hybridVoiceAgent`: Balanced voice and digital capabilities\n\n**Validation Rules:**\n- User's email address must\
\ be unique within the account\n- License type must be valid for the account\n- Profile must exist (if profile ID\
\ is provided)\n- Folder must exist (if folder ID is provided)\n- Location must exist (if location ID is provided)\
\ - location IDs are system-generated\n"
operationId: createUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
responses:
'201':
$ref: '#/components/responses/CreateUserResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/UserConflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users/{userIdOrEmail}:
get:
tags:
- User
summary: Get Single User Details
description: '**Required Role:** Admin Portal or Admin API Consumer
Retrieves detailed information about a specific user including their configuration,
permissions, queue assignments, and related data.
The path parameter can be either a userId (26-character internal ID starting with ''002'')
or an email address.
Query parameters control which related data is included in the response.
'
operationId: getUser
parameters:
- $ref: '#/components/parameters/userIdOrEmail'
- name: queues
in: query
description: Include queue assignments with names
required: false
schema:
type: boolean
default: false
- name: queueLogins
in: query
description: Include current queue login sessions
required: false
schema:
type: boolean
default: false
- name: groups
in: query
description: Include group memberships
required: false
schema:
type: boolean
default: false
- name: location
in: query
description: Include E911 location details
required: false
schema:
type: boolean
default: false
- name: crmConfigId
in: query
description: Include CRM configuration
required: false
schema:
type: boolean
default: false
- name: reportsTo
in: query
description: Include reports-to user details (supervisor/manager relationship)
required: false
schema:
type: boolean
default: false
- name: externalUCProviderConnections
in: query
description: Include external UC provider connection details
required: false
schema:
type: boolean
default: false
responses:
'200':
description: User details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UserDetail'
examples:
success:
$ref: '#/components/examples/GetUserDetailSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
patch:
tags:
- User
summary: Update a user
description: "**Required Role:** Admin Portal or Admin API Consumer\n\nUpdate one or more properties of a user. The\
\ user can be identified by their user ID\nor email address.\n\n**Agent Self-Edit Restrictions**\nWhen an agent edits\
\ their own profile (self-edit), the server enforces the following:\n\n*Read-only identity fields:*\nThe following\
\ fields are always read-only for agents and cannot be modified via self-edit.\nAny attempt returns **403 Forbidden**:\n\
`firstName`, `lastName`, `namePrefix`, `nameSuffix`, `title`, `email`, `mobile`.\nThese fields can only be changed\
\ by an administrator.\n\n*Auto Answer / WebHID Edit Restrictions:*\n * If `allowAgentEditAutoAnswer` is `false`\
\ on the user record and the request includes\n a change to `attributes.webRTC.autoAnswer.interaction`, the server\
\ returns **403 Forbidden**.\n * If `allowAgentEditWebHIDHeadsetControl` is `false` on the user record and the request\n\
\ includes a change to `attributes.webHID.status`, the server returns **403 Forbidden**.\n * Administrators editing\
\ other users are never restricted by these flags.\n * Agents can still modify unrestricted fields (language, timezone,\
\ app theme, queues, etc.)\n even when identity and Auto Answer / WebHID edits are restricted.\n\n**Agent Self-Edit\
\ Restrictions**\nWhen an agent edits their own profile (self-edit), the server enforces the following:\n\n*Read-only\
\ identity fields:*\nThe following fields are always read-only for agents and cannot be modified via self-edit.\n\
Any attempt returns **403 Forbidden**:\n`firstName`, `lastName`, `namePrefix`, `nameSuffix`, `title`, `email`, `mobile`.\n\
These fields can only be changed by an administrator.\n\n*Auto Answer / WebHID Edit Restrictions:*\n * If `allowAgentEditAutoAnswer`\
\ is `false` on the user record and the request includes\n a change to `attributes.webRTC.autoAnswer.interaction`,\
\ the server returns **403 Forbidden**.\n * If `allowAgentEditWebHIDHeadsetControl` is `false` on the user record\
\ and the request\n includes a change to `attributes.webHID.status`, the server returns **403 Forbidden**.\n *\
\ Administrators editing other users are never restricted by these flags.\n * Agents can still modify unrestricted\
\ fields (language, timezone, app theme, queues, etc.)\n even when identity and Auto Answer / WebHID edits are\
\ restricted.\n\n** Disabling a User **\nA user can be disabled by performing an update to set the `status` property\
\ to `disabled`.\nThis can normally only be done if:\n * the user is not logged in\n * the user has no active interactions\n\
\ * the user has no pending interactions in their personal queue\nand a request to do so in any of those conditions\
\ will fail with a 422 error. This can be\noverridden by setting the `forceDisable` query parameter.\n"
operationId: updateUser
parameters:
- $ref: '#/components/parameters/userIdOrEmail'
- $ref: '#/components/parameters/forceDisable'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRequest'
responses:
'200':
description: The updated user.
content:
application/json:
schema:
$ref: '#/components/schemas/UserDetail'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UserCanNotBeDisabled'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users/{userId}:
delete:
tags:
- User
summary: Delete a user
description: '**Required Role:** Admin Portal or Admin API Consumer
Delete a user.
Only users in the `disabled` state can be deleted. Attempting to delete an `enabled`
user will fail with a 422 response.
'
operationId: deleteUser
parameters:
- $ref: '#/components/parameters/userId'
responses:
'204':
description: Result for successfully having deleted the user.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UserCanNotBeDeleted'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users/bulk-template:
get:
tags:
- Bulk User
summary: Download Bulk Template
description: '**Required Role:** Admin Portal or Admin API Consumer
Downloads the Bulk Operation Template as an `.xlsx` file.
'
operationId: downloadBulkTemplate
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
format: binary
example: 'Email, Account Hierarchy, Last Name, First Name, Display Name, Password, Profile, Roles, Member Of,
Owned Groups
'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users:bulk-add:
post:
tags:
- Bulk User
summary: Bulk Add Users
description: '**Required Role:** Admin Portal or Admin API Consumer
Bulk adds Users using the file provided. The following file formats are supported:
* `.xlsx`
The following fields must be unique otherwise a `HTTP 409 Conflict` will be returned:
* `jobName`
Will trigger an asynchronous job, the status of which should be monitored via `/jobs/{jobId}`.
'
operationId: bulkAddUsers
parameters:
- $ref: '#/components/parameters/jobName'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/BulkOperationResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users:bulk-update:
post:
tags:
- Bulk User
summary: Bulk Update Users
description: '**Required Role:** Admin Portal or Admin API Consumer
Bulk updates Users using the file provided. The following file formats are supported:
* `.xlsx`
Will trigger an asynchronous job, the status of which should be monitored via `/jobs/{jobId}`.
'
operationId: bulkUpdateUsers
parameters:
- $ref: '#/components/parameters/jobName'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/BulkOperationResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
/users:bulk-export:
post:
tags:
- Bulk User
summary: Bulk Export Users
description: '**Required Role:** Admin Portal or Admin API Consumer
Bulk exports the list of users for an account based on the criteria provided.
If the optional `folderId` query parameter is provided, users within that folder **and all of its subfolders
(recursively)** will be exported.
Will trigger an asynchronous job, the status of which should be monitored via `/jobs/{jobId}`.
Once the job has completed, the file can be downloaded using the API `/jobs/{jobId}/exported-users`.
'
operationId: bulkExportUsers
parameters:
- $ref: '#/components/parameters/jobName'
- name: folderId
in: query
description: '*(Optional)* Export users from a specific folder **and all its subfolders**.
Provide the unique 26-character internal id of the folder.
If omitted, all users in the account will be included.
'
required: false
schema:
$ref: '#/components/schemas/FolderId'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/BulkExportOperationResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
default:
$ref: '#/components/responses/InternalServerError'
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'OAuth 2.0 Bearer Token with scoped permissions.
Required scopes documented per endpoint.
'
responses:
CreateUserResponse:
description: Success response for creating a user.
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedUser'
UserConflict:
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
email:
$ref: '#/components/examples/ErrorUserEmailExists'
UnprocessableEntity:
description: Validation Failed
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorUnprocessableEntity'
UserCanNotBeDisabled:
description: The user can not be disabled due to being logged in or having active interactions.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
UserCanNotBeDeleted:
description: The user must be disabled before it can be deleted.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
GetUsersResponse:
description: List of users
content:
application/json:
schema:
$ref: '#/components/schemas/UserPage'
InternalServerError:
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
type: https://developers.avayacloud.com/errors/internal-error
title: Internal Server Error
status: 500
detail: An unexpected error occurred while processing your request
requestId: req_xyz789
timestamp: '2025-12-08T10:30:05Z'
BadRequest:
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
type: https://developers.avayacloud.com/errors/constraint-violation
title: Constraint Violation
status: 400
detail: Request contains invalid or missing fields
violations:
- field: accountId
message: must match "^[a-zA-Z]{6}$"
code: 20006
Unauthorized:
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
type: https://developers.avayacloud.com/errors/unauthorized
title: Unauthorized
status: 401
detail: Bearer token expired at 2025-12-08T10:15:00Z. Request a new token.
requestId: req_xyz789
timestamp: '2025-12-08T10:30:05Z'
Forbidden:
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
type: https://developers.avayacloud.com/errors/forbidden
title: Forbidden
status: 403
detail: 'Missing required scope: ''workflows:execute''. Your token has: ''workflows:read'''
requestId: req_xyz789
timestamp: '2025-12-08T10:30:05Z'
NotFound:
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
type: https://developers.avayacloud.com/errors/resource-not-found
title: Resource Not Found
status: 404
detail: workflowId 'wf_123abc' does not exist
requestId: req_xyz789
timestamp: '2025-12-08T10:30:05Z'
parameters:
jobName:
name: jobName
in: query
description: Optional name that can be provided to identify the job.
required: false
schema:
type: string
minLength: 1
maxLength: 255
example: Bulk Job
userId:
name: userId
in: path
description: The unique internal ID (UUID) of a user.
required: true
schema:
$ref: '#/components/schemas/UserId'
userIdOrEmail:
name: userIdOrEmail
in: path
description: 'Either the user ID (26-character internal ID starting with ''002''), email address,
or the special value "me" to retrieve the current authenticated user.
'
required: true
schema:
oneOf:
- $ref: '#/components/schemas/UserId'
- $ref: '#/components/schemas/Email'
- type: string
enum:
- me
description: Current authenticated user
email:
name: email
in: path
description: An email address identifying a user.
required: true
schema:
$ref: '#/components/schemas/Email'
sort:
name: sort
in: query
description: Sort order (ascending or descending)
required: false
schema:
type: string
enum:
- ASC
- DESC
default: ASC
sortBy:
name: sortBy
in: query
description: 'Field to sort users by. Note that `lastUpdated` is initialized to `createdOn`
when the user is created, so users that have never been modified will have
matching values for both fields.
'
required: false
schema:
type: string
enum:
- CREATED_ON
- LAST_UPDATED
- FIRST_NAME
- LAST_NAME
example: CREATED_ON
forceDisable:
name: forceDisable
in: query
description: 'Force a user to be disabled even while still active.
In an update uesr request, this parameter has no effect if the request payload does not
include setting the `status` to `disabled`.
'
required: false
schema:
type: boolean
default: false
pageSize:
name: pageSize
in: query
description: The max number of records to retrieve per page.
required: false
schema:
type: integer
format: int32
default: 10
minimum: 1
maximum: 50
pageNumber:
name: pageNumber
in: query
description: The page number of the records to retrieve.
required: false
schema:
type: integer
format: int32
default: 1
minimum: 1
schemas:
UserIdList:
description: List of user Ids
type: object
properties:
userIds:
type: array
maxItems: 50
items:
$ref: '#/components/schemas/UserId'
example:
- 0024ffcec98220644b194e3e25
- 0024a83190db2884efeb3bf96d
description: List of user Ids
CreateUserRequest:
type: object
description: Request body for creating a new user
required:
- email
- firstName
- lastName
properties:
email:
$ref: '#/components/schemas/Email'
firstName:
$ref: '#/components/schemas/FirstName'
lastName:
$ref: '#/components/schemas/LastName'
publicAlias:
$ref: '#/components/schemas/PublicAlias'
namePrefix:
$ref: '#/components/schemas/NamePrefix'
nameSuffix:
$ref: '#/components/schemas/NameSuffix'
title:
$ref: '#/components/schemas/UserTitle'
password:
$ref: '#/components/schemas/TemporaryPassword'
licType:
$ref: '#/components/schemas/LicenseType'
profileId:
$ref: '#/components/schemas/ProfileId'
folderId:
$ref: '#/components/schemas/FolderId'
authProvider:
$ref: '#/components/schemas/AuthProvider'
scimExternalId:
$ref: '#/components/schemas/ScimExternalId'
mobile:
$ref: '#/components/schemas/MobilePhoneNumber'
fwNumber:
$ref: '#/components/schemas/FwNumber'
extension:
$ref: '#/components/schemas/Extension'
callerID:
$ref: '#/components/schemas/CallerID'
defaultOutboundCallerId:
$ref: '#/components/schemas/DefaultOutboundCallerId'
locationId:
$ref: '#/components/schemas/LocationId'
billingLocationId:
$ref: '#/components/schemas/BillingLocationId'
crmConfigId:
$ref: '#/components/schemas/CrmConfigId'
appTheme:
$ref: '#/components/schemas/AppTheme'
consoleTheme:
$ref: '#/components/schemas/ConsoleTheme'
timeZone:
$ref: '#/components/schemas/TimeZone'
interactionViewsType:
$ref: '#/components/schemas/InteractionViewsType'
modifyInteractionViews:
$ref: '#/components/schemas/ModifyInteractionViews'
commTypeChangeDefaultValue:
$ref: '#/components/schemas/CommTypeChangeDefaultValue'
attributes:
$ref: '#/components/schemas/Attributes'
permissions:
$ref: '#/components/schemas/Permissions'
spaces:
$ref: '#/components/schemas/Spaces'
tags:
$ref: '#/components/schemas/TagsList'
groups:
$ref: '#/components/schemas/Groups'
groupId:
$ref: '#/components/schemas/GroupId'
queues:
$ref: '#/components/schemas/UserQueues'
definedInteractionViews:
$ref: '#/components/schemas/DefinedInteractionViews'
isEliteVoiceEnabled:
$ref: '#/components/schemas/IsEliteVoiceEnabled'
eliteSbcGroupId:
$ref: '#/components/schemas/EliteSbcGroupId'
eliteAgentId:
$ref: '#/components/schemas/EliteAgentId'
eliteAgentIdPassword:
$ref: '#/components/schemas/EliteAgentIdPassword'
eliteCommunicationProfilePassword:
$ref: '#/components/schemas/EliteCommunicationProfilePassword'
eliteCommunicationProfilePasswordHash:
$ref: '#/components/schemas/EliteCommunicationProfilePasswordHash'
eliteSipAddress:
$ref: '#/components/schemas/EliteSipAddress'
eliteExtension:
$ref: '#/components/schemas/EliteExtension'
eliteExtensionPassword:
$ref: '#/components/schemas/EliteExtensionPassword'
eliteSipType:
$ref: '#/components/schemas/EliteSipType'
eliteCmConfigurationId:
$ref: '#/components/schemas/EliteCmConfigurationId'
isVoiceEnabled:
$ref: '#/components/schemas/IsVoiceEnabled'
isDigitalEnabled:
$ref: '#/components/schemas/IsDigitalEnabled'
previewOutbound:
$ref: '#/components/schemas/PreviewOutbound'
directoryAble:
$ref: '#/components/schemas/DirectoryAble'
rejectInteractions:
$ref: '#/components/schemas/RejectInteractions'
AIDable:
$ref: '#/components/schemas/AIDableField'
reportsTo:
$ref: '#/components/schemas/ReportsTo'
dialPlanProfileId:
$ref: '#/components/schemas/DialPlanProfileId'
enableWebHID:
$ref: '#/components/schemas/EnableWebHID'
enableErrorTones:
$ref: '#/components/schemas/EnableErrorTones'
phoneSpaces:
$ref: '#/components/schemas/PhoneSpaces'
ucPhoneSpaces:
$ref: '#/components/schemas/UcPhoneSpaces'
useUCPhoneSpaceOnCCCall:
$ref: '#/components/schemas/UseUCPhoneSpaceOnCCCall'
useCCPhoneSpaceOnUCCall:
$ref: '#/components/schemas/UseCCPhoneSpaceOnUCCall'
allowInternalCalls:
$ref: '#/components/schemas/AllowInternalCalls'
allowAgentEditAutoAnswer:
$ref: '#/components/schemas/AllowAgentEditAutoAnswer'
allowAgentEditWebHIDHeadsetControl:
$ref: '#/components/schemas/AllowAgentEditWebHIDHeadsetControl'
externalUCProviderConnections:
type: array
items:
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
minLength: 36
maxLength: 36
description: External UC provider connection IDs to associate with the user.
eliteVoicemailPassword:
type: string
description: Elite Voice voicemail password.
logConfiguration:
$ref: '#/components/schemas/LogConfiguration'
UcPhoneSpaces:
type: integer
minimum: 0
maximum: 3
description: 'Multiplicity Personal Queue Phone; number of UC/personal-queue phone spaces (0-3).
'
UseUCPhoneSpaceOnCCCall:
type: boolean
description: 'When true, use UC (personal queue) phone space for contact center/general queue calls.
'
UseCCPhoneSpaceOnUCCall:
type: boolean
description: 'When true, use contact center (general queue) phone space for UC/personal queue calls.
'
CreatedUserData:
type: object
properties:
userDetails:
type: object
properties:
userId:
$ref: '#/components/schemas/UserId'
firstName:
$ref: '#/components/schemas/FirstName'
lastName:
$ref: '#/components/schemas/LastName'
publicAlias:
$ref: '#/components/schemas/PublicAlias'
fullName:
$ref: '#/components/schemas/FullName'
extension:
$ref: '#/components/schemas/Extension'
email:
$ref: '#/components/schemas/Email'
tempPass:
$ref: '#/components/schemas/TemporaryPassword'
usersQueueId:
type: string
CreatedUser:
type: object
description: Response body for a new user having been created
properties:
status:
type: string
example: success
desc:
type: string
description: Human-readable description of the result.
example: new user created
data:
$ref: '#/components/schemas/CreatedUserData'
apiRequestKey:
$ref: '#/components/schemas/ApiRequestKey'
UpdateUserRequest:
type: object
description: 'Request body for updating an existing user.
All fields are optional, however at least one must be included.
**Merge Behavior:**
Fields use different update strategies. Most scalar fields are replaced with the
provided value. Complex fields have specific behaviors noted in their descriptions.
'
properties:
status:
$ref: '#/components/schemas/UserAccountStatus'
email:
$ref: '#/components/schemas/Email'
firstName:
$ref: '#/components/schemas/FirstName'
lastName:
$ref: '#/components/schemas/LastName'
publicAlias:
$ref: '#/components/schemas/PublicAlias'
namePrefix:
$ref: '#/components/schemas/NamePrefix'
nameSuffix:
$ref: '#/components/schemas/NameSuffix'
title:
$ref: '#/components/schemas/UserTitle'
password:
$ref: '#/components/schemas/TemporaryPassword'
licType:
$ref: '#/components/schemas/LicenseType'
profileId:
description: 'Updates the profile associated with the user. Note: changing the profile ID
updates the association only — it does not re-apply profile defaults to the user.
'
$ref: '#/components/schemas/ProfileId'
folderId:
anyOf:
- $ref: '#/components/schemas/FolderId'
- type: 'null'
description: Move user to a folder, or send null to remove from current folder.
authProvider:
$ref: '#/components/schemas/AuthProvider'
scimExternalId:
$ref: '#/components/schemas/ScimExternalId'
mobile:
anyOf:
- $ref: '#/components/schemas/MobilePhoneNumber'
- type: 'null'
description: Send null or empty string to clear.
fwNumber:
$ref: '#/components/schemas/FwNumber'
extension:
anyOf:
- $ref: '#/components/schemas/Extension'
- type: 'null'
description: Send null to clear.
callerID:
$ref: '#/components/schemas/CallerID'
defaultOutboundCallerId:
$ref: '#/components/schemas/DefaultOutboundCallerId'
emergencyOutboundCallerId:
type: string
minLength: 10
maxLength: 20
description: Emergency outbound caller ID number.
locationId:
anyOf:
- $ref: '#/components/schemas/LocationId'
- type: 'null'
description: 'Send null to clear. When setting a location, `email`, `firstName`, and `lastName`
must also be provided.
'
billingLocationId:
$ref: '#/components/schemas/BillingLocationId'
crmConfigId:
$ref: '#/components/schemas/CrmConfigId'
appTheme:
$ref: '#/components/schemas/AppTheme'
consoleTheme:
$ref: '#/components/schemas/ConsoleTheme'
timeZone:
$ref: '#/components/schemas/TimeZone'
interactionViewsType:
$ref: '#/components/schemas/InteractionViewsType'
modifyInteractionViews:
$ref: '#/components/schemas/ModifyInteractionViews'
commTypeChangeDefaultValue:
anyOf:
- $ref: '#/components/schemas/CommTypeChangeDefaultValue'
- type: 'null'
description: Send null to clear.
attributes:
description: 'Merged with the user''s existing attributes. Specific nested keys
(`queue`, `time`, `webRTC`, `recording`, `signatures`, `sessionStats`)
are deep-merged; all other keys are replaced.
Omit to leave unchanged.
'
$ref: '#/components/schemas/Attributes'
permissions:
description: 'Merged with the user''s existing permissions per section (`app`, `console`).
Keys within each section are replaced with the provided values;
keys not included are preserved. Omit to leave unchanged.
'
$ref: '#/components/schemas/Permissions'
spaces:
$ref: '#/components/schemas/Spaces'
tags:
description: 'Replaces the user''s entire tag list with the provided values.
Send an empty array to remove all tags. Omit to leave unchanged.
'
$ref: '#/components/schemas/TagsList'
groups:
description: 'Replaces the user''s entire group membership with the provided group IDs.
Send an empty array to remove all group memberships. Omit to leave unchanged.
'
$ref: '#/components/schemas/Groups'
groupId:
$ref: '#/components/schemas/GroupId'
queues:
description: 'Only the sub-properties included in the request are updated; omitted
sub-properties are left unchanged. For example, sending only `access`
replaces the access list but leaves `autoLogin` and `proficiency` as-is.
The user''s personal queue is always preserved in `access` and `autoLogin`.
'
$ref: '#/components/schemas/UserQueues'
definedInteractionViews:
description: 'Replaces the user''s entire set of defined interaction views.
Omit to leave unchanged.
'
$ref: '#/components/schemas/DefinedInteractionViews'
isEliteVoiceEnabled:
$ref: '#/components/schemas/IsEliteVoiceEnabled'
eliteSbcGroupId:
anyOf:
- $ref: '#/components/schemas/EliteSbcGroupId'
- type: 'null'
description: Send null to clear.
eliteAgentId:
anyOf:
- $ref: '#/components/schemas/EliteAgentId'
- type: 'null'
description: Send null to clear.
eliteAgentIdPassword:
$ref: '#/components/schemas/EliteAgentIdPassword'
eliteCommunicationProfilePassword:
$ref: '#/components/schemas/EliteCommunicationProfilePassword'
eliteCommunicationProfilePasswordHash:
$ref: '#/components/schemas/EliteCommunicationProfilePasswordHash'
eliteSipAddress:
anyOf:
- $ref: '#/components/schemas/EliteSipAddress'
- type: 'null'
description: Send null to clear.
eliteExtension:
anyOf:
- $ref: '#/components/schemas/EliteExtension'
- type: 'null'
description: Send null to clear.
eliteExtensionPassword:
$ref: '#/components/schemas/EliteExtensionPassword'
eliteVoicemailPassword:
type: string
description: Elite Voice voicemail password.
eliteSipType:
$ref: '#/components/schemas/EliteSipType'
eliteCmConfigurationId:
anyOf:
- $ref: '#/components/schemas/EliteCmConfigurationId'
- type: 'null'
description: Send null or empty string to clear.
sipTrunkId:
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
minLength: 36
maxLength: 36
description: SIP trunk ID to associate with the user.
isVoiceEnabled:
$ref: '#/components/schemas/IsVoiceEnabled'
isDigitalEnabled:
$ref: '#/components/schemas/IsDigitalEnabled'
previewOutbound:
$ref: '#/components/schemas/PreviewOutbound'
directoryAble:
$ref: '#/components/schemas/DirectoryAble'
rejectInteractions:
$ref: '#/components/schemas/RejectInteractions'
AIDable:
description: 'Manually set the AIDable flag. Note: this value may be overridden by
license enforcement rules when the license type changes.
'
$ref: '#/components/schemas/AIDableField'
sendLogsToEdify:
type: boolean
description: Whether the user should send logs to the platform.
reportsTo:
anyOf:
- $ref: '#/components/schemas/ReportsTo'
- type: 'null'
description: Send null or empty string to clear.
dialPlanProfileId:
anyOf:
- $ref: '#/components/schemas/DialPlanProfileId'
- type: 'null'
description: Send null to clear.
enableWebHID:
$ref: '#/components/schemas/EnableWebHID'
enableErrorTones:
$ref: '#/components/schemas/EnableErrorTones'
phoneSpaces:
$ref: '#/components/schemas/PhoneSpaces'
messagingSpaces:
$ref: '#/components/schemas/MessagingSpaces'
emailSpaces:
$ref: '#/components/schemas/EmailSpaces'
taskSpaces:
$ref: '#/components/schemas/TaskSpaces'
videoSpaces:
$ref: '#/components/schemas/VideoSpaces'
ucPhoneSpaces:
anyOf:
- $ref: '#/components/schemas/UcPhoneSpaces'
- type: 'null'
description: Send null to clear (revert to default).
useUCPhoneSpaceOnCCCall:
anyOf:
- $ref: '#/components/schemas/UseUCPhoneSpaceOnCCCall'
- type: 'null'
description: Send null to clear (revert to default).
useCCPhoneSpaceOnUCCall:
anyOf:
- $ref: '#/components/schemas/UseCCPhoneSpaceOnUCCall'
- type: 'null'
description: Send null to clear (revert to default).
allowInternalCalls:
anyOf:
- $ref: '#/components/schemas/AllowInternalCalls'
- type: 'null'
description: Send null to clear (revert to default).
allowAgentEditAutoAnswer:
anyOf:
- $ref: '#/components/schemas/AllowAgentEditAutoAnswer'
- type: 'null'
description: Send null to clear (revert to default).
allowAgentEditWebHIDHeadsetControl:
anyOf:
- $ref: '#/components/schemas/AllowAgentEditWebHIDHeadsetControl'
- type: 'null'
description: Send null to clear (revert to default).
voicemail:
type: object
additionalProperties: true
description: Voicemail settings.
infinityElements:
type: array
items:
type: string
description: 'Replaces the user''s entire set of Infinity Elements.
Omit to leave unchanged.
'
externalUCProviderConnections:
type: array
items:
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
minLength: 36
maxLength: 36
description: 'Replaces the user''s entire set of external UC provider connections.
Omit to leave unchanged. IDs must belong to the same account.
'
calendarEventProvider:
type: string
maxLength: 64
description: Calendar event provider identifier.
calendarEventStatusMap:
type: object
additionalProperties: true
description: Mapping of calendar event statuses.
logConfiguration:
anyOf:
- $ref: '#/components/schemas/LogConfiguration'
- type: 'null'
description: Send null to clear.
UserPage:
type: object
required:
- resources
- pagination
- links
properties:
resources:
$ref: '#/components/schemas/UserPageResources'
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
description: Pagination metadata.
readOnly: true
links:
allOf:
- $ref: '#/components/schemas/Links'
description: Navigation links for pagination.
readOnly: true
UserPageResources:
type: object
required:
- users
properties:
users:
type: array
items:
$ref: '#/components/schemas/UserListItem'
folders:
type: array
description: Folder hierarchy. Only present when folders=true query parameter is provided.
items:
type: object
additionalProperties: true
breadcrumbs:
type: array
description: Breadcrumb trail. Only present when folders=true query parameter is provided.
items:
type: object
additionalProperties: true
UserListItem:
type: object
properties:
userId:
$ref: '#/components/schemas/UserId'
folderId:
anyOf:
- $ref: '#/components/schemas/FolderId'
- type: 'null'
title:
type:
- string
- 'null'
firstName:
type: string
example: Banke
lastName:
type: string
example: S
fullName:
$ref: '#/components/schemas/FullName'
email:
$ref: '#/components/schemas/Email'
location:
type:
- string
- 'null'
tags:
$ref: '#/components/schemas/TagsList'
tagsData:
type: object
additionalProperties: true
groups:
type:
- string
- 'null'
attributes:
type: object
additionalProperties: true
permissions:
type: object
additionalProperties: true
imageLastChangedAt:
type:
- string
- 'null'
queues:
anyOf:
- $ref: '#/components/schemas/UserQueues'
- type: 'null'
description: Queue assignments for this user.
licType:
type: string
example: omniChannelAgentEnhanced
extension:
anyOf:
- $ref: '#/components/schemas/Extension'
- type: 'null'
mobile:
type:
- string
- 'null'
fw:
type:
- string
- 'null'
defaultOutboundCallerId:
type:
- string
- 'null'
emergencyOutboundCallerId:
type:
- string
- 'null'
status:
type: string
example: enabled
createdOn:
type: string
format: date-time
example: '2025-09-08 14:36:49'
lastUpdated:
type: string
format: date-time
example: '2025-09-08 14:38:10'
createdBy:
type: object
additionalProperties: true
userStatus:
type: object
additionalProperties: true
scimExternalId:
type:
- string
- 'null'
authProvider:
type:
- string
- 'null'
directoryAble:
type: boolean
appTheme:
$ref: '#/components/schemas/AppTheme'
consoleTheme:
$ref: '#/components/schemas/ConsoleTheme'
isSupportUser:
type: boolean
calendarEventProvider:
type:
- string
- 'null'
calendarEventStatusMap:
type:
- object
- 'null'
interactionViewsType:
type: string
isDeleted:
type: boolean
description: Indicates if the user has been soft-deleted. Only present when includeDeleted query parameter is used.
enableWebHID:
$ref: '#/components/schemas/EnableWebHID'
enableErrorTones:
$ref: '#/components/schemas/EnableErrorTones'
allowInternalCalls:
$ref: '#/components/schemas/AllowInternalCalls'
allowAgentEditAutoAnswer:
$ref: '#/components/schemas/AllowAgentEditAutoAnswer'
allowAgentEditWebHIDHeadsetControl:
$ref: '#/components/schemas/AllowAgentEditWebHIDHeadsetControl'
publicAlias:
anyOf:
- $ref: '#/components/schemas/PublicAlias'
- type: 'null'
namePrefix:
anyOf:
- $ref: '#/components/schemas/NamePrefix'
- type: 'null'
nameSuffix:
anyOf:
- $ref: '#/components/schemas/NameSuffix'
- type: 'null'
definedInteractionViews:
anyOf:
- $ref: '#/components/schemas/DefinedInteractionViews'
- type: 'null'
modifyInteractionViews:
anyOf:
- $ref: '#/components/schemas/ModifyInteractionViews'
- type: 'null'
rejectInteractions:
anyOf:
- $ref: '#/components/schemas/RejectInteractions'
- type: 'null'
isDigitalEnabled:
anyOf:
- $ref: '#/components/schemas/IsDigitalEnabled'
- type: 'null'
isVoiceEnabled:
anyOf:
- $ref: '#/components/schemas/IsVoiceEnabled'
- type: 'null'
previewOutbound:
anyOf:
- $ref: '#/components/schemas/PreviewOutbound'
- type: 'null'
crmConfigurations:
anyOf:
- $ref: '#/components/schemas/CrmConfigId'
- type: object
additionalProperties: true
- type: 'null'
description: CRM configuration ID or object, depending on query parameters.
personalQueueId:
anyOf:
- $ref: '#/components/schemas/PersonalQueueId'
- type: 'null'
sendLogsToEdify:
$ref: '#/components/schemas/SendLogsToEdify'
UserDetail:
type: object
description: Detailed user object returned by the single-user GET endpoint. Extends the list item with optional enriched
data controlled by query parameters.
allOf:
- $ref: '#/components/schemas/UserListItem'
properties:
queues:
description: Queue assignments. When queues=true, returns enriched object with named queues. When false, returns
raw queue IDs.
type: object
additionalProperties: true
queueLogins:
description: Current queue login sessions. Only present when queueLogins=true.
type: array
items:
type: object
additionalProperties: true
groups:
description: Group memberships. When groups=true, returns array of group objects. When false, field is omitted.
type: array
items:
type: object
properties:
groupId:
type: string
name:
type: string
type:
type: string
location:
description: E911 location details. When location=true, returns location object. When false, field is omitted.
type: object
additionalProperties: true
crmConfigurations:
description: CRM configuration details. When crmConfigId=true, returns CRM config. When false, returns raw ID string.
oneOf:
- type: object
additionalProperties: true
- type: string
- type: 'null'
reportsTo:
description: Reports-to user details. When reportsTo=true, returns user object. When false, returns raw userId string.
oneOf:
- type: object
properties:
userId:
type: string
firstName:
type: string
lastName:
type: string
email:
type: string
- type: string
- type: 'null'
externalUCProviderConnections:
description: External UC provider connections. Only present when externalUCProviderConnections=true.
type: array
items:
type: object
additionalProperties: true
personalQueueId:
type: string
description: The user's personal queue ID
infinityElements:
type: array
items:
type: string
fwNumber:
anyOf:
- $ref: '#/components/schemas/FwNumber'
- type: 'null'
defaultOutboundCallerId:
anyOf:
- $ref: '#/components/schemas/DefaultOutboundCallerId'
- type: 'null'
billingLocationId:
anyOf:
- $ref: '#/components/schemas/BillingLocationId'
- type: 'null'
locationId:
anyOf:
- $ref: '#/components/schemas/LocationId'
- type: 'null'
dialPlanProfileId:
anyOf:
- $ref: '#/components/schemas/DialPlanProfileId'
- type: 'null'
eliteSbcGroupId:
anyOf:
- $ref: '#/components/schemas/EliteSbcGroupId'
- type: 'null'
eliteAgentId:
anyOf:
- $ref: '#/components/schemas/EliteAgentId'
- type: 'null'
eliteSipAddress:
anyOf:
- $ref: '#/components/schemas/EliteSipAddress'
- type: 'null'
eliteExtension:
anyOf:
- $ref: '#/components/schemas/EliteExtension'
- type: 'null'
eliteSipType:
anyOf:
- $ref: '#/components/schemas/EliteSipType'
- type: 'null'
eliteCmConfigurationId:
anyOf:
- $ref: '#/components/schemas/EliteCmConfigurationId'
- type: 'null'
commTypeChangeDefaultValue:
anyOf:
- $ref: '#/components/schemas/CommTypeChangeDefaultValue'
- type: 'null'
isEliteVoiceEnabled:
$ref: '#/components/schemas/IsEliteVoiceEnabled'
phoneSpaces:
$ref: '#/components/schemas/PhoneSpaces'
emailSpaces:
$ref: '#/components/schemas/EmailSpaces'
taskSpaces:
$ref: '#/components/schemas/TaskSpaces'
messagingSpaces:
$ref: '#/components/schemas/MessagingSpaces'
videoSpaces:
$ref: '#/components/schemas/VideoSpaces'
enableWebHID:
$ref: '#/components/schemas/EnableWebHID'
allowInternalCalls:
$ref: '#/components/schemas/AllowInternalCalls'
logConfiguration:
anyOf:
- $ref: '#/components/schemas/LogConfiguration'
- type: 'null'
routeTo:
anyOf:
- $ref: '#/components/schemas/RouteTo'
- type: 'null'
userRouteTo:
anyOf:
- $ref: '#/components/schemas/UserRouteTo'
- type: 'null'
queueRouteTo:
anyOf:
- $ref: '#/components/schemas/QueueRouteTo'
- type: 'null'
video:
type:
- string
- 'null'
voice:
type:
- string
- 'null'
voicemail:
anyOf:
- $ref: '#/components/schemas/Voicemail'
- type: 'null'
channels:
type:
- string
- 'null'
aidStatusTypeOverride:
$ref: '#/components/schemas/AidStatusTypeOverride'
sipTrunkId:
anyOf:
- $ref: '#/components/schemas/SipTrunkId'
- type: 'null'
sipTranslation:
anyOf:
- $ref: '#/components/schemas/SipTranslation'
- type: 'null'
tabs:
$ref: '#/components/schemas/Tabs'
defaultTab:
anyOf:
- $ref: '#/components/schemas/DefaultTab'
- type: 'null'
ucPhoneSpaces:
$ref: '#/components/schemas/UcPhoneSpaces-2'
e911Recommendations:
$ref: '#/components/schemas/E911Recommendations'
hasEliteAgentIdPassword:
$ref: '#/components/schemas/HasEliteAgentIdPassword'
hasEliteCommunicationProfilePassword:
$ref: '#/components/schemas/HasEliteCommunicationProfilePassword'
hasEliteExtensionPassword:
$ref: '#/components/schemas/HasEliteExtensionPassword'
isEliteAutoSyncEnabled:
$ref: '#/components/schemas/IsEliteAutoSyncEnabled'
useUCPhoneSpaceOnCCCall:
$ref: '#/components/schemas/UseUCPhoneSpaceOnCCCall-2'
useCCPhoneSpaceOnUCCall:
$ref: '#/components/schemas/UseCCPhoneSpaceOnUCCall-2'
sendLogsToEdify:
$ref: '#/components/schemas/SendLogsToEdify'
uc3Endpoint:
anyOf:
- $ref: '#/components/schemas/Uc3Endpoint'
- type: 'null'
userAID:
$ref: '#/components/schemas/UserAID'
FolderId:
description: Unique identifier for a folder.
type: string
pattern: ^073[0-9a-f]{23}$
example: 073d010813b941cf7da111d147
ProfileId:
type: string
description: The unique identifier of a profile.
format: uuid
example: 16a7490f-86a6-4a14-8ce2-11682230adb6
LicenseType:
type: string
description: User license type that determines available features and permissions
enum:
- nonAgent
- voiceOnlyAgent
- digitalOnlyAgent
- omniChannelAgent
- omniChannelAgentEnhanced
- hybridVoiceAgent
example: hybridVoiceAgent
LocationId:
type: string
description: 'Optional location ID to associate with the user or profile. Must be an existing location ID.
**Note:** Location IDs are system-generated 26-character identifiers with prefix "022".
'
maxLength: 26
minLength: 26
pattern: ^022[0-9a-f]{23}$
example: 022d01091776cc88fe6866b7ce
Violation:
type: object
properties:
field:
description: 'The name of the field in the request that caused the violation.
This can be the name of a path parameter, query parameter, or a field within the request body.
'
type: string
readOnly: true
example: jobName
message:
description: 'A human-readable explanation specific to this occurrence of the violation.
'
type: string
readOnly: true
example: must match "^[a-zA-Z]{6}$"
code:
description: 'The violation code generated by the server for this occurrence of the violation.
Use this code when implementing any error handling logic instead of the message, as the message can change.
'
type: integer
format: int32
readOnly: true
example: 20006
required:
- field
- message
- code
example:
- field: emailAddress
message: must not be null
code: 20002
Problem:
type: object
description: 'Problem Detail is a way to carry machine-readable details of errors in an HTTP
response to avoid the need to define new error response formats for HTTP APIs
RFC 7807
'
properties:
type:
description: 'An absolute URI that identifies the problem type.
When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML).
'
type: string
format: uri
readOnly: true
example: https://developers.avayacloud.com/avaya-infinity/docs/user-management#error-reference
title:
description: 'A short, summary of the problem type.
Written in English and readable for engineers (usually not suited for non technical stakeholders and not localized).
'
type: string
readOnly: true
example: Service Unavailable
status:
description: 'The HTTP status code generated by the origin server for this occurrence of the problem.
'
type: integer
format: int32
minimum: 300
exclusiveMaximum: 600
readOnly: true
example: 503
detail:
description: 'A human-readable explanation specific to this occurrence of the problem.
'
type: string
readOnly: true
example: Connection to database timed out
instance:
description: 'An absolute URI that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.
'
type: string
format: uri
readOnly: true
violations:
description: 'A list of violations that occurred as a result of invalid data provided as part of a request.
'
type: array
items:
$ref: '#/components/schemas/Violation'
readOnly: true
UserId:
description: Unique identifier for a user.
type: string
pattern: ^002[0-9a-f]{23}$
example: 002507f1e1c8e3e9a8b7c5d4e3f2
FullName:
description: The full name of the user (firstName + lastName).
type: string
example: John Smith
Email:
description: A user's email address
type: string
format: email
TagsList:
type: array
items:
type: string
description: List of tag names associated with the user or profile.
example:
- APACT
- English
- NART
QueueId:
description: Unique identifier for a queue.
type: string
minLength: 23
maxLength: 26
pattern: ^003[0-9a-f]{20,23}$
example: 00301090301ad8db0f0d4c370
UserQueues:
description: Queues configuration for a user or profile.
type: object
properties:
access:
type: array
items:
$ref: '#/components/schemas/QueueId'
performance:
type: array
items:
$ref: '#/components/schemas/QueueId'
autoLogin:
type: array
items:
$ref: '#/components/schemas/QueueId'
proficiency:
type: array
items:
$ref: '#/components/schemas/QueueId'
logins:
type: array
items:
$ref: '#/components/schemas/QueueId'
defaultOutboundQueue:
anyOf:
- $ref: '#/components/schemas/QueueId'
- type: 'null'
outboundQueueId:
anyOf:
- $ref: '#/components/schemas/QueueId'
- type: 'null'
Extension:
description: The extension of an agent user.
type: string
example: '1001'
UiTheme:
type: string
enum:
- light
- dark
example: light
AppTheme:
allOf:
- $ref: '#/components/schemas/UiTheme'
description: Application theme preference
ConsoleTheme:
allOf:
- $ref: '#/components/schemas/UiTheme'
description: Console theme preference
EnableWebHID:
type: boolean
description: Whether WebHID is enabled for the user
EnableErrorTones:
type: boolean
description: Whether error tones are enabled.
AllowInternalCalls:
type: boolean
description: Whether the user or profile can make internal calls
AllowAgentEditAutoAnswer:
type: boolean
description: Controls whether the agent is allowed to edit their own Auto Answer Interactions setting (attributes.webRTC.autoAnswer.interaction)
via the Edit Profile API. Defaults to false (agent cannot edit). When false and an agent attempts a self-edit that
includes an Auto Answer change, the server returns HTTP 403 Forbidden. Administrators can always modify Auto Answer
for any user regardless of this flag.
default: false
AllowAgentEditWebHIDHeadsetControl:
type: boolean
description: Controls whether the agent is allowed to edit their own WebHID Headset Control setting (attributes.webHID.status)
via the Edit Profile API. Defaults to false (agent cannot edit). When false and an agent attempts a self-edit that
includes a WebHID status change, the server returns HTTP 403 Forbidden. Administrators can always modify WebHID settings
for any user regardless of this flag.
default: false
PublicAlias:
description: The public alias of a user. Supports letters (including international characters), digits, spaces, hyphens,
and apostrophes.
type: string
minLength: 2
maxLength: 100
pattern: ^[\p{L}0-9 '\-]*$
example: John Smith
NamePrefix:
description: The name prefix of a user.
type: string
NameSuffix:
description: The name suffix of a user.
type: string
enum:
- Jr
- Sr
- I
- II
- III
- IV
- V
- CLU
- CO
- CPA
- DDS
- ESQ
- MD
- PhD
- RN
DefinedInteractionViews:
type: array
description: List of defined interaction views
items:
type: string
ModifyInteractionViews:
type: boolean
description: Can modify interaction views
example: true
RejectInteractions:
type: boolean
IsDigitalEnabled:
type: boolean
IsVoiceEnabled:
type: boolean
PreviewOutbound:
type: boolean
CrmConfigId:
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
minLength: 36
maxLength: 36
PersonalQueueId:
description: The user's personal queue ID.
allOf:
- $ref: '#/components/schemas/QueueId'
SendLogsToEdify:
description: Whether to send logs to Edify.
type: boolean
Pagination:
description: Pagination metadata
type: object
required:
- pageNumber
- pageSize
- total
properties:
pageNumber:
description: The current page number
type: integer
minimum: 1
readOnly: true
example: 1
pageSize:
description: The maximum number of items per page
type: integer
minimum: 1
readOnly: true
example: 10
total:
description: The total number of items
type: integer
minimum: 0
readOnly: true
example: 2
Links:
description: Pagination navigation links
type: object
required:
- prev
- next
properties:
prev:
description: URL of the previous page. Blank if currently on the first page.
type: string
readOnly: true
example: ''
next:
description: URL of the next page. Blank if currently on the last page.
type: string
readOnly: true
example: ''
FirstName:
description: The first name of a user.
type: string
minLength: 2
maxLength: 255
pattern: ^[^<>\^@#]*$
example: John
LastName:
description: The last name of a user.
type: string
minLength: 2
maxLength: 255
pattern: ^[^<>\^@#]*$
example: Smith
UserTitle:
description: The user's job title.
type: string
minLength: 1
maxLength: 510
example: Supervisor
TemporaryPassword:
type: string
example: Aghtat2343$
pattern: ^(?=.{8,}$)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?\W).*$
maxLength: 255
description: Initial password for the user
AuthProvider:
type: string
description: Which provider is used to authenticate the user.
enum:
- keycloak
- saml
- local
ScimExternalId:
type: string
MobilePhoneNumber:
type: string
description: Mobile phone number - accepts E.164 format (+[country code][number]) or plain digits. Length 5-15 characters/digits.
pattern: ^(\+[1-9]\d{3,13}|\d{5,15})$
minLength: 5
maxLength: 15
examples:
- 16479308804
- 6479308804
- 1234
- 12345
FwNumber:
type: string
pattern: ^[\d+\s().-]*$
CallerID:
type: string
minLength: 10
DefaultOutboundCallerId:
type: string
minLength: 10
BillingLocationId:
type: string
TimeZone:
type: string
description: User's timezone preference (IANA timezone)
maxLength: 64
example: America/New_York
InteractionViewsType:
type: string
description: Type of interaction views to display
enum:
- all
- defined
- standard
default: all
example: all
CommTypeChangeDefaultValue:
type: string
description: Default value for communication type changes
enum:
- callback
- closeResolved
- closeUnresolved
example: callback
Attributes:
type: object
description: Attributes of the user or profile.
properties:
time:
type: object
properties:
tz:
$ref: '#/components/schemas/TimeZone'
taskSpaces:
type: integer
example: 3
emailSpaces:
type: integer
example: 3
phoneSpaces:
type: integer
example: 1
videoSpaces:
type: integer
example: 0
messagingSpaces:
type: integer
example: 3
sessionStats:
type: object
description: Session statistics configuration (obsolete but kept for backward compatibility)
properties:
enabled:
type: boolean
frequencyScalar:
type: integer
example: 5
frequencyUnit:
type: string
example: minutes
stats:
type: object
additionalProperties:
type: boolean
pingHosts:
type: array
items:
type: string
example:
- test.edify.cx
Permissions:
type: object
description: The permissions for a user or profile.
properties:
app:
type: object
console:
type: object
example:
app:
agent:
read: false
portal:
app-web: false
homeList:
read: false
queueList:
read: false
queueToggling:
read: false
console:
cx:
read: true
ml:
read: true
portal:
console-web: true
queues:
read: true
account:
read: true
numbers:
read: true
integrations:
read: false
Spaces:
type: object
description: Space configuration for a user or profile.
properties:
task:
type: array
items:
type: string
email:
type: array
items:
type: string
phone:
type: array
items:
type: string
video:
type: array
items:
type: string
messaging:
type: array
items:
type: string
GroupId:
description: Unique identifier for a group.
type: string
pattern: ^007[0-9a-f]{23}$
example: 007a1b2c3d4e5f67890abcdef12
Groups:
type: array
description: Array of group identifiers that the user or profile belongs to. Each string is a groupId from the groups
table (Edify-style IDs with 007 prefix).
items:
$ref: '#/components/schemas/GroupId'
example:
- 007d01090301ad8db0f0d4c370
- 007d01090301ad8db0f0d4c371
IsEliteVoiceEnabled:
type: boolean
EliteSbcGroupId:
description: The ID of the default SBC Group to use for calls involving this hybrid agent.
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
minLength: 36
maxLength: 36
EliteAgentId:
description: The hybrid agent's ID on Aura.
type: string
minLength: 1
EliteAgentIdPassword:
description: The password for the hybrid agent on Aura.
type: string
EliteCommunicationProfilePassword:
description: The password for the communication profile on Aura.
type: string
EliteCommunicationProfilePasswordHash:
description: Hash of communication profile password.
type: string
minLength: 32
maxLength: 32
pattern: ^[0-9a-f]{32}$
EliteSipAddress:
description: The SIP address for the hybrid agent.
type: string
format: email
EliteExtension:
description: The hybrid agent's extension on Aura.
type: string
minLength: 1
EliteExtensionPassword:
type: string
EliteSipType:
type: string
enum:
- UDP
- TCP
- TLS
EliteCmConfigurationId:
description: The ID of the Elite CM Configuration associated with this user
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
minLength: 36
maxLength: 36
DirectoryAble:
type: boolean
AIDableField:
type: boolean
ReportsTo:
type: string
DialPlanProfileId:
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
minLength: 36
maxLength: 36
description: ID of the dial plan profile to use
PhoneSpaces:
type: integer
minimum: 0
LogConfiguration:
type: object
description: 'Log configuration settings for controlling logging behavior.
Used to configure client-side logging for users and profiles.
'
properties:
logLevel:
type: string
enum:
- ERROR
- WARN
- INFO
- DEBUG
- TRACE
description: The minimum log level to capture
example: INFO
remoteLoggingEnabled:
type: boolean
description: Whether to send logs to the remote logging service
example: true
sampleRate:
type: number
minimum: 0
maximum: 1
description: Sampling rate for logs (0 to 1, where 1 means log everything)
example: 0.5
modules:
type: array
items:
type: string
description: List of module names to enable logging for
example:
- auth
- api
- websocket
ApiRequestKey:
description: Unique identifier for tracing the handling of an API request.
type: string
pattern: ^012[0-9a-f]{23}$
example: 012d010908d4c2bdcc95a5f63c
EmailSpaces:
type: integer
minimum: 0
TaskSpaces:
type: integer
minimum: 0
MessagingSpaces:
type: integer
minimum: 0
VideoSpaces:
type: integer
minimum: 0
RouteTo:
description: Route-to configuration for the user.
type: string
UserRouteTo:
description: User-level route-to setting (e.g., 'endpoints').
type: string
QueueRouteTo:
description: Queue-level route-to setting.
type: string
Voicemail:
description: Voicemail configuration object.
type: object
additionalProperties: true
AidStatusTypeOverride:
description: Whether the user has an AID status type override.
type: boolean
SipTrunkId:
description: SIP trunk ID.
type: string
SipTranslation:
description: SIP translation setting.
type: string
Tabs:
description: User-configured UI tabs.
type: array
items:
type: object
additionalProperties: true
DefaultTab:
description: The user's default tab.
type: string
UcPhoneSpaces-2:
description: Number of UC phone interaction spaces.
type: integer
minimum: 0
E911Recommendations:
description: E911 recommendation setting.
type: string
HasEliteAgentIdPassword:
description: Whether the user has an Elite agent ID password set.
type: boolean
HasEliteCommunicationProfilePassword:
description: Whether the user has an Elite communication profile password set.
type: boolean
HasEliteExtensionPassword:
description: Whether the user has an Elite extension password set.
type: boolean
IsEliteAutoSyncEnabled:
description: Whether Elite auto-sync is enabled for this user.
type: boolean
UseUCPhoneSpaceOnCCCall-2:
description: Use UC phone space for CC calls.
type: boolean
UseCCPhoneSpaceOnUCCall-2:
description: Use CC phone space for UC calls.
type: boolean
Uc3Endpoint:
description: UC3 endpoint session information.
type: object
properties:
id:
type: string
sessionToken:
type: string
sessionId:
type: string
UserAID:
description: Auto Interaction Distribution (AID) state for the user.
type: object
properties:
isAID:
type:
- string
- boolean
spaces:
$ref: '#/components/schemas/Spaces'
limits:
type: object
additionalProperties:
type: integer
lastSelected:
type:
- string
- 'null'
lastEndedInteractionTime:
type: string
UserAccountStatus:
description: Is the user enabled or disabled?
type: string
enum:
- enabled
- disabled
JobId:
description: Unique ID for a bulk user operation job.
type: string
format: uuid
example: c8c2909d-75e9-484a-94c0-b7e8d30771fe
BulkOperationResponse:
description: Response for a bulk user operation request having been accepted.
type: object
required:
- jobId
- url
properties:
jobId:
allOf:
- $ref: '#/components/schemas/JobId'
readOnly: true
url:
description: URL to get details of the bulk user operation job.
type: string
example: /api/config/v1/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe
readOnly: true
title: BulkOperationResponse
BulkExportOperationResponse:
description: Response for a bulk export users operation request having been accepted.
type: object
required:
- jobId
- url
- downloadUrl
properties:
jobId:
allOf:
- $ref: '#/components/schemas/JobId'
readOnly: true
url:
description: URL to get details of the bulk user operation job.
type: string
example: /api/config/v1/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe
readOnly: true
downloadUrl:
description: URL to download the exported users archive from, once the job has completed.
type: string
example: /api/config/v1/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe/exported-users
readOnly: true
title: BulkExportOperationResponse
examples:
GetUserDetailSuccess:
description: Successful user retrieval
value:
userId: 002d011003cf7c9d1b469ddc7e
email: hitenagent@avaya113.com
firstName: Hiten
lastName: Agent
fullName: Hiten Agent
licType: omniChannelAgentEnhanced
status: enabled
createdOn: '2025-09-08T14:36:49Z'
lastUpdated: '2025-09-08T14:38:10Z'
tags: []
attributes: {}
permissions: {}
ErrorUserEmailExists:
description: Constraint Violation
value:
type: https://developers.avayacloud.com/avaya-infinity/docs/user-management#error-reference
title: Conflict
status: 409
detail: A resource with the same unique constraint values already exists.
violations:
- field: email
message: A user with this email already exists
ErrorUnprocessableEntity:
description: Validation failed
value:
type: https://developers.avayacloud.com/avaya-infinity/docs/user-management#error-reference
title: Validation failed
status: 422
detail: A problem that indicates a syntactically correct, yet semantically illegal request. The Server can not process
this request until the client resolves the semantic errors described in the violations section.
violations:
message: Invalid email format.
code: 20008