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

The information for a pool in an Amazon Web Services account.

See * Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) for the pool.

*/ inline const Aws::String& GetPoolArn() const{ return m_poolArn; } /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline bool PoolArnHasBeenSet() const { return m_poolArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline void SetPoolArn(const Aws::String& value) { m_poolArnHasBeenSet = true; m_poolArn = value; } /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline void SetPoolArn(Aws::String&& value) { m_poolArnHasBeenSet = true; m_poolArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline void SetPoolArn(const char* value) { m_poolArnHasBeenSet = true; m_poolArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline PoolInformation& WithPoolArn(const Aws::String& value) { SetPoolArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline PoolInformation& WithPoolArn(Aws::String&& value) { SetPoolArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the pool.

*/ inline PoolInformation& WithPoolArn(const char* value) { SetPoolArn(value); return *this;} /** *

The unique identifier for the pool.

*/ inline const Aws::String& GetPoolId() const{ return m_poolId; } /** *

The unique identifier for the pool.

*/ inline bool PoolIdHasBeenSet() const { return m_poolIdHasBeenSet; } /** *

The unique identifier for the pool.

*/ inline void SetPoolId(const Aws::String& value) { m_poolIdHasBeenSet = true; m_poolId = value; } /** *

The unique identifier for the pool.

*/ inline void SetPoolId(Aws::String&& value) { m_poolIdHasBeenSet = true; m_poolId = std::move(value); } /** *

The unique identifier for the pool.

*/ inline void SetPoolId(const char* value) { m_poolIdHasBeenSet = true; m_poolId.assign(value); } /** *

The unique identifier for the pool.

*/ inline PoolInformation& WithPoolId(const Aws::String& value) { SetPoolId(value); return *this;} /** *

The unique identifier for the pool.

*/ inline PoolInformation& WithPoolId(Aws::String&& value) { SetPoolId(std::move(value)); return *this;} /** *

The unique identifier for the pool.

*/ inline PoolInformation& WithPoolId(const char* value) { SetPoolId(value); return *this;} /** *

The current status of the pool.

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

The current status of the pool.

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

The current status of the pool.

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

The current status of the pool.

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

The current status of the pool.

*/ inline PoolInformation& WithStatus(const PoolStatus& value) { SetStatus(value); return *this;} /** *

The current status of the pool.

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

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline const MessageType& GetMessageType() const{ return m_messageType; } /** *

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline bool MessageTypeHasBeenSet() const { return m_messageTypeHasBeenSet; } /** *

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline void SetMessageType(const MessageType& value) { m_messageTypeHasBeenSet = true; m_messageType = value; } /** *

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline void SetMessageType(MessageType&& value) { m_messageTypeHasBeenSet = true; m_messageType = std::move(value); } /** *

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline PoolInformation& WithMessageType(const MessageType& value) { SetMessageType(value); return *this;} /** *

The type of message. Valid values are TRANSACTIONAL for messages that are * critical or time-sensitive and PROMOTIONAL for messages that aren't critical or * time-sensitive.

*/ inline PoolInformation& WithMessageType(MessageType&& value) { SetMessageType(std::move(value)); return *this;} /** *

When set to true you can receive incoming text messages from your end * recipients using the TwoWayChannelArn.

*/ inline bool GetTwoWayEnabled() const{ return m_twoWayEnabled; } /** *

When set to true you can receive incoming text messages from your end * recipients using the TwoWayChannelArn.

*/ inline bool TwoWayEnabledHasBeenSet() const { return m_twoWayEnabledHasBeenSet; } /** *

When set to true you can receive incoming text messages from your end * recipients using the TwoWayChannelArn.

*/ inline void SetTwoWayEnabled(bool value) { m_twoWayEnabledHasBeenSet = true; m_twoWayEnabled = value; } /** *

When set to true you can receive incoming text messages from your end * recipients using the TwoWayChannelArn.

*/ inline PoolInformation& WithTwoWayEnabled(bool value) { SetTwoWayEnabled(value); return *this;} /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline const Aws::String& GetTwoWayChannelArn() const{ return m_twoWayChannelArn; } /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline bool TwoWayChannelArnHasBeenSet() const { return m_twoWayChannelArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline void SetTwoWayChannelArn(const Aws::String& value) { m_twoWayChannelArnHasBeenSet = true; m_twoWayChannelArn = value; } /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline void SetTwoWayChannelArn(Aws::String&& value) { m_twoWayChannelArnHasBeenSet = true; m_twoWayChannelArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline void SetTwoWayChannelArn(const char* value) { m_twoWayChannelArnHasBeenSet = true; m_twoWayChannelArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline PoolInformation& WithTwoWayChannelArn(const Aws::String& value) { SetTwoWayChannelArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline PoolInformation& WithTwoWayChannelArn(Aws::String&& value) { SetTwoWayChannelArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the two way channel.

*/ inline PoolInformation& WithTwoWayChannelArn(const char* value) { SetTwoWayChannelArn(value); return *this;} /** *

When set to false, an end recipient sends a message that begins with HELP or * STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies * with a customizable message and adds the end recipient to the OptOutList. When * set to true you're responsible for responding to HELP and STOP requests. You're * also responsible for tracking and honoring opt-out requests. For more * information see Self-managed * opt-outs

*/ inline bool GetSelfManagedOptOutsEnabled() const{ return m_selfManagedOptOutsEnabled; } /** *

When set to false, an end recipient sends a message that begins with HELP or * STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies * with a customizable message and adds the end recipient to the OptOutList. When * set to true you're responsible for responding to HELP and STOP requests. You're * also responsible for tracking and honoring opt-out requests. For more * information see Self-managed * opt-outs

*/ inline bool SelfManagedOptOutsEnabledHasBeenSet() const { return m_selfManagedOptOutsEnabledHasBeenSet; } /** *

When set to false, an end recipient sends a message that begins with HELP or * STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies * with a customizable message and adds the end recipient to the OptOutList. When * set to true you're responsible for responding to HELP and STOP requests. You're * also responsible for tracking and honoring opt-out requests. For more * information see Self-managed * opt-outs

*/ inline void SetSelfManagedOptOutsEnabled(bool value) { m_selfManagedOptOutsEnabledHasBeenSet = true; m_selfManagedOptOutsEnabled = value; } /** *

When set to false, an end recipient sends a message that begins with HELP or * STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies * with a customizable message and adds the end recipient to the OptOutList. When * set to true you're responsible for responding to HELP and STOP requests. You're * also responsible for tracking and honoring opt-out requests. For more * information see Self-managed * opt-outs

*/ inline PoolInformation& WithSelfManagedOptOutsEnabled(bool value) { SetSelfManagedOptOutsEnabled(value); return *this;} /** *

The name of the OptOutList associated with the pool.

*/ inline const Aws::String& GetOptOutListName() const{ return m_optOutListName; } /** *

The name of the OptOutList associated with the pool.

*/ inline bool OptOutListNameHasBeenSet() const { return m_optOutListNameHasBeenSet; } /** *

The name of the OptOutList associated with the pool.

*/ inline void SetOptOutListName(const Aws::String& value) { m_optOutListNameHasBeenSet = true; m_optOutListName = value; } /** *

The name of the OptOutList associated with the pool.

*/ inline void SetOptOutListName(Aws::String&& value) { m_optOutListNameHasBeenSet = true; m_optOutListName = std::move(value); } /** *

The name of the OptOutList associated with the pool.

*/ inline void SetOptOutListName(const char* value) { m_optOutListNameHasBeenSet = true; m_optOutListName.assign(value); } /** *

The name of the OptOutList associated with the pool.

*/ inline PoolInformation& WithOptOutListName(const Aws::String& value) { SetOptOutListName(value); return *this;} /** *

The name of the OptOutList associated with the pool.

*/ inline PoolInformation& WithOptOutListName(Aws::String&& value) { SetOptOutListName(std::move(value)); return *this;} /** *

The name of the OptOutList associated with the pool.

*/ inline PoolInformation& WithOptOutListName(const char* value) { SetOptOutListName(value); return *this;} /** *

Allows you to enable shared routes on your pool.

By default, this is * set to False. If you set this value to True, your * messages are sent using phone numbers or sender IDs (depending on the country) * that are shared with other Amazon Pinpoint users. In some countries, such as the * United States, senders aren't allowed to use shared routes and must use a * dedicated phone number or short code.

*/ inline bool GetSharedRoutesEnabled() const{ return m_sharedRoutesEnabled; } /** *

Allows you to enable shared routes on your pool.

By default, this is * set to False. If you set this value to True, your * messages are sent using phone numbers or sender IDs (depending on the country) * that are shared with other Amazon Pinpoint users. In some countries, such as the * United States, senders aren't allowed to use shared routes and must use a * dedicated phone number or short code.

*/ inline bool SharedRoutesEnabledHasBeenSet() const { return m_sharedRoutesEnabledHasBeenSet; } /** *

Allows you to enable shared routes on your pool.

By default, this is * set to False. If you set this value to True, your * messages are sent using phone numbers or sender IDs (depending on the country) * that are shared with other Amazon Pinpoint users. In some countries, such as the * United States, senders aren't allowed to use shared routes and must use a * dedicated phone number or short code.

*/ inline void SetSharedRoutesEnabled(bool value) { m_sharedRoutesEnabledHasBeenSet = true; m_sharedRoutesEnabled = value; } /** *

Allows you to enable shared routes on your pool.

By default, this is * set to False. If you set this value to True, your * messages are sent using phone numbers or sender IDs (depending on the country) * that are shared with other Amazon Pinpoint users. In some countries, such as the * United States, senders aren't allowed to use shared routes and must use a * dedicated phone number or short code.

*/ inline PoolInformation& WithSharedRoutesEnabled(bool value) { SetSharedRoutesEnabled(value); return *this;} /** *

When set to true the pool can't be deleted.

*/ inline bool GetDeletionProtectionEnabled() const{ return m_deletionProtectionEnabled; } /** *

When set to true the pool can't be deleted.

*/ inline bool DeletionProtectionEnabledHasBeenSet() const { return m_deletionProtectionEnabledHasBeenSet; } /** *

When set to true the pool can't be deleted.

*/ inline void SetDeletionProtectionEnabled(bool value) { m_deletionProtectionEnabledHasBeenSet = true; m_deletionProtectionEnabled = value; } /** *

When set to true the pool can't be deleted.

*/ inline PoolInformation& WithDeletionProtectionEnabled(bool value) { SetDeletionProtectionEnabled(value); return *this;} /** *

The time when the pool was created, in UNIX epoch time format.

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

The time when the pool was created, in UNIX epoch time format.

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

The time when the pool was created, in UNIX epoch time format.

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

The time when the pool was created, in UNIX epoch time format.

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

The time when the pool was created, in UNIX epoch time format.

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

The time when the pool was created, in UNIX epoch time format.

*/ inline PoolInformation& WithCreatedTimestamp(Aws::Utils::DateTime&& value) { SetCreatedTimestamp(std::move(value)); return *this;} private: Aws::String m_poolArn; bool m_poolArnHasBeenSet = false; Aws::String m_poolId; bool m_poolIdHasBeenSet = false; PoolStatus m_status; bool m_statusHasBeenSet = false; MessageType m_messageType; bool m_messageTypeHasBeenSet = false; bool m_twoWayEnabled; bool m_twoWayEnabledHasBeenSet = false; Aws::String m_twoWayChannelArn; bool m_twoWayChannelArnHasBeenSet = false; bool m_selfManagedOptOutsEnabled; bool m_selfManagedOptOutsEnabledHasBeenSet = false; Aws::String m_optOutListName; bool m_optOutListNameHasBeenSet = false; bool m_sharedRoutesEnabled; bool m_sharedRoutesEnabledHasBeenSet = false; bool m_deletionProtectionEnabled; bool m_deletionProtectionEnabledHasBeenSet = false; Aws::Utils::DateTime m_createdTimestamp; bool m_createdTimestampHasBeenSet = false; }; } // namespace Model } // namespace PinpointSMSVoiceV2 } // namespace Aws