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

The proxy session for an Amazon Chime SDK Voice Connector.

See * Also:

AWS * API Reference

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

The Voice Connector ID.

*/ inline const Aws::String& GetVoiceConnectorId() const{ return m_voiceConnectorId; } /** *

The Voice Connector ID.

*/ inline bool VoiceConnectorIdHasBeenSet() const { return m_voiceConnectorIdHasBeenSet; } /** *

The Voice Connector ID.

*/ inline void SetVoiceConnectorId(const Aws::String& value) { m_voiceConnectorIdHasBeenSet = true; m_voiceConnectorId = value; } /** *

The Voice Connector ID.

*/ inline void SetVoiceConnectorId(Aws::String&& value) { m_voiceConnectorIdHasBeenSet = true; m_voiceConnectorId = std::move(value); } /** *

The Voice Connector ID.

*/ inline void SetVoiceConnectorId(const char* value) { m_voiceConnectorIdHasBeenSet = true; m_voiceConnectorId.assign(value); } /** *

The Voice Connector ID.

*/ inline ProxySession& WithVoiceConnectorId(const Aws::String& value) { SetVoiceConnectorId(value); return *this;} /** *

The Voice Connector ID.

*/ inline ProxySession& WithVoiceConnectorId(Aws::String&& value) { SetVoiceConnectorId(std::move(value)); return *this;} /** *

The Voice Connector ID.

*/ inline ProxySession& WithVoiceConnectorId(const char* value) { SetVoiceConnectorId(value); return *this;} /** *

The proxy session ID.

*/ inline const Aws::String& GetProxySessionId() const{ return m_proxySessionId; } /** *

The proxy session ID.

*/ inline bool ProxySessionIdHasBeenSet() const { return m_proxySessionIdHasBeenSet; } /** *

The proxy session ID.

*/ inline void SetProxySessionId(const Aws::String& value) { m_proxySessionIdHasBeenSet = true; m_proxySessionId = value; } /** *

The proxy session ID.

*/ inline void SetProxySessionId(Aws::String&& value) { m_proxySessionIdHasBeenSet = true; m_proxySessionId = std::move(value); } /** *

The proxy session ID.

*/ inline void SetProxySessionId(const char* value) { m_proxySessionIdHasBeenSet = true; m_proxySessionId.assign(value); } /** *

The proxy session ID.

*/ inline ProxySession& WithProxySessionId(const Aws::String& value) { SetProxySessionId(value); return *this;} /** *

The proxy session ID.

*/ inline ProxySession& WithProxySessionId(Aws::String&& value) { SetProxySessionId(std::move(value)); return *this;} /** *

The proxy session ID.

*/ inline ProxySession& WithProxySessionId(const char* value) { SetProxySessionId(value); return *this;} /** *

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session name.

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

The proxy session status.

*/ inline const ProxySessionStatus& GetStatus() const{ return m_status; } /** *

The proxy session status.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The proxy session status.

*/ inline void SetStatus(const ProxySessionStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The proxy session status.

*/ inline void SetStatus(ProxySessionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The proxy session status.

*/ inline ProxySession& WithStatus(const ProxySessionStatus& value) { SetStatus(value); return *this;} /** *

The proxy session status.

*/ inline ProxySession& WithStatus(ProxySessionStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The number of minutes allowed for the proxy session.

*/ inline int GetExpiryMinutes() const{ return m_expiryMinutes; } /** *

The number of minutes allowed for the proxy session.

*/ inline bool ExpiryMinutesHasBeenSet() const { return m_expiryMinutesHasBeenSet; } /** *

The number of minutes allowed for the proxy session.

*/ inline void SetExpiryMinutes(int value) { m_expiryMinutesHasBeenSet = true; m_expiryMinutes = value; } /** *

The number of minutes allowed for the proxy session.

*/ inline ProxySession& WithExpiryMinutes(int value) { SetExpiryMinutes(value); return *this;} /** *

The proxy session capabilities.

*/ inline const Aws::Vector& GetCapabilities() const{ return m_capabilities; } /** *

The proxy session capabilities.

*/ inline bool CapabilitiesHasBeenSet() const { return m_capabilitiesHasBeenSet; } /** *

The proxy session capabilities.

*/ inline void SetCapabilities(const Aws::Vector& value) { m_capabilitiesHasBeenSet = true; m_capabilities = value; } /** *

The proxy session capabilities.

*/ inline void SetCapabilities(Aws::Vector&& value) { m_capabilitiesHasBeenSet = true; m_capabilities = std::move(value); } /** *

The proxy session capabilities.

*/ inline ProxySession& WithCapabilities(const Aws::Vector& value) { SetCapabilities(value); return *this;} /** *

The proxy session capabilities.

*/ inline ProxySession& WithCapabilities(Aws::Vector&& value) { SetCapabilities(std::move(value)); return *this;} /** *

The proxy session capabilities.

*/ inline ProxySession& AddCapabilities(const Capability& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(value); return *this; } /** *

The proxy session capabilities.

*/ inline ProxySession& AddCapabilities(Capability&& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(std::move(value)); return *this; } /** *

The created time stamp, in ISO 8601 format.

*/ inline const Aws::Utils::DateTime& GetCreatedTimestamp() const{ return m_createdTimestamp; } /** *

The created time stamp, in ISO 8601 format.

*/ inline bool CreatedTimestampHasBeenSet() const { return m_createdTimestampHasBeenSet; } /** *

The created time stamp, in ISO 8601 format.

*/ inline void SetCreatedTimestamp(const Aws::Utils::DateTime& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = value; } /** *

The created time stamp, in ISO 8601 format.

*/ inline void SetCreatedTimestamp(Aws::Utils::DateTime&& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = std::move(value); } /** *

The created time stamp, in ISO 8601 format.

*/ inline ProxySession& WithCreatedTimestamp(const Aws::Utils::DateTime& value) { SetCreatedTimestamp(value); return *this;} /** *

The created time stamp, in ISO 8601 format.

*/ inline ProxySession& WithCreatedTimestamp(Aws::Utils::DateTime&& value) { SetCreatedTimestamp(std::move(value)); return *this;} /** *

The updated time stamp, in ISO 8601 format.

*/ inline const Aws::Utils::DateTime& GetUpdatedTimestamp() const{ return m_updatedTimestamp; } /** *

The updated time stamp, in ISO 8601 format.

*/ inline bool UpdatedTimestampHasBeenSet() const { return m_updatedTimestampHasBeenSet; } /** *

The updated time stamp, in ISO 8601 format.

*/ inline void SetUpdatedTimestamp(const Aws::Utils::DateTime& value) { m_updatedTimestampHasBeenSet = true; m_updatedTimestamp = value; } /** *

The updated time stamp, in ISO 8601 format.

*/ inline void SetUpdatedTimestamp(Aws::Utils::DateTime&& value) { m_updatedTimestampHasBeenSet = true; m_updatedTimestamp = std::move(value); } /** *

The updated time stamp, in ISO 8601 format.

*/ inline ProxySession& WithUpdatedTimestamp(const Aws::Utils::DateTime& value) { SetUpdatedTimestamp(value); return *this;} /** *

The updated time stamp, in ISO 8601 format.

*/ inline ProxySession& WithUpdatedTimestamp(Aws::Utils::DateTime&& value) { SetUpdatedTimestamp(std::move(value)); return *this;} /** *

The ended time stamp, in ISO 8601 format.

*/ inline const Aws::Utils::DateTime& GetEndedTimestamp() const{ return m_endedTimestamp; } /** *

The ended time stamp, in ISO 8601 format.

*/ inline bool EndedTimestampHasBeenSet() const { return m_endedTimestampHasBeenSet; } /** *

The ended time stamp, in ISO 8601 format.

*/ inline void SetEndedTimestamp(const Aws::Utils::DateTime& value) { m_endedTimestampHasBeenSet = true; m_endedTimestamp = value; } /** *

The ended time stamp, in ISO 8601 format.

*/ inline void SetEndedTimestamp(Aws::Utils::DateTime&& value) { m_endedTimestampHasBeenSet = true; m_endedTimestamp = std::move(value); } /** *

The ended time stamp, in ISO 8601 format.

*/ inline ProxySession& WithEndedTimestamp(const Aws::Utils::DateTime& value) { SetEndedTimestamp(value); return *this;} /** *

The ended time stamp, in ISO 8601 format.

*/ inline ProxySession& WithEndedTimestamp(Aws::Utils::DateTime&& value) { SetEndedTimestamp(std::move(value)); return *this;} /** *

The proxy session participants.

*/ inline const Aws::Vector& GetParticipants() const{ return m_participants; } /** *

The proxy session participants.

*/ inline bool ParticipantsHasBeenSet() const { return m_participantsHasBeenSet; } /** *

The proxy session participants.

*/ inline void SetParticipants(const Aws::Vector& value) { m_participantsHasBeenSet = true; m_participants = value; } /** *

The proxy session participants.

*/ inline void SetParticipants(Aws::Vector&& value) { m_participantsHasBeenSet = true; m_participants = std::move(value); } /** *

The proxy session participants.

*/ inline ProxySession& WithParticipants(const Aws::Vector& value) { SetParticipants(value); return *this;} /** *

The proxy session participants.

*/ inline ProxySession& WithParticipants(Aws::Vector&& value) { SetParticipants(std::move(value)); return *this;} /** *

The proxy session participants.

*/ inline ProxySession& AddParticipants(const Participant& value) { m_participantsHasBeenSet = true; m_participants.push_back(value); return *this; } /** *

The proxy session participants.

*/ inline ProxySession& AddParticipants(Participant&& value) { m_participantsHasBeenSet = true; m_participants.push_back(std::move(value)); return *this; } /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline const NumberSelectionBehavior& GetNumberSelectionBehavior() const{ return m_numberSelectionBehavior; } /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline bool NumberSelectionBehaviorHasBeenSet() const { return m_numberSelectionBehaviorHasBeenSet; } /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline void SetNumberSelectionBehavior(const NumberSelectionBehavior& value) { m_numberSelectionBehaviorHasBeenSet = true; m_numberSelectionBehavior = value; } /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline void SetNumberSelectionBehavior(NumberSelectionBehavior&& value) { m_numberSelectionBehaviorHasBeenSet = true; m_numberSelectionBehavior = std::move(value); } /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline ProxySession& WithNumberSelectionBehavior(const NumberSelectionBehavior& value) { SetNumberSelectionBehavior(value); return *this;} /** *

The preference for proxy phone number reuse, or stickiness, between the same * participants across sessions.

*/ inline ProxySession& WithNumberSelectionBehavior(NumberSelectionBehavior&& value) { SetNumberSelectionBehavior(std::move(value)); return *this;} /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline const GeoMatchLevel& GetGeoMatchLevel() const{ return m_geoMatchLevel; } /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline bool GeoMatchLevelHasBeenSet() const { return m_geoMatchLevelHasBeenSet; } /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline void SetGeoMatchLevel(const GeoMatchLevel& value) { m_geoMatchLevelHasBeenSet = true; m_geoMatchLevel = value; } /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline void SetGeoMatchLevel(GeoMatchLevel&& value) { m_geoMatchLevelHasBeenSet = true; m_geoMatchLevel = std::move(value); } /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline ProxySession& WithGeoMatchLevel(const GeoMatchLevel& value) { SetGeoMatchLevel(value); return *this;} /** *

The preference for matching the country or area code of the proxy phone * number with that of the first participant.

*/ inline ProxySession& WithGeoMatchLevel(GeoMatchLevel&& value) { SetGeoMatchLevel(std::move(value)); return *this;} /** *

The country and area code for the proxy phone number.

*/ inline const GeoMatchParams& GetGeoMatchParams() const{ return m_geoMatchParams; } /** *

The country and area code for the proxy phone number.

*/ inline bool GeoMatchParamsHasBeenSet() const { return m_geoMatchParamsHasBeenSet; } /** *

The country and area code for the proxy phone number.

*/ inline void SetGeoMatchParams(const GeoMatchParams& value) { m_geoMatchParamsHasBeenSet = true; m_geoMatchParams = value; } /** *

The country and area code for the proxy phone number.

*/ inline void SetGeoMatchParams(GeoMatchParams&& value) { m_geoMatchParamsHasBeenSet = true; m_geoMatchParams = std::move(value); } /** *

The country and area code for the proxy phone number.

*/ inline ProxySession& WithGeoMatchParams(const GeoMatchParams& value) { SetGeoMatchParams(value); return *this;} /** *

The country and area code for the proxy phone number.

*/ inline ProxySession& WithGeoMatchParams(GeoMatchParams&& value) { SetGeoMatchParams(std::move(value)); return *this;} private: Aws::String m_voiceConnectorId; bool m_voiceConnectorIdHasBeenSet = false; Aws::String m_proxySessionId; bool m_proxySessionIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; ProxySessionStatus m_status; bool m_statusHasBeenSet = false; int m_expiryMinutes; bool m_expiryMinutesHasBeenSet = false; Aws::Vector m_capabilities; bool m_capabilitiesHasBeenSet = false; Aws::Utils::DateTime m_createdTimestamp; bool m_createdTimestampHasBeenSet = false; Aws::Utils::DateTime m_updatedTimestamp; bool m_updatedTimestampHasBeenSet = false; Aws::Utils::DateTime m_endedTimestamp; bool m_endedTimestampHasBeenSet = false; Aws::Vector m_participants; bool m_participantsHasBeenSet = false; NumberSelectionBehavior m_numberSelectionBehavior; bool m_numberSelectionBehaviorHasBeenSet = false; GeoMatchLevel m_geoMatchLevel; bool m_geoMatchLevelHasBeenSet = false; GeoMatchParams m_geoMatchParams; bool m_geoMatchParamsHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKVoice } // namespace Aws