/** * 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 namespace Aws { namespace PinpointSMSVoiceV2 { namespace Model { /** */ class RequestPhoneNumberRequest : public PinpointSMSVoiceV2Request { public: AWS_PINPOINTSMSVOICEV2_API RequestPhoneNumberRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "RequestPhoneNumber"; } AWS_PINPOINTSMSVOICEV2_API Aws::String SerializePayload() const override; AWS_PINPOINTSMSVOICEV2_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline const Aws::String& GetIsoCountryCode() const{ return m_isoCountryCode; } /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline bool IsoCountryCodeHasBeenSet() const { return m_isoCountryCodeHasBeenSet; } /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline void SetIsoCountryCode(const Aws::String& value) { m_isoCountryCodeHasBeenSet = true; m_isoCountryCode = value; } /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline void SetIsoCountryCode(Aws::String&& value) { m_isoCountryCodeHasBeenSet = true; m_isoCountryCode = std::move(value); } /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline void SetIsoCountryCode(const char* value) { m_isoCountryCodeHasBeenSet = true; m_isoCountryCode.assign(value); } /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline RequestPhoneNumberRequest& WithIsoCountryCode(const Aws::String& value) { SetIsoCountryCode(value); return *this;} /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline RequestPhoneNumberRequest& WithIsoCountryCode(Aws::String&& value) { SetIsoCountryCode(std::move(value)); return *this;} /** *

The two-character code, in ISO 3166-1 alpha-2 format, for the country or * region.

*/ inline RequestPhoneNumberRequest& WithIsoCountryCode(const char* value) { SetIsoCountryCode(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 RequestPhoneNumberRequest& 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 RequestPhoneNumberRequest& WithMessageType(MessageType&& value) { SetMessageType(std::move(value)); return *this;} /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline const Aws::Vector& GetNumberCapabilities() const{ return m_numberCapabilities; } /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline bool NumberCapabilitiesHasBeenSet() const { return m_numberCapabilitiesHasBeenSet; } /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline void SetNumberCapabilities(const Aws::Vector& value) { m_numberCapabilitiesHasBeenSet = true; m_numberCapabilities = value; } /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline void SetNumberCapabilities(Aws::Vector&& value) { m_numberCapabilitiesHasBeenSet = true; m_numberCapabilities = std::move(value); } /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline RequestPhoneNumberRequest& WithNumberCapabilities(const Aws::Vector& value) { SetNumberCapabilities(value); return *this;} /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline RequestPhoneNumberRequest& WithNumberCapabilities(Aws::Vector&& value) { SetNumberCapabilities(std::move(value)); return *this;} /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline RequestPhoneNumberRequest& AddNumberCapabilities(const NumberCapability& value) { m_numberCapabilitiesHasBeenSet = true; m_numberCapabilities.push_back(value); return *this; } /** *

Indicates if the phone number will be used for text messages, voice messages, * or both.

*/ inline RequestPhoneNumberRequest& AddNumberCapabilities(NumberCapability&& value) { m_numberCapabilitiesHasBeenSet = true; m_numberCapabilities.push_back(std::move(value)); return *this; } /** *

The type of phone number to request.

*/ inline const RequestableNumberType& GetNumberType() const{ return m_numberType; } /** *

The type of phone number to request.

*/ inline bool NumberTypeHasBeenSet() const { return m_numberTypeHasBeenSet; } /** *

The type of phone number to request.

*/ inline void SetNumberType(const RequestableNumberType& value) { m_numberTypeHasBeenSet = true; m_numberType = value; } /** *

The type of phone number to request.

*/ inline void SetNumberType(RequestableNumberType&& value) { m_numberTypeHasBeenSet = true; m_numberType = std::move(value); } /** *

The type of phone number to request.

*/ inline RequestPhoneNumberRequest& WithNumberType(const RequestableNumberType& value) { SetNumberType(value); return *this;} /** *

The type of phone number to request.

*/ inline RequestPhoneNumberRequest& WithNumberType(RequestableNumberType&& value) { SetNumberType(std::move(value)); return *this;} /** *

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The name of the OptOutList to associate with the phone number. You can use * the OutOutListName or OptPutListArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

The pool to associated with the phone number. You can use the PoolId or * PoolArn.

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

Use this field to attach your phone number for an external registration * process.

*/ inline const Aws::String& GetRegistrationId() const{ return m_registrationId; } /** *

Use this field to attach your phone number for an external registration * process.

*/ inline bool RegistrationIdHasBeenSet() const { return m_registrationIdHasBeenSet; } /** *

Use this field to attach your phone number for an external registration * process.

*/ inline void SetRegistrationId(const Aws::String& value) { m_registrationIdHasBeenSet = true; m_registrationId = value; } /** *

Use this field to attach your phone number for an external registration * process.

*/ inline void SetRegistrationId(Aws::String&& value) { m_registrationIdHasBeenSet = true; m_registrationId = std::move(value); } /** *

Use this field to attach your phone number for an external registration * process.

*/ inline void SetRegistrationId(const char* value) { m_registrationIdHasBeenSet = true; m_registrationId.assign(value); } /** *

Use this field to attach your phone number for an external registration * process.

*/ inline RequestPhoneNumberRequest& WithRegistrationId(const Aws::String& value) { SetRegistrationId(value); return *this;} /** *

Use this field to attach your phone number for an external registration * process.

*/ inline RequestPhoneNumberRequest& WithRegistrationId(Aws::String&& value) { SetRegistrationId(std::move(value)); return *this;} /** *

Use this field to attach your phone number for an external registration * process.

*/ inline RequestPhoneNumberRequest& WithRegistrationId(const char* value) { SetRegistrationId(value); return *this;} /** *

By default this is set to false. When set to true the phone number can't be * deleted.

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

By default this is set to false. When set to true the phone number can't be * deleted.

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

By default this is set to false. When set to true the phone number can't be * deleted.

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

By default this is set to false. When set to true the phone number can't be * deleted.

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

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline RequestPhoneNumberRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline RequestPhoneNumberRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline RequestPhoneNumberRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

An array of tags (key and value pairs) associate with the requested phone * number.

*/ inline RequestPhoneNumberRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline RequestPhoneNumberRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline RequestPhoneNumberRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don't specify a client token, a randomly generated token * is used for the request to ensure idempotency.

*/ inline RequestPhoneNumberRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} private: Aws::String m_isoCountryCode; bool m_isoCountryCodeHasBeenSet = false; MessageType m_messageType; bool m_messageTypeHasBeenSet = false; Aws::Vector m_numberCapabilities; bool m_numberCapabilitiesHasBeenSet = false; RequestableNumberType m_numberType; bool m_numberTypeHasBeenSet = false; Aws::String m_optOutListName; bool m_optOutListNameHasBeenSet = false; Aws::String m_poolId; bool m_poolIdHasBeenSet = false; Aws::String m_registrationId; bool m_registrationIdHasBeenSet = false; bool m_deletionProtectionEnabled; bool m_deletionProtectionEnabledHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; }; } // namespace Model } // namespace PinpointSMSVoiceV2 } // namespace Aws