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

Information about the contact * associated to the user.

See Also:

AWS * API Reference

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

The identifier of the contact in this instance of Amazon Connect.

*/ inline const Aws::String& GetContactId() const{ return m_contactId; } /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline bool ContactIdHasBeenSet() const { return m_contactIdHasBeenSet; } /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline void SetContactId(const Aws::String& value) { m_contactIdHasBeenSet = true; m_contactId = value; } /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline void SetContactId(Aws::String&& value) { m_contactIdHasBeenSet = true; m_contactId = std::move(value); } /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline void SetContactId(const char* value) { m_contactIdHasBeenSet = true; m_contactId.assign(value); } /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline AgentContactReference& WithContactId(const Aws::String& value) { SetContactId(value); return *this;} /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline AgentContactReference& WithContactId(Aws::String&& value) { SetContactId(std::move(value)); return *this;} /** *

The identifier of the contact in this instance of Amazon Connect.

*/ inline AgentContactReference& WithContactId(const char* value) { SetContactId(value); return *this;} /** *

The channel of the contact.

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

The channel of the contact.

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

The channel of the contact.

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

The channel of the contact.

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

The channel of the contact.

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

The channel of the contact.

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

How the contact was initiated.

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

How the contact was initiated.

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

How the contact was initiated.

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

How the contact was initiated.

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

How the contact was initiated.

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

How the contact was initiated.

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

The state * of the contact.

*/ inline const ContactState& GetAgentContactState() const{ return m_agentContactState; } /** *

The state * of the contact.

*/ inline bool AgentContactStateHasBeenSet() const { return m_agentContactStateHasBeenSet; } /** *

The state * of the contact.

*/ inline void SetAgentContactState(const ContactState& value) { m_agentContactStateHasBeenSet = true; m_agentContactState = value; } /** *

The state * of the contact.

*/ inline void SetAgentContactState(ContactState&& value) { m_agentContactStateHasBeenSet = true; m_agentContactState = std::move(value); } /** *

The state * of the contact.

*/ inline AgentContactReference& WithAgentContactState(const ContactState& value) { SetAgentContactState(value); return *this;} /** *

The state * of the contact.

*/ inline AgentContactReference& WithAgentContactState(ContactState&& value) { SetAgentContactState(std::move(value)); return *this;} /** *

The epoch timestamp when the contact state started.

*/ inline const Aws::Utils::DateTime& GetStateStartTimestamp() const{ return m_stateStartTimestamp; } /** *

The epoch timestamp when the contact state started.

*/ inline bool StateStartTimestampHasBeenSet() const { return m_stateStartTimestampHasBeenSet; } /** *

The epoch timestamp when the contact state started.

*/ inline void SetStateStartTimestamp(const Aws::Utils::DateTime& value) { m_stateStartTimestampHasBeenSet = true; m_stateStartTimestamp = value; } /** *

The epoch timestamp when the contact state started.

*/ inline void SetStateStartTimestamp(Aws::Utils::DateTime&& value) { m_stateStartTimestampHasBeenSet = true; m_stateStartTimestamp = std::move(value); } /** *

The epoch timestamp when the contact state started.

*/ inline AgentContactReference& WithStateStartTimestamp(const Aws::Utils::DateTime& value) { SetStateStartTimestamp(value); return *this;} /** *

The epoch timestamp when the contact state started.

*/ inline AgentContactReference& WithStateStartTimestamp(Aws::Utils::DateTime&& value) { SetStateStartTimestamp(std::move(value)); return *this;} /** *

The time at which the contact was connected to an agent.

*/ inline const Aws::Utils::DateTime& GetConnectedToAgentTimestamp() const{ return m_connectedToAgentTimestamp; } /** *

The time at which the contact was connected to an agent.

*/ inline bool ConnectedToAgentTimestampHasBeenSet() const { return m_connectedToAgentTimestampHasBeenSet; } /** *

The time at which the contact was connected to an agent.

*/ inline void SetConnectedToAgentTimestamp(const Aws::Utils::DateTime& value) { m_connectedToAgentTimestampHasBeenSet = true; m_connectedToAgentTimestamp = value; } /** *

The time at which the contact was connected to an agent.

*/ inline void SetConnectedToAgentTimestamp(Aws::Utils::DateTime&& value) { m_connectedToAgentTimestampHasBeenSet = true; m_connectedToAgentTimestamp = std::move(value); } /** *

The time at which the contact was connected to an agent.

*/ inline AgentContactReference& WithConnectedToAgentTimestamp(const Aws::Utils::DateTime& value) { SetConnectedToAgentTimestamp(value); return *this;} /** *

The time at which the contact was connected to an agent.

*/ inline AgentContactReference& WithConnectedToAgentTimestamp(Aws::Utils::DateTime&& value) { SetConnectedToAgentTimestamp(std::move(value)); return *this;} inline const QueueReference& GetQueue() const{ return m_queue; } inline bool QueueHasBeenSet() const { return m_queueHasBeenSet; } inline void SetQueue(const QueueReference& value) { m_queueHasBeenSet = true; m_queue = value; } inline void SetQueue(QueueReference&& value) { m_queueHasBeenSet = true; m_queue = std::move(value); } inline AgentContactReference& WithQueue(const QueueReference& value) { SetQueue(value); return *this;} inline AgentContactReference& WithQueue(QueueReference&& value) { SetQueue(std::move(value)); return *this;} private: Aws::String m_contactId; bool m_contactIdHasBeenSet = false; Channel m_channel; bool m_channelHasBeenSet = false; ContactInitiationMethod m_initiationMethod; bool m_initiationMethodHasBeenSet = false; ContactState m_agentContactState; bool m_agentContactStateHasBeenSet = false; Aws::Utils::DateTime m_stateStartTimestamp; bool m_stateStartTimestampHasBeenSet = false; Aws::Utils::DateTime m_connectedToAgentTimestamp; bool m_connectedToAgentTimestampHasBeenSet = false; QueueReference m_queue; bool m_queueHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws