openapi: 3.2.0 info: title: Digital - Custom Chat Engagements API description: This API facilitates session-based communication. Only "Chat" channel is supported now. 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: - https default: https server: default: HOST-REGION.api.avayacloud.com basePath: default: /api/digital/channel/v1 - url: '{protocol}://{server}:{port}' description: Internal API variables: protocol: enum: - http - https default: http server: default: msg-web-gateway port: enum: - '80' - '443' default: '80' security: - {} - BearerAuth: [] AppKey: [] tags: - name: Engagements description: Inbound engagements can be created from the customer side which are then handled by contact center resources like agents, supervisors and bots. Session Id's can be passed on any explicit requests made on engagements so that all the activities can be correlated back to the appropriate session. paths: /accounts/{accountId}/engagements: post: tags: - Engagements summary: Create Engagement description: Creates a Digital engagement for Custom Chat in the Contact Center. If an engagement already exists for the customer then a new dialog will be created for the existing engagement, otherwise a new engagement and dialog will be created. operationId: createDigitalEngagement parameters: - $ref: '#/components/parameters/accountId' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateEngagement' examples: Create-Engagement: $ref: '#/components/examples/CreateEngagement' description: request required: true responses: '201': description: A new engagement or a dialog created content: application/json: schema: $ref: '#/components/schemas/EngagementCreated' examples: Engagement-Created: $ref: '#/components/examples/EngagementCreated' '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' deprecated: false get: tags: - Engagements summary: List Engagements description: Lists all the Custom Chat related engagements for a session. operationId: listDigitalEngagements parameters: - $ref: '#/components/parameters/accountId' - name: sessionId description: The unique 36 character internal id that represents the session. required: true in: query 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: 10494b78-710c-11eb-9439-0242ac130002 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Engagements' examples: List-Engagements: $ref: '#/components/examples/ListEngagementsResponse' '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' deprecated: false /accounts/{accountId}/engagements/{engagementId}: get: tags: - Engagements summary: Get Engagement description: Gets the details of an existing engagement by engagementId. Retrieves only Customer Chat related engagements. operationId: getDigitalEngagement parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Engagement' examples: Get-Engagement: $ref: '#/components/examples/GetEngagementResponse' '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' deprecated: false /accounts/{accountId}/engagements/{engagementId}:disconnect: post: tags: - Engagements summary: Disconnect Engagement description: Disconnects the customer from a specific dialog associated with the Custom Chat related engagement. operationId: disconnectDigitalEngagement parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' requestBody: content: application/json: schema: $ref: '#/components/schemas/DisconnectEngagement' examples: Disconnect-Engagement: $ref: '#/components/examples/DisconnectEngagementRequest' description: request required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DisconnectEngagement' examples: Disconnect-Engagement-Response: $ref: '#/components/examples/DisconnectEngagementRequest' '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' deprecated: false /accounts/{accountId}/engagements/{engagementId}:join: post: tags: - Engagements summary: Join Engagement description: Allows a customer to join an active dialog associated with the Custom Chat related engagement. operationId: joinDigitalEngagement parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' requestBody: content: application/json: schema: $ref: '#/components/schemas/JoinEngagement' examples: Join-Engagement: $ref: '#/components/examples/JoinEngagement' description: request required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JoinEngagementResponse' examples: Example-1: $ref: '#/components/examples/JoinEngagementResponse' '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' deprecated: false /accounts/{accountId}/engagements/{engagementId}/messages: get: tags: - Engagements summary: List Messages description: List messages that have been exchanged in an active engagement dialog. To receive messages of a live dialog, subscribe using Digital Notification API. Avoid calling this API in a loop. This API is applicable only for Custom Chat related engagements. operationId: listDigitalMessages parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' - $ref: '#/components/parameters/dialogId' - name: sessionId description: The unique 36 character internal id that represents the session. required: true in: query 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: 10494b78-710c-11eb-9439-0242ac130002 - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Messages' examples: List-Messages-Page-1: $ref: '#/components/examples/ListMessages1' List-Messages-Page-2: $ref: '#/components/examples/ListMessages2' '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' deprecated: false post: tags: - Engagements summary: Send Message description: Sends a message to the Contact Center on the specified Custom Chat related engagement and dialog. operationId: sendDigitalMessage parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/engagementId' requestBody: content: application/json: schema: $ref: '#/components/schemas/SendMessage' examples: Simple-Send-Message: $ref: '#/components/examples/SendMessageRequestSimple' Send-Message: $ref: '#/components/examples/SendMessageRequest' description: request required: true responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/SendMessageResponse' examples: Simple-Message-Response: $ref: '#/components/examples/SendMessageSimpleResponse' Message-Response: $ref: '#/components/examples/SendMessageResponse' '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' deprecated: false components: examples: SendMessageSimpleResponse: value: accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: SENT sessionId: 10494b78-710c-11eb-9439-0242ac130002 businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 senderParticipantName: John Doe senderParticipantType: CUSTOMER body: elementType: text elementText: text: I need some help to sell my car textFormat: PLAINTEXT messageIndex: 1 providerDialogId: 616imlgwg266hjs670nl receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' correlationId: zc38400d-c44f-4451-8316-e75c4efbt779 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. ListMessages1: value: pagination: pageNumber: 1 pageSize: 5 total: 7 messages: - messageId: f314569c-710b-11eb-9439-0242ac130002 accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: DELIVERED sessionId: 10494b78-710c-11eb-9439-0242ac130002 businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 senderParticipantName: John Doe senderParticipantType: CUSTOMER body: elementType: text elementText: text: I need some help to sell my car textFormat: PLAINTEXT customData: sentiment: Neutral messageIndex: 1 parentMessageId: 5963c0d619a30a2e00de36b8 providerDialogId: 616imlgwg266hjs670nl providerSenderId: d29c456135dcbe326e490bb2 providerMessageId: iwrh1hfbkmj4yb36ijsm providerParentMessageId: bgodcec6a9kvn38g46sn receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' - messageId: f314569c-710b-11eb-9439-0242ac130002 accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: DELIVERED businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 senderParticipantName: Joan Doe senderParticipantType: AGENT body: elementType: text elementText: text: Sure. How long have you been using it? textFormat: PLAINTEXT customData: sentiment: Neutral messageIndex: 2 parentMessageId: f26c65ec-ed40-4e9e-9a96-45a089c2107c providerDialogId: 616imlgwg266hjs670nl receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' links: prev: '' next: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2/messages?sessionId=10494b78-710c-11eb-9439-0242ac130002&dialogId=fc741b00-710b-11eb-9439-0242ac130002&pageSize=2&pageNumber=21&pageSize=5 JoinEngagement: value: sessionId: 10494b78-710c-11eb-9439-0242ac130002 dialogId: fc741b00-710b-11eb-9439-0242ac130002 correlationId: d2ac3a72-8278-11eb-8dcd-0242ac130003 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: channelId message: must not be null ErrorNotFound: description: Not Found value: type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#not-found title: 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. EngagementCreated: value: engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 accountId: ABCDEF conversation: sell car dialogs: - dialogId: fc741b00-710b-11eb-9439-0242ac130002 channelId: Chat dialogStatus: PENDING providerDialogId: 616imlgwg266hjs670nl initiatorParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 connections: - connectionId: zc38400d-c44f-4451-8316-e75c4efbt779 participantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 participantType: CUSTOMER displayName: John Doe sessionIds: - 10494b78-710c-11eb-9439-0242ac130002 connectionState: CONNECTED - connectionId: f3c8400d-c44f-4451-8316-e75c4efb8zz9 participantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 participantType: AGENT displayName: Joan Doe connectionState: CONNECTED engagementParameters: model: 512GTB interestedModel: 488GTB createdAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.734Z' url: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2 correlationId: zc38400d-c44f-4451-8316-e75c4efbt779 ListEngagementsResponse: value: - engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 accountId: ABCDEF conversation: sell car dialogs: - dialogId: fc741b00-710b-11eb-9439-0242ac130002 channelId: Chat dialogStatus: ACTIVE providerDialogId: 616imlgwg266hjs670nl initiatorParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 connections: - connectionId: zc38400d-c44f-4451-8316-e75c4efbt779 participantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 participantType: CUSTOMER displayName: John Doe sessionIds: - 10494b78-710c-11eb-9439-0242ac130002 connectionState: CONNECTED - connectionId: f3c8400d-c44f-4451-8316-e75c4efb8zz9 participantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 participantType: AGENT displayName: Joan Doe connectionState: CONNECTED engagementParameters: model: 512GTB interestedModel: 488GTB createdAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.34Z' url: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2 JoinEngagementResponse: value: engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 accountId: ABCDEF conversation: sell car dialogs: - dialogId: fc741b00-710b-11eb-9439-0242ac130002 channelId: Chat dialogStatus: ACTIVE providerDialogId: 616imlgwg266hjs670nl initiatorParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 connections: - connectionId: zc38400d-c44f-4451-8316-e75c4efbt779 participantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 participantType: CUSTOMER displayName: John Doe sessionIds: - 10494b78-710c-11eb-9439-0242ac130002 connectionState: CONNECTED - connectionId: f3c8400d-c44f-4451-8316-e75c4efb8zz9 participantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 participantType: AGENT displayName: John Doe connectionState: CONNECTED engagementParameters: model: 512GTB interestedModel: 488GTB createdAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.734Z' url: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2 correlationId: d2ac3a72-8278-11eb-8dcd-0242ac130003 SendMessageRequestSimple: value: sessionId: 10494b78-710c-11eb-9439-0242ac130002 dialogId: fc741b00-710b-11eb-9439-0242ac130002 body: elementType: text elementText: text: I need some help to sell my car senderParticipantName: John Doe GetEngagementResponse: value: engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 accountId: ABCDEF conversation: sell car dialogs: - dialogId: fc741b00-710b-11eb-9439-0242ac130002 channelId: Chat dialogStatus: ACTIVE providerDialogId: 616imlgwg266hjs670nl initiatorParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 connections: - connectionId: zc38400d-c44f-4451-8316-e75c4efbt779 participantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 participantType: CUSTOMER displayName: John Doe sessionIds: - 10494b78-710c-11eb-9439-0242ac130002 connectionState: CONNECTED - connectionId: f3c8400d-c44f-4451-8316-e75c4efb8zz9 participantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 participantType: AGENT displayName: John Doe connectionState: CONNECTED engagementParameters: model: 512GTB interestedModel: 488GTB createdAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.734Z' url: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2 ListMessages2: value: pagination: pageNumber: 2 pageSize: 5 total: 7 messages: - messageId: f314569c-710b-11eb-9439-0242ac130002 accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: DELIVERED sessionId: 10494b78-710c-11eb-9439-0242ac130002 businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 senderParticipantName: John Doe senderParticipantType: CUSTOMER body: elementType: text elementText: text: I have been driving it for about 4 years now textFormat: PLAINTEXT customData: sentiment: Neutral messageIndex: 3 providerDialogId: 616imlgwg266hjs670nl providerSenderId: d29c456135dcbe326e490bb2 providerMessageId: iwrh1hfbkmj4yb36ijsm receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' - messageId: f314569c-710b-11eb-9439-0242ac130002 accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: DELIVERED businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: e3c8400d-c44f-4451-8316-e75c4efb8cc7 senderParticipantName: Joan Doe senderParticipantType: AGENT body: elementType: text elementText: text: What is the make and model? textFormat: PLAINTEXT customData: sentiment: Neutral messageIndex: 4 parentMessageId: f26c65ec-ed40-4e9e-9a96-45a089c2107c providerDialogId: 616imlgwg266hjs670nl receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' links: prev: /api/digital/channel/v1/engagements/d3c8400d-c44f-4451-8316-435ch8c6e3f2/messages?sessionId=10494b78-710c-11eb-9439-0242ac130002&dialogId=fc741b00-710b-11eb-9439-0242ac130002&pageSize=2&pageNumber=1&pageSize=5 next: '' 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 DisconnectEngagementRequest: value: sessionId: 10494b78-710c-11eb-9439-0242ac130002 dialogId: fc741b00-710b-11eb-9439-0242ac130002 reason: USER_CLOSED correlationId: cdf184ec-8278-11eb-8dcd-0242ac130003 SendMessageRequest: value: sessionId: 10494b78-710c-11eb-9439-0242ac130002 dialogId: fc741b00-710b-11eb-9439-0242ac130002 body: elementType: text elementText: text: '2018' textFormat: PLAINTEXT payload: '{"requestElementType":"scroll"}' fallbackText: year selected is 2018 headers: priority: normal sensitivity: normal encoding: utf-8 subject: sell car from: johndoe@example.com clientDeviceTag: android_app messageSourceServerTag: ChatProviderServer01 providerTimestamp: '2018-11-13T20:25:39.534Z' additionalHeaders: appVersion: v2.1 allowForward: 'false' customData: sentiment: Neutral senderParticipantName: John Doe providerSenderId: d29c456135dcbe326e490bb2 providerMessageId: iwrh1hfbkmj4yb36ijsm providerParentMessageId: bgodcec6a9kvn38g46sn correlationId: zc38400d-c44f-4451-8316-e75c4efbt779 CreateEngagement: value: sessionId: 10494b78-710c-11eb-9439-0242ac130002 channelId: Chat conversation: sell car providerDialogId: 616imlgwg266hjs670nl engagementParameters: model: 512GTB interestedModel: 488GTB correlationId: zc38400d-c44f-4451-8316-e75c4efbt779 SendMessageResponse: value: accountId: ABCDEF dialogId: fc741b00-710b-11eb-9439-0242ac130002 engagementId: d3c8400d-c44f-4451-8316-435ch8c6e3f2 status: SENT sessionId: 10494b78-710c-11eb-9439-0242ac130002 businessAccountName: acme@example.com channelProviderId: ChatConnector01 channelId: Chat senderParticipantId: 4dc53692-e25c-4e8c-a780-0b2f05008478 senderParticipantName: John Doe senderParticipantType: CUSTOMER body: elementType: text elementText: text: '2018' textFormat: PLAINTEXT payload: '{"requestElementType":"scroll"}' fallbackText: year selected is 2018 headers: priority: normal sensitivity: normal encoding: utf-8 subject: sell car from: johndoe@example.com clientDeviceTag: android_app messageSourceServerTag: ChatProviderServer01 providerTimestamp: '2018-11-13T20:25:39.534Z' additionalHeaders: appVersion: v2.1 allowForward: 'false' customData: sentiment: Neutral messageIndex: 1 parentMessageId: 5963c0d619a30a2e00de36b8 providerDialogId: 616imlgwg266hjs670nl providerSenderId: d29c456135dcbe326e490bb2 providerMessageId: iwrh1hfbkmj4yb36ijsm providerParentMessageId: bgodcec6a9kvn38g46sn receivedAt: '2018-11-13T20:25:39.534Z' lastUpdatedAt: '2018-11-13T20:25:39.834Z' correlationId: zc38400d-c44f-4451-8316-e75c4efbt779 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. schemas: SendMessageResponse: allOf: - $ref: '#/components/schemas/Message' - type: object additionalProperties: true properties: correlationId: type: string description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. ConnectionState: description: State of the connection between a participant and the dialog type: string enum: - CONNECTED - DISCONNECTED Engagements: type: array description: List of Engagements. items: $ref: '#/components/schemas/Engagement' ParticipantType: description: The type of participant type: string enum: - CUSTOMER - AGENT - SUPERVISOR - SYSTEM - BOT JoinEngagementResponse: allOf: - $ref: '#/components/schemas/Engagement' - type: object additionalProperties: true properties: correlationId: type: string description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. Connection: type: object description: The association between a dialog and a participant required: - connectionId - participantId - participantType - connectionState properties: connectionId: type: string description: The unique 36 character internal id (uuid) that represents the Connection. participantId: type: string description: The unique id that represents the Participant. participantType: $ref: '#/components/schemas/ParticipantType' displayName: type: string description: The display name of the participant sessionIds: type: array description: List of session ids items: type: string connectionState: $ref: '#/components/schemas/ConnectionState' 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 - 'null' 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 status: type: - integer - 'null' format: int32 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' minimum: 100 example: 503 exclusiveMaximum: 600 detail: type: - string - 'null' description: 'A human readable explanation specific to this occurrence of the problem. ' example: Connection to database timed out instance: type: - string - 'null' format: uri description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ' violations: type: - array - 'null' description: 'A list of violations that occurred as a result of invalid data provided as part of a request. ' 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 SendMessage: type: object required: - body - sessionId - dialogId properties: sessionId: type: string minLength: 36 maxLength: 36 description: The unique 36 character id (uuid) that represents the users session. 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}$ dialogId: type: string minLength: 36 maxLength: 36 description: The unique 36 character internal id that represents the dialog. 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}$ body: $ref: '#/components/schemas/BodyElement' fallbackText: type: string maxLength: 256 description: Fallback message text that clients can show if they are not capable of rendering the body headers: $ref: '#/components/schemas/MessageHeaders' customData: type: object maxProperties: 20 description: Any data complementing the actual message body that is valuable for recipient clients. For example any additional reference links, key words, hash tag references, additional content information etc. Key is limited to 64 characters additionalProperties: type: string maxLength: 256 senderParticipantName: type: string maxLength: 70 description: Display name of the user that sent the message. If not provided, display name from the session will be used. parentMessageId: type: string maxLength: 256 description: The unique 36 character internal id for the message that is the parent of this message providerMessageId: type: string maxLength: 256 description: The provider side identifier for the message. providerParentMessageId: type: string maxLength: 256 description: The provider side identifier for the message that is the parent of this message correlationId: type: string maxLength: 256 description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. JoinEngagement: type: object required: - sessionId - dialogId properties: sessionId: 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 (uuid) that represents the users session. dialogId: 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 dialog. correlationId: type: string maxLength: 256 description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. CreateEngagement: type: object description: Request payload to create an engagement required: - sessionId - channelId properties: sessionId: 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 (uuid) that represents the users session. channelId: type: string minLength: 3 maxLength: 50 description: The unique id representing the Contact Center Channel. Only valid Contact Center Channel Id's are accepted. See Contact Center Channel list in Developers guide for further details. conversation: type: string maxLength: 256 description: The conversation (or intent) of the Engagement providerDialogId: type: string maxLength: 256 description: The provider side identifier for a Contact Center dialog. engagementParameters: type: object maxProperties: 20 description: Optional key/value context information on the engagement. This information might be used to make business decisions on how the engagement is treated. For example, the client application might want to send hints about customer's interest based on the customer's searches or FAQ browsing. Key is limited to 64 characters additionalProperties: type: string maxLength: 256 correlationId: type: string maxLength: 256 description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. TextFormat: description: The text format of the message in the body example: PLAINTEXT type: string enum: - PLAINTEXT - HTML - MARKDOWN EngagementCreated: allOf: - $ref: '#/components/schemas/Engagement' - type: object additionalProperties: true properties: correlationId: type: string description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. BodyElement: type: object description: Definition of the body element such as the type of element, the message text and format required: - elementType properties: elementType: type: string minLength: 1 maxLength: 50 description: The type of the body element such as text, image, attachment, carousel, location, or form elementText: $ref: '#/components/schemas/ElementText' payload: type: string description: Data required to help render the message on end clients maxLength: 4096 Messages: type: object description: A message page that is sent in response of request to retrieving messages properties: pagination: $ref: '#/components/schemas/Pagination' messages: type: array items: $ref: '#/components/schemas/Message' links: $ref: '#/components/schemas/Links' MessageHeaders: type: object properties: priority: type: string maxLength: 32 description: The priority of the message set by the provider sensitivity: type: string maxLength: 32 description: The sensitivity of the message set by the provider encoding: type: string maxLength: 32 description: The encoding used for the body of the message subject: type: string maxLength: 256 description: The subject of the message set by the provider from: type: string maxLength: 256 description: The sender of the message set by the provider to: type: array description: The To (recipients) of the message set by the provider maxItems: 20 items: type: string maxLength: 256 cc: type: array maxItems: 20 description: The Cc (recipients) of the message set by the provider. This field is mainly used for email messages items: type: string maxLength: 256 bcc: type: array maxItems: 20 description: The Bcc (recipients) of the message set by the provider. This field is mainly used for email messages items: type: string maxLength: 256 replyTo: type: string maxLength: 256 description: The address to use when replying. clientDeviceTag: type: string maxLength: 256 description: The tag used to identify the client device that was used to send the message. messageSourceServerTag: type: string maxLength: 256 description: The tag used by a service to identify that this message was sent by itself. providerTimestamp: type: string format: date-time description: The date time when the message was captured by the provider (in ISO 8601 format including timezone, 'yyyy-MM-dd'T'HH:mm:ss[.SSS]Z') additionalHeaders: type: object description: The additional header fields of the message in the form of key/value parameters. For example if the payload is of a specific version that the clients rendering the payload need to be aware of that information can be sent here. Key is limited to 64 characters maxProperties: 10 additionalProperties: type: string maxLength: 256 DisconnectEngagement: type: object required: - sessionId - dialogId properties: sessionId: 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 (uuid) that represents the users session. dialogId: 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 dialog. reason: type: string description: Reason for termination of client session of a customer enum: - USER_CLOSED - USER_INACTIVE - SYSTEM_CLOSED - UNKNOWN example: USER_CLOSED correlationId: type: string maxLength: 256 description: The correlation id is used to uniquely identify the client request. This is an optional field but when specified can be used to correlate the callback event with the original API request. If the client does not pass any value for the correlation id in the request, a unique value will be generated automatically and sent back in the response. Participant: type: object description: This event indicates that system will no longer exchange messages for this connection required: - participantId - participantType - connectionId - channelProviderId properties: participantId: type: string description: The unique id that represents the participant. participantType: $ref: '#/components/schemas/ParticipantType' displayName: type: string description: Display name of the participant connectionId: type: string description: The unique 36 character internal id (uuid) that represents the Connection. providerParticipantId: type: string description: The provider side identifier for the participant channelProviderId: type: string description: The unique id that represents the channel provider MessageStatus: description: The delivery status of the message type: string enum: - NONE - SENT - DELIVERED - READ - FAILED - DELETED Dialog: type: object description: The media specific element inside the engagement required: - dialogId - channelId - dialogStatus - initiatorParticipantId - connections - createdAt - lastUpdatedAt properties: dialogId: type: string description: The unique 36 character internal id that represents the dialog. channelId: type: string description: The unique id representing the Contact Center Channel. Only valid Contact Center Channel Id's are accepted. See Contact Center Channel list in Developers guide for further details. dialogStatus: $ref: '#/components/schemas/DialogStatus' providerDialogId: type: string description: The provider side identifier for a Contact Center dialog. initiatorParticipantId: type: string description: The unique id of the participant that initiated the dialog connections: type: array items: $ref: '#/components/schemas/Connection' description: List of connections engagementParameters: type: object description: Optional key/value context information on the engagement. This information might be used to make business decisions on how the engagement is treated. For example, the client application might want to send hints about customer's interest based on the customer's searches or FAQ browsing additionalProperties: type: string createdAt: type: string format: date-time description: The datetime when the dialog was created (in ISO 8601 format including timezone, 'yyyy-MM-dd'T'HH:mm:ss[.SSS]Z') lastUpdatedAt: type: string format: date-time description: The datetime when the dialog was last updated (in ISO 8601 format including timezone, 'yyyy-MM-dd'T'HH:mm:ss[.SSS]Z') Attachment: type: object description: Meta information about the media required: - id - name - size - contentType - url properties: attachmentId: type: string description: The unique 36 character internal id for the attachment 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 description: The name of the attachment size: type: integer format: int64 description: The size of the attachment in bytes contentType: type: string description: The content type of the attachment contentId: type: string maxLength: 256 description: The content id of the attachment url: type: string description: The URL link to retrieve the attachment captionText: type: string description: The text describing the caption of the attachment thumbnailUrl: type: string description: The URL link to retrieve the thumbnail of the attachment additionalProperties: type: object description: Any additional properties of the attachment like labels, tags, revision numbers, display properties, etc. additionalProperties: type: string Engagement: type: object description: The entire engagement object required: - engagementId - accountId - dialogs - url properties: engagementId: type: string description: The unique 36 character internal id that represents the engagement. accountId: type: string description: The unique 6 character internal id that represents the customer account conversation: type: string description: The conversation (or intent) of the Engagement dialogs: type: array items: $ref: '#/components/schemas/Dialog' description: List of dialogs associated with the engagement url: type: string description: The Get Engagement API URL for this engagement DialogStatus: type: string description: Status of the dialog enum: - PENDING - ACTIVE - TERMINATING - TERMINATED Message: type: object description: A conversation message required: - accountId - channelProviderId - channelId - senderParticipantId - senderParticipantName - senderParticipantType - body - status properties: messageId: type: string description: The unique 36 character internal id for this specific message. accountId: type: string description: The unique 6 character internal id that represents the customer account dialogId: type: string description: The unique 36 character internal id that represents the dialog. engagementId: type: string description: The unique 36 character internal id that represents the engagement. status: $ref: '#/components/schemas/MessageStatus' sessionId: type: string description: The unique 36 character id (uuid) that represents the users session. businessAccountName: type: string description: The name of the business account configured on the channel provider channelProviderId: type: string description: The unique id that represents the channel provider channelId: type: string description: The unique id representing the Contact Center Channel. Only valid Contact Center Channel Id's are accepted. See Contact Center Channel list in Developers guide for further details. senderParticipantId: type: string description: The unique id that represents the sender of the message. senderParticipantName: type: string description: The optional display name of the user that sent the message. If not provided, display name from the session will be used. senderParticipantType: $ref: '#/components/schemas/ParticipantType' body: $ref: '#/components/schemas/BodyElement' fallbackText: type: string description: Fallback message text that clients can show if they are not capable of rendering the body headers: $ref: '#/components/schemas/MessageHeaders' attachments: type: array items: $ref: '#/components/schemas/Attachment' description: List of Attachments recipientParticipants: type: array readOnly: true items: $ref: '#/components/schemas/Participant' description: List of recipient participants customData: type: object description: Any data complementing the actual message body that is valuable for recipient clients. For example any additional reference links, key words, hash tag references, additional content information etc. additionalProperties: type: string messageIndex: type: integer description: The index of the message within the context of the dialog parentMessageId: type: string description: The unique 36 character internal id for the message that is the parent of this message providerDialogId: type: string description: The provider side identifier for a Contact Center dialog. providerSenderId: type: string description: The provider side identifier for the user who sent the message. providerMessageId: type: string description: The provider side identifier for the message. providerParentMessageId: type: string description: The provider side identifier for the message that is the parent of this message engagementParameters: type: object description: Optional key/value context information on the engagement. This information might be used to make business decisions on how the engagement is treated. For example, the client application might want to send hints about customer's interest based on the customer's searches or FAQ browsing additionalProperties: type: string receivedAt: type: string format: date-time description: The datetime when the Contact Center received the message (in ISO 8601 format including timezone, 'yyyy-MM-dd'T'HH:mm:ss[.SSS]Z') lastUpdatedAt: type: string format: date-time description: The datetime when the message was last updated (in ISO 8601 format including timezone, 'yyyy-MM-dd'T'HH:mm:ss[.SSS]Z') Pagination: type: object description: Information about the pagination properties: pageNumber: type: integer description: The current page number pageSize: type: integer description: Maximum number of records present on this page total: type: integer description: Total number of record ElementText: type: object description: The text of the message body required: - text properties: text: type: string maxLength: 4096 description: Text of the body textFormat: $ref: '#/components/schemas/TextFormat' Links: type: object description: Links of the adjacent pages 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 parameters: pageSize: name: pageSize description: The maximum number of results per page. required: false in: query schema: type: integer format: int32 default: 10 minimum: 1 maximum: 50 example: 10 engagementId: name: engagementId description: The unique 36 character internal id that represents the engagement. 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: dfd117d7-73e3-4436-8bd7-3ce8f1a008ed 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 dialogId: name: dialogId description: The unique 36 character internal id that represents the dialog. required: true in: query 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: fc741b00-710b-11eb-9439-0242ac130002 pageNumber: name: pageNumber description: The target page of results. required: false in: query schema: type: integer format: int32 default: 1 minimum: 1 example: 1 responses: InternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorInternalServerError' Unauthorized: description: Unauthorized. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorUnauthorized' NotFound: description: Not Found. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorNotFound' BadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorConstraintViolation' Forbidden: description: Forbidden. content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: default: $ref: '#/components/examples/ErrorForbidden' 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 x-explorer-enabled: false x-samples-languages: - curl - node - java - javascript - python - go