/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Connect { namespace Model { /** *

Contains information about a contact.

See Also:

AWS API * Reference

*/ class Contact { public: AWS_CONNECT_API Contact(); AWS_CONNECT_API Contact(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API Contact& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline Contact& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline Contact& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the contact.

*/ inline Contact& WithArn(const char* value) { SetArn(value); return *this;} /** *

The identifier for the contact.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The identifier for the contact.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The identifier for the contact.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The identifier for the contact.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The identifier for the contact.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The identifier for the contact.

*/ inline Contact& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The identifier for the contact.

*/ inline Contact& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The identifier for the contact.

*/ inline Contact& WithId(const char* value) { SetId(value); return *this;} /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline const Aws::String& GetInitialContactId() const{ return m_initialContactId; } /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline bool InitialContactIdHasBeenSet() const { return m_initialContactIdHasBeenSet; } /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline void SetInitialContactId(const Aws::String& value) { m_initialContactIdHasBeenSet = true; m_initialContactId = value; } /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline void SetInitialContactId(Aws::String&& value) { m_initialContactIdHasBeenSet = true; m_initialContactId = std::move(value); } /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline void SetInitialContactId(const char* value) { m_initialContactIdHasBeenSet = true; m_initialContactId.assign(value); } /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline Contact& WithInitialContactId(const Aws::String& value) { SetInitialContactId(value); return *this;} /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline Contact& WithInitialContactId(Aws::String&& value) { SetInitialContactId(std::move(value)); return *this;} /** *

If this contact is related to other contacts, this is the ID of the initial * contact.

*/ inline Contact& WithInitialContactId(const char* value) { SetInitialContactId(value); return *this;} /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline const Aws::String& GetPreviousContactId() const{ return m_previousContactId; } /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline bool PreviousContactIdHasBeenSet() const { return m_previousContactIdHasBeenSet; } /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline void SetPreviousContactId(const Aws::String& value) { m_previousContactIdHasBeenSet = true; m_previousContactId = value; } /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline void SetPreviousContactId(Aws::String&& value) { m_previousContactIdHasBeenSet = true; m_previousContactId = std::move(value); } /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline void SetPreviousContactId(const char* value) { m_previousContactIdHasBeenSet = true; m_previousContactId.assign(value); } /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline Contact& WithPreviousContactId(const Aws::String& value) { SetPreviousContactId(value); return *this;} /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline Contact& WithPreviousContactId(Aws::String&& value) { SetPreviousContactId(std::move(value)); return *this;} /** *

If this contact is not the first contact, this is the ID of the previous * contact.

*/ inline Contact& WithPreviousContactId(const char* value) { SetPreviousContactId(value); return *this;} /** *

Indicates how the contact was initiated.

*/ inline const ContactInitiationMethod& GetInitiationMethod() const{ return m_initiationMethod; } /** *

Indicates how the contact was initiated.

*/ inline bool InitiationMethodHasBeenSet() const { return m_initiationMethodHasBeenSet; } /** *

Indicates how the contact was initiated.

*/ inline void SetInitiationMethod(const ContactInitiationMethod& value) { m_initiationMethodHasBeenSet = true; m_initiationMethod = value; } /** *

Indicates how the contact was initiated.

*/ inline void SetInitiationMethod(ContactInitiationMethod&& value) { m_initiationMethodHasBeenSet = true; m_initiationMethod = std::move(value); } /** *

Indicates how the contact was initiated.

*/ inline Contact& WithInitiationMethod(const ContactInitiationMethod& value) { SetInitiationMethod(value); return *this;} /** *

Indicates how the contact was initiated.

*/ inline Contact& WithInitiationMethod(ContactInitiationMethod&& value) { SetInitiationMethod(std::move(value)); return *this;} /** *

The name of the contact.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the contact.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the contact.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the contact.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the contact.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the contact.

*/ inline Contact& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the contact.

*/ inline Contact& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the contact.

*/ inline Contact& WithName(const char* value) { SetName(value); return *this;} /** *

The description of the contact.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the contact.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the contact.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the contact.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the contact.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the contact.

*/ inline Contact& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the contact.

*/ inline Contact& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the contact.

*/ inline Contact& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

How the contact reached your contact center.

*/ inline const Channel& GetChannel() const{ return m_channel; } /** *

How the contact reached your contact center.

*/ inline bool ChannelHasBeenSet() const { return m_channelHasBeenSet; } /** *

How the contact reached your contact center.

*/ inline void SetChannel(const Channel& value) { m_channelHasBeenSet = true; m_channel = value; } /** *

How the contact reached your contact center.

*/ inline void SetChannel(Channel&& value) { m_channelHasBeenSet = true; m_channel = std::move(value); } /** *

How the contact reached your contact center.

*/ inline Contact& WithChannel(const Channel& value) { SetChannel(value); return *this;} /** *

How the contact reached your contact center.

*/ inline Contact& WithChannel(Channel&& value) { SetChannel(std::move(value)); return *this;} /** *

If this contact was queued, this contains information about the queue.

*/ inline const QueueInfo& GetQueueInfo() const{ return m_queueInfo; } /** *

If this contact was queued, this contains information about the queue.

*/ inline bool QueueInfoHasBeenSet() const { return m_queueInfoHasBeenSet; } /** *

If this contact was queued, this contains information about the queue.

*/ inline void SetQueueInfo(const QueueInfo& value) { m_queueInfoHasBeenSet = true; m_queueInfo = value; } /** *

If this contact was queued, this contains information about the queue.

*/ inline void SetQueueInfo(QueueInfo&& value) { m_queueInfoHasBeenSet = true; m_queueInfo = std::move(value); } /** *

If this contact was queued, this contains information about the queue.

*/ inline Contact& WithQueueInfo(const QueueInfo& value) { SetQueueInfo(value); return *this;} /** *

If this contact was queued, this contains information about the queue.

*/ inline Contact& WithQueueInfo(QueueInfo&& value) { SetQueueInfo(std::move(value)); return *this;} /** *

Information about the agent who accepted the contact.

*/ inline const AgentInfo& GetAgentInfo() const{ return m_agentInfo; } /** *

Information about the agent who accepted the contact.

*/ inline bool AgentInfoHasBeenSet() const { return m_agentInfoHasBeenSet; } /** *

Information about the agent who accepted the contact.

*/ inline void SetAgentInfo(const AgentInfo& value) { m_agentInfoHasBeenSet = true; m_agentInfo = value; } /** *

Information about the agent who accepted the contact.

*/ inline void SetAgentInfo(AgentInfo&& value) { m_agentInfoHasBeenSet = true; m_agentInfo = std::move(value); } /** *

Information about the agent who accepted the contact.

*/ inline Contact& WithAgentInfo(const AgentInfo& value) { SetAgentInfo(value); return *this;} /** *

Information about the agent who accepted the contact.

*/ inline Contact& WithAgentInfo(AgentInfo&& value) { SetAgentInfo(std::move(value)); return *this;} /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline const Aws::Utils::DateTime& GetInitiationTimestamp() const{ return m_initiationTimestamp; } /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline bool InitiationTimestampHasBeenSet() const { return m_initiationTimestampHasBeenSet; } /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline void SetInitiationTimestamp(const Aws::Utils::DateTime& value) { m_initiationTimestampHasBeenSet = true; m_initiationTimestamp = value; } /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline void SetInitiationTimestamp(Aws::Utils::DateTime&& value) { m_initiationTimestampHasBeenSet = true; m_initiationTimestamp = std::move(value); } /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline Contact& WithInitiationTimestamp(const Aws::Utils::DateTime& value) { SetInitiationTimestamp(value); return *this;} /** *

The date and time this contact was initiated, in UTC time. For * INBOUND, this is when the contact arrived. For * OUTBOUND, this is when the agent began dialing. For * CALLBACK, this is when the callback contact was created. For * TRANSFER and QUEUE_TRANSFER, this is when the transfer * was initiated. For API, this is when the request arrived. For * EXTERNAL_OUTBOUND, this is when the agent started dialing the * external participant. For MONITOR, this is when the supervisor * started listening to a contact.

*/ inline Contact& WithInitiationTimestamp(Aws::Utils::DateTime&& value) { SetInitiationTimestamp(std::move(value)); return *this;} /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline const Aws::Utils::DateTime& GetDisconnectTimestamp() const{ return m_disconnectTimestamp; } /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline bool DisconnectTimestampHasBeenSet() const { return m_disconnectTimestampHasBeenSet; } /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline void SetDisconnectTimestamp(const Aws::Utils::DateTime& value) { m_disconnectTimestampHasBeenSet = true; m_disconnectTimestamp = value; } /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline void SetDisconnectTimestamp(Aws::Utils::DateTime&& value) { m_disconnectTimestampHasBeenSet = true; m_disconnectTimestamp = std::move(value); } /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline Contact& WithDisconnectTimestamp(const Aws::Utils::DateTime& value) { SetDisconnectTimestamp(value); return *this;} /** *

The timestamp when the customer endpoint disconnected from Amazon * Connect.

*/ inline Contact& WithDisconnectTimestamp(Aws::Utils::DateTime&& value) { SetDisconnectTimestamp(std::move(value)); return *this;} /** *

The timestamp when contact was last updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdateTimestamp() const{ return m_lastUpdateTimestamp; } /** *

The timestamp when contact was last updated.

*/ inline bool LastUpdateTimestampHasBeenSet() const { return m_lastUpdateTimestampHasBeenSet; } /** *

The timestamp when contact was last updated.

*/ inline void SetLastUpdateTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = value; } /** *

The timestamp when contact was last updated.

*/ inline void SetLastUpdateTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = std::move(value); } /** *

The timestamp when contact was last updated.

*/ inline Contact& WithLastUpdateTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdateTimestamp(value); return *this;} /** *

The timestamp when contact was last updated.

*/ inline Contact& WithLastUpdateTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdateTimestamp(std::move(value)); return *this;} /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline const Aws::Utils::DateTime& GetScheduledTimestamp() const{ return m_scheduledTimestamp; } /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline bool ScheduledTimestampHasBeenSet() const { return m_scheduledTimestampHasBeenSet; } /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline void SetScheduledTimestamp(const Aws::Utils::DateTime& value) { m_scheduledTimestampHasBeenSet = true; m_scheduledTimestamp = value; } /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline void SetScheduledTimestamp(Aws::Utils::DateTime&& value) { m_scheduledTimestampHasBeenSet = true; m_scheduledTimestamp = std::move(value); } /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline Contact& WithScheduledTimestamp(const Aws::Utils::DateTime& value) { SetScheduledTimestamp(value); return *this;} /** *

The timestamp, in Unix epoch time format, at which to start running the * inbound flow.

*/ inline Contact& WithScheduledTimestamp(Aws::Utils::DateTime&& value) { SetScheduledTimestamp(std::move(value)); return *this;} /** *

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

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

The contactId that is related * to this contact.

*/ inline Contact& WithRelatedContactId(const char* value) { SetRelatedContactId(value); return *this;} /** *

Information about Amazon Connect Wisdom.

*/ inline const WisdomInfo& GetWisdomInfo() const{ return m_wisdomInfo; } /** *

Information about Amazon Connect Wisdom.

*/ inline bool WisdomInfoHasBeenSet() const { return m_wisdomInfoHasBeenSet; } /** *

Information about Amazon Connect Wisdom.

*/ inline void SetWisdomInfo(const WisdomInfo& value) { m_wisdomInfoHasBeenSet = true; m_wisdomInfo = value; } /** *

Information about Amazon Connect Wisdom.

*/ inline void SetWisdomInfo(WisdomInfo&& value) { m_wisdomInfoHasBeenSet = true; m_wisdomInfo = std::move(value); } /** *

Information about Amazon Connect Wisdom.

*/ inline Contact& WithWisdomInfo(const WisdomInfo& value) { SetWisdomInfo(value); return *this;} /** *

Information about Amazon Connect Wisdom.

*/ inline Contact& WithWisdomInfo(WisdomInfo&& value) { SetWisdomInfo(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_initialContactId; bool m_initialContactIdHasBeenSet = false; Aws::String m_previousContactId; bool m_previousContactIdHasBeenSet = false; ContactInitiationMethod m_initiationMethod; bool m_initiationMethodHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Channel m_channel; bool m_channelHasBeenSet = false; QueueInfo m_queueInfo; bool m_queueInfoHasBeenSet = false; AgentInfo m_agentInfo; bool m_agentInfoHasBeenSet = false; Aws::Utils::DateTime m_initiationTimestamp; bool m_initiationTimestampHasBeenSet = false; Aws::Utils::DateTime m_disconnectTimestamp; bool m_disconnectTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastUpdateTimestamp; bool m_lastUpdateTimestampHasBeenSet = false; Aws::Utils::DateTime m_scheduledTimestamp; bool m_scheduledTimestampHasBeenSet = false; Aws::String m_relatedContactId; bool m_relatedContactIdHasBeenSet = false; WisdomInfo m_wisdomInfo; bool m_wisdomInfoHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws