openapi: 3.2.0 info: title: Dotdigital Cpaas API version: '1.0' description: 'Operations tagged Cpaas across 12 of this provider''s published API definitions: dotdigital-chat-config-openapi.yml, dotdigital-chat-message-openapi.yml, dotdigital-chat-openapi.yml, dotdigital-chat-presence-openapi.yml, dotdigital-content-openapi.yml, dotdigital-conversation-message-openapi.yml, dotdigital-conversation-openapi.yml, dotdigital-message-history-openapi.yml, dotdigital-message-rules-openapi.yml, dotdigital-profile-openapi.yml, dotdigital-session-openapi.yml, dotdigital-templates-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to - url: http://{region}-api.dotdigital.com/v2 variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 security: - basicAuth: [] tags: - name: Cpaas paths: /cpaas/chat/config: get: summary: Retrieves the chat configuration for an apiSpace responses: '200': description: The full team details headers: ETag: description: A unique value representing the version of the configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the team was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/configFull' '404': description: The team was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/chat/config/teams/{teamId}: get: summary: Retrieves the members of a team parameters: - name: teamId in: path description: The Team id required: true schema: type: string responses: '200': description: The team member details headers: ETag: description: A unique value representing the version of the configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the team was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/teamMembers' '404': description: The team was not found content: {} tags: - Cpaas delete: summary: Removes the config for a team parameters: - name: teamId in: path description: The Team ID required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string responses: '200': description: The config was removed for the team content: {} '404': description: The team was not found, or did not have any config already content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/chat/config/teams/{teamId}/appMessaging: put: summary: Update the App Messaging config for a team parameters: - name: teamId in: path description: The Team id required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string requestBody: description: The App Messaging config to update for the team content: application/json: schema: $ref: '#/components/schemas/appMessagingConfig' required: true responses: '200': description: The full team details headers: ETag: description: A unique value representing the version of the configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the configuration was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/appMessagingConfig' '404': description: The team was not found content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} x-codegen-request-body-name: body tags: - Cpaas delete: summary: Removes the App Messaging config for a team parameters: - name: teamId in: path description: The Team ID required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string responses: '200': description: The App Messaging config was removed for the team content: {} '404': description: The team was not found, or did not have any config already content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/chat/config/teams/{teamId}/settings: put: summary: Update general settings for a team parameters: - name: teamId in: path description: The Team id required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string requestBody: description: The settings to update for the team content: application/json: schema: $ref: '#/components/schemas/settings' required: true responses: '200': description: The full team details headers: ETag: description: A unique value representing the version of the configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the team was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/settings' '404': description: The team was not found content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} x-codegen-request-body-name: body tags: - Cpaas delete: summary: Removes the settings for a team parameters: - name: teamId in: path description: The Team ID required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string responses: '200': description: The general settings were removed for the team content: {} '404': description: The team was not found, or did not have any config already content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/chats/{chatId}/events: get: summary: Retrieves a chat's events parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: from in: query description: The event id to start from required: true schema: minimum: 0 type: integer - name: limit in: query description: The number of events to read forward required: true schema: minimum: 0 type: integer responses: '200': description: A list of chat events content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageEvent' tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/messages: get: summary: Retrieves a chat's messages from an point (event) in time and works backwards parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: from in: query description: The event id to work backwards from required: false schema: minimum: 0 type: integer - name: limit in: query description: The number of messages to return required: true schema: maximum: 100 minimum: 1 type: integer responses: '200': description: A list of partial and the requested number of complete messages, aggregated from the chat events content: application/json: schema: $ref: '#/components/schemas/MessageResult' tags: - Cpaas post: summary: Sends a message to chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string requestBody: description: Detail of the message to send content: application/json: schema: $ref: '#/components/schemas/MessagePost' required: true responses: '200': description: The message was successfully sent content: application/json: schema: $ref: '#/components/schemas/MessagePostResult' x-codegen-request-body-name: message tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/messages/statusupdates: post: summary: Posts message updates back parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string requestBody: description: Details of the message status updates content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageStatusUpdate' required: true responses: '200': description: The status updates were successfully received content: {} x-codegen-request-body-name: updates tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}: get: summary: Retrieves a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: includeDeleted in: query description: Indicates whether deleted chats should be returned required: false schema: type: boolean responses: '200': description: The requested chat headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '404': description: The chat was not found content: {} tags: - Cpaas put: summary: Updates a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Detail of the chat to update content: application/json: schema: $ref: '#/components/schemas/ChatUpdate' required: true responses: '200': description: The updated chat headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '400': description: Validation issues were found content: {} '404': description: The chat was not found content: {} '409': description: A conncurrency issue occured updating the chat content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} x-codegen-request-body-name: name tags: - Cpaas delete: summary: Deletes a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string responses: '204': description: Indicates successful deletetion of an chat content: {} '404': description: The chat was not found content: {} '409': description: A conncurrency issue occured deleting the chat content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/assign: put: summary: Assigns a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Detail of the agent to assign the chat to content: application/json: schema: $ref: '#/components/schemas/AssignmentDetails' required: true responses: '200': description: The updated chat headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '400': description: Validation issues were found content: {} '404': description: The chat was not found content: {} '409': description: A conncurrency issue occured updating the chat content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} x-codegen-request-body-name: assignment tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/close: put: summary: Closes a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Options relating to closing the chat. content: application/json: schema: $ref: '#/components/schemas/chatId_close_body' required: false responses: '200': description: The updated chat headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '400': description: Validation issues were found content: {} '404': description: The chat was not found content: {} '409': description: A conncurrency issue occured updating the chat content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} x-codegen-request-body-name: name tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/channel: put: summary: Changes the channel for an existing chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Options relating to changing the channel of a the chat. content: application/json: schema: $ref: '#/components/schemas/chatId_channel_body' required: true responses: '200': description: The updated chat headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '400': description: Validation issues were found content: {} '404': description: The chat was not found content: {} '409': description: A conncurrency issue occured updating the chat content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} x-codegen-request-body-name: name tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/form: post: summary: Sends a form to a chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string requestBody: description: Options relating to sending a form to a chat. content: application/json: schema: $ref: '#/components/schemas/chatId_form_body' required: true responses: '200': description: '' content: {} '400': description: Validation issues were found content: {} '404': description: The chat was not found content: {} x-codegen-request-body-name: name tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats: get: summary: Retrieves a list of chats parameters: - name: profileId in: query description: Indicates whether only chats the profile is a participant of should be returned required: false schema: type: string - name: scope in: query description: The scope of the query. required: false schema: type: string enum: - profile - all default: profile - name: includeClosed in: query description: Indicates whether closed chats should be returned required: false schema: type: boolean - name: includeDeleted in: query description: Indicates whether deleted chats should be returned required: false schema: type: boolean - name: idsOnly in: query description: Indicates whether just the ids should be returned required: false schema: type: boolean responses: '200': description: A list of matching chats content: application/json: schema: type: array items: $ref: '#/components/schemas/Chat' tags: - Cpaas post: summary: Creates a new chat requestBody: description: Detail of the chat to create content: application/json: schema: $ref: '#/components/schemas/ChatCreate' required: true responses: '201': description: The chat was successfully created headers: ETag: description: A unique value representing the version of the chat, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the chat was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Chat' '400': description: Validation issues were found content: {} '409': description: The chat already exists content: {} x-codegen-request-body-name: chat tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/typing: post: summary: Indicates that the caller is typing in this chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string responses: '204': description: The request was accepted content: {} tags: - Cpaas delete: summary: Indicates that the caller has stopped typing in this chat parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string responses: '204': description: The request was accepted content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/chats/{chatId}/participants: get: summary: Retrieves the chat participants parameters: - name: chatId in: path description: The id of the chat required: true schema: type: string responses: '200': description: The requested chat content: application/json: schema: type: array items: $ref: '#/components/schemas/Participant' '404': description: The chat was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/presence: get: summary: Retrieves the presence for a list of agent's profileIds parameters: - name: id in: query description: The id of a profile to retrieve presence settings for required: true schema: type: string - name: status in: query description: The current status of the profile required: false schema: type: string enum: - away - available - offline responses: '200': description: The presence for each profile requested content: application/json: schema: $ref: '#/components/schemas/Presence' tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/presence/appmessaging: get: summary: Retrieves the presence for a list of user's profileIds parameters: - name: id in: query description: The id of a profile to retrieve presence settings for required: true schema: type: string responses: '200': description: The presence for each profile requested content: application/json: schema: $ref: '#/components/schemas/AppMsgPresence' tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/content: post: summary: Upload a file requestBody: description: The details and data for the file content: application/json: schema: $ref: '#/components/schemas/cpaas_content_body' required: true responses: '200': description: The file was successfully uploaded content: application/json: schema: $ref: '#/components/schemas/UploadedFile' '404': description: The file was not found content: {} x-codegen-request-body-name: File details tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 - url: http://{region}-api.dotdigital.com/v2 variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/content/{fileId}: get: summary: Retrieve a file parameters: - name: fileId in: path description: The id of the file required: true schema: type: string responses: '200': description: The requested file content: {} '404': description: The file was not found content: {} tags: - Cpaas delete: summary: Delete a file parameters: - name: fileId in: path description: The id of the file required: true schema: type: string responses: '200': description: The file was deleted content: {} '404': description: The file was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 - url: http://{region}-api.dotdigital.com/v2 variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}/events: get: summary: Retrieves a conversation's events parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: from in: query description: The event id to start from required: true schema: minimum: 0 type: integer - name: limit in: query description: The number of events to read forward required: true schema: minimum: 0 type: integer responses: '200': description: A list of conversation events content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageEvent' tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}/messages: get: summary: Retrieves a conversation's messages from an point (event) in time and works backwards parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: from in: query description: The event id to work backwards from required: false schema: minimum: 0 type: integer - name: limit in: query description: The number of messages to return required: true schema: maximum: 100 minimum: 1 type: integer responses: '200': description: A list of partial and the requested number of complete messages, aggregated from the conversation events content: application/json: schema: $ref: '#/components/schemas/MessageResult_2' tags: - Cpaas post: summary: Sends a message to conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string requestBody: description: Detail of the message to send content: application/json: schema: $ref: '#/components/schemas/MessagePost_2' required: true responses: '200': description: The message was successfully sent content: application/json: schema: $ref: '#/components/schemas/MessagePostResult_2' x-codegen-request-body-name: message tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}/messages/statusupdates: post: summary: Posts message updates back parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string requestBody: description: Details of the message status updates content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageStatusUpdate' required: true responses: '200': description: The status updates were successfully received content: {} x-codegen-request-body-name: updates tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}: get: summary: Retrieves a conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: includeDeleted in: query description: Indicates whether deleted conversations should be returned required: false schema: type: boolean responses: '200': description: The requested conversation headers: ETag: description: A unique value representing the version of the conversation, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the conversation was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Conversation' '404': description: The conversation was not found content: {} tags: - Cpaas put: summary: Updates a conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Detail of the conversation to update content: application/json: schema: $ref: '#/components/schemas/ConversationUpdate' required: true responses: '200': description: The updated conversation headers: ETag: description: A unique value representing the version of the conversation, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the conversation was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': description: Validation issues were found content: {} '404': description: The conversation was not found content: {} '409': description: A conncurrency issue occured updating the conversation content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} x-codegen-request-body-name: name tags: - Cpaas delete: summary: Deletes a conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string responses: '204': description: Indicates successful deletetion of an conversation content: {} '404': description: The conversation was not found content: {} '409': description: A conncurrency issue occured deleting the conversation content: {} '412': description: The specified 'if-match' header was not valid, refresh and retry content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations: get: summary: Retrieves a list of conversations parameters: - name: scope in: query description: 'Defines the scope of the conversations to be returned - either all public conversations, ' required: false schema: type: string enum: - public - participant - name: profileId in: query description: Indicates whether only conversations the profile is a participant of should be returned required: false schema: type: string - name: includeDeleted in: query description: Indicates whether deleted conversations should be returned required: false schema: type: boolean responses: '200': description: A list of matching conversations content: application/json: schema: type: array items: $ref: '#/components/schemas/ConversationQueryResult' tags: - Cpaas post: summary: Creates a new conversation requestBody: description: Detail of the conversation to create content: application/json: schema: $ref: '#/components/schemas/ConversationCreate' required: true responses: '201': description: The conversation was successfully created headers: ETag: description: A unique value representing the version of the conversation, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the conversation was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/Conversation' '400': description: Validation issues were found content: {} '409': description: The conversation already exists content: {} x-codegen-request-body-name: conversation tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}/typing: post: summary: Indicates that the caller is typing in this conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string responses: '204': description: The request was accepted content: {} tags: - Cpaas delete: summary: Indicates that the caller has stopped typing in this conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string responses: '204': description: The request was accepted content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/conversations/{conversationId}/participants: get: summary: Retrieves the conversation participants parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string responses: '200': description: The requested conversation content: application/json: schema: type: array items: $ref: '#/components/schemas/Participant_2' '404': description: The conversation was not found content: {} tags: - Cpaas post: summary: Adds a list of participants to a conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string requestBody: description: The list of participants to add to the conversation content: application/json: schema: type: array items: $ref: '#/components/schemas/Participant_2' required: true responses: '201': description: The participants were added content: {} '400': description: Validation issues were found content: {} '404': description: The conversation was not found content: {} x-codegen-request-body-name: participants tags: - Cpaas delete: summary: Deletes a list of participants from a conversation parameters: - name: conversationId in: path description: The id of the conversation required: true schema: type: string - name: id in: query description: The profile ids of participants to remove from the conversation required: true style: form explode: false schema: type: array items: type: string responses: '204': description: The list was accepted and valid participants will be removed content: {} '404': description: The conversation was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/{profileId}/messages: get: summary: Retrieves message history for the specified profile. Messages retrieved from the date spacified (default now), in descending time order. parameters: - name: profileId in: path description: The id of the profile required: true schema: type: string - name: channelId in: query description: The id of the channel the message was sent or received on required: false schema: type: string - name: direction in: query description: The direction of the message required: false schema: type: string enum: - inbound - outbound - name: from in: query description: The date (in UTC, ISO 8601 format) to query backwards from required: false schema: type: string format: date-time - name: limit in: query description: Maximum number of results to return required: false schema: type: integer responses: '200': description: List of messages matching the criteria content: application/json: schema: type: array items: $ref: '#/components/schemas/MessageHistoryEntry' tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/automation/inboundrules: get: summary: Retrieves a message rules configuration list responses: '200': description: The requested message rules configuration list headers: ETag: description: A unique value representing the version of the inbound rules configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/InboundRuleConfiguration' '404': description: The was not found content: {} tags: - Cpaas post: summary: Create a message rule configuration parameters: - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Detail of the message rule configuration to create content: application/json: schema: $ref: '#/components/schemas/InboundRuleConfiguration' required: true responses: '200': description: The created inbound rules configuration headers: ETag: description: A unique value representing the version of the inbound rules configuration, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string content: application/json: schema: $ref: '#/components/schemas/InboundRuleConfiguration' '404': description: The inbound rules configuration was not found content: {} x-codegen-request-body-name: messageRulesData tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/automation/inboundrules/{messageRulesId}: get: summary: Retrieves single message rule configuration parameters: - name: messageRulesId in: path description: The message rule id required: true schema: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string responses: '200': description: The requested message rule configuration content: application/json: schema: $ref: '#/components/schemas/InboundRuleConfiguration' '404': description: The message rule configuration was not found content: {} tags: - Cpaas put: summary: Update single message rule configuration parameters: - name: messageRulesId in: path description: The message rule id required: true schema: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control required: false schema: type: string requestBody: description: Detail of the message rule configuration to create content: application/json: schema: $ref: '#/components/schemas/InboundRuleConfiguration' required: true responses: '200': description: The message rule configuration content: application/json: schema: $ref: '#/components/schemas/InboundRuleConfiguration' '404': description: The message rule configuration was not found content: {} x-codegen-request-body-name: messageRulesData tags: - Cpaas delete: summary: Delete single message rule configuration parameters: - name: messageRulesId in: path description: The message rule id required: true schema: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string responses: '204': description: Indicates successful deletion of an message rule configuration content: {} '404': description: The message rule configuration was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/export: post: summary: Exports the result of a profile query in a formatted file for download description: 'For format=csv, due to the flat file format, only primitive types will be exported. Non-primitive type will be exported with "--INVALID-TYPE--" as the data. Nested data should be referred to explicitly: "address.line1"' parameters: - name: query in: query description: See https://www.npmjs.com/package/mongo-querystring for export query syntax. required: false schema: type: string requestBody: description: Export options content: application/json: schema: $ref: '#/components/schemas/ProfileExportOptions' required: false responses: '200': description: Data exported in the required format content: {} x-codegen-request-body-name: exportOptions tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/bulk: delete: summary: Deletes the requested profiles parameters: - name: id in: query description: The ids of the profiles to delete, e.g. ?id=profile1&id=profile2 required: true style: form explode: false schema: type: array items: type: string responses: '200': description: '' content: {} tags: - Cpaas patch: summary: Creates or updates the supplied profiles with the supplied data requestBody: description: The profiles to create / update content: application/json: schema: type: array items: $ref: '#/components/schemas/ProfileCreate' required: false responses: '200': description: '' content: {} x-codegen-request-body-name: profiles tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/{id}: get: summary: Retrieves a Profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: includeDeleted in: query description: Indicates whether deleted profiles should be returned required: false schema: type: boolean responses: '200': description: The requested Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} tags: - Cpaas put: summary: Updates or undeletes a Profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: undelete in: query description: When set to true (and no payload is present) a deleted profile can be un-deleted required: false schema: type: boolean requestBody: description: Detail of the Profile to update. Underscore (_) characters are not allowed in profile field names. content: application/json: schema: type: object required: false responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A conncurrency issue occured updating the Profile content: {} x-codegen-request-body-name: profile data tags: - Cpaas delete: summary: Deletes a Profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: forget in: query description: Indicates whether this delete shoudl ripple out to all services to delete their data relating to the profile required: false schema: type: boolean responses: '204': description: Indicates successful deletetion of a Profile content: {} '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured deleting the Profile content: {} tags: - Cpaas patch: summary: Patches a Profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: allowcreate in: query description: Indicates whether this patch request create a new profile if there is no profile to patch required: false schema: type: boolean - name: deletes in: query description: List of properties that should be deleted from profile during patch required: false style: form explode: false schema: type: array items: type: string requestBody: description: Properties to update on the profile. Other properties will be left intact. content: application/json: schema: type: object required: true responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured updating the Profile content: {} x-codegen-request-body-name: profile data tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/{id}/optin: put: summary: Set profile opt in for specified channels parameters: - name: id in: path description: The id of the profile required: true schema: type: string requestBody: description: List of channels to opt profile into content: application/json: schema: $ref: '#/components/schemas/id_optin_body' required: false responses: '200': description: The full Profile with new optin settings content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} x-codegen-request-body-name: name tags: - Cpaas delete: summary: Set profile opt in for specified channels parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: channel in: query description: Channel to opt profile out required: false style: form explode: false schema: type: array items: type: string responses: '200': description: The full Profile with new optin settings content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/{id}/rels/primary/{linkedId}: put: summary: Creates a relationship where the linked profile is the primary and this profile is a child parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: linkedId in: path description: The id of the profile to link with required: true schema: type: string responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured updating the Profile content: {} tags: - Cpaas delete: summary: Deletes the profile's relationship to a primary profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: linkedId in: path description: The id of the profile to link with required: true schema: type: string responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured deleting the Profile content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/{id}/rels/link/{linkedId}: put: summary: Creates a relationship where this profile is the primary and the linked profile is a child parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: linkedId in: path description: The id of the profile to link with required: true schema: type: string responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured updating the Profile content: {} tags: - Cpaas delete: summary: Deletes the primary profile's relationship to a linked Profile parameters: - name: id in: path description: The id of the profile required: true schema: type: string - name: linkedId in: path description: The id of the profile to link with required: true schema: type: string responses: '200': description: The updated Profile content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '404': description: The Profile was not found content: {} '409': description: A concurrency issue occured deleting the Profile content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles: get: summary: Query profiles description: See https://www.npmjs.com/package/mongo-querystring for query syntax. If you need to search for strings that are numeric, they can be wrapped in single quotes to prevent them being interpretted as numbers. parameters: - name: id in: query description: The profile id to be retrieved required: false schema: type: string - name: $includeDevices in: query description: Retrieves the device details associated with the profile, such as browsers and mobile devices required: false schema: type: boolean - name: $includeSessions in: query description: Includes details of the App Messaging sessions that the profile has required: false schema: type: boolean - name: $fields in: query description: Limits the fields returned by the query to one or more specific field names required: false schema: type: string - name: $includeDeleted in: query description: Includes deleted profiles in the result required: false schema: type: boolean - name: $includeSystem in: query description: Includes system profiles in the result required: false schema: type: boolean - name: $limit in: query description: Limits the number of results returned required: false schema: type: integer - name: $schemaOnly in: query description: Returns the schema of a sample of profiles required: false schema: type: boolean - name: $skip in: query description: Starts results at a specific record index required: false schema: type: integer responses: '200': description: List of profiles matching the search criteria content: application/json: schema: type: array items: $ref: '#/components/schemas/ProfileFull' tags: - Cpaas post: summary: Creates a new Profile requestBody: description: Detail of the Profile to create. Underscore (_) characters are not allowed in profile field names. content: application/json: schema: $ref: '#/components/schemas/ProfileCreate' required: true responses: '201': description: The Profile was successfully created content: application/json: schema: $ref: '#/components/schemas/ProfileFull' '409': description: The Profile already exists content: {} x-codegen-request-body-name: profile tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/profiles/optin: get: summary: Gets default profiles opt in/out options for each channel in channel service responses: '200': description: List of all channels with true for default opt in and false for default opt out content: {} tags: - Cpaas put: summary: Set default profiles opt in/out options for each channel in channel service responses: '200': description: List of all channels with true for default opt in and false for default opt out content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: description: The Dotdigital region id your account belongs to enum: - r1 - r2 - r3 default: r1 /cpaas/sessions/tokens/anon: get: summary: Gets a token that can be used to start an anonymous session parameters: - name: id in: query description: The ID to use for the anonymous user (will be prefixed by the system) required: true schema: type: string - name: nonce in: query description: The cryptographic nonce to be added to the token required: true schema: type: string responses: '200': description: Anonymous auth token details content: application/json: schema: required: - token type: object properties: token: type: string description: The token to use to validate a session '404': description: ApiSpace not found content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/sessions/{id}: get: summary: Retrieves details about a session parameters: - name: id in: path description: The id of the session to retrieve required: true schema: type: string responses: '200': description: The requested session content: application/json: schema: $ref: '#/components/schemas/sessionFull' '404': description: The session was not found content: {} tags: - Cpaas delete: summary: Ends a session, revoking access to services. parameters: - name: id in: path description: The ID of the session to delete required: true schema: type: string responses: '204': description: Indicates successful deletetion of an session content: {} '404': description: The session was not found content: {} '409': description: A conncurrency issue occured deleting the session content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/templates: get: summary: Retrieves a list of all available templates responses: '200': description: A list of templates content: application/json: schema: type: array items: $ref: '#/components/schemas/templateFull' '404': description: The template was not found content: {} tags: - Cpaas post: summary: Create a template requestBody: description: Detail of the template to create content: application/json: schema: $ref: '#/components/schemas/templateCreate' required: true responses: '201': description: The created template headers: ETag: description: A unique value representing the version of the template, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the template was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/templateFull' '404': description: The template was not found content: {} x-codegen-request-body-name: templateData tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to /cpaas/templates/{templateId}: get: summary: Retrieves a template parameters: - name: templateId in: path description: The template id required: true schema: type: string - name: includeDeleted in: query description: Indicates whether deleted templates should be returned schema: type: boolean responses: '200': description: The requested template headers: ETag: description: A unique value representing the version of the template, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the template was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/templateFull' '404': description: The template was not found content: {} tags: - Cpaas put: summary: Updates a template parameters: - name: templateId in: path description: The template id required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string requestBody: description: Detail of the template to update content: application/json: schema: $ref: '#/components/schemas/templateUpdate' required: true responses: '200': description: The updated template headers: ETag: description: A unique value representing the version of the template, optionally used for optimistic concurrency control on PUT and DELETE schema: type: string Last-Modified: description: The date the template was last updated in ISO 8601 format schema: type: string format: date-time content: application/json: schema: $ref: '#/components/schemas/templateFull' '404': description: The template was not found content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} x-codegen-request-body-name: templateData tags: - Cpaas delete: summary: Deletes a template parameters: - name: templateId in: path description: The template id required: true schema: type: string - name: if-match in: header description: An optional ETag for optimistic concurrency control schema: type: string responses: '204': description: Indicates successful deletion of an template content: {} '404': description: The template was not found content: {} '412': description: The ETag supplied did not match, another update may have taken place content: {} tags: - Cpaas servers: - url: https://{region}-api.dotdigital.com variables: region: default: r1 enum: - r1 - r2 - r3 description: The Dotdigital region id your account belongs to components: schemas: appMessagingConfig: required: - replyAs type: object properties: welcomeMessage: type: object properties: timeout: type: integer description: The welcome message timeout in seconds text: type: string description: The welcome message text description: The welcome message config replyAs: type: string description: Indicates how replies should appear to the end user default: team enum: - team - individual description: The App Messaging configuration for the team configFull: type: object properties: teams: type: array readOnly: true items: $ref: '#/components/schemas/configSingle' _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the message was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the message readOnly: true _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the message was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the message readOnly: true description: All chat configuration for the apiSpace. settings: type: object properties: closeMessage: type: string description: The chat close message assigned to the team avatarUrl: type: string description: The avatar assigned to the team outOfHoursFormTemplateId: type: string description: The id of a form to send when out of hours outOfHoursMessage: type: string description: The chat out of hours message assigned to the team workingHours: type: array readOnly: true items: $ref: '#/components/schemas/workingHoursSingle' outOfHoursMessageEnabled: type: boolean description: define if out ouf hours message is enabled description: The general settings for the team workingHoursSingle: required: - days - from - to type: object properties: days: type: string description: Days for which working hours are defined enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday - Weekend - Monday to Friday from: pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9] type: string description: working hours start time to: pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9] type: string description: working hours stop time description: The working hours configuration for the team configSingle: type: object properties: teamId: type: string description: The id of the team readOnly: true channels: type: object properties: appMessagingConfig: $ref: '#/components/schemas/appMessagingConfig' settings: $ref: '#/components/schemas/settings' teamMembers: type: object properties: _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the message was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the message readOnly: true _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the message was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the message readOnly: true id: type: string description: The teams identifier readOnly: true members: type: array readOnly: true items: type: object properties: username: type: string description: The team members profile id / username readOnly: true description: A member of the chat team name: type: string description: The teams name readOnly: true description: The members of the chat team MessageAlertPlatforms: type: object properties: apns: $ref: '#/components/schemas/MessageAlertApns' fcm: $ref: '#/components/schemas/MessageAlertFcm' description: The platform specific details for the alert. If specified, these are set verbatim and alert.title / alert.body values are ignored MessageAlertApns: type: object properties: badge: type: integer description: The value to display on the application badge sound: type: string description: The soundfile to play on the device when the notification arrived alert: type: string description: The alert to display on the device when the notification arrives payload: type: object properties: {} description: The payload to send to the device description: The APNS details for the alert MessagePostResult: required: - id type: object properties: id: type: string description: The globally unique id of the message eventId: type: integer description: The id of the event corresponding to the send in the message stream for this chat description: The id of the message sent event recorded MessagePost_from: required: - profileId type: object properties: profileId: type: string description: The id of the profile to send from name: type: string description: Name to display description: Set of identifiers for the message sender. MessageAlert: type: object properties: title: type: string description: Title for the notification to send to all platforms. Note that this is ignored if any details are set in platforms body: type: string description: Body for the notification to send to all platforms. Note that this is ignored if any details are set in platforms platforms: $ref: '#/components/schemas/MessageAlertPlatforms' description: Details of the alert to be displayed on receipt of the message MessageContext: type: object properties: from: $ref: '#/components/schemas/MessageContextFrom' chatId: type: string description: The id of the chat that the message was sent on sentBy: type: string description: The message sender sentOn: type: string description: The date the message was sent in ISO 8601 format format: date-time direction: type: string description: Indicates the direction of the message enum: - inbound - outbound description: Platform metadata relating to the message MessageContextFrom: type: object properties: id: type: string description: The id of the profile the message was from name: type: string description: The name for the profile that sent the message description: Details of the sender of a message MessageEvent: type: object properties: id: type: integer description: The id of the event data: type: object properties: {} description: The event data description: An event relating to a message MessageStatusUpdate: required: - messageIds - status - timestamp type: object properties: messageIds: type: array description: A list of message ids being updated items: type: string status: type: string description: The status to update each message to enum: - delivered - read timestamp: type: string description: The date of the status update in ISO 8601 format format: date-time MessageComplete: type: object properties: id: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string description: The id of the message sentEventId: type: integer description: The event id that corresponds to the sent event for the message metadata: type: object properties: {} description: Custom metadata relating to the message context: $ref: '#/components/schemas/MessageContext' parts: type: array items: $ref: '#/components/schemas/MessagePart' statusUpdates: type: object properties: {} description: Array of updates keyed by the profileId and a list of statues and the date the status was set description: Details of a message sent to a chat MessagePart: type: object properties: name: type: string description: A name for the part type: type: string description: The mime type (if applicable) sof the part url: type: string description: A url associated with the message part data: type: string description: String representation (e.g. base64) of the message part size: type: integer description: Size of the message part in bytes description: Details of a single part that makes up the message MessageResult: type: object properties: earliestEventId: type: integer description: The earliest event id that was included in the message aggregation. If this value is above 0, there will be more data available and should be used in the 'from' parameter of subsequent calls latestEventId: type: integer description: The latest event id that was included in the message aggregation. messages: type: array items: $ref: '#/components/schemas/MessageComplete' orphanedEvents: type: array items: $ref: '#/components/schemas/MessageEvent' description: A list of chat messages MessageAlertFcmNotification: type: object properties: title: type: string description: The title to display body: type: string description: The body to display icon: type: string description: The icon to display description: Details of the notification to display MessageAlertFcm: type: object properties: collapse_key: type: string description: The collapse key to send to FCM data: type: object properties: {} description: The payload to send to the device notification: $ref: '#/components/schemas/MessageAlertFcmNotification' description: The FCM details for the alert MessagePost: required: - parts type: object properties: from: $ref: '#/components/schemas/MessagePost_from' metadata: type: object properties: {} description: Custom metadata relating to the message parts: type: array items: $ref: '#/components/schemas/MessagePart' alert: $ref: '#/components/schemas/MessageAlert' direction: type: string description: Indicates the direction of the message enum: - inbound - outbound isAutomatedSend: type: boolean description: Indicates if a message was an automated send - will be ommitted from analytics description: Details of a message to post to the chat chatId_form_body: type: object properties: formTemplateId: type: string description: The id of a template to base the form being sent on ChatContext: type: object properties: conversationId: type: string description: Optional conversationId, used to correlated messages on the channel used for the chat Chat: type: object properties: id: type: string description: The unique identifier of the chat name: type: string description: The name of the chat description: type: string description: The description of the chat teamId: type: string description: The id of the team owning this chat originalTeamId: type: string description: The id of the team the chat was created against readOnly: true channelId: type: string description: The id of the channel initiating this chat status: type: string description: The current status of this chat enum: - new - replied - closed participants: type: array items: $ref: '#/components/schemas/Participant' context: $ref: '#/components/schemas/ChatContext' _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the chat was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the chat _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the chat was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the chat readOnly: true AssignmentDetails: required: - teamId type: object properties: teamId: type: string description: The id of the team agentId: type: string description: The id of the agent to assign to (optional) Participant: required: - id type: object properties: id: type: string description: The id of the chat participant's profile role: type: string description: The role of the chat participant enum: - agent - participant default: participant chatId_channel_body: type: object properties: channelId: type: string description: Must be set to a configuration chat channel chatId_close_body: type: object properties: bypassMessage: type: boolean description: When set to true, any close message in the team config will be ignored and not sent ChatCreate: required: - channelId - name - teamId type: object properties: name: type: string description: The name of the chat description: type: string description: The description of the chat teamId: type: string description: The id of the team owning this chat channelId: type: string description: The id of the channel initiating this chat participants: type: array items: $ref: '#/components/schemas/Participant' context: $ref: '#/components/schemas/ChatContext' ChatUpdate: required: - name type: object properties: name: type: string description: The name of the chat description: type: string description: The description of the chat Presence: type: array items: $ref: '#/components/schemas/ProfilePresence' ProfilePresence: type: object properties: profileId: type: string description: The profile id status: type: string description: The current status of the profile enum: - away - available - offline isAway: type: boolean description: Set to true when the user is 'Away' isConnected: type: boolean description: Set to true when the user is logged in and connected lastUpdatedOn: type: string description: The time the profiles presence was last updated format: date-time AppMsgPresence: type: array items: $ref: '#/components/schemas/AppMsgProfilePresence' AppMsgProfilePresence: type: object properties: profileId: type: string description: The profile id status: type: string description: The current status of the profile enum: - online - offline lastUpdatedOn: type: string description: The time the profiles presence was last updated format: date-time createdOn: type: string description: The time the profiles presence was created format: date-time cpaas_content_body: required: - data - name - type type: object properties: name: type: string description: The name of the file type: type: string description: The files MIME type data: type: string description: The Base64 file data UploadedFile: type: object properties: id: type: string description: The file's unique identifier - used to GET url: type: string description: A unique url that can be used to retrieve the content name: type: string description: The file name of the content type: type: string description: The file's content.type folder: type: string description: The folder in which the content was stored size: type: integer description: The size in bytes of the content uploaded _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the content was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the content _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the content was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the content readOnly: true MessagePostResult_2: required: - id type: object properties: id: type: string description: The globally unique id of the message eventId: type: integer description: The id of the event corresponding to the send in the message stream for this conversation description: The id of the message sent event recorded MessageContext_2: type: object properties: from: $ref: '#/components/schemas/MessageContextFrom_2' conversationId: type: string description: The id of the conversation that the message was sent on sentBy: type: string description: The message sender sentOn: type: string description: The date the message was sent in ISO 8601 format format: date-time scope: type: string description: Indicates if a conversation is A2P or P2P enum: - a2p - p2p default: p2p direction: type: string description: Indicates the direction of the message (only applicable to a2p messages) enum: - inbound - outbound description: Platform metadata relating to the message MessageContextFrom_2: type: object properties: id: type: string description: The id of the profile the message was from name: type: string description: The name for the profile that sent the message avatarUrl: type: string description: URL for an avatar to display with this message description: Details of the sender of a message MessageComplete_2: type: object properties: id: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string description: The id of the message sentEventId: type: integer description: The event id that corresponds to the sent event for the message metadata: type: object properties: {} description: Custom metadata relating to the message context: $ref: '#/components/schemas/MessageContext_2' parts: type: array items: $ref: '#/components/schemas/MessagePart' statusUpdates: type: object properties: {} description: Array of updates keyed by the profileId and a list of statues and the date the status was set description: Details of a message sent to a conversation MessageResult_2: type: object properties: earliestEventId: type: integer description: The earliest event id that was included in the message aggregation. If this value is above 0, there will be more data available and should be used in the 'from' parameter of subsequent calls latestEventId: type: integer description: The latest event id that was included in the message aggregation. messages: type: array items: $ref: '#/components/schemas/MessageComplete_2' orphanedEvents: type: array items: $ref: '#/components/schemas/MessageEvent' description: A list of conversation messages MessagePost_2: required: - parts type: object properties: from: $ref: '#/components/schemas/MessagePost_from' metadata: type: object properties: {} description: Custom metadata relating to the message parts: type: array items: $ref: '#/components/schemas/MessagePart' alert: $ref: '#/components/schemas/MessageAlert' direction: type: string description: Indicates the direction of the message (only applicable to a2p messages) enum: - inbound - outbound description: Details of a message to post to the conversation Participant_2: required: - id type: object properties: id: type: string description: The id of the conversation participant's profile role: type: string description: The role of the conversation participant enum: - owner - participant default: participant ConversationUpdate: required: - name - roles type: object properties: name: type: string description: The name of the conversation description: type: string description: The description of the conversation roles: $ref: '#/components/schemas/Roles' Privileges: required: - canAddParticipants - canRemoveParticipants - canSend type: object properties: canSend: type: boolean description: Determines whether the role assigned can send to the conversation canAddParticipants: type: boolean description: Determines whether the role assigned can add participants to the conversation canRemoveParticipants: type: boolean description: Determines whether the role assigned can remove participants from the conversation ConversationCreate: required: - id - isPublic - name - roles type: object properties: id: type: string description: The unique identifier of the conversation name: type: string description: The name of the conversation description: type: string description: The description of the conversation roles: $ref: '#/components/schemas/Roles' isPublic: type: boolean description: Determines whether the conversation is publically visible participants: type: array items: $ref: '#/components/schemas/Participant_2' messageScope: type: string description: Indicates if a conversation is A2P or P2P enum: - a2p - p2p Conversation: type: object properties: id: type: string description: The unique identifier of the conversation name: type: string description: The name of the conversation description: type: string description: The description of the conversation roles: $ref: '#/components/schemas/Roles' isPublic: type: boolean description: Determines whether the conversation is publically visible messageScope: type: string description: Indicates if a conversation is A2P or P2P enum: - a2p - p2p _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the conversation was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the conversation _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the conversation was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the conversation readOnly: true ConversationQueryResult: type: object properties: id: type: string description: The unique identifier of the conversation name: type: string description: The name of the conversation description: type: string description: The description of the conversation roles: $ref: '#/components/schemas/Roles' isPublic: type: boolean description: Determines whether it is publically visible participantCount: type: integer description: The total number of participants latestSentEventId: type: integer description: The eventId of the last message sent messageScope: type: string description: Indicates if a conversation is A2P or P2P enum: - a2p - p2p _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the conversation was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the conversation _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the conversation was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the conversation readOnly: true Roles: required: - owner - participant type: object properties: owner: $ref: '#/components/schemas/Privileges' participant: $ref: '#/components/schemas/Privileges' description: Describes the roles belonging to the conversation MessageHistoryEntry_message: type: object properties: title: type: string description: The message title (if appropriate / supported for the channel) body: type: string description: The message body channelData: type: object properties: {} description: The channel specific data for the message description: The message details. MessageHistoryEntry: required: - messageId type: object properties: messageId: type: string description: The unique id for the message. submittedOn: type: string description: The date/time the message was submitted to the platform. profileId: type: string description: The id of the profile that the message relates to channelId: type: string description: The id of the channel the message was sent/received on direction: type: string description: Indicates whether the message was outbound (from Comapi) or inbound (from the profile) enum: - outbound - inbound status: type: string description: The message status enum: - processing - sent - delivered - read - failed message: $ref: '#/components/schemas/MessageHistoryEntry_message' InboundRuleConfiguration_actionData: type: object properties: chatTeamId: type: string description: If action is startChat specify team id which should have this chat assigned messageParts: type: array description: Additional message parts / attachments. If action is set to replayMessage items: $ref: '#/components/schemas/MessagePart_2' profileUpdate: type: array description: If action is set to profileUpdate gives list of profile changes. items: $ref: '#/components/schemas/ProfileChange' description: 'Defines options for picked action ' ProfileChange: type: object properties: propertyName: type: string description: A name of the property propertyValue: type: string description: A value of the property after change description: Single profile change MessagePart_2: required: - type type: object properties: name: type: string description: A name for the part type: type: string description: The mime type (if applicable) sof the part url: type: string description: A url associated with the message part data: type: string description: String representation (e.g. base64) of the message part size: type: integer description: Size of the message part in bytes description: Details of a single part that makes up a message InboundRuleConfiguration: type: object properties: id: pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$ type: string description: The id (GUID) of message rule configuration channel: type: string description: Type of channel enum: - sms - fbMessenger - appMessaging - email - whatsApp - rcs inbound: type: string description: Inbound message identifier - number, profile id, fb page name. Use a value of '*' for matching any keyword: type: string description: Comma delimited keyword(s) that we are going to search for in the message action: type: string description: Type of action to take after successful match enum: - startChat - replyMessage - profileUpdate actionData: $ref: '#/components/schemas/InboundRuleConfiguration_actionData' ProfileCreate: type: object properties: id: type: string description: The Profile's unique identifier _systemProfile: type: boolean description: If set to true, the profile is required for system use. Use of the this field is limited to system internals ProfileExportOptions: required: - format type: object properties: format: type: string description: The format to export profile data in enum: - json - csv fields: type: array description: The list of fields to export, in order (only used for csv exports) items: type: string fieldSeparator: type: string description: The character to delimit each field (only used for csv exports) includeHeaders: type: boolean description: Whether to include the field names as a header (only used for csv exports) ProfileFull: required: - id type: object properties: id: type: string description: The Profile's unique identifier _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the profile was created format: date-time readOnly: true _systemProfile: type: boolean description: Set to true if the profile was required for system use only. readOnly: true _createdBy: type: string description: The identity that created the profile _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the profile was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the profile readOnly: true _lastActivityOn: type: string description: The date (in UTC, ISO 8601 format) of the last visible activity involving the profile format: date-time readOnly: true id_optin_body: type: object properties: channels: type: array items: type: string sessionPushConfig: type: object properties: apns: $ref: '#/components/schemas/sessionPushConfigApns' fcm: $ref: '#/components/schemas/sessionPushConfigFcm' sessionFull: required: - deviceId - expiresOn - id - isActive - platform - platformVersion - profileId - sdkType - sdkVersion - sourceIp - startedOn type: object properties: id: type: string description: The session's unique identifier profileId: type: string description: Id of the associated user profile deviceId: type: string description: Unique identifier for the calling device. platform: type: string description: The device platform. enum: - android - iOS - javascript platformVersion: type: string description: The platform (e.g. operating system) version sdkType: type: string description: The type of sdk. enum: - native - cordova sdkVersion: type: string description: The SDK version. sourceIp: type: string description: The IP address of the device that started the session. isActive: type: boolean description: Indicates whether the session is still active. startedOn: type: string description: The date/time this session started, in ISO 8601 format. format: date-time expiresOn: type: string description: The date/time this session expires, in ISO 8601 format. format: date-time push: $ref: '#/components/schemas/sessionPushConfig' sessionPushConfigFcm: required: - package - registrationId type: object properties: package: type: string description: The FCM package name. registrationId: type: string description: The FCM registration id for the session. description: The FCM push configuration for the session sessionPushConfigApns: required: - bundleId - environment - token type: object properties: bundleId: type: string description: The APNS bundleId. environment: type: string description: The APNS environment. enum: - development - production token: type: string description: The APNS token. description: The APNS push configuration for the session templateCreate: required: - messageParts - name type: object properties: id: pattern: ^[a-zA-Z\d-_] type: string description: The templates unique identifier, can only contain alpha numerics, hyphens and underscores name: type: string description: The name of the template. In the absence of an id, the name will be stripped of invalid characters and used as the id description: type: string description: The description of the template. messageParts: type: array description: MessageParts items: $ref: '#/components/schemas/messagePart' templateFull: type: object properties: id: pattern: ^a-zA-Z\d-_ type: string description: The templates unique identifier, can only contain alpha numerics, hyphens and underscores readOnly: true name: type: string description: The name of the template. In the absence of an id, the name will be stripped of invalid characters and used as the id description: type: string description: The description of the template. messageParts: type: array description: MessageParts items: $ref: '#/components/schemas/messagePart' _createdOn: type: string description: The date (in UTC, ISO 8601 format) that the template was created format: date-time readOnly: true _createdBy: type: string description: The identity that created the template readOnly: true _updatedOn: type: string description: The date (in UTC, ISO 8601 format) that the template was last updated format: date-time readOnly: true _updatedBy: type: string description: The identity that created the template readOnly: true messagePart: type: object templateUpdate: required: - messageParts - name type: object properties: name: type: string description: The name of the template description: type: string description: The description of the template. messageParts: type: array description: MessageParts items: $ref: '#/components/schemas/messagePart' securitySchemes: basicAuth: type: http scheme: basic x-refined-from: - dotdigital-chat-config-openapi.yml - dotdigital-chat-message-openapi.yml - dotdigital-chat-openapi.yml - dotdigital-chat-presence-openapi.yml - dotdigital-content-openapi.yml - dotdigital-conversation-message-openapi.yml - dotdigital-conversation-openapi.yml - dotdigital-message-history-openapi.yml - dotdigital-message-rules-openapi.yml - dotdigital-profile-openapi.yml - dotdigital-session-openapi.yml - dotdigital-templates-openapi.yml x-readme: headers: [] explorer-enabled: true proxy-enabled: true x-readme-fauxas: true x-samples-languages: - curl - csharp - java - javascript - node - python - php - ruby