// // Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // A copy of the License is located at // // http://aws.amazon.com/apache2.0 // // or in the "license" file accompanying this file. This file is distributed // on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either // express or implied. See the License for the specific language governing // permissions and limitations under the License. // #import #import #import NS_ASSUME_NONNULL_BEGIN FOUNDATION_EXPORT NSString *const AWSConnectParticipantErrorDomain; typedef NS_ENUM(NSInteger, AWSConnectParticipantErrorType) { AWSConnectParticipantErrorUnknown, AWSConnectParticipantErrorAccessDenied, AWSConnectParticipantErrorConflict, AWSConnectParticipantErrorInternalServer, AWSConnectParticipantErrorServiceQuotaExceeded, AWSConnectParticipantErrorThrottling, AWSConnectParticipantErrorValidation, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantArtifactStatus) { AWSConnectParticipantArtifactStatusUnknown, AWSConnectParticipantArtifactStatusApproved, AWSConnectParticipantArtifactStatusRejected, AWSConnectParticipantArtifactStatusInProgress, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantChatItemType) { AWSConnectParticipantChatItemTypeUnknown, AWSConnectParticipantChatItemTypeTyping, AWSConnectParticipantChatItemTypeParticipantJoined, AWSConnectParticipantChatItemTypeParticipantLeft, AWSConnectParticipantChatItemTypeChatEnded, AWSConnectParticipantChatItemTypeTransferSucceeded, AWSConnectParticipantChatItemTypeTransferFailed, AWSConnectParticipantChatItemTypeMessage, AWSConnectParticipantChatItemTypeEvent, AWSConnectParticipantChatItemTypeAttachment, AWSConnectParticipantChatItemTypeConnectionAck, AWSConnectParticipantChatItemTypeMessageDelivered, AWSConnectParticipantChatItemTypeMessageRead, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantConnectionType) { AWSConnectParticipantConnectionTypeUnknown, AWSConnectParticipantConnectionTypeWebsocket, AWSConnectParticipantConnectionTypeConnectionCredentials, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantParticipantRole) { AWSConnectParticipantParticipantRoleUnknown, AWSConnectParticipantParticipantRoleAgent, AWSConnectParticipantParticipantRoleCustomer, AWSConnectParticipantParticipantRoleSystem, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantScanDirection) { AWSConnectParticipantScanDirectionUnknown, AWSConnectParticipantScanDirectionForward, AWSConnectParticipantScanDirectionBackward, }; typedef NS_ENUM(NSInteger, AWSConnectParticipantSortKey) { AWSConnectParticipantSortKeyUnknown, AWSConnectParticipantSortKeyDescending, AWSConnectParticipantSortKeyAscending, }; @class AWSConnectParticipantAttachmentItem; @class AWSConnectParticipantCompleteAttachmentUploadRequest; @class AWSConnectParticipantCompleteAttachmentUploadResponse; @class AWSConnectParticipantConnectionCredentials; @class AWSConnectParticipantCreateParticipantConnectionRequest; @class AWSConnectParticipantCreateParticipantConnectionResponse; @class AWSConnectParticipantDisconnectParticipantRequest; @class AWSConnectParticipantDisconnectParticipantResponse; @class AWSConnectParticipantGetAttachmentRequest; @class AWSConnectParticipantGetAttachmentResponse; @class AWSConnectParticipantGetTranscriptRequest; @class AWSConnectParticipantGetTranscriptResponse; @class AWSConnectParticipantItem; @class AWSConnectParticipantMessageMetadata; @class AWSConnectParticipantReceipt; @class AWSConnectParticipantSendEventRequest; @class AWSConnectParticipantSendEventResponse; @class AWSConnectParticipantSendMessageRequest; @class AWSConnectParticipantSendMessageResponse; @class AWSConnectParticipantStartAttachmentUploadRequest; @class AWSConnectParticipantStartAttachmentUploadResponse; @class AWSConnectParticipantStartPosition; @class AWSConnectParticipantUploadMetadata; @class AWSConnectParticipantWebsocket; /**

The case-insensitive input to indicate standard MIME type that describes the format of the file that will be uploaded.

*/ @interface AWSConnectParticipantAttachmentItem : AWSModel /**

A unique identifier for the attachment.

*/ @property (nonatomic, strong) NSString * _Nullable attachmentId; /**

A case-sensitive name of the attachment being uploaded.

*/ @property (nonatomic, strong) NSString * _Nullable attachmentName; /**

Describes the MIME file type of the attachment. For a list of supported file types, see Feature specifications in the Amazon Connect Administrator Guide.

*/ @property (nonatomic, strong) NSString * _Nullable contentType; /**

Status of the attachment.

*/ @property (nonatomic, assign) AWSConnectParticipantArtifactStatus status; @end /** */ @interface AWSConnectParticipantCompleteAttachmentUploadRequest : AWSRequest /**

A list of unique identifiers for the attachments.

*/ @property (nonatomic, strong) NSArray * _Nullable attachmentIds; /**

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

*/ @property (nonatomic, strong) NSString * _Nullable clientToken; /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; @end /** */ @interface AWSConnectParticipantCompleteAttachmentUploadResponse : AWSModel @end /**

Connection credentials.

*/ @interface AWSConnectParticipantConnectionCredentials : AWSModel /**

The connection token.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; /**

The expiration of the token.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable expiry; @end /** */ @interface AWSConnectParticipantCreateParticipantConnectionRequest : AWSRequest /**

Amazon Connect Participant is used to mark the participant as connected for customer participant in message streaming, as well as for agent or manager participant in non-streaming chats.

*/ @property (nonatomic, strong) NSNumber * _Nullable connectParticipant; /**

This is a header parameter.

The ParticipantToken as obtained from StartChatContact API response.

*/ @property (nonatomic, strong) NSString * _Nullable participantToken; /**

Type of connection information required. This can be omitted if ConnectParticipant is true.

*/ @property (nonatomic, strong) NSArray * _Nullable types; @end /** */ @interface AWSConnectParticipantCreateParticipantConnectionResponse : AWSModel /**

Creates the participant's connection credentials. The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) AWSConnectParticipantConnectionCredentials * _Nullable connectionCredentials; /**

Creates the participant's websocket connection.

*/ @property (nonatomic, strong) AWSConnectParticipantWebsocket * _Nullable websocket; @end /** */ @interface AWSConnectParticipantDisconnectParticipantRequest : AWSRequest /**

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

*/ @property (nonatomic, strong) NSString * _Nullable clientToken; /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; @end /** */ @interface AWSConnectParticipantDisconnectParticipantResponse : AWSModel @end /** */ @interface AWSConnectParticipantGetAttachmentRequest : AWSRequest /**

A unique identifier for the attachment.

*/ @property (nonatomic, strong) NSString * _Nullable attachmentId; /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; @end /** */ @interface AWSConnectParticipantGetAttachmentResponse : AWSModel /**

This is the pre-signed URL that can be used for uploading the file to Amazon S3 when used in response to StartAttachmentUpload.

*/ @property (nonatomic, strong) NSString * _Nullable url; /**

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable urlExpiry; @end /** */ @interface AWSConnectParticipantGetTranscriptRequest : AWSRequest /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; /**

The contactId from the current contact chain for which transcript is needed.

*/ @property (nonatomic, strong) NSString * _Nullable contactId; /**

The maximum number of results to return in the page. Default: 10.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxResults; /**

The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

The direction from StartPosition from which to retrieve message. Default: BACKWARD when no StartPosition is provided, FORWARD with StartPosition.

*/ @property (nonatomic, assign) AWSConnectParticipantScanDirection scanDirection; /**

The sort order for the records. Default: DESCENDING.

*/ @property (nonatomic, assign) AWSConnectParticipantSortKey sortOrder; /**

A filtering option for where to start.

*/ @property (nonatomic, strong) AWSConnectParticipantStartPosition * _Nullable startPosition; @end /** */ @interface AWSConnectParticipantGetTranscriptResponse : AWSModel /**

The initial contact ID for the contact.

*/ @property (nonatomic, strong) NSString * _Nullable initialContactId; /**

The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

The list of messages in the session.

*/ @property (nonatomic, strong) NSArray * _Nullable transcript; @end /**

An item - message or event - that has been sent.

*/ @interface AWSConnectParticipantItem : AWSModel /**

The time when the message or event was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable absoluteTime; /**

Provides information about the attachments.

*/ @property (nonatomic, strong) NSArray * _Nullable attachments; /**

The contactId on which the transcript item was originally sent. This field is populated only when the transcript item is from the current chat session.

*/ @property (nonatomic, strong) NSString * _Nullable contactId; /**

The content of the message or event.

*/ @property (nonatomic, strong) NSString * _Nullable content; /**

The type of content of the item.

*/ @property (nonatomic, strong) NSString * _Nullable contentType; /**

The chat display name of the sender.

*/ @property (nonatomic, strong) NSString * _Nullable displayName; /**

The ID of the item.

*/ @property (nonatomic, strong) NSString * _Nullable identifier; /**

The metadata related to the message. Currently this supports only information related to message receipts.

*/ @property (nonatomic, strong) AWSConnectParticipantMessageMetadata * _Nullable messageMetadata; /**

The ID of the sender in the session.

*/ @property (nonatomic, strong) NSString * _Nullable participantId; /**

The role of the sender. For example, is it a customer, agent, or system.

*/ @property (nonatomic, assign) AWSConnectParticipantParticipantRole participantRole; /**

The contactId on which the transcript item was originally sent. This field is only populated for persistent chats when the transcript item is from the past chat session. For more information, see Enable persistent chat.

*/ @property (nonatomic, strong) NSString * _Nullable relatedContactId; /**

Type of the item: message or event.

*/ @property (nonatomic, assign) AWSConnectParticipantChatItemType types; @end /**

Contains metadata related to a message.

*/ @interface AWSConnectParticipantMessageMetadata : AWSModel /**

The identifier of the message that contains the metadata information.

*/ @property (nonatomic, strong) NSString * _Nullable messageId; /**

The list of receipt information for a message for different recipients.

*/ @property (nonatomic, strong) NSArray * _Nullable receipts; @end /**

The receipt for the message delivered to the recipient.

*/ @interface AWSConnectParticipantReceipt : AWSModel /**

The time when the message was delivered to the recipient.

*/ @property (nonatomic, strong) NSString * _Nullable deliveredTimestamp; /**

The time when the message was read by the recipient.

*/ @property (nonatomic, strong) NSString * _Nullable readTimestamp; /**

The identifier of the recipient of the message.

*/ @property (nonatomic, strong) NSString * _Nullable recipientParticipantId; @end /** */ @interface AWSConnectParticipantSendEventRequest : AWSRequest /**

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

*/ @property (nonatomic, strong) NSString * _Nullable clientToken; /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; /**

The content of the event to be sent (for example, message text). For content related to message receipts, this is supported in the form of a JSON string.

Sample Content: "{\"messageId\":\"11111111-aaaa-bbbb-cccc-EXAMPLE01234\"}"

*/ @property (nonatomic, strong) NSString * _Nullable content; /**

The content type of the request. Supported types are:

  • application/vnd.amazonaws.connect.event.typing

  • application/vnd.amazonaws.connect.event.connection.acknowledged

  • application/vnd.amazonaws.connect.event.message.delivered

  • application/vnd.amazonaws.connect.event.message.read

*/ @property (nonatomic, strong) NSString * _Nullable contentType; @end /** */ @interface AWSConnectParticipantSendEventResponse : AWSModel /**

The time when the event was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable absoluteTime; /**

The ID of the response.

*/ @property (nonatomic, strong) NSString * _Nullable identifier; @end /** */ @interface AWSConnectParticipantSendMessageRequest : AWSRequest /**

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

*/ @property (nonatomic, strong) NSString * _Nullable clientToken; /**

The authentication token associated with the connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; /**

The content of the message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

  • For application/vnd.amazonaws.connect.message.interactive.response, the Length Constraints are Minimum of 1, Maximum of 12288.

*/ @property (nonatomic, strong) NSString * _Nullable content; /**

The type of the content. Supported types are text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response.

*/ @property (nonatomic, strong) NSString * _Nullable contentType; @end /** */ @interface AWSConnectParticipantSendMessageResponse : AWSModel /**

The time when the message was sent.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable absoluteTime; /**

The ID of the message.

*/ @property (nonatomic, strong) NSString * _Nullable identifier; @end /** */ @interface AWSConnectParticipantStartAttachmentUploadRequest : AWSRequest /**

A case-sensitive name of the attachment being uploaded.

*/ @property (nonatomic, strong) NSString * _Nullable attachmentName; /**

The size of the attachment in bytes.

*/ @property (nonatomic, strong) NSNumber * _Nullable attachmentSizeInBytes; /**

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

*/ @property (nonatomic, strong) NSString * _Nullable clientToken; /**

The authentication token associated with the participant's connection.

*/ @property (nonatomic, strong) NSString * _Nullable connectionToken; /**

Describes the MIME file type of the attachment. For a list of supported file types, see Feature specifications in the Amazon Connect Administrator Guide.

*/ @property (nonatomic, strong) NSString * _Nullable contentType; @end /** */ @interface AWSConnectParticipantStartAttachmentUploadResponse : AWSModel /**

A unique identifier for the attachment.

*/ @property (nonatomic, strong) NSString * _Nullable attachmentId; /**

Fields to be used while uploading the attachment.

*/ @property (nonatomic, strong) AWSConnectParticipantUploadMetadata * _Nullable uploadMetadata; @end /**

A filtering option for where to start. For example, if you sent 100 messages, start with message 50.

*/ @interface AWSConnectParticipantStartPosition : AWSModel /**

The time in ISO format where to start.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable absoluteTime; /**

The ID of the message or event where to start.

*/ @property (nonatomic, strong) NSString * _Nullable identifier; /**

The start position of the most recent message where you want to start.

*/ @property (nonatomic, strong) NSNumber * _Nullable mostRecent; @end /**

Fields to be used while uploading the attachment.

*/ @interface AWSConnectParticipantUploadMetadata : AWSModel /**

The headers to be provided while uploading the file to the URL.

*/ @property (nonatomic, strong) NSDictionary * _Nullable headersToInclude; /**

This is the pre-signed URL that can be used for uploading the file to Amazon S3 when used in response to StartAttachmentUpload.

*/ @property (nonatomic, strong) NSString * _Nullable url; /**

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable urlExpiry; @end /**

The websocket for the participant's connection.

*/ @interface AWSConnectParticipantWebsocket : AWSModel /**

The URL expiration timestamp in ISO date format.

It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

*/ @property (nonatomic, strong) NSString * _Nullable connectionExpiry; /**

The URL of the websocket.

*/ @property (nonatomic, strong) NSString * _Nullable url; @end NS_ASSUME_NONNULL_END