/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Connect { namespace Model { /** *

Configuration information for the timer. After the timer configuration is * set, it persists for the duration of the chat. It persists across new contacts * in the chain, for example, transfer contacts.

For more information about * how chat timeouts work, see Set * up chat timeouts for human participants.

See Also:

AWS * API Reference

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

The role of the participant in the chat conversation.

*/ inline const TimerEligibleParticipantRoles& GetParticipantRole() const{ return m_participantRole; } /** *

The role of the participant in the chat conversation.

*/ inline bool ParticipantRoleHasBeenSet() const { return m_participantRoleHasBeenSet; } /** *

The role of the participant in the chat conversation.

*/ inline void SetParticipantRole(const TimerEligibleParticipantRoles& value) { m_participantRoleHasBeenSet = true; m_participantRole = value; } /** *

The role of the participant in the chat conversation.

*/ inline void SetParticipantRole(TimerEligibleParticipantRoles&& value) { m_participantRoleHasBeenSet = true; m_participantRole = std::move(value); } /** *

The role of the participant in the chat conversation.

*/ inline ParticipantTimerConfiguration& WithParticipantRole(const TimerEligibleParticipantRoles& value) { SetParticipantRole(value); return *this;} /** *

The role of the participant in the chat conversation.

*/ inline ParticipantTimerConfiguration& WithParticipantRole(TimerEligibleParticipantRoles&& value) { SetParticipantRole(std::move(value)); return *this;} /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline const ParticipantTimerType& GetTimerType() const{ return m_timerType; } /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline bool TimerTypeHasBeenSet() const { return m_timerTypeHasBeenSet; } /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline void SetTimerType(const ParticipantTimerType& value) { m_timerTypeHasBeenSet = true; m_timerType = value; } /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline void SetTimerType(ParticipantTimerType&& value) { m_timerTypeHasBeenSet = true; m_timerType = std::move(value); } /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline ParticipantTimerConfiguration& WithTimerType(const ParticipantTimerType& value) { SetTimerType(value); return *this;} /** *

The type of timer. IDLE indicates the timer applies for * considering a human chat participant as idle. * DISCONNECT_NONCUSTOMER indicates the timer applies to automatically * disconnecting a chat participant due to idleness.

*/ inline ParticipantTimerConfiguration& WithTimerType(ParticipantTimerType&& value) { SetTimerType(std::move(value)); return *this;} /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline const ParticipantTimerValue& GetTimerValue() const{ return m_timerValue; } /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline bool TimerValueHasBeenSet() const { return m_timerValueHasBeenSet; } /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline void SetTimerValue(const ParticipantTimerValue& value) { m_timerValueHasBeenSet = true; m_timerValue = value; } /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline void SetTimerValue(ParticipantTimerValue&& value) { m_timerValueHasBeenSet = true; m_timerValue = std::move(value); } /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline ParticipantTimerConfiguration& WithTimerValue(const ParticipantTimerValue& value) { SetTimerValue(value); return *this;} /** *

The value of the timer. Either the timer action (Unset to delete the timer), * or the duration of the timer in minutes. Only one value can be set.

*/ inline ParticipantTimerConfiguration& WithTimerValue(ParticipantTimerValue&& value) { SetTimerValue(std::move(value)); return *this;} private: TimerEligibleParticipantRoles m_participantRole; bool m_participantRoleHasBeenSet = false; ParticipantTimerType m_timerType; bool m_timerTypeHasBeenSet = false; ParticipantTimerValue m_timerValue; bool m_timerValueHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws