openapi: 3.0.2 x-explorer-enabled: false x-samples-languages: - curl - node - java - javascript - python - go info: title: Admin - User description: "The User APIs are use to create, update and retrieve information about User and Profiles.\n\nThe Bulk User\ \ APIs are use to perform operations on users and jobs in bulk.\nUser Services support add, update, delete users in bulk\ \ and delete multiple jobs.\n\nUser Services will support multiple ways to provision Users/Agents\n 1. Programmatic Interface\ \ (Rest APIs)\n 2. User Interface\n" contact: name: Avaya API Team url: https://developers.avayacloud.com/onecloud-ccaas email: apiteam@avaya.com license: name: Avaya Software Development Kit (SDK) Software License Terms url: http://support.avaya.com/css/P8/documents/101038288 version: 1.0.2 security: - {} - BearerAuth: [] AppKey: [] servers: - url: '{protocol}://{server}:{port}{basePath}' description: Open API variables: protocol: enum: - https default: https server: default: HOST-REGION.api.avayacloud.com port: enum: - '443' default: '443' basePath: default: /api/admin/user/v1 tags: - name: Audit Records description: 'Search or export audit records for auditable objects. ' - name: Bulk Job description: 'Bulk operations related to the Jobs responsible for creating users. ' - name: Bulk User description: 'Bulk operations related to Users, Add, Update, Delete, Export. ' - name: Profile description: 'A Profile is a grouping of individual features which are provisioned with pre-defined values that can be applied to a User. ' - name: Resource Partition description: "Resource Partitions are grouping of any resources like CLID which are used while making outgoing communication.\ \ \nThese resource partitions ultimately assigned to the user. This will help to provide access of specific resources\ \ to the user.\n" - name: User description: 'Represents a user in the system. A user can be an Agent, Supervisor or an Administrator. ' - name: User Password Policy description: 'Represents the set of rules to be followed for the user passwords. ' - name: UX Profile description: 'A UX Profile represents a layout that can be applied to a user when using Avaya Workspaces. ' - name: Workspaces description: 'Workspaces is a web-based application that provides a unified agent desktop. This API return the URL details. ' paths: /accounts/{accountId}/audit-records:search: post: tags: - Audit Records summary: Search Audit Records description: '**This API requires the Account Administrator role.** Searches the audit records based on the supplied filter. The value of **searchKeyword** can be used to perform a text search across all fields within an audit record (excluding date). ' operationId: searchAuditRecords parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 5, max value is 50. ' required: false schema: type: integer format: int32 example: 5 default: 5 minimum: 5 maximum: 50 - name: orderBy in: query description: 'Field name on which sorting needs to be performed. The possible fields you ordered on are **date (date of audit record)** and **author**. Field Names are case-sensitive (should be written as it is in description). The default sorting order is ascending. To specify descending order, a suffix " desc" should be added. For example, "date asc" for ascending or "date desc" for descending". ' required: false schema: type: string minLength: 4 maxLength: 23 example: date desc requestBody: content: application/json: schema: $ref: '#/components/schemas/AuditSearchFilter' examples: Search-Audit-Records: $ref: '#/components/examples/SearchAuditRecordsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuditRecords' examples: Search-Audit-Records: $ref: '#/components/examples/SearchAuditRecordsResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/audit-records:export: post: tags: - Audit Records summary: Export Audit Records description: '**This API requires the Account Administrator role.** Exports the audit records within the date-time range in CSV format. A maximum of 1000 records can be exported for a given date-time range per request. If the number of records within a date-time range exceeds the maximum then this API will return a _HTTP 400 Bad Request_. This response will contain: * A human readable message explaining the issue. * A unique error code that a client can use to identify the issue. ' operationId: exportAuditRecords parameters: - $ref: '#/components/parameters/accountId' - name: orderBy in: query description: 'Field name on which sorting needs to be performed. The possible fields you ordered on are **date (date of audit record)** and **author**. Field Names are case-sensitive (should be written as it is in description). The default sorting order is ascending. To specify descending order, a suffix " desc" should be added. For example, "date asc" for ascending or "date desc" for descending". ' required: false schema: type: string minLength: 4 maxLength: 23 example: date desc requestBody: content: application/json: schema: $ref: '#/components/schemas/AuditSearchFilter' examples: Export-Audit-Records: $ref: '#/components/examples/SearchAuditRecordsRequest' responses: '200': description: OK content: text/csv: schema: type: string format: binary example: 'Account Id,Date,Event,Author,IP Address,Type,Audit Data ABCDEF,2021-11-14T09:24:05.234Z,CREATED,jsmith@example.com,165.225.72.60,PROFILE,"{""profileId"":""W6D1JQ"",""profileName"":""Advanced"",""description"":""Aprofilewithallthefeatures"",""uxProfileId"":""6f482dcd-54a9-445f-ba6d-8ca5ebd5261a"",""roles"":[""Agent""],""memberOfGroups"":[""04703a3a-3dfb-4606-ae79-fd0fe0be3e64""]}" ' '400': description: BadRequest content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: Too-many-records: $ref: '#/components/examples/ErrorTooManyRecords' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/resource-partitions: get: tags: - Resource Partition summary: List Resource Partitions description: '**This API requires the Account Administrator role.** Lists all of the resource partitions for an account. ' operationId: listResourcePartitions parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. Any value like 10, 20, 30 .. is allowed. Values that exceed the maximum will result in a 400 Bad Request being returned. ' required: false schema: type: integer format: int32 example: 10 default: 10 minimum: 10 maximum: 50 - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields that can be filtered on are:\n * name\n\n\ The allowed format:\n - Begins with the column name to be filtered, followed by a colon, (This will be used as\ \ a Contains operator.) then:\n - Either an exact string to match, or\n - A string expression including the\ \ * wildcard character.\n - :{PREFIX}* will be used to find out word start with.\n - :*{POSTFIX} will\ \ be used to find out word end with\n - : will be used to match exact word\n - Begin with column name to be\ \ filtered, followed by a = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: name=Sales prefix: description: Example of filtering based on a prefix string. value: name:Sales* postfix: description: Example of filtering based on a postfix string. value: name:*Sales - name: orderBy in: query required: false description: "Field name on which ordering needs to be performed. The default order is ascending.\n\nThe possible\ \ fields that can be ordered on are:\n * name\n\nField Names are case-sensitive (should be written as it is in\ \ description)\n" schema: type: string maxLength: 255 examples: ascending: value: name descending: value: name desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePartitionsPage' examples: ResourcePartitionsPage: $ref: '#/components/examples/ResourcePartitionsPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - Resource Partition summary: Create Resource Partition description: "**This API requires the Account Administrator role.**\n\nCreates an resource partition. Resource Partition\ \ can be created with one or more type.\nThe following fields must be unique otherwise a `HTTP 409 Conflcit` will\ \ be returned:\n * `name`\n" operationId: createResourcePartition parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourcePartition' examples: ResourcePartition: $ref: '#/components/examples/ResourcePartitionWrite' description: Resource Partition required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePartition' examples: ResourcePartition: $ref: '#/components/examples/ResourcePartitionRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ResourcePartitionNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/resource-partitions/{resourcePartitionId}: get: tags: - Resource Partition summary: Get Resource Partition description: '**This API requires the Account Administrator role.** Gets an resource partition. ' operationId: getResourcePartition parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/resourcePartitionId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePartition' examples: ResourcePartition: $ref: '#/components/examples/ResourcePartitionRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - Resource Partition summary: Update Resource Partition description: "**This API requires the Account Administrator role.**\n\nUpdates an resource partition.\n\nThe following\ \ fields must be unique otherwise a `HTTP 409 Conflcit` will be returned:\n * `name`\n\nThis operation will clear\ \ the value stored for any fields not present in the request.\nFor example, to remove a feature such as `voice` from\ \ a user you should omit the\n`voice` field in the request. The same behavior applies to every field in the request.\n" operationId: updateResourcePartition parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/resourcePartitionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourcePartition' examples: ResourcePartition: $ref: '#/components/examples/ResourcePartitionWrite' description: Resource Partition required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePartition' examples: ResourcePartition: $ref: '#/components/examples/ResourcePartitionRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ResourcePartitionNameExists' '500': $ref: '#/components/responses/InternalServer' delete: tags: - Resource Partition summary: Delete Resource Partition description: '**This API requires the Account Administrator role.** Deletes a Resource partition. ' operationId: deleteResourcePartition parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/resourcePartitionId' responses: '204': description: No Content '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/resource-partitions/{resourceType}/{resourceId}: delete: tags: - Resource Partition summary: Delete Resource Id description: 'Deletes a resource Id ' operationId: deleteResourceId parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/resourceType' - $ref: '#/components/parameters/resourceId' responses: '204': description: No Content '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/profiles: get: tags: - Profile summary: List Profiles description: '**This API requires the Account Administrator role.** Lists all of the profiles for an account. ' operationId: listProfiles parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. Any value like 5, 10, 15, 20, 25, 30 is allowed. Values that exceed the maximum will result in a 400 Bad Request being returned. ' required: false schema: type: integer format: int32 example: 5 default: 10 minimum: 5 maximum: 50 - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields that can be filtered on are:\n * profileName\n\ \nThe allowed format:\n - Begins with the column name to be filtered, followed by a colon, (This will be used as\ \ a Contains operator.) then:\n - Either an exact string to match, or\n - A string expression including the\ \ * wildcard character.\n - :{PREFIX}* will be used to find out word start with.\n - :*{POSTFIX} will\ \ be used to find out word end with\n - : will be used to match exact word\n - Begin with column name to be\ \ filtered, followed by a = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: profileName=Sales prefix: description: Example of filtering based on a prefix string. value: profileName:Sales* postfix: description: Example of filtering based on a postfix string. value: profileName:*Sales - name: orderBy in: query required: false description: "Field name on which ordering needs to be performed. The default order is ascending.\n\nThe possible\ \ fields that can be ordered on are:\n * profileName\n\nField Names are case-sensitive (should be written as it\ \ is in description).\n\nTo specify descending order, a suffix \" desc\" should be added. For example, \"profileName\"\ \ for ascending or \"profileName desc\" for descending\".\n" schema: type: string maxLength: 255 examples: ascending: value: profileName descending: value: profileName desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProfilePage' examples: Profile-Page: $ref: '#/components/examples/ProfilePage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - Profile summary: Create Profile description: "**This API requires the Account Administrator role.**\n\nCreates a profile. Profiles can be created with\ \ single or multiple features.\n\nThe following fields must be unique otherwise a `HTTP 409 Conflcit` will be returned:\n\ \ * `profileName`\n\nChanges to the fields:\n * `features`\n\nWill trigger asynchronous updates, the status of which\ \ should be monitored via `/profiles:listStatuses`.\n" operationId: createProfile parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Profile' examples: Profile: $ref: '#/components/examples/ProfileWrite' description: Profile required: true responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Profile' examples: Profile: $ref: '#/components/examples/ProfileRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ProfileNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/profiles/{profileId}: put: tags: - Profile summary: Update Profile description: "**This API requires the Account Administrator role.**\n\nUpdates a profile.\n\nThe following fields must\ \ be unique otherwise a `HTTP 409 Conflcit` will be returned:\n * `profileName`\n\nThis operation will clear the\ \ value stored for any fields not present in the request.\nFor example, to remove a feature such as `voice` from a\ \ user you should omit the\n`voice` field in the request. The same behavior applies to every field in the request.\n\ \nChanges to the fields:\n * `features`\n\nWill trigger asynchronous updates, the status of which should be monitored\ \ via `/profiles:listStatuses`.\n" operationId: updateProfile parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/profileId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Profile' examples: Profile: $ref: '#/components/examples/ProfileWrite' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Profile' examples: Profile: $ref: '#/components/examples/ProfileRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/ProfileNameExists' '500': $ref: '#/components/responses/InternalServer' get: tags: - Profile summary: Get Profile description: '**This API requires the Account Administrator role.** Gets a profile. ' operationId: getProfile parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/profileId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Profile' examples: Profile: $ref: '#/components/examples/ProfileRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' delete: tags: - Profile summary: Delete Profile description: '**This API requires the Account Administrator role.** Deletes a profile. ' operationId: deleteProfile parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/profileId' responses: '204': description: No Content '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/profiles:listStatuses: post: tags: - Profile summary: List Profile Statuses description: '**This API requires the Account Administrator role.** Lists the current statuses for the given profiles. ' operationId: listProfileStatuses parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProfileIdList' examples: Request-Profile-Statuses: $ref: '#/components/examples/ProfileStatusesRequest' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ProfileStatusResponse' examples: Profile-Statuses: $ref: '#/components/examples/ProfileStatuses' Failed-Profile-Statuses: $ref: '#/components/examples/FailedProfileStatuses' InProgress-Profile-Statuses: $ref: '#/components/examples/InProgressProfileStatuses' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/ux-profiles: get: tags: - UX Profile summary: List UX Profiles description: "**This API requires the Account Administrator role.**\n\nLists all of the UX Profiles for an account.\n\ \nUX Profiles are administered in the Avaya Experience Platform™ Administration application under:\n * Administration\ \ -> Workspaces -> UX Profiles\n" operationId: listUXProfiles parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/UXProfile' examples: UX-Profiles: $ref: '#/components/examples/UXProfiles' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users: get: tags: - User summary: List Users description: '**This API requires the Account Administrator role.** Lists all of the users for an account. ' operationId: listUsers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. ' required: false schema: type: integer format: int32 example: 5 default: 10 minimum: 5 maximum: 50 - name: filter in: query required: false description: "Specifies details of a row filter.\n\n The possible fields that can be filtered on are:\n * loginId\n\ \ * lastName\n * firstName\n * emailId\n * organizationNodeId\n * profileId\n\nThe allowed format:\n - Begins\ \ with the column name to be filtered, followed by a colon, then:\n - Either an exact string to match, or\n \ \ - A string expression including the * wildcard character\n - :{PREFIX}* will be used to find out word start\ \ with.\n - :*{POSTFIX} will be used to find out word end with\n - : will be used to match exact word\n\ \ - Begin with column name to be filtered, followed by a = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: lastName=Stevens prefix: description: Example of filtering based on a prefix string. value: lastName:Stevens* postfix: description: Example of filtering based on a postfix string. value: lastName:*Stevens - name: orderBy in: query required: false description: 'Field name on which ordering needs to be performed. The default order is ascending. The possible fields that can be ordered on are: * loginId * lastName * firstName * emailId * organizationNodeId Field Names are case-sensitive (should be written as it is in description). To specify descending order, a suffix " desc" should be added. For example, "firstName" for ascending or "firstName desc" for descending". ' schema: type: string maxLength: 255 examples: ascending: value: firstName descending: value: fistName desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserPage' examples: User-Page: $ref: '#/components/examples/UserPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' post: tags: - User summary: Create User description: "**This API requires the Account Administrator role.**\n\nCreates a user.\n\nThe following fields must\ \ be unique otherwise a `HTTP 409 Conflcit` will be returned:\n * `loginId`\n * `emailId`\n\nWhen creating a user\ \ with a `profileId`, the field values in the user request will override any that are\nalso defined in the profile.\ \ For example, if the profile contains configuration for `features` and the user\nrequest also contains `features`,\ \ the `features` defined in the user request will override those from the profile.\n\nChanges to the fields:\n *\ \ `roles`\n * `features`\n\nWill trigger asynchronous updates, the status of which should be monitored via `/users:listStatuses`.\n" operationId: createUser parameters: - $ref: '#/components/parameters/accountId' requestBody: description: Create user with provided details including profileId and features required: true content: application/json: schema: $ref: '#/components/schemas/User' examples: Basic-User: $ref: '#/components/examples/BasicUserInput' Basic-User-with-roles-and-groups: $ref: '#/components/examples/BasicUserWithRolesAndGroupsInput' User-with-profile-features: $ref: '#/components/examples/UserWithFeaturesfromProfile' User-with-profile-and-features: $ref: '#/components/examples/UserWithProfileFeatures' User-with-all-fields: $ref: '#/components/examples/UserWithAllFields' User-with-profile-and-features-without-provider: $ref: '#/components/examples/UserWithProfileFeatureswithoutchannelProvider' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/User' examples: User: $ref: '#/components/examples/UserResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/UserConflict' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}: put: tags: - User summary: Update User description: "**This API requires the Account Administrator role.**\n\nUpdates a user.\n\nThe following fields must\ \ be unique otherwise a `HTTP 409 Conflcit` will be returned:\n * `userId`\n * `emailId`\n\nThis operation will\ \ clear the value stored for any fields not present in the request.\nFor example, to remove a feature such as `voice`\ \ from a user you should omit the\n`voice` field in the request. The same behavior applies to every field in the request.\n\ \nWhen updating a user with a `profileId`, the field values in the user request will override any that are\nalso defined\ \ in the profile. For example, if the profile contains configuration for `features` and the user\nrequest also contains\ \ `features`, the `features` defined in the user request will override those from the profile.\n\nChanges to the fields:\n\ \ * `roles`\n * `features`\n\nWill trigger asynchronous updates, the status of which should be monitored via `/users:listStatuses`.\n" operationId: updateUser parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' requestBody: description: User required: true content: application/json: schema: $ref: '#/components/schemas/User' examples: User-with-all-fields: $ref: '#/components/examples/UserUpdateWithAllFields' User-update-address-and-add-new-address: $ref: '#/components/examples/UserUpdateNewAddress' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/User' examples: User: $ref: '#/components/examples/UserResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/UserConflict' '500': $ref: '#/components/responses/InternalServer' get: tags: - User summary: Get User description: '**This API requires the Account Administrator role.** Gets a user. ' operationId: getUser parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/User' examples: User: $ref: '#/components/examples/UserResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' delete: tags: - User summary: Delete User description: '**This API requires the Account Administrator role.** Deletes a user. ' operationId: deleteUser parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' responses: '204': description: No Content '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:search: post: tags: - User summary: Search Users description: '**This API requires the Account Administrator role.** Searches the user list based on criteria provided. This data includes basic details of each user and available features including current status for features operation progress. ' operationId: searchUsers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. ' required: false schema: type: integer format: int32 example: 5 default: 10 minimum: 5 maximum: 500 requestBody: description: The possible fields you can filter and order are userId,loginId,lastName,firstName,emailId,organizationNodeId,profileId content: application/json: schema: $ref: '#/components/schemas/SearchFilterCriteria' examples: FirstName-start-with-search: $ref: '#/components/examples/FirstNameStartWithInput' FirstName-start-with-AND-lastName-ends-with-search: $ref: '#/components/examples/FirstNameStartWithANDLastNameEndsWithInput' FirstName-contains-search: $ref: '#/components/examples/FirstNameContainsInput' EmailId-equals-search: $ref: '#/components/examples/EmailIdEqualsInput' LastName-not-equal-search: $ref: '#/components/examples/LastNameNotEqualsInput' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserPage' examples: User-Page: $ref: '#/components/examples/UserSearchPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:listStatuses: post: tags: - User summary: List User Statuses description: '**This API requires the Account Administrator role.** Lists the current statuses for the given users. ' operationId: listUserStatuses parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UserIdList' examples: Request-User-Statuses: $ref: '#/components/examples/UserStatusesRequest' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/UserStatusResponse' examples: User-Statuses: $ref: '#/components/examples/UserStatuses' Failed-User-Statuses: $ref: '#/components/examples/FailedUserStatuses' InProgress-User-Statuses: $ref: '#/components/examples/InProgressUserStatuses' PendingUpdate-User-Statuses: $ref: '#/components/examples/PendingUpdateUserStatuses' PendingDelete-User-Statuses: $ref: '#/components/examples/PendingDeleteUserStatuses' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}/resource-partitions: get: tags: - User summary: List Resource Partitions description: "**This API requires the Account Administrator role.**\n\n Lists all of the resource partitions for a\ \ user.\n" operationId: listResourcePartitionsByUserId parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. Any value like 10, 20, 30 .. is allowed. Values that exceed the maximum will result in a 400 Bad Request being returned. ' required: false schema: type: integer format: int32 example: 10 default: 10 minimum: 5 maximum: 50 - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields that can be filtered on are:\n * name\n\n\ The allowed format:\n - Begins with the column name to be filtered, followed by a colon, (This will be used as\ \ a Contains operator.) then:\n - Either an exact string to match, or\n - A string expression including the\ \ * wildcard character.\n - :{PREFIX}* will be used to find out word start with.\n - :*{POSTFIX} will\ \ be used to find out word end with\n - : will be used to match exact word\n - Begin with column name to be\ \ filtered, followed by a = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: name=Sales Resource Partition prefix: description: Example of filtering based on a prefix string. value: name:Sales* postfix: description: Example of filtering based on a postfix string. value: name:*Sales - name: orderBy in: query required: false description: "Field name on which ordering needs to be performed. The default order is ascending.\n\nThe possible\ \ fields that can be ordered on are:\n * name\n\nField Names are case-sensitive (should be written as it is in\ \ description).\n\nTo specify descending order, a suffix \" desc\" should be added. For example, \"name\" for ascending\ \ or \"name desc\" for descending\".\n" schema: type: string maxLength: 255 examples: ascending: value: name descending: value: name desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserResourcePartitionsPage' examples: ResourcePartitionsPage: $ref: '#/components/examples/UserResourcePartitionsPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}/resource-partitions/updateDefaultResource: post: tags: - User summary: Set Default Resource of Resource Partition for User description: '**This API requires the Account Administrator role.** Sets the default resource Id of resource partition for a user. Specify resourcePartitionId and defaultResoureId in the request body. ' operationId: setDefaultResourceForUser parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/ResourcePartitionDefaultResource' examples: User-Resource-Partition-Default-Resource: $ref: '#/components/examples/ResourcePartitionDefaultResource' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ResourcePartitionDefaultResource' examples: User-Resource-Partition-Default-Resource: $ref: '#/components/examples/ResourcePartitionDefaultResource' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}/addresses: post: tags: - User summary: Create Address description: '**This API requires the Account Administrator role.** Creates an address for a user. ' operationId: createUserAddress parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' requestBody: description: User address payload content: application/json: schema: $ref: '#/components/schemas/Address' examples: Address: $ref: '#/components/examples/AddressWrite' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Address' examples: Address: $ref: '#/components/examples/AddressRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}/addresses/{addressId}: put: tags: - User summary: Update Address description: '**This API requires the Account Administrator role.** Updates an address of a user. This operation will clear the value stored for any fields not present in the request. ' operationId: updateUserAddress parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/addressId' requestBody: description: User address payload content: application/json: schema: $ref: '#/components/schemas/Address' examples: Address: $ref: '#/components/examples/AddressWrite' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Address' examples: Address: $ref: '#/components/examples/AddressRead' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users/{userId}/addresses/{addressId}:updateDefault: post: tags: - User summary: Update Default Address description: '**This API requires the Account Administrator role.** Updates a user''s default address to the address ID provided. Address IDs for both `addresses` and `accountAddresses` are accepted. Note, only 1 type of address can be the default at any one time. ' operationId: updateUserDefaultAddress parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/addressId' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Address' examples: Address: $ref: '#/components/examples/AddressDefault' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs: get: tags: - Bulk Job summary: List Jobs description: '**This API requires the Account Administrator role.** Lists all of the jobs for an account based on the criteria provided. ' operationId: listJobs parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. Any value like 5, 10, 15, 20, 25, 30 is allowed. Values that exceed the maximum will result in a 400 Bad Request being returned. ' required: false schema: type: integer format: int32 example: 5 default: 5 minimum: 5 maximum: 50 - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields that can be filtered on are:\n* name\n* operation\n\ * startTime\n* endTime\n\nThe allowed format:\n- Begins with the column name to be filtered, followed by a colon,\ \ then:\n - Either an exact string to match, or\n - A string expression including the * wildcard character\n \ \ - :{PREFIX}* will be used to find out word start with.\n - :*{POSTFIX} will be used to find out word\ \ end with\n - : will be used to match exact word\n - Begin with column name to be filtered, followed by a\ \ = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: name=AddUsers prefix: description: Example of filtering based on a prefix string. value: name:AddUsers* postfix: description: Example of filtering based on a postfix string. value: name:*AddUsers - name: orderBy in: query required: false description: 'Field name on which sorting needs to be performed. The default sorting order is startTime descending. The possible fields that can be ordered on are: * name * operation * startTime * endTime Field Names are case-sensitive (should be written as it is in description). To specify descending order, a suffix " desc" should be added. For example, "name" for ascending or "name desc" for descending". ' schema: type: string maxLength: 255 examples: ascending: value: name descending: value: name desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobImportDetailsPage' examples: User jobs: $ref: '#/components/examples/JobImportDetailsPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs/{jobId}: get: tags: - Bulk Job summary: Get Job description: '**This API requires the Account Administrator role.** Gets all the details of job along with the processed user count. ' operationId: getJob parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserImportJobStatus' examples: User import job: $ref: '#/components/examples/UserImportJobResponse' User import failed job: $ref: '#/components/examples/UserImportFailedJobResponse' User import aborted job: $ref: '#/components/examples/UserImportAbortedJobResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs/{jobId}/users: get: tags: - Bulk Job summary: List Users description: '**This API requires the Account Administrator role.** Lists the Users added, updated, or deleted by a job based on the criteria provided. This includes basic details of each user and current status. Default ordering is by `loginId`, unless specified otherwise via `orderBy`. ' operationId: listUsersByJob parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobId' - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: 'The max number of records to retrieve per page. Default value is 10. Any value like 5, 10, 15, 20, 25, 30 is allowed. Values that exceed the maximum will result in a 400 Bad Request being returned. ' required: false schema: type: integer format: int32 example: 5 default: 5 minimum: 5 maximum: 1000 - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields you can filter on are:\n* firstName\n* lastName\n\ * loginId\n* status\n\nThe allowed format:\n- Begins with the column name to be filtered, followed by a colon, then:\n\ \ - Either an exact string to match, or\n - A string expression including the * wildcard character\n - :{PREFIX}*\ \ will be used to find out word start with.\n - :*{POSTFIX} will be used to find out word end with\n -\ \ : will be used to match exact word\n - Begin with column name to be filtered, followed by a = operator. (this\ \ will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: firstName:VoiceUser* prefix: description: Example of filtering based on a prefix string. value: firstName:VoiceUser* postfix: description: Example of filtering based on a postfix string. value: firstName:VoiceUser* - name: orderBy in: query required: false description: 'Field name on which sorting needs to be performed. The default sorting order is ascending. The possible fields that can be ordered on are: * firstName * lastName * loginId Field Names are case-sensitive (should be written as it is in description). To specify descending order, a suffix " desc" should be added. For example, "firstName" for ascending or "firstName desc" for descending". ' schema: type: string maxLength: 255 examples: ascending: value: firstName descending: value: firstName desc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserDetailsPage' examples: User import details: $ref: '#/components/examples/UserDetailsPage' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs/{jobId}:stop: post: tags: - Bulk Job summary: Stop Job description: '**This API requires the Account Administrator role.** Stops the job as soon as possible. The job status will enter `ABORT_IN_PROGRESS` and finally `ABORTED`. Note, this **DOES NOT** rollback any modifications to Users that have already been processed. ' operationId: stopJob parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobId' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/JobStopResponse' examples: Job stop response: $ref: '#/components/examples/JobStopResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs:bulkDelete: post: tags: - Bulk Job summary: Bulk Delete Jobs description: '**This API requires the Account Administrator role.** Bulk deletes jobs using the IDs provided. Only jobs with the following `status` can be deleted: * `COMPLETED` * `FAILED` * `ABORTED` ' operationId: bulkDeleteJobs parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UserImportJobsId' examples: Job Ids to delete: $ref: '#/components/examples/UserJobsIdsToDelete' responses: '202': description: Accepted '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs/{jobId}:exportFailedUsers: get: tags: - Bulk Job summary: Export Failed Users description: '**This API requires the Account Administrator role.** Exports the list of failed Users from the bulk operation. The following file formats are supported: * `.xlsx` The `.xlsx` file will be contained within in a `.zip` archive. ' operationId: exportFailedUsers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobId' responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary example: 'Login Id, Account Hierarchy, Last Name, First Name, Password, Profile, Display Name, Roles, Email, Member Of, Owned Groups, Description username@default.com, Default, lastname, firstName, Avaya1234@, profileName,lastname firstname, [Agent],username@default.com, [group1], [group2], Password policy not met ' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/JobNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/jobs/{jobId}:downloadExportedUsers: get: tags: - Bulk Job summary: Download Exported Users description: '**This API requires the Account Administrator role.** Downloads the exported users in one or more `.xlsx` files contained within in a `.zip` archive. Each `.xlsx` file can contain up to 1,000 users. ' operationId: downloadExportedUsers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobId' responses: '200': description: OK content: application/zip: schema: type: string format: binary example: 'Login Id, Account Hierarchy, Last Name, First Name, Password, Profile, Display Name, Roles, Email, Member Of, Owned Groups username@default.com, Default, lastname, firstName, Avaya1234@, profileName,lastname firstname, [Agent],username@default.com, [group1], [group2] ' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users-bulk-template: get: tags: - Bulk User summary: Download Bulk Template description: '**This API requires the Account Administrator role.** Downloads the Bulk Operation Template as an `.xlsx` file. ' operationId: downloadBulkTemplate parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary example: 'Login Id, Account Hierarchy, Last Name, First Name, Display Name, Password, Profile, Roles, Email, Member Of, Owned Groups ' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:bulkAdd: post: tags: - Bulk User summary: Bulk Add Users description: '**This API requires the Account Administrator role.** 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/accountId' - $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/UsersImportResponse' examples: Add users: $ref: '#/components/examples/BulkAddedUsers' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/JobNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:bulkUpdate: post: tags: - Bulk User summary: Bulk Update Users description: '**This API requires the Account Administrator role.** Bulk updates 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: bulkUpdateUsers parameters: - $ref: '#/components/parameters/accountId' - $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/UsersImportResponse' examples: Bulk Update: $ref: '#/components/examples/BulkAddedUsers' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/JobNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:bulkDelete: post: tags: - Bulk User summary: Bulk Delete Users description: '**This API requires the Account Administrator role.** Bulk deletes 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: bulkDeleteUsers parameters: - $ref: '#/components/parameters/accountId' - $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/UsersImportResponse' examples: User delete: $ref: '#/components/examples/BulkAddedUsers' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/JobNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/users:bulkExport: post: tags: - Bulk User summary: Bulk Export Users description: '**This API requires the Account Administrator role.** Bulk exports the list of users for an account based on the criteria provided. 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}`. Once the job has completed, the file can be downloaded using the API `/jobs/{jobId}:downloadExportedUsers`. ' operationId: bulkExportUsers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/jobName' - name: filter in: query required: false description: "Specifies details of a row filter.\n\nThe possible fields you can filter on are:\n* firstName\n* lastName\n\ \nThe allowed format:\n- Begins with the column name to be filtered, followed by a colon, (This will be used as\ \ Contains operator.) then:\n - Either an exact string to match, or\n - A string expression including the * wildcard\ \ character.\n - :{PREFIX}* will be used to find out word start with.\n - :*{POSTFIX} will be used to find\ \ out word end with\n - : will be used to match exact word\n- Begin with column name to be filtered, followed\ \ by a = operator. (this will be used to match exact string)\n" schema: type: string maxLength: 255 examples: exact: description: Example of filtering based on an exact string. value: firstName:VoiceUser* prefix: description: Example of filtering based on a prefix string. value: firstName:VoiceUser* postfix: description: Example of filtering based on a postfix string. value: firstName:VoiceUser* - name: orderBy in: query required: false description: 'Field name on which sorting needs to be performed. The default sorting order is ascending. The possible fields that can be ordered on are: * firstName * lastName * loginId Field Names are case-sensitive (should be written as it is in description). To specify descending order, a suffix " desc" should be added. For example, "loginId" for ascending or "loginId desc" for descending". ' schema: type: string maxLength: 255 examples: ascending: value: loginId descending: value: loginId desc responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/UsersExportResponse' examples: User Export: $ref: '#/components/examples/UsersExportResponse' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/JobNameExists' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/password-policy: get: tags: - User Password Policy summary: Get Password Policy description: '**This API requires the Account Administrator role.** Lists the Passwod Policy rules for an account. ' operationId: getPasswordPolicy parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PasswordPolicy' examples: PasswordPolicy: $ref: '#/components/examples/PasswordPolicyRule' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' put: tags: - User Password Policy summary: Update Password Policy description: '**This API requires the Account Administrator role.** Updates the Passwod Policy rules for an account. ' operationId: updatePasswordPolicy parameters: - $ref: '#/components/parameters/accountId' requestBody: description: Password policy rule payload content: application/json: schema: $ref: '#/components/schemas/PasswordPolicy' examples: PasswordPolicy: $ref: '#/components/examples/PasswordPolicyRule' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PasswordPolicy' examples: PasswordPolicy: $ref: '#/components/examples/PasswordPolicyRule' '400': $ref: '#/components/responses/ErrorConstraintViolation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' /accounts/{accountId}/workspaces: get: tags: - Workspaces summary: Get Workspaces details description: '**This API requires the Account Administrator role.** Returns the workspaces details for an account. ' operationId: getWorkspaces parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Workspaces' examples: Workspaces: $ref: '#/components/examples/WorkspacesResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServer' components: securitySchemes: BearerAuth: type: http scheme: bearer description: This API uses Bearer Token Authorization Flow bearerFormat: JWT AppKey: type: apiKey in: header name: appkey description: This API needs an appKey as header responses: ErrorConstraintViolation: description: Constraint Violation content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorConstraintViolation' Unauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorUnauthorized' InternalServer: description: Request processing failed content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorInternalServerError' Forbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorForbidden' NotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorNotFound' ProfileNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorProfileNameExists' ResourcePartitionNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorResourcePartitionNameExists' UserConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: loginId: $ref: '#/components/examples/ErrorUserLoginIdExists' emailId: $ref: '#/components/examples/ErrorUserEmailIdExists' JobNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorJobNameExists' schemas: UserFeatures: type: object description: Features enabled in user properties: matching: $ref: '#/components/schemas/MatchingUserFeature' chat: $ref: '#/components/schemas/ChatChannelUserFeature' messaging: $ref: '#/components/schemas/MessagingChannelUserFeature' email: $ref: '#/components/schemas/EmailChannelUserFeature' voice: $ref: '#/components/schemas/CloudSwitchVoiceUserFeature' cmvoice: $ref: '#/components/schemas/CMVoiceUserFeature' aci: $ref: '#/components/schemas/UserACIFeature' outbound: $ref: '#/components/schemas/UserOutboundFeature' recorder: $ref: '#/components/schemas/UserRecorderFeature' advancedcmvoice: $ref: '#/components/schemas/AdvancedCMVoiceUserFeature' User: type: object description: A User can be an Agent, Supervisor or an Administrator. required: - loginId - lastName - firstName - organizationNodeId properties: organizationNodeId: type: string example: EXMPLE minLength: 6 maxLength: 6 pattern: ^[a-zA-Z]{6}$ description: Unique Id for Account or Node where user get created userId: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe readOnly: true description: The unique 36 character internal id (uuid) that represents the user. minLength: 36 maxLength: 36 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}$ loginId: type: string example: stevens@avaya.com maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9+-_.]+(?:\.[a-zA-Z\p{L}0-9+-_.]+)*@(?:[a-zA-Z\p{L}0-9-]+\.)+[a-zA-Z\p{L}]{2,63}$ description: Login Id for User password: type: string example: Aghtat2343$ writeOnly: true pattern: ^(?=.{8,}$)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?\W).*$ maxLength: 255 description: Login credentials of User lastName: type: string example: Stevens minLength: 2 maxLength: 255 pattern: ^[^<>\^@#]*$ description: Last name of User firstName: type: string example: Alex minLength: 2 maxLength: 255 pattern: ^[^<>\^@#]*$ description: First name of User displayName: type: string example: Stevens, Alex minLength: 2 maxLength: 510 pattern: ^[^<>\^@#]*$ description: Display name of User emailId: type: string example: stevens@avaya.com minLength: 5 maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9]+[a-zA-Z\p{L}0-9+\-_.]+(?:\.[a-zA-Z\p{L}0-9+\-_.]+)*@(?:[a-zA-Z\p{L}0-9-]+\.)+[a-zA-Z\p{L}]{2,63}$ description: Email Id of User profileId: type: string example: FSADSJ minLength: 6 maxLength: 6 pattern: ^[a-zA-Z0-9\-\_\.\ ]+$ description: The unique 6 character internal id that represents the profile. memberOfGroups: type: array description: List of the groups of which the user is member of. maxItems: 50 items: description: The unique 36 character internal id (uuid) that represents the group. type: string minLength: 36 maxLength: 36 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}$ example: - c8c2909d-75e9-484a-94c0-b7e8d29771fe ownedGroups: type: array description: List of the groups owned by the user. maxItems: 50 items: description: The unique 36 character internal id (uuid) that represents the group. type: string minLength: 36 maxLength: 36 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}$ example: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 roles: type: array maxItems: 11 items: $ref: '#/components/schemas/Role' description: ' Roles assigned to user. See the list of [Available Roles](https://docs.kaizen.avaya.com/developer-guides/administration/manage-users/#available-roles). ' resourcePartitions: type: array maxItems: 10 description: List of the resource partitions assigned to the user items: description: The unique 36 character id (uuid) that represents the resource partition. type: string minLength: 36 maxLength: 36 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}$ example: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 addresses: type: array description: List of the address added by user maxItems: 5 items: $ref: '#/components/schemas/Address' accountAddresses: type: array maxItems: 4 description: List of the account addresses assigned to the user items: $ref: '#/components/schemas/AccountAddress' features: $ref: '#/components/schemas/UserFeatures' UserPage: description: Paginated User Data type: object properties: pagination: $ref: '#/components/schemas/Pagination' users: type: array items: $ref: '#/components/schemas/User' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/users?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/users?pageNumber=3&pageSize=10 Profile: description: Profile information type: object required: - profileName properties: profileId: type: string example: W6D1JQ readOnly: true minLength: 6 maxLength: 6 pattern: ^[a-zA-Z0-9\-\_\.\ ]+$ description: Unique Id for profile profileName: type: string example: Advanced minLength: 2 maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9]+([ ]*[a-zA-Z\p{L}0-9-\_\*\=\+\$\:\;\&\~\,\?\%\!\|\{\}\`\.\']+)*$ description: Name of profile description: type: string example: A profile with all the features minLength: 5 maxLength: 1024 description: Information about profile uxProfileId: type: string example: 6f482dcd-54a9-445f-ba6d-8ca5ebd5261a minLength: 36 maxLength: 36 description: The unique 36 character internal id (uuid) that represents the ux profile. url: type: string readOnly: true example: /api/admin/user/v1/accounts/ASDJGE/profiles/W6D1JQ description: Get profile link roles: type: array maxItems: 50 items: $ref: '#/components/schemas/Role' description: Role list applicable with profile memberOfGroups: type: array maxItems: 50 description: List of the groups of which the user is member of. items: description: The unique 36 character internal id (uuid) that represents the group. type: string minLength: 36 maxLength: 36 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}$ example: - c8c2909d-75e9-484a-94c0-b7e8d29771fe resourcePartitions: type: array maxItems: 10 description: List of the resource partitions assigned to the user items: description: The unique 36 character id (uuid) that represents the resource partition. type: string minLength: 36 maxLength: 36 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}$ example: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 resourcePartitionDefaultResources: type: array items: $ref: '#/components/schemas/ResourcePartitionDefaultResource' features: $ref: '#/components/schemas/ProfileFeatures' ProfileFeatures: description: Features present in profile type: object properties: matching: $ref: '#/components/schemas/MatchingProfileFeature' chat: $ref: '#/components/schemas/ChatChannelProfileFeature' messaging: $ref: '#/components/schemas/MessagingChannelProfileFeature' email: $ref: '#/components/schemas/EmailChannelProfileFeature' voice: $ref: '#/components/schemas/CloudSwitchVoiceProfileFeature' cmvoice: $ref: '#/components/schemas/CMVoiceProfileFeature' aci: $ref: '#/components/schemas/ACIProfileData' outbound: $ref: '#/components/schemas/OutboundProfileData' recorder: $ref: '#/components/schemas/RecorderProfileData' advancedcmvoice: $ref: '#/components/schemas/AdvancedCMVoiceProfileFeature' ProfilePage: description: Paginated Profile Data type: object properties: pagination: $ref: '#/components/schemas/Pagination' profiles: type: array items: $ref: '#/components/schemas/Profile' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/profiles?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/profiles?pageNumber=3&pageSize=10 Role: description: User Role type: string maxLength: 40 example: Agent CommunicationProfileAddress: description: Represents association of profile address with user. Communication profile is used to represent a subscription of the user to a communication subsystem and the specific configuration needs for the user. Communication profiles can be CM Endpoint, Session Manager profile. type: object required: - address - type properties: address: description: Represents the Communication Addresses based on type of communication type: string minLength: 6 maxLength: 255 pattern: ^[\+]?[\w-\.]+@([\w-]+\.)+[\w-]{2,63}$ example: 10001@SipDomain.com type: description: Represents type of the Communication Addresses type: string enum: - SIP - E164 example: SIP isDefault: description: Represents default Communication Addresses type: boolean default: false example: false ResourcePartitionsPage: description: Paginated resource partition Data type: object properties: pagination: $ref: '#/components/schemas/Pagination' resourcePartitions: type: array items: $ref: '#/components/schemas/ResourcePartition' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/resource-partitions?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/resource-partitions?pageNumber=3&pageSize=10 UserResourcePartitionsPage: description: Paginated resource partition Data type: object properties: pagination: $ref: '#/components/schemas/Pagination' resourcePartitions: type: array items: $ref: '#/components/schemas/UserResourcePartition' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe/resource-partitions?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe/resource-partitions?pageNumber=3&pageSize=10 UserResourcePartition: description: resource partition information type: object required: - name properties: id: type: string description: Unique Id of the resource partition readOnly: true example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ name: type: string example: Sales resource partition minLength: 2 maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9]+([ ]*[a-zA-Z\p{L}0-9-\_\*\=\+\$\:\;\&\~\,\?\%\!\|\{\}\`\.\']+)*$ description: Name of the resource partition description: type: string example: Sales resource partition with Caller ID minLength: 5 maxLength: 1024 description: Information about resource partition resources: type: array maxItems: 10 description: List of the different type of resources assigned to the resource partition items: $ref: '#/components/schemas/UserResourcePartitionResource' UserResourcePartitionResource: description: resource partition Resource information type: object properties: resourceIds: type: array maxItems: 10 description: List of the resources Id assigned to the resource partition items: description: 'The unique id that represents the resource Id. It could be any unique id like UUID/number. To get more details about resources based on type invoke following APIs CALLER_ID : /api/admin/voice/v1/accounts/{accountId}/phone-numbers/{resourceId}' type: string maxLength: 100 example: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 type: type: string enum: - CALLER_ID description: Information about Resource example: CALLER_ID defaultResourceId: type: string example: Default Resource Id minLength: 3 maxLength: 1024 description: Default Resource Id ResourcePartition: description: resource partition information type: object required: - name properties: id: type: string description: Unique Id of the resource partition readOnly: true example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ name: type: string example: Sales resource partition minLength: 2 maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9]+([ ]*[a-zA-Z\p{L}0-9-\_\*\=\+\$\:\;\&\~\,\?\%\!\|\{\}\`\.\']+)*$ description: Name of the resource partition description: type: string example: Sales resource partition with Caller ID minLength: 5 maxLength: 1024 description: Information about resource partition resources: type: array maxItems: 100 description: List of the different type of resources assigned to the resource partition items: $ref: '#/components/schemas/ResourcePartitionResource' ResourcePartitionResource: description: Resource partition Resource information type: object properties: resourceIds: type: array maxItems: 100 description: List of the resources Id assigned to the resource partition items: description: 'The unique id that represents the resource Id.It could be any unique id like UUID/number. To get more details about resources based on type invoke following APIs CALLER_ID : /api/admin/voice/v1/accounts/{accountId}/phone-numbers/{resourceId}' type: string maxLength: 100 example: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 type: type: string enum: - CALLER_ID description: Information about Resource example: CALLER_ID ResourcePartitionDefaultResource: description: Resource Partition Default Resource information type: object required: - resourcePartitionId - defaultResourceId - type properties: resourcePartitionId: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 3 maxLength: 1024 description: resourcePartition Id defaultResourceId: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 3 maxLength: 1024 description: Default Resource Id type: type: string enum: - CALLER_ID description: Information about Resource example: CALLER_ID isDefault: type: boolean default: false example: false description: Set true to configure default resource and set false to remove default resource Pagination: type: object properties: pageNumber: type: integer description: The current page number. example: 2 pageSize: type: integer description: The max number of records that can be retrieved on this page. example: 10 total: type: integer description: The total number of records. example: 100 Links: type: object properties: prev: type: string default: '' description: URL of the previous page. Blank if currently on the first page. next: type: string default: '' description: URL of the next page. Blank if currently on the last page. Problem: type: object description: 'Problem Detail as a way to carry machine-readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs RFC 7807 ' properties: type: type: string format: uri 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). ' default: about:blank example: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation title: type: string 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). ' example: Service Unavailable nullable: true status: type: integer format: int32 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' minimum: 100 maximum: 600 exclusiveMaximum: true example: 503 nullable: true detail: type: string description: 'A human readable explanation specific to this occurrence of the problem. ' example: Connection to database timed out nullable: true instance: type: string format: uri description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ' nullable: true violations: type: array description: 'A list of violations that occurred as a result of invalid data provided as part of a request. ' nullable: true items: type: object properties: field: type: string 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. ' example: accountId message: type: string description: 'A human readable explanation specific to this occurrence of the violation. ' example: must match "^[a-zA-Z]{6}$" code: type: integer format: int32 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. ' example: 20006 example: - field: emailAddress message: must not be null code: 20002 - field: accountId message: must match "^[a-zA-Z]{6}$" code: 20006 UserIdList: description: List of user Ids type: object properties: userIds: type: array maxItems: 50 items: type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771fe minLength: 36 maxLength: 36 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}$ example: - 4ffcec98-2206-44b1-94e3-e253abf6a4d2 - 4a83190d-b288-4efe-b3bf-96d5c5c5ae44 description: List of user Ids ProfileIdList: description: List of profile Ids type: object properties: profileIds: type: array maxItems: 50 items: type: string maxLength: 6 example: - ABDCEF - OKIJTH description: List of profile Ids ProfileStatusResponse: description: Status of Profiles type: object properties: profileId: description: An unique id of profile type: string example: ABCDEF minLength: 6 maxLength: 6 features: $ref: '#/components/schemas/UserFeatureStatus' allOf: - $ref: '#/components/schemas/FeatureAction' UserStatusResponse: description: Status of Users type: object properties: userId: description: The unique 36 character internal id (uuid) that represents the user. type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771fe minLength: 36 maxLength: 36 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}$ role: $ref: '#/components/schemas/FeatureAction' resourcePartitions: $ref: '#/components/schemas/FeatureAction' features: $ref: '#/components/schemas/UserFeatureStatus' allOf: - $ref: '#/components/schemas/FeatureAction' UserFeatureStatus: description: Status of all features type: object properties: matching: $ref: '#/components/schemas/FeatureAction' chat: $ref: '#/components/schemas/FeatureAction' messaging: $ref: '#/components/schemas/FeatureAction' email: $ref: '#/components/schemas/FeatureAction' voice: $ref: '#/components/schemas/FeatureAction' cmvoice: $ref: '#/components/schemas/FeatureAction' desktop: $ref: '#/components/schemas/FeatureAction' aci: $ref: '#/components/schemas/FeatureAction' outbound: $ref: '#/components/schemas/FeatureAction' recorder: $ref: '#/components/schemas/FeatureAction' cmdesktop: $ref: '#/components/schemas/FeatureAction' advancedcmvoice: $ref: '#/components/schemas/FeatureAction' FeatureAction: description: Feature Status and action type: object properties: action: type: string enum: - ADD - UPDATE - DELETE example: ADD description: Action done for feature of user readOnly: true status: type: string enum: - COMPLETED - IN_PROGRESS - FAILED - DELETED - DELETE_FAILED - DELETE_IN_PROGRESS - PENDING example: COMPLETED readOnly: true message: type: string example: Feature added successfully readOnly: true MatchingUserFeature: description: Details of Matching feature assigned to the user. type: object properties: attributes: type: array maxItems: 50 items: type: string maxLength: 255 example: - Language.English - Language.French description: List of attributes assigned to user queues: type: array maxItems: 50 items: $ref: '#/components/schemas/AssignedQueue' description: List of assigned queues to an user example: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 MatchingProfileFeature: description: Details of Matching profile feature type: object properties: attributes: type: array maxItems: 50 items: type: string maxLength: 255 example: - Language.English - Language.French description: List of attributes assigned to profile queues: type: array maxItems: 50 items: $ref: '#/components/schemas/AssignedQueue' description: List of assigned queues to a profile example: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 AssignedQueue: description: Details of a queue to be assigned to an agent and its proficiency type: object properties: queueId: type: string minLength: 36 maxLength: 36 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}$ description: The unique 36 character internal id that represents the queue. proficiency: type: integer minimum: 1 maximum: 16 default: 8 description: Value of proficiency that agent has for this particular queue. The value 1 represents the highest level of proficiency. name: type: string minLength: 3 maxLength: 50 description: The name of the queue. Name must be unique per account. ChatChannelUserFeature: description: Details of Chat Channel feature assigned to the user. type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 2 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disable for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false providers: readOnly: true type: array maxItems: 10 items: $ref: '#/components/schemas/Provider' EmailChannelUserFeature: description: Details of Email Channel feature assigned to the user. type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 2 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false providers: readOnly: true type: array maxItems: 10 items: $ref: '#/components/schemas/Provider' MessagingChannelUserFeature: description: Details of Messaging Channel feature assigned to the user. type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 2 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false providers: readOnly: true type: array maxItems: 10 items: $ref: '#/components/schemas/Provider' Provider: type: object properties: providerAgentId: description: Identifier that represents the provider agent. type: string example: stevens@avaya.com maxLength: 255 channelProviderId: description: The unique 36 character internal id (uuid) that represents the channel provider. type: string example: d7c2909d-75e9-484a-94c0-b7e8d30771dd minLength: 36 maxLength: 36 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}$ ChatChannelProfileFeature: description: Details of Chat Channel profile feature type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 5 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false MessagingChannelProfileFeature: description: Details of Chat Channel profile feature type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 5 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false EmailChannelProfileFeature: description: Details of Chat Channel profile feature type: object properties: autoAnswer: type: boolean description: Auto-answer enabled disble for this channel example: false multiplicity: type: integer format: int32 minimum: 1 maximum: 10 example: 5 description: Multiplicity of channels afterContactWork: type: boolean description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false CloudSwitchVoiceUserFeature: description: This model is used to populate voice feature data on UI while editing user type: object properties: voicePriority: type: boolean default: false description: 'Voice call excludes new work on all other channels ' example: false autoAnswer: type: boolean default: false description: Represent if the voice call to Agent is to be auto answered or not. Value can be true or false example: false afterContactWork: type: boolean default: false description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false userExtension: type: string example: '10021' readOnly: true emergencyLocationIdentificationNumber: type: string example: '7798098090' readOnly: true providers: readOnly: true type: array maxItems: 10 items: $ref: '#/components/schemas/Provider' deviceType: type: string example: WEBRTC readOnly: true password: type: string example: Admin123$ description: Represents Voice agent password. readOnly: true CMVoiceUserFeature: description: This model is used to populate CM voice feature data in user type: object required: - agentLoginId - extensionNumber - communicationProfileAddresses properties: deviceType: type: string example: CM readOnly: true agentLoginId: type: string minLength: 1 maxLength: 16 pattern: ^[1-9][0-9]*$ maximum: 10000000000000000 description: Represent CM agent Id of User. example: '2501' agentPassword: description: Represents CM agent password. This field is deprecated. Use agentLoginPassword field. type: integer format: int64 minimum: 1 maximum: 999999999 example: 81234 deprecated: true agentLoginPassword: description: Represents CM agent login password in String format. type: string minLength: 1 maxLength: 16 pattern: ^[0-9]*$ example: '012345' extensionNumber: type: string minLength: 1 maxLength: 16 maximum: 10000000000000000 pattern: ^[1-9][0-9]*$ description: Represent Extension needed to map to User. example: '3501' communicationProfileAddresses: type: array minItems: 1 maxItems: 50 description: Represents the communication profile addresses. items: $ref: '#/components/schemas/CommunicationProfileAddress' communicationProfilePassword: description: Represent communication profile password. type: string example: UserPassword@123 minLength: 2 maxLength: 256 providers: readOnly: true type: array maxItems: 10 items: $ref: '#/components/schemas/Provider' UserACIFeature: description: 'This model is used to populate ACI (Avaya Conversational Intelligence) feature data on UI while editing a user. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable ACI simply pass an empty object `{}`. ' type: object UserOutboundFeature: type: object description: 'This model is used to populate Outbound user feature data on UI while editing a user. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable outbound simply pass an empty object `{}`. ' UserRecorderFeature: type: object description: 'This model is used to populate Recorder user feature data on UI while editing a user. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable Recorder simply pass an empty object `{}`. ' OutboundProfileData: type: object description: 'This model is used to populate outbound profile feature data on UI while editing a user. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable outbound simply pass an empty object `{}`. ' RecorderProfileData: type: object description: 'This model is used to populate Recorder profile feature data on UI while editing a user. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable Recorder simply pass an empty object `{}`. ' CMVoiceProfileFeature: type: object description: This model represent CM voice profile feature data. properties: autoAssignExtension: type: boolean default: false description: If this flag is set to true then during sync extension will get assigned automatically example: false locationProfileId: type: string description: Location Profile Id format: uuid example: 41c6ef0d-5470-406e-ace2-6dc442b99318 CloudSwitchVoiceProfileFeature: description: This model represent user profile data in user feature message type: object properties: voicePriority: type: boolean default: false description: 'Voice call excludes new work on all other channels ' example: false autoAnswer: type: boolean default: false description: Represent if the voice call to Agent is to be auto answered or not. Value can be true or false example: false afterContactWork: type: boolean default: false description: afterContactWork enable/disble for this channel example: false afterContactWorkMode: type: string enum: - DEFAULT - DISABLED - MANUAL - TIMED description: The mode used to determine expiry. example: TIMED afterContactWorkTimer: nullable: true type: integer minimum: 1 maximum: 3600 description: 'The ACW timer expiry in terms of the specified units. ' example: 10 afterContactWorkOverrideQueue: type: boolean description: user afterContactWork overrides queue setting example: false ACIProfileData: description: 'This model used to represent ACI (Avaya Conversational Intelligence) feature for profile. Currently, this model expects no properties and any properties passed to it will be ignored. In the future, expected properties will be added as the model evolves. To enable ACI simply pass an empty object `{}`. ' type: object UXProfile: description: This model represent UX profile data type: object properties: uxProfileId: type: string description: profile id example: c8c2909d-75e9-484a-94c0-b7e8d30771ee uxProfileName: type: string description: profile Name example: UX Profile Address: description: A real address for an user. type: object required: - addressName - streetName - streetNumber - countryCode - zip properties: addressId: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 readOnly: true 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}$ addressName: type: string minLength: 2 maxLength: 32 pattern: ^[a-zA-Z\p{L}0-9]+([ ]*[a-zA-Z\p{L}0-9-\_\*\=\+\$\:\;\&\~\,\?\%\!\|\{\}\`\.\']+)*$ example: Home address addressType: type: string nullable: true enum: - OFFICE - APARTMENT - BASEMENT - BUILDING - DEPARTMENT - FLOOR - FRONT - KEY - LOBBY - LOT - LOWER - PENTHOUSE - PIER - REAR - ROOM - SIDE - SLIP - SPACE - STOP - SUITE - TRAILER - UNIT - UPPER example: UNIT description: It is to narrow down the exact dispatched location for the agent/user addressTypeNumber: type: string minLength: 0 maxLength: 64 example: '101' description: It is optional unless the AddressType is specified and it can be used for things like "Floor 1" or "Unit 101". streetNumber: type: string minLength: 1 maxLength: 16 example: A11 streetName: type: string minLength: 2 maxLength: 128 example: Allstate Pkwy city: type: string minLength: 0 maxLength: 128 example: Markham state: type: string minLength: 1 maxLength: 3 example: 'ON' countryCode: type: string minLength: 2 maxLength: 3 pattern: ^[A-Za-z]{2,3}$ example: ZW zip: type: string minLength: 4 maxLength: 16 example: L3R9T8 pattern: ^[A-Za-z0-9\p{L}_ -]*$ isDefault: type: boolean description: Indicated default address of user example: false default: false AccountAddress: description: Assigned account address for the user. type: object required: - addressId properties: addressId: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ isDefault: type: boolean description: Indicated default address of user example: false default: false SearchFilterCriteria: type: object description: Filter criteria of request title: SearchFilterCriteria properties: filter: type: array maxItems: 500 items: $ref: '#/components/schemas/Criteria' description: 'Specifies details of a row filter. The possible fields you can filter are needs to be supplied as mentioned in description. ' orderBy: description: 'Field name on which sorting needs to be performed. The possible fields you can filter are needs to be supplied as mentioned in description. Field Names are case-sensitive (should be written as it is in description). The default sorting order is ascending. To specify descending order, a suffix " desc" should be added. For example, "firstName" for ascending or "firstName asc" for descending". ' type: string maxLength: 255 example: firstName desc Criteria: type: object description: Filter criteria with attribute and discriminator title: Criteria properties: discriminator: type: string enum: - AND - OR description: Possible values are AND, OR key: type: string minLength: 2 maxLength: 50 example: firstName description: Possible values are loginId,lastName,firstName,emailId,organizationNodeId operator: type: string enum: - STARTS_WITH - CONTAINS - ENDS_WITH - EQUALS - NOT_EQUALS example: STARTS_WITH description: Operator to use for filtering value: type: string maxLength: 50 example: Steven description: Value needs to be filtering AuditSearchFilter: type: object description: 'The filter to be applied when searching for audit records. ' required: - startDate - endDate - type properties: startDate: type: string format: date-time description: 'The starting datetime to use when searching for audit records (in ISO 8601 format including timezone, ''yyyy-MM-dd''T''HH:mm:ss[.SSS]Z''). ' example: '2021-11-13T20:25:39.534Z' endDate: type: string format: date-time description: 'The ending datetime to use when searching for audit records (in ISO 8601 format including timezone, ''yyyy-MM-dd''T''HH:mm:ss[.SSS]Z''). ' example: '2021-11-15T16:07:12.723Z' author: type: string description: 'The ID of the author who changed the auditable object. This can be a user within the system or an automated app. ' maxLength: 255 pattern: ^[a-zA-Z0-9@._-]+$ example: jsmith@example.com event: type: string description: "This field indicates the type of event that occurred on the auditable object.\n\nAn explanation of\ \ the values is listed below:\n * CREATED - A new auditable object was created.\n * UPDATED - An existing auditable\ \ object was updated.\n * DELETED - An existing auditable object was deleted.\n" enum: - CREATED - UPDATED - DELETED type: description: "The type of auditable object.\n\nAccepted values:\n* PROFILE\n* USER\n* RESOURCE_PARTITION \n* USERS_DEFAULT_RESOURCE\n" type: string enum: - PROFILE - USER - RESOURCE_PARTITION - USERS_DEFAULT_RESOURCE example: PROFILE ipAddress: description: 'The originating IP Address of the author who changed the auditable object. ' type: string maxLength: 15 example: 165.225.72.60 searchKeyword: description: 'Keyword to search for across all the audit records. ' type: string maxLength: 255 AuditRecords: description: 'A collection of audit records. ' type: object properties: pagination: $ref: '#/components/schemas/Pagination' auditRecords: type: array items: $ref: '#/components/schemas/AuditRecord' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/audit-records:search?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/audit-records:search?pageNumber=3&pageSize=10 AuditRecord: type: object description: 'An audit record. Captures who, what, and when an auditable object changed within the system. ' properties: date: type: string description: 'The date and time of when the audit record was created. ' example: '2021-06-24T19:03:01.463+00:00' event: type: string description: "This field indicates the type of event that occurred on the auditable object.\n\nAn explanation of\ \ the values is listed below:\n * CREATED - A new auditable object was created.\n * UPDATED - An existing auditable\ \ object was updated.\n * DELETED - An existing auditable object was deleted.\n" enum: - CREATED - UPDATED - DELETED author: type: string example: jsmith@example.com description: 'The ID of the author who changed the auditable object. This can be a user within the system or an automated app. ' type: description: "The type of auditable object.\n\nAccepted values:\n* PROFILE\n* USER\n* RESOURCE_PARTITION \n* USERS_DEFAULT_RESOURCE\n" enum: - PROFILE - USER - RESOURCE_PARTITION - USERS_DEFAULT_RESOURCE type: string example: PROFILE ipAddress: description: 'The originating IP Address of the author who changed the auditable object. ' type: string example: 165.225.72.60 auditData: $ref: '#/components/schemas/JsonNode' previousData: $ref: '#/components/schemas/JsonNode' JsonNode: type: object title: JsonNode description: 'Contains the state of the auditable object at the time the audit record was created. ' operation: type: string description: Operation performed during import enum: - ADD - UPDATE - DELETE - NO_CHANGE - EXPORT example: ADD status: description: Operation result type: string enum: - IN_PROGRESS - FAILED - COMPLETED - PENDING - ABORT_IN_PROGRESS - ABORTED - NO_CHANGE example: COMPLETED statusAndOperations: description: Operation result type: string enum: - ADD - UPDATE - DELETE - NO_CHANGE - IN_PROGRESS - FAILED - COMPLETED - ABORT_IN_PROGRESS - ABORTED - PENDING example: COMPLETED JobStopResponse: type: object description: Job stop response properties: url: type: string example: /api/admin/user/v1/accounts/ABCDEF/jobs/{jobId} UsersImportResponse: description: User import response to notify that user import accepted. type: object properties: jobId: description: An unique id mapped to each user import job. type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771fe minLength: 36 maxLength: 36 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}$ url: description: Details of users import job type: string example: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe maxLength: 2048 title: UsersImportResponse UserDetails: description: User details of each imported user type: object properties: loginId: description: User login Id type: string maxLength: 255 pattern: ^[a-zA-Z\p{L}0-9+-_.]+(?:\.[a-zA-Z\p{L}0-9+-_.]+)*@(?:[a-zA-Z\p{L}0-9-]+\.)+[a-zA-Z\p{L}]{2,6}$ example: something@domain.com userId: description: User unique Id type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771ee minLength: 36 maxLength: 36 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}$ status: $ref: '#/components/schemas/status' operation: $ref: '#/components/schemas/operation' message: description: Message explaining operation result type: string example: User successfully added title: UserDetails UserImportJobStatus: description: User import job status response to know number of user imported with status. type: object properties: operation: $ref: '#/components/schemas/operation' status: $ref: '#/components/schemas/status' message: type: string description: Success or failure message of import example: import completed details: type: array items: $ref: '#/components/schemas/UserImportDetails' url: description: URL to get the details of user import job type: string example: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe/users maxLength: 2048 totalCount: description: Total number of users type: integer format: int64 example: 40 startTime: description: Start time of job type: string format: date-time example: 2020-04-21T17:32:28z endTime: description: End time of job type: string format: date-time example: 2020-04-21T17:40:28z title: UserImportJobStatus UserImportDetails: description: User import job details. type: object properties: count: type: integer format: int64 description: Total number of entities per element is imported example: 1300 status: $ref: '#/components/schemas/statusAndOperations' UserDetailsPage: description: User import details to know each user status type: object properties: pagination: $ref: '#/components/schemas/Pagination' users: type: array items: $ref: '#/components/schemas/UserDetails' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ABCDEF/jobs/importUserList1/users?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ABCDEF/jobs/importUserList1/users?pageNumber=3&pageSize=10 title: UserDetailsPage JobImportDetailsPage: description: List of all imported jobs type: object properties: pagination: $ref: '#/components/schemas/Pagination' jobs: type: array items: $ref: '#/components/schemas/JobImportDetails' links: allOf: - $ref: '#/components/schemas/Links' example: prev: /api/admin/user/v1/accounts/ASDJGE/jobs?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/jobs?pageNumber=3&pageSize=10 title: JobImportDetailsPage JobImportDetails: description: User import jobs detail type: object properties: jobId: description: JobId an unique id mapped with each user import job. type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771ee minLength: 36 maxLength: 36 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}$ status: $ref: '#/components/schemas/status' name: description: Name of job type: string example: deleteJobForOrganization operation: $ref: '#/components/schemas/operation' startTime: description: Start time of job type: string format: date-time example: 2020-04-21T17:32:28z endTime: description: End time of job type: string format: date-time example: 2020-04-21T17:40:28z title: JobImportDetails UserImportJobsId: description: List of all imported job Ids to delete the jobs. type: object properties: jobIds: type: array maxItems: 50 items: type: string minLength: 36 maxLength: 36 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}$ example: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 - 04803a3a-3dfb-4606-ae79-fd0fe0be3e64 description: List of job Ids to delete the jobs title: UserImportJobsId UsersExportResponse: description: Bulk user export response to notify that user export request accepted. type: object properties: jobId: description: An unique id mapped to each user bulk export job. type: string example: c8c2909d-75e9-484a-94c0-b7e8d30771fe minLength: 36 maxLength: 36 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}$ url: description: URL to download exported user file type: string example: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe:downloadExportedUsers maxLength: 2048 title: UsersExportResponse Workspaces: description: Workspaces server details type: object properties: hostname: type: string example: uk.prod.ws.avayacloud.com description: The hostname of Workspaces server AdvancedCMVoiceUserFeature: description: This model is used to populate Advanced CM voice feature data in user type: object AdvancedCMVoiceProfileFeature: type: object description: This model represent Advanced CM voice profile feature data. PasswordPolicy: description: This model represent the password policy rules type: object properties: accountId: type: string description: The unique 6 character internal id that represents the account. readOnly: true example: FSADSJ length: description: Length of the password type: integer format: int32 minimum: 8 default: 14 example: 8 specialChars: description: Number of special characters required in the password type: integer format: int32 minimum: 0 default: 0 example: 1 upperCase: description: Number of uppercase characters required in the password type: integer format: int32 minimum: 0 default: 0 example: 1 lowerCase: description: Number of lowercase characters required in the password type: integer format: int32 minimum: 0 default: 0 example: 1 digits: description: Number of digits required in the password type: integer format: int32 minimum: 0 default: 0 example: 1 maxNoOfConsecutiveChars: description: Number of repeated consecutive characters in the password type: integer format: int32 minimum: 0 default: 2 example: 2 maxNoOfConsecutiveCharSets: description: Number of consecutive characters from the same character classs in the password type: integer format: int32 minimum: 0 default: 4 example: 4 passwordHistory: description: Number of last passwords to be checked in the passwordHistory type: integer format: int32 minimum: 0 maximum: 24 default: 10 example: 1 notUsername: type: boolean default: true example: true description: Password should not be same as username parameters: accountId: name: accountId description: The unique 6 character internal id that represents the customer account. required: true in: path schema: type: string minLength: 6 maxLength: 6 pattern: ^[a-zA-Z]{6}$ example: ABCDEF pageNumber: name: pageNumber in: query description: The page number of the records to retrieve. Default value is 1. schema: type: integer format: int32 default: 1 minimum: 1 example: 2 profileId: name: profileId in: path description: The unique 6 character internal id (uuid) that represents the profile. required: true schema: type: string example: FSADSJ minLength: 6 maxLength: 6 pattern: ^[a-zA-Z0-9\-\_\.\ ]+$ resourcePartitionId: name: resourcePartitionId in: path description: The unique id (uuid) that represents the resource partition. required: true schema: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ resourceType: name: resourceType required: true in: path description: Resource Type example: CALLER_ID schema: type: string enum: - CALLER_ID example: CALLER_ID resourceId: name: resourceId in: path description: The unique id that represents the resource. required: true schema: type: string example: 620bbb28-7112-433a-af59-17ee0f15a247 minLength: 3 maxLength: 1024 userId: name: userId in: path description: The unique 36 character internal id (uuid) that represents the user. required: true schema: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ addressId: name: addressId in: path description: The unique 36 character internal id (uuid) that represents the address. required: true schema: type: string example: c8c2909d-75e9-484a-94c0-b7e8d29771fe minLength: 36 maxLength: 36 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}$ jobId: name: jobId in: path description: The unique 36 character internal id that represents the job. required: true schema: type: string minLength: 36 maxLength: 36 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}$ example: 1235a3aa-3dfb-4606-ae79-fd0fe0be3e64 jobName: name: jobName in: query description: Optional, job name that can be provided to uniquely identify the job. required: false schema: type: string minLength: 1 maxLength: 255 pattern: ^[\p{L}\p{M}\p{N}\p{IsKatakana}0-9]+[\s\p{L}\p{M}\p{N}\p{IsKatakana}0-9\-\[\]\\_\.\+\*\'\"\!\|\(\)\{\}\;\:\,\^\+\<\>\&\£\@\$\¥\€\`\~\?\#\%\=]*$ example: Bulk Job examples: WorkspacesResponse: description: Workspaces server details value: hostname: uk.prod.ws.avayacloud.com ProfilePage: description: Paginated Profile Data value: pagination: pageNumber: 2 pageSize: 10 total: 45 profiles: - profileId: W6D1JQ profileName: Advanced description: A profile with all the features uxProfileId: 6f482dcd-54a9-445f-ba6d-8ca5ebd5261a url: /api/admin/user/v1/accounts/ASDJGE/profiles/W6D1JQ roles: - Agent memberOfGroups: - c8c2909d-75e9-484a-94c0-b7e8d29771fe resourcePartitions: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 resourcePartitionDefaultResources: - resourcePartitionId: a8b6d39c-53c5-4d94-a640-c28bee987ed7 defaultResourceId: 620bbb28-7112-433a-af59-17ee0f15a247 type: CALLER_ID isDefault: true features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 5 afterContactWork: false messaging: autoAnswer: false multiplicity: 5 afterContactWork: false email: autoAnswer: false multiplicity: 5 afterContactWork: false voice: voicePriority: false autoAnswer: false afterContactWork: false cmvoice: autoAssignExtension: false locationProfileId: 41c6ef0d-5470-406e-ace2-6dc442b99318 aci: {} recorder: {} outbound: {} advancedcmvoice: {} links: prev: /api/admin/user/v1/accounts/ASDJGE/profiles?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/profiles?pageNumber=3&pageSize=10 UserSearchPage: description: Paginated User Data value: pagination: pageNumber: 2 pageSize: 10 total: 45 users: - organizationNodeId: EXMPLE userId: c8c2909d-75e9-484a-94c0-b7e8d29771fe loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - c8c2909d-75e9-484a-94c0-b7e8d29771fe ownedGroups: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 roles: - Agent resourcePartitions: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 addresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false accountAddresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe isDefault: false features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd messaging: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd email: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd voice: voicePriority: true autoAnswer: false afterContactWork: false userExtension: '10021' emergencyLocationIdentificationNumber: '7798098090' providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} recorder: {} outbound: {} advancedcmvoice: {} links: prev: /api/admin/user/v1/accounts/ASDJGE/users:search?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/users:search?pageNumber=3&pageSize=10 ProfileWrite: description: A Profile value: profileName: Advanced description: A profile with all the features uxProfileId: 6f482dcd-54a9-445f-ba6d-8ca5ebd5261a roles: - Agent memberOfGroups: - c8c2909d-75e9-484a-94c0-b7e8d29771fe resourcePartitions: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 resourcePartitionDefaultResources: - resourcePartitionId: a8b6d39c-53c5-4d94-a640-c28bee987ed7 defaultResourceId: 620bbb28-7112-433a-af59-17ee0f15a247 type: CALLER_ID isDefault: true features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 5 afterContactWork: false messaging: autoAnswer: false multiplicity: 5 afterContactWork: false email: autoAnswer: false multiplicity: 5 afterContactWork: false voice: voicePriority: false autoAnswer: false afterContactWork: false cmvoice: autoAssignExtension: false locationProfileId: 41c6ef0d-5470-406e-ace2-6dc442b99318 aci: {} recorder: {} outbound: {} ProfileRead: description: A Profile with readonly properties included value: profileId: TELHGZ profileName: Advanced description: A profile with all the features uxProfileId: 6f482dcd-54a9-445f-ba6d-8ca5ebd5261a roles: - Agent memberOfGroups: - c8c2909d-75e9-484a-94c0-b7e8d29771fe resourcePartitions: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 resourcePartitionDefaultResources: - resourcePartitionId: a8b6d39c-53c5-4d94-a640-c28bee987ed7 defaultResourceId: 620bbb28-7112-433a-af59-17ee0f15a247 type: CALLER_ID isDefault: true features: matching: attributes: - Language.English - Language.French queues: - queueId: c8c2909d-75e9-484a-94c0-b7e8d29771fe proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 5 afterContactWork: false messaging: autoAnswer: false multiplicity: 5 afterContactWork: false email: autoAnswer: false multiplicity: 5 afterContactWork: false voice: voicePriority: false autoAnswer: false afterContactWork: false cmvoice: autoAssignExtension: false locationProfileId: 41c6ef0d-5470-406e-ace2-6dc442b99318 aci: {} recorder: {} outbound: {} advancedcmvoice: {} UXProfiles: description: List of UX Profiles value: - uxProfileId: c8c2909d-75e9-484a-94c0-b7e8d30771ee uxProfileName: UX Profile ProfileStatusesRequest: description: Request for Profile Statuses value: profileIds: - ABDCEF - OKIJTH ProfileStatuses: description: Status of profile and features value: - action: ADD status: COMPLETED message: Feature added successfully profileId: ABCDEF features: matching: action: ADD status: COMPLETED message: Feature added successfully chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: COMPLETED message: Feature added successfully cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully FailedProfileStatuses: description: Status of profile and features value: - action: ADD status: FAILED message: Operation failed profileId: ABCDEF features: matching: action: ADD status: FAILED message: Feature could not be enabled chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: COMPLETED message: Feature added successfully cmvoice: action: ADD status: COMPLETED message: Feature could not be enabled aci: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature could not be enabled InProgressProfileStatuses: description: Status of profile and features value: - action: ADD status: IN_PROGRESS message: Operation is in progress profileId: ABCDEF features: matching: action: ADD status: IN_PROGRESS message: Operation is in progress chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: COMPLETED message: Feature added successfully cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully UserPage: description: Paginated User Data value: pagination: pageNumber: 2 pageSize: 10 total: 45 users: - organizationNodeId: EXMPLE userId: c8c2909d-75e9-484a-94c0-b7e8d29771fe loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - c8c2909d-75e9-484a-94c0-b7e8d29771fe ownedGroups: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 roles: - Agent resourcePartitions: - a8b6d39c-53c5-4d94-a640-c28bee987ed7 - opl6d39c-78ui-4d94-qqqq-c28bee987ed7 addresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false accountAddresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe isDefault: false features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd messaging: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd email: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd voice: voicePriority: true autoAnswer: false afterContactWork: false userExtension: '10021' emergencyLocationIdentificationNumber: '7798098090' providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} recorder: {} outbound: {} advancedcmvoice: {} links: prev: /api/admin/user/v1/accounts/ASDJGE/users?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/users?pageNumber=3&pageSize=10 AddressWrite: description: An Address value: addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW name: Zimbabwe code: ZW zip: L3R9T8 isDefault: false AddressRead: description: An Address with readonly properties value: addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false AddressDefault: description: A default Address value: addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: true UserStatusesRequest: description: Request for User Statuses value: userIds: - 4ffcec98-2206-44b1-94e3-e253abf6a4d2 - 4a83190d-b288-4efe-b3bf-96d5c5c5ae44 UserStatuses: description: List of User statuses value: - action: ADD status: COMPLETED message: Completed successfully userId: c8c2909d-75e9-484a-94c0-b7e8d30771fe role: action: ADD status: COMPLETED message: Added successfully features: matching: action: ADD status: COMPLETED message: Feature added successfully chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: COMPLETED message: Feature added successfully cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully FailedUserStatuses: description: List of User statuses value: - action: ADD status: FAILED message: Operation failed userId: c8c2909d-75e9-484a-94c0-b7e8d30771fe role: action: ADD status: FAILED message: The password does not meet the password policy requirements. features: matching: action: ADD status: COMPLETED message: Feature added successfully chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: COMPLETED message: Feature added successfully cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully InProgressUserStatuses: description: List of User statuses value: - action: ADD status: IN_PROGRESS message: Operation is in progress userId: c8c2909d-75e9-484a-94c0-b7e8d30771fe role: action: ADD status: IN_PROGRESS message: Operation is in progress features: matching: action: ADD status: COMPLETED message: Feature added successfully chat: action: ADD status: COMPLETED message: Feature added successfully messaging: action: ADD status: COMPLETED message: Feature added successfully email: action: ADD status: COMPLETED message: Feature added successfully voice: action: ADD status: IN_PROGRESS message: Operation is in progress cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: ADD status: COMPLETED message: Feature added successfully recorder: action: ADD status: COMPLETED message: Feature added successfully outbound: action: ADD status: COMPLETED message: Feature added successfully advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully PendingUpdateUserStatuses: description: List of User statuses value: - action: UPDATE status: PENDING message: Operation is in pending update userId: c8c2909d-75e9-484a-94c0-b7e8d30771fe role: action: UPDATE status: PENDING message: Operation is in pending update features: matching: action: UPDATE status: COMPLETED message: Feature updated successfully chat: action: UPDATE status: PENDING message: Feature is in pending update messaging: action: UPDATE status: PENDING message: Feature is in pending update email: action: UPDATE status: PENDING message: Feature is in pending update voice: action: UPDATE status: PENDING message: Feature is in pending update cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: UPDATE status: PENDING message: Feature is in pending update recorder: action: UPDATE status: PENDING message: Feature is in pending update outbound: action: UPDATE status: PENDING message: Feature is in pending update advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully PendingDeleteUserStatuses: description: List of User statuses value: - action: DELETE status: PENDING message: Operation is in pending delete userId: c8c2909d-75e9-484a-94c0-b7e8d30771fe role: action: DELETE status: PENDING message: Operation is in pending delete features: matching: action: DELETE status: COMPLETED message: Feature deleted successfully chat: action: DELETE status: PENDING message: Feature is in pending delete messaging: action: DELETE status: PENDING message: Feature is in pending delete email: action: DELETE status: PENDING message: Feature is in pending delete voice: action: DELETE status: PENDING message: Feature is in pending delete cmvoice: action: ADD status: COMPLETED message: Feature added successfully aci: action: DELETE status: PENDING message: Feature is in pending delete recorder: action: DELETE status: PENDING message: Feature is in pending delete outbound: action: DELETE status: PENDING message: Feature is in pending delete advancedcmvoice: action: ADD status: COMPLETED message: Feature added successfully BasicUserInput: description: Basic user value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex BasicUserWithRolesAndGroupsInput: description: Basic user with roles and groups value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex roles: - Administrator memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 03673a3a-3dfb-4606-ae79-fd0fe0cf2d53 resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 UserWithFeaturesfromProfile: description: User with features from profile which will get assigned if features not provided value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex roles: - Supervisor - Administrator memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 03673a3a-3dfb-4606-ae79-fd0fe0cf2d53 resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 profileId: ASDFGH UserWithProfileFeatures: description: User with features value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex roles: - Agent - Administrator memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 03673a3a-3dfb-4606-ae79-fd0fe0cf2d53 resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 profileId: ASDFGH features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false messaging: autoAnswer: false multiplicity: 2 afterContactWork: false email: autoAnswer: false multiplicity: 2 afterContactWork: false voice: voicePriority: true autoAnswer: false afterContactWork: false cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} recorder: {} outbound: {} advancedcmvoice: {} UserWithAllFields: description: user with all fields value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 05603a3a-3dfb-4606-ae79-fd0fe0be2e52 roles: - Agent resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 addresses: - addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false accountAddresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe isDefault: true features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false messaging: autoAnswer: false multiplicity: 2 afterContactWork: false email: autoAnswer: false multiplicity: 2 afterContactWork: false voice: voicePriority: true autoAnswer: false afterContactWork: false cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} recorder: {} outbound: {} advancedcmvoice: {} UserWithProfileFeatureswithoutchannelProvider: description: User with features without channel provider value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex roles: - Agent - Administrator memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 03673a3a-3dfb-4606-ae79-fd0fe0cf2d53 resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 profileId: ASDFGH features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false messaging: autoAnswer: false multiplicity: 2 afterContactWork: false email: autoAnswer: false multiplicity: 2 afterContactWork: false voice: voicePriority: true autoAnswer: false afterContactWork: false cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} recorder: {} outbound: {} advancedcmvoice: {} UserUpdateWithAllFields: description: user with all fields value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d5 roles: - Agent addresses: - addressId: 04303a3a-3dfb-4606-ae79-fd0fe0be3e43 addressName: Address Name addressType: APARTMENT addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: true - addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false accountAddresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe isDefault: true features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false messaging: autoAnswer: false multiplicity: 2 afterContactWork: false email: autoAnswer: false multiplicity: 2 afterContactWork: false voice: voicePriority: true autoAnswer: false afterContactWork: false cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} outbound: {} recorder: {} advancedcmvoice: {} UserUpdateNewAddress: description: User update existing address and add new address value: organizationNodeId: EXMPLE loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - 9508183b-7b90-471c-97ca-dfd08bd73842 ownedGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 roles: - Administrator addresses: - addressId: c80e94b6-75e9-484a-94c0-b4bdfcd6b3ca addressName: Home Address addressType: APARTMENT addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: true - addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: false accountAddresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe isDefault: true UserResponse: description: User details value: organizationNodeId: EXMPLE userId: c8c2909d-75e9-484a-94c0-b7e8d29771fe loginId: stevens@avaya.com lastName: Stevens firstName: Alex displayName: Stevens, Alex emailId: stevens@avaya.com profileId: FSADSJ memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 ownedGroups: - 03203a3a-3dfb-4606-ae79-fd0fe0be3d53 roles: - Agent resourcePartitions: - 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 - pqe73a3a-78965-4606-ae12-yu0fe0cf2d53 addresses: - addressId: c8c2909d-75e9-484a-94c0-b7e8d29771fe addressName: Address Name addressType: OFFICE addressTypeNumber: '101' streetNumber: A11 streetName: Allstate Pkwy city: Markham state: 'ON' countryCode: ZW zip: L3R9T8 isDefault: true accountAddresses: - addressId: d7d3909d-75e9-484a-94c0-b7e8d29661de isDefault: false features: matching: attributes: - Language.English - Language.French queues: - queueId: 620bbb28-7112-433a-af59-17ee0f15a247 proficiency: 10 - queueId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 proficiency: 6 chat: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: d7c2909d-75e9-484a-94c0-b7e8d30771dd messaging: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: ce607659-2213-4c93-ad8f-3a930d1a8b3b email: autoAnswer: false multiplicity: 2 afterContactWork: false providers: - providerAgentId: stevens@avaya.com channelProviderId: bb032ead-889a-46c6-957d-826449bc84cb voice: voicePriority: true autoAnswer: false afterContactWork: false userExtension: '10021' emergencyLocationIdentificationNumber: '7798098090' providers: - providerAgentId: stevens@avaya.com channelProviderId: a8b6d39c-53c5-4d94-a640-c28bee987ed7 cmvoice: agentLoginId: '11021' agentPassword: 81238 agentLoginPassword: '012345' extensionNumber: '1111' communicationProfileAddresses: - address: 10022@SipDomain1.com type: SIP isDefault: true - address: +12345@avaya.com type: E164 isDefault: false communicationProfilePassword: anypasswordstring aci: {} outbound: {} recorder: {} advancedcmvoice: {} UserResourcePartitionsPage: description: Paginated resource partition Data for User/Profile value: pagination: pageNumber: 2 pageSize: 10 total: 45 resourcePartitions: - id: 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 name: Sales Resource Partition description: Sales resource partition with CLID resources: - type: CALLER_ID resourceIds: - 620bbb28-7112-433a-af59-17ee0f15a247 - 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 defaultResourceId: 620bbb28-7112-433a-af59-17ee0f15a247 links: - prev: /api/admin/user/v1/accounts/ASDJGE/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe/resourcePartitions?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe/resourcePartitions?pageNumber=3&pageSize=10 ResourcePartitionsPage: description: Paginated resource partition Data value: pagination: pageNumber: 2 pageSize: 10 total: 45 resourcePartitions: - id: 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 name: Sales resource partition description: Sales resource partition with CLID resources: - type: CALLER_ID resourceIds: - 620bbb28-7112-433a-af59-17ee0f15a247 - 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 links: - prev: /api/admin/user/v1/accounts/ASDJGE/resource-partitions?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/resource-partitions?pageNumber=3&pageSize=10 ResourcePartitionWrite: description: resource partition value: name: Sales resource partition description: Sales resource partition with CLID resources: - type: CALLER_ID resourceIds: - 620bbb28-7112-433a-af59-17ee0f15a247 - 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 ResourcePartitionRead: description: resource partition value: id: 96803a3a-3dfb-4606-ae79-fd0fe0be3e64 name: Sales resource partition description: Sales resource partition with CLID resources: - type: CALLER_ID resourceIds: - 620bbb28-7112-433a-af59-17ee0f15a247 - 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 ResourcePartitionDefaultResource: description: Resource Partition with default resource value: - resourcePartitionId: 07d2c0a3-f05c-47e7-a86e-51148d3d4fd4 defaultResourceId: 620bbb28-7112-433a-af59-17ee0f15a247 type: CALLER_ID isDefault: true SearchAuditRecordsRequest: value: startDate: '2021-11-13T20:25:39.534Z' endDate: '2021-11-15T16:07:12.723Z' event: CREATED author: jsmith@example.com type: PROFILE ipAddress: 165.225.72.60 searchKeyword: Chris Dunbar SearchAuditRecordsResponse: value: pagination: pageNumber: 2 pageSize: 5 total: 30 auditRecords: - date: '2021-11-14T09:24:05.234Z' event: CREATED author: jsmith@example.com ipAddress: 165.225.72.60 type: PROFILE auditData: profileId: W6D1JQ profileName: Advanced description: A profile with all the features uxProfileId: 6f482dcd-54a9-445f-ba6d-8ca5ebd5261a roles: - Agent memberOfGroups: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 links: next: /api/admin/user/v1/accounts/ASDJGE/audit-records:search?pageNumber=1&pageSize=5 prev: /api/admin/user/v1/accounts/ASDJGE/audit-records:search?pageNumber=3&pageSize=5 FirstNameStartWithInput: value: filter: - discriminator: AND key: firstName operator: STARTS_WITH value: Steven orderBy: firstName desc FirstNameStartWithANDLastNameEndsWithInput: value: filter: - discriminator: OR key: firstName operator: STARTS_WITH value: Steven - discriminator: AND key: lastName operator: ENDS_WITH value: Smith orderBy: firstName desc FirstNameContainsInput: value: filter: - discriminator: OR key: firstName operator: CONTAINS value: tev orderBy: firstName desc EmailIdEqualsInput: value: filter: - discriminator: OR key: emailId operator: EQUALS value: Steven@avaya.com orderBy: firstName desc LastNameNotEqualsInput: value: filter: - discriminator: OR key: lastName operator: NOT_EQUALS value: Steff orderBy: firstName desc PasswordPolicyRule: value: accountId: CJRKXW length: 8 specialChars: 1 upperCase: 1 lowerCase: 1 digits: 1 repeatConsecutiveChars: 2 consecutiveChars: 4 passwordHistory: 1 notUsername: true ErrorConstraintViolation: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#constraint-violation title: Constraint Violation status: 400 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: - field: accountId message: must match "^[a-zA-Z]{6}$" code: 20006 ErrorUnauthorized: description: Unauthorized value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#unauthorized title: Unauthorized status: 401 detail: This operation requires authentication. See https://developers.avayacloud.com/avaya-experience-platform/docs/how-to-authenticate-with-ccaas-apis ErrorForbidden: description: Forbidden value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#forbidden title: Forbidden status: 403 detail: According to the access control policy the current user and/or accountId does not have permission to access this resource. ErrorNotFound: description: Not Found value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#resource-not-found title: Resource Not Found status: 404 detail: Either there is no API method associated with the URL path of the request, or the request refers to one or more resources that were not found. ErrorInternalServerError: description: Server Error value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#server-error title: Server Error status: 500 detail: An internal server error was encountered. ErrorTooManyRecords: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#constraint-violation title: Constraint Violation status: 400 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: - field: interval message: Too many records within the requested time interval. code: 20007 ErrorProfileNameExists: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#conflict title: Conflict status: 409 detail: A resource with the same unique constraint values already exists. violations: - field: profileName message: A profile with this name already exists ErrorResourcePartitionNameExists: description: Constraint Violation value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#conflict title: Conflict status: 409 detail: A resource with the same unique constraint values already exists. violations: - field: name message: A resource partition with this name already exists ErrorUserLoginIdExists: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#conflict title: Conflict status: 409 detail: A resource with the same unique constraint values already exists. violations: - field: loginId message: A user with this loginId already exists ErrorUserEmailIdExists: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#conflict title: Conflict status: 409 detail: A resource with the same unique constraint values already exists. violations: - field: emailId message: A user with this emailId already exists BulkAddedUsers: description: Bulk Users Response value: jobId: c8c2909d-75e9-484a-94c0-b7e8d30771fe url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe JobImportDetailsPage: description: User Jobs value: pagination: pageNumber: 2 pageSize: 10 total: 45 jobs: - jobId: c8c2909d-75e9-484a-94c0-b7e8d30771ee status: COMPLETED name: deleteJobForOrganization operation: DELETE startTime: 2020-04-21T17:32:28z endTime: 2020-04-21T17:40:28z links: prev: /api/admin/user/v1/accounts/ASDJGE/jobs?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ASDJGE/jobs?pageNumber=3&pageSize=10 UserImportJobResponse: description: User Job value: operation: ADD status: COMPLETED message: import completed details: - count: 1300 status: COMPLETED url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe/users totalCount: 1300 startTime: 2020-04-21T17:32:28z endTime: 2020-04-21T17:40:28z UserImportFailedJobResponse: description: User Failed Job value: operation: ADD status: FAILED message: Import failed details: - count: 500 status: COMPLETED - count: 300 status: FAILED url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe/users totalCount: 800 startTime: 2020-04-21T17:32:28z endTime: 2020-04-21T17:40:28z UserImportAbortedJobResponse: description: User Aborted Job value: operation: ADD status: ABORTED message: Import aborted details: - count: 100 status: ABORTED - count: 300 status: COMPLETED url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe/users totalCount: 400 startTime: 2020-04-21T17:32:28z endTime: 2020-04-21T17:40:28z UserDetailsPage: description: User import details value: pagination: pageNumber: 2 pageSize: 10 total: 45 users: - loginId: something@domain.com userId: c8c2909d-75e9-484a-94c0-b7e8d30771ee operation: ADD status: COMPLETED message: User successfully added - loginId: steves@domain.com userId: c7c2909d-75e9-484a-94c0-b7e8d30772dd operation: ADD status: IN_PROGRESS message: Operation is in progress - loginId: steven@domain.com userId: b7c2909d-75e9-484a-94c0-b7e8d30771cc operation: ADD status: FAILED message: Invalid member of group provided links: prev: /api/admin/user/v1/accounts/ABCDEF/jobs/importUserList1/users?pageNumber=1&pageSize=10 next: /api/admin/user/v1/accounts/ABCDEF/jobs/importUserList1/users?pageNumber=3&pageSize=10 UserJobsIdsToDelete: description: User Job ids to delete value: jobIds: - 04703a3a-3dfb-4606-ae79-fd0fe0be3e64 - 03703a3a-3dfb-4606-ae79-fd0fe0be3e53 UsersExportResponse: description: User export value: jobId: c8c2909d-75e9-484a-94c0-b7e8d30771fe url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe:downloadExportedUsers JobStopResponse: description: Job stop response value: url: /api/admin/user/v1/accounts/ABCDEF/jobs/c8c2909d-75e9-484a-94c0-b7e8d30771fe ErrorJobNameExists: description: Constraint Violation value: type: https://developers.avayacloud.com/avaya-experience-platform/docs/error-handling#conflict title: Conflict status: 409 detail: A resource with the same unique constraint values already exists. violations: - field: jobName message: A job with this name already exists