/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Connect { namespace Model { /** */ class StartChatContactRequest : public ConnectRequest { public: AWS_CONNECT_API StartChatContactRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "StartChatContact"; } AWS_CONNECT_API Aws::String SerializePayload() const override; /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline StartChatContactRequest& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline StartChatContactRequest& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The identifier of the Amazon Connect instance. You can find * the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ inline StartChatContactRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline const Aws::String& GetContactFlowId() const{ return m_contactFlowId; } /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline bool ContactFlowIdHasBeenSet() const { return m_contactFlowIdHasBeenSet; } /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline void SetContactFlowId(const Aws::String& value) { m_contactFlowIdHasBeenSet = true; m_contactFlowId = value; } /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline void SetContactFlowId(Aws::String&& value) { m_contactFlowIdHasBeenSet = true; m_contactFlowId = std::move(value); } /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline void SetContactFlowId(const char* value) { m_contactFlowIdHasBeenSet = true; m_contactFlowId.assign(value); } /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline StartChatContactRequest& WithContactFlowId(const Aws::String& value) { SetContactFlowId(value); return *this;} /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline StartChatContactRequest& WithContactFlowId(Aws::String&& value) { SetContactFlowId(std::move(value)); return *this;} /** *

The identifier of the flow for initiating the chat. To see the ContactFlowId * in the Amazon Connect console user interface, on the navigation menu go to * Routing, Contact Flows. Choose the flow. On the flow page, under * the name of the flow, choose Show additional flow information. The * ContactFlowId is the last part of the ARN, shown here in bold:

*

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx *

*/ inline StartChatContactRequest& WithContactFlowId(const char* value) { SetContactFlowId(value); return *this;} /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

A custom key-value pair using an attribute map. The attributes are standard * Amazon Connect attributes. They can be accessed in flows just like any other * contact attributes.

There can be up to 32,768 UTF-8 bytes across all * key-value pairs per contact. Attribute keys can include only alphanumeric, dash, * and underscore characters.

*/ inline StartChatContactRequest& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

Information identifying the participant.

*/ inline const ParticipantDetails& GetParticipantDetails() const{ return m_participantDetails; } /** *

Information identifying the participant.

*/ inline bool ParticipantDetailsHasBeenSet() const { return m_participantDetailsHasBeenSet; } /** *

Information identifying the participant.

*/ inline void SetParticipantDetails(const ParticipantDetails& value) { m_participantDetailsHasBeenSet = true; m_participantDetails = value; } /** *

Information identifying the participant.

*/ inline void SetParticipantDetails(ParticipantDetails&& value) { m_participantDetailsHasBeenSet = true; m_participantDetails = std::move(value); } /** *

Information identifying the participant.

*/ inline StartChatContactRequest& WithParticipantDetails(const ParticipantDetails& value) { SetParticipantDetails(value); return *this;} /** *

Information identifying the participant.

*/ inline StartChatContactRequest& WithParticipantDetails(ParticipantDetails&& value) { SetParticipantDetails(std::move(value)); return *this;} /** *

The initial message to be sent to the newly created chat.

*/ inline const ChatMessage& GetInitialMessage() const{ return m_initialMessage; } /** *

The initial message to be sent to the newly created chat.

*/ inline bool InitialMessageHasBeenSet() const { return m_initialMessageHasBeenSet; } /** *

The initial message to be sent to the newly created chat.

*/ inline void SetInitialMessage(const ChatMessage& value) { m_initialMessageHasBeenSet = true; m_initialMessage = value; } /** *

The initial message to be sent to the newly created chat.

*/ inline void SetInitialMessage(ChatMessage&& value) { m_initialMessageHasBeenSet = true; m_initialMessage = std::move(value); } /** *

The initial message to be sent to the newly created chat.

*/ inline StartChatContactRequest& WithInitialMessage(const ChatMessage& value) { SetInitialMessage(value); return *this;} /** *

The initial message to be sent to the newly created chat.

*/ inline StartChatContactRequest& WithInitialMessage(ChatMessage&& value) { SetInitialMessage(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

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.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

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.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

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.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

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.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

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.

*/ inline StartChatContactRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

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.

*/ inline StartChatContactRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

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.

*/ inline StartChatContactRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The total duration of the newly started chat session. If not specified, the * chat session duration defaults to 25 hour. The minimum configurable time is 60 * minutes. The maximum configurable time is 10,080 minutes (7 days).

*/ inline int GetChatDurationInMinutes() const{ return m_chatDurationInMinutes; } /** *

The total duration of the newly started chat session. If not specified, the * chat session duration defaults to 25 hour. The minimum configurable time is 60 * minutes. The maximum configurable time is 10,080 minutes (7 days).

*/ inline bool ChatDurationInMinutesHasBeenSet() const { return m_chatDurationInMinutesHasBeenSet; } /** *

The total duration of the newly started chat session. If not specified, the * chat session duration defaults to 25 hour. The minimum configurable time is 60 * minutes. The maximum configurable time is 10,080 minutes (7 days).

*/ inline void SetChatDurationInMinutes(int value) { m_chatDurationInMinutesHasBeenSet = true; m_chatDurationInMinutes = value; } /** *

The total duration of the newly started chat session. If not specified, the * chat session duration defaults to 25 hour. The minimum configurable time is 60 * minutes. The maximum configurable time is 10,080 minutes (7 days).

*/ inline StartChatContactRequest& WithChatDurationInMinutes(int value) { SetChatDurationInMinutes(value); return *this;} /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline const Aws::Vector& GetSupportedMessagingContentTypes() const{ return m_supportedMessagingContentTypes; } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline bool SupportedMessagingContentTypesHasBeenSet() const { return m_supportedMessagingContentTypesHasBeenSet; } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline void SetSupportedMessagingContentTypes(const Aws::Vector& value) { m_supportedMessagingContentTypesHasBeenSet = true; m_supportedMessagingContentTypes = value; } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline void SetSupportedMessagingContentTypes(Aws::Vector&& value) { m_supportedMessagingContentTypesHasBeenSet = true; m_supportedMessagingContentTypes = std::move(value); } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline StartChatContactRequest& WithSupportedMessagingContentTypes(const Aws::Vector& value) { SetSupportedMessagingContentTypes(value); return *this;} /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline StartChatContactRequest& WithSupportedMessagingContentTypes(Aws::Vector&& value) { SetSupportedMessagingContentTypes(std::move(value)); return *this;} /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline StartChatContactRequest& AddSupportedMessagingContentTypes(const Aws::String& value) { m_supportedMessagingContentTypesHasBeenSet = true; m_supportedMessagingContentTypes.push_back(value); return *this; } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline StartChatContactRequest& AddSupportedMessagingContentTypes(Aws::String&& value) { m_supportedMessagingContentTypesHasBeenSet = true; m_supportedMessagingContentTypes.push_back(std::move(value)); return *this; } /** *

The supported chat message content types. Supported types are * text/plain, text/markdown, * application/json, * application/vnd.amazonaws.connect.message.interactive, and * application/vnd.amazonaws.connect.message.interactive.response. *

Content types must always contain text/plain. You can then * put any other supported type in the list. For example, all the following lists * are valid because they contain text/plain: [text/plain, * text/markdown, application/json], [text/markdown, * text/plain], [text/plain, application/json, * application/vnd.amazonaws.connect.message.interactive.response].

*

The type * application/vnd.amazonaws.connect.message.interactive is required * to use the Show * view flow block.

*/ inline StartChatContactRequest& AddSupportedMessagingContentTypes(const char* value) { m_supportedMessagingContentTypesHasBeenSet = true; m_supportedMessagingContentTypes.push_back(value); return *this; } /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline const PersistentChat& GetPersistentChat() const{ return m_persistentChat; } /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline bool PersistentChatHasBeenSet() const { return m_persistentChatHasBeenSet; } /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline void SetPersistentChat(const PersistentChat& value) { m_persistentChatHasBeenSet = true; m_persistentChat = value; } /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline void SetPersistentChat(PersistentChat&& value) { m_persistentChatHasBeenSet = true; m_persistentChat = std::move(value); } /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline StartChatContactRequest& WithPersistentChat(const PersistentChat& value) { SetPersistentChat(value); return *this;} /** *

Enable persistent chats. For more information about enabling persistent chat, * and for example use cases and how to configure for them, see Enable * persistent chat.

*/ inline StartChatContactRequest& WithPersistentChat(PersistentChat&& value) { SetPersistentChat(std::move(value)); return *this;} /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline const Aws::String& GetRelatedContactId() const{ return m_relatedContactId; } /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline bool RelatedContactIdHasBeenSet() const { return m_relatedContactIdHasBeenSet; } /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline void SetRelatedContactId(const Aws::String& value) { m_relatedContactIdHasBeenSet = true; m_relatedContactId = value; } /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline void SetRelatedContactId(Aws::String&& value) { m_relatedContactIdHasBeenSet = true; m_relatedContactId = std::move(value); } /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline void SetRelatedContactId(const char* value) { m_relatedContactIdHasBeenSet = true; m_relatedContactId.assign(value); } /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline StartChatContactRequest& WithRelatedContactId(const Aws::String& value) { SetRelatedContactId(value); return *this;} /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline StartChatContactRequest& WithRelatedContactId(Aws::String&& value) { SetRelatedContactId(std::move(value)); return *this;} /** *

The unique identifier for an Amazon Connect contact. This identifier is * related to the chat starting.

You cannot provide data for both * RelatedContactId and PersistentChat.

*/ inline StartChatContactRequest& WithRelatedContactId(const char* value) { SetRelatedContactId(value); return *this;} private: Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::String m_contactFlowId; bool m_contactFlowIdHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; ParticipantDetails m_participantDetails; bool m_participantDetailsHasBeenSet = false; ChatMessage m_initialMessage; bool m_initialMessageHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; int m_chatDurationInMinutes; bool m_chatDurationInMinutesHasBeenSet = false; Aws::Vector m_supportedMessagingContentTypes; bool m_supportedMessagingContentTypesHasBeenSet = false; PersistentChat m_persistentChat; bool m_persistentChatHasBeenSet = false; Aws::String m_relatedContactId; bool m_relatedContactIdHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws