openapi: 3.0.2 x-explorer-enabled: false x-samples-languages: - curl - node - java - javascript - python - go info: title: Admin - Match description: 'Administration of categories, attributes, and queues used in Matching. Queue''s are used to identify a pool of contact center agents for which Customer engagements can be matched and routed. ' 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.1 servers: - url: '{protocol}://{server}{basePath}' description: Open API variables: protocol: enum: - http - https default: https server: default: HOST-REGION.api.avayacloud.com basePath: default: /api/admin/match/v1 - url: '{protocol}://{server}:{port}' description: Internal API variables: protocol: enum: - http - https default: http server: default: cc-admin-assisted port: enum: - '80' - '443' default: '80' tags: - name: Audit Records description: 'Search or export audit records for auditable objects. ' - name: Category description: 'Routing is implemented by matching the attributes specified on an engagement, either through customer choice or by business logic, against the attributes associated with the members of the pool of available agents. ' - name: Queue description: 'Queue''s are used to identify a pool of contact center agents for which Customer engagements can be matched and routed. ' 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 filter. The value of **searchKeyword** can be used to perform a text search across all fields. ' 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-senstive (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" for ascending or "date desc" for descending". ' required: false schema: type: string minLength: 4 maxLength: 23 example: date desc requestBody: description: 'The value of **searchKeyword** can be used to perform a text search across all fields. ' 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/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /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 a start date and end date 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-senstive (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" for ascending or "date desc" for descending". ' required: false schema: type: string minLength: 4 maxLength: 23 example: date desc requestBody: description: 'The value of **searchKeyword** can be used to perform a text search across all fields. ' 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,QUEUE,"{""queueId"":""d62d5178-9920-415a-a5d9-066716384750"",""name"":""NA Support"",""description"":""Route enagements to support agents in the NA Region"",""timetableId"":""7893b4a3-c952-43f5-87c7-8cefa1f49685"",""defaultAccountQueue"":false,""afterContactWork"":true}" ' '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/InternalServerError' /accounts/{accountId}/categories: post: tags: - Category summary: Create Category description: Creates a category. operationId: createCategory parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/CategoryCreate' examples: language: $ref: '#/components/examples/PostCategory' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Category' examples: Create Category Response: $ref: '#/components/examples/GetCategory' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/CategoryNameExists' '500': $ref: '#/components/responses/InternalServerError' get: tags: - Category summary: List Categories description: Lists all the categories for an account in ascending name order. operationId: listCategories parameters: - $ref: '#/components/parameters/accountId' - name: name in: query description: The optional name of the category to query. required: false schema: type: string maxLength: 50 pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$ example: Language - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: The maximum number of results per page. Default value is 20, max value is 20. required: false schema: type: integer minimum: 1 maximum: 20 default: 20 example: 10 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CategoryPage' examples: all: $ref: '#/components/examples/AllCategoryResponsePage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/categories/{categoryId}: get: tags: - Category summary: Get Category description: Gets a category. operationId: getCategory parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/categoryId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Category' examples: language: $ref: '#/components/examples/GetCategory' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' put: tags: - Category summary: Update Category description: 'Updates a category. Any attributes that previously existed within the category will be deleted if they are not re-defined. ' operationId: updateCategory parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/categoryId' requestBody: content: application/json: schema: $ref: '#/components/schemas/CategoryUpdate' examples: language: $ref: '#/components/examples/PutCategory' responses: '200': description: Updated content: application/json: schema: $ref: '#/components/schemas/Category' examples: previous: $ref: '#/components/examples/PrevCategoryResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: tags: - Category summary: Delete Category description: Deletes a category. operationId: deleteCategory parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/categoryId' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/categories:bulkCreate: post: tags: - Category summary: Bulk Create Categories description: 'Bulk creates categories and their attributes. ' operationId: bulkCreateCategories parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: type: array description: List of categories and attributes. minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/CategoryCreate' examples: language: $ref: '#/components/examples/BulkCategoryArray' responses: '201': description: Created content: application/json: schema: type: array items: $ref: '#/components/schemas/Category' examples: previous: $ref: '#/components/examples/PrevBulkCategoryResponseArray' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/BulkCategoryNameExists' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/categories:bulkDelete: post: tags: - Category summary: Bulk Delete Categories description: 'Bulk deletes a list of categories. Any categories specified that do not require deletion will be ignored. ' operationId: bulkDeleteCategories parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: type: array description: List of category ids minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/CategoryId' examples: previous: $ref: '#/components/examples/BulkDeleteCategoryArray' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/queues: post: tags: - Queue summary: Create Queue description: Creates a queue. operationId: createQueue parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueueUpdate' examples: Create Queue: $ref: '#/components/examples/CreateQueue' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Queue' examples: Create Queue Response: $ref: '#/components/examples/GetQueue' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/QueueNameExists' '500': $ref: '#/components/responses/InternalServerError' get: tags: - Queue summary: List Queues description: Lists all of the queues for an account in ascending name order. operationId: listQueues parameters: - $ref: '#/components/parameters/accountId' - name: name in: query description: The optional name of the match queue to query. required: false schema: type: string minLength: 3 maxLength: 50 example: EMEA Sales - name: defaultAccountQueue in: query description: This is an optional field and when true it will return the default Account Queue only, when false it will return a list of all non-default queues. required: false schema: type: boolean example: false - $ref: '#/components/parameters/pageNumber' - name: pageSize in: query description: The maximum number of results per page. Default value is 20, max value is 20. required: false schema: type: integer minimum: 1 maximum: 20 default: 20 example: 10 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QueuePage' examples: List Queues (Page 1): $ref: '#/components/examples/ListQueuesPage1' List Queues (Page 2): $ref: '#/components/examples/ListQueuesPage2' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/queues/{queueId}: get: tags: - Queue summary: Get Queue description: Gets a queue. operationId: getQueue parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/queueId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Queue' examples: Get Queue: $ref: '#/components/examples/GetQueue' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' put: tags: - Queue summary: Update Queue description: 'Updates a queue. This is an entire replacement of the existing queue. ' operationId: updateQueue parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/queueId' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueueUpdate' examples: Update Queue: $ref: '#/components/examples/UpdateQueue' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Queue' examples: Update Queue Response: $ref: '#/components/examples/PrevQueueResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/QueueNameExists' '500': $ref: '#/components/responses/InternalServerError' delete: tags: - Queue summary: Delete Queue description: Deletes a queue. operationId: deleteQueue parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/queueId' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/queues:bulkCreate: post: tags: - Queue summary: Bulk Create Queues description: 'Bulk creates queues. ' operationId: bulkCreateQueues parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: type: array description: List of queues. minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/QueueUpdate' examples: Bulk Create Queue: $ref: '#/components/examples/BulkCreateQueue' responses: '201': description: Created content: application/json: schema: type: array items: $ref: '#/components/schemas/Queue' examples: Bulk Create Queue Response: $ref: '#/components/examples/BulkCreateQueueResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/BulkQueueNameExists' '500': $ref: '#/components/responses/InternalServerError' /accounts/{accountId}/queues:bulkDelete: post: tags: - Queue summary: Bulk Delete Queues description: 'Bulk deletes queues. Any queues specified that do not require deletion will be ignored. ' operationId: bulkDeleteQueues parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: type: array description: List of queue ids minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/QueueId' examples: Bulk Delete Queue: $ref: '#/components/examples/BulkDeleteQueue' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' security: - BearerAuth: [] AppKey: [] 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. 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: 1 categoryId: name: categoryId description: The unique 36 character internal id (uuid) that represents the category required: true in: path 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: 4331fa35-9671-4ea0-94e0-517097a5a13a queueId: name: queueId description: The unique 36 character internal id (uuid) that represents the queue required: true in: path 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: 689e0f6b-1d27-42a9-af19-9d0b244af0b3 responses: BadRequest: description: Bad Request 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' 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' CategoryNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorCategoryNameExists' BulkCategoryNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorBulkCategoryNameExists' QueueNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorQueueNameExists' BulkQueueNameExists: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorBulkQueueNameExists' InternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorInternalServerError' schemas: 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 Pagination: type: object properties: pageNumber: type: integer description: The current page number. pageSize: type: integer description: The max number of records that can be retrieved on this page. total: type: integer description: The total number of records. Links: type: object properties: prev: type: string description: URL of the previous page. Blank if currently on the first page. next: type: string description: URL of the next page. Blank if currently on the last page. AuditSearchFilter: type: object description: 'The filter to be applied when searching for audit records. ' 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. ' type: string enum: - QUEUE - ATTRIBUTE example: QUEUE 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 required: - startDate - endDate - type 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. ' type: string enum: - QUEUE - ATTRIBUTE example: QUEUE 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' JsonNode: type: object title: JsonNode description: 'Contains the state of the auditable object at the time the audit record was created. ' 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/match/v1/accounts/ABCDEF/audit-records:search?pageNumber=1&pageSize=10 next: /api/admin/match/v1/accounts/ABCDEF/audit-records:search?pageNumber=2&pageSize=10 AttributeValue: type: string description: The attribute value. maxLength: 50 pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$ example: French AttributeName: type: string description: The internally generated name of the attribute. example: Language.French readOnly: true Attribute: type: object description: Matching attribute in category required: - value properties: value: $ref: '#/components/schemas/AttributeValue' name: $ref: '#/components/schemas/AttributeName' CategoryId: 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 category. example: 4331fa35-9671-4ea0-94e0-517097a5a13a CategoryName: type: string description: The category name. maxLength: 50 pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$ example: Language Category: type: object description: Category used for matching. Contains the category name and a list of attributes. required: - name - attributes properties: categoryId: $ref: '#/components/schemas/CategoryId' name: $ref: '#/components/schemas/CategoryName' attributes: type: array description: 'List of attributes. Empty list is supported. ' minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/Attribute' CategoryCreate: type: object description: Create a category and its attributes for matching. required: - name - attributes properties: name: $ref: '#/components/schemas/CategoryName' attributes: type: array description: 'List of attributes. Empty list is supported. ' minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/Attribute' CategoryUpdate: type: object description: Update attributes for matching in category. required: - attributes properties: attributes: type: array description: 'List of attributes. Empty list is supported. ' minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/Attribute' CategoryPage: type: object description: Page of matching categories. properties: pagination: $ref: '#/components/schemas/Pagination' categories: type: array description: List of categories. items: $ref: '#/components/schemas/Category' links: $ref: '#/components/schemas/Links' 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. QueueName: type: string minLength: 3 maxLength: 50 description: The name of the queue. Name must be unique per account. QueueDescription: type: string minLength: 3 maxLength: 256 description: A brief description of the intent of the queue. TimetableId: 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 id of the timetable applied to this queue. Queue: type: object description: A Queue is used to identify a pool of contact center agents for which Customer engagements can be matched and routed. required: - name properties: queueId: $ref: '#/components/schemas/QueueId' name: $ref: '#/components/schemas/QueueName' description: $ref: '#/components/schemas/QueueDescription' timetableId: $ref: '#/components/schemas/TimetableId' defaultAccountQueue: type: boolean readOnly: true description: When true this indicates that this queue is the default queue for the account. afterContactWork: type: boolean description: True indicates that an agent will undertake additional work after a contact (Engagement) on this queue ends. default: false QueueUpdate: type: object description: A Queue is used to identify a pool of contact center agents for which Customer engagements can be matched and routed. required: - name properties: name: $ref: '#/components/schemas/QueueName' description: $ref: '#/components/schemas/QueueDescription' timetableId: $ref: '#/components/schemas/TimetableId' afterContactWork: type: boolean description: True indicates that an agent will undertake additional work after a contact (Engagement) on this queue ends. default: false QueuePage: type: object description: A page containing the current list of queues with links to the previous and next pages. properties: pagination: $ref: '#/components/schemas/Pagination' queues: type: array description: List of queues. items: $ref: '#/components/schemas/Queue' links: $ref: '#/components/schemas/Links' examples: SearchAuditRecordsRequest: value: startDate: '2021-11-13T20:25:39.534Z' endDate: '2021-11-15T16:07:12.723Z' event: CREATED author: jsmith@example.com type: QUEUE ipAddress: 165.225.72.60 searchKeyword: Support SearchAuditRecordsResponse: value: pagination: pageNumber: 1 pageSize: 5 total: 1 auditRecords: - date: '2021-11-14T09:24:05.234Z' event: CREATED author: admin ipAddress: 165.225.72.60 type: QUEUE auditData: queueId: d62d5178-9920-415a-a5d9-066716384750 name: NA Support description: Route enagements to support agents in the NA Region timetableId: 7893b4a3-c952-43f5-87c7-8cefa1f49685 defaultAccountQueue: false afterContactWork: true links: next: /api/admin/match/v1/accounts/ABCDEF/audit-records:search?pageNumber=2&pageSize=5 prev: /api/admin/match/v1/accounts/ABCDEF/audit-records:search?pageNumber=1&pageSize=5 PostCategory: description: 'Create named category with an initial list of attribute values. ' value: name: Language attributes: - value: French - value: German PutCategory: description: 'Update attributes belonging to category. ' value: attributes: - value: French - value: German GetCategory: description: 'Generated attribute name included. ' value: categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a name: Language attributes: - value: French name: Language.French - value: German name: Language.German BulkCategoryArray: description: 'Category name can be inferred in attributes. ' value: - name: Language attributes: - value: French - value: German - name: Product attributes: - value: Mobile - value: Landline BulkDeleteCategoryArray: description: 'Array of category ids to delete. ' value: - 4331fa35-9671-4ea0-94e0-517097a5a13a - a730d229-c386-43df-9241-b5191af2725c PrevCategoryResponse: description: 'Previous category properties, if found. ' value: categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a name: Language attributes: - value: English name: Language.English - value: French name: Language.French PrevBulkCategoryResponseArray: description: 'Previous properties, by category. ' value: - categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a name: Language attributes: - value: English name: Language.English - value: French name: Language.French - categoryId: a730d229-c386-43df-9241-b5191af2725c name: Product attributes: - value: Landline name: Product.Landline AllCategoryResponsePage: description: 'Page of categories. ' value: pagination: pageNumber: 2 pageSize: 10 total: 3 categories: - categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a name: Language attributes: - value: French name: Language.French - value: German name: Language.German - categoryId: a730d229-c386-43df-9241-b5191af2725c name: Product attributes: - value: Landline name: Product.Landline - value: Mobile name: Product.Mobile links: next: /api/admin/match/v1/accounts/ABCDEF/categories?pageNumber=3&pageSize=10 prev: /api/admin/match/v1/accounts/ABCDEF/categories?pageNumber=1&pageSize=10 CreateQueue: description: Queue. value: name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 afterContactWork: true GetQueue: description: Queue. value: queueId: 689e0f6b-1d27-42a9-af19-9d0b244af0b3 name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 defaultAccountQueue: false afterContactWork: true BulkCreateQueue: description: Array of queues. value: - name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 afterContactWork: true - name: NA Support description: Route enagements to support agents in the NA Region timetableId: 7893b4a3-c952-43f5-87c7-8cefa1f49685 afterContactWork: false BulkDeleteQueue: description: Array of queues to delete. value: - 689e0f6b-1d27-42a9-af19-9d0b244af0b3 - d62d5178-9920-415a-a5d9-066716384750 PrevQueueResponse: description: Previous queue, if found. value: queueId: 689e0f6b-1d27-42a9-af19-9d0b244af0b3 name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 defaultAccountQueue: false afterContactWork: true BulkCreateQueueResponse: description: Previous queues. value: - queueId: 689e0f6b-1d27-42a9-af19-9d0b244af0b3 name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 defaultAccountQueue: false afterContactWork: true - queueId: d62d5178-9920-415a-a5d9-066716384750 name: NA Support description: Route enagements to support agents in the NA Region timetableId: 7893b4a3-c952-43f5-87c7-8cefa1f49685 defaultAccountQueue: false afterContactWork: false UpdateQueue: description: Response queues. value: name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 afterContactWork: true ListQueuesPage1: description: Page of queues. value: pagination: pageNumber: 1 pageSize: 3 total: 5 queues: - queueId: f5c6ec92-8c67-437d-9aaf-35d4b81acdec name: Default description: Default queue defaultAccountQueue: true afterContactWork: false - queueId: 689e0f6b-1d27-42a9-af19-9d0b244af0b3 name: EMEA Sales description: Route enagements to sales agents in the EMEA Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 defaultAccountQueue: false afterContactWork: true - queueId: d62d5178-9920-415a-a5d9-066716384750 name: NA Support description: Route enagements to support agents in the NA Region timetableId: 7893b4a3-c952-43f5-87c7-8cefa1f49685 defaultAccountQueue: false afterContactWork: false links: next: /api/admin/match/v1/accounts/ABCDEF/queues?pageNumber=2&pageSize=3 prev: '' ListQueuesPage2: description: Page of queues. value: pagination: pageNumber: 2 pageSize: 3 total: 5 queues: - queueId: 9c602646-80d8-11eb-9439-0242ac130002 name: US Repairs description: Route enagements to repairs in the US Region timetableId: 7893b4a3-c952-43f5-87c7-8cefa1f49685 defaultAccountQueue: false afterContactWork: false - queueId: a69ecaa4-80d8-11eb-9439-0242ac130002 name: EU Billing description: Route enagements to billing in the EU Region timetableId: 28002f8e-c952-428c-b67f-5a6a4dc96260 defaultAccountQueue: false afterContactWork: false links: next: '' prev: /api/admin/match/v1/accounts/ABCDEF/queues?pageNumber=1&pageSize=3 ErrorConstraintViolation: description: Constraint Violation value: type: https://developers.avayacloud.com/onecloud-ccaas/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/onecloud-ccaas/docs/error-handling#unauthorized title: Unauthorized status: 401 detail: This operation requires authentication. See https://developers.avayacloud.com/onecloud-ccaas/docs/how-to-authenticate-with-ccaas-apis ErrorForbidden: description: Forbidden value: type: https://developers.avayacloud.com/onecloud-ccaas/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/onecloud-ccaas/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. ErrorCategoryNameExists: 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 category with this name already exists ErrorBulkCategoryNameExists: 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: bulkCreateCategories.createCategory[0].name message: A category with this name already exists ErrorQueueNameExists: 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 queue with this name already exists ErrorBulkQueueNameExists: 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: bulkCreateQueues.queueUpdate[0].name message: A queue with this name already exists ErrorInternalServerError: description: Server Error value: type: https://developers.avayacloud.com/onecloud-ccaas/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/onecloud-ccaas/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