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