/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes a NAT gateway.

See Also:

AWS API * Reference

*/ class NatGateway { public: AWS_EC2_API NatGateway(); AWS_EC2_API NatGateway(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API NatGateway& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The date and time the NAT gateway was created.

*/ inline const Aws::Utils::DateTime& GetCreateTime() const{ return m_createTime; } /** *

The date and time the NAT gateway was created.

*/ inline bool CreateTimeHasBeenSet() const { return m_createTimeHasBeenSet; } /** *

The date and time the NAT gateway was created.

*/ inline void SetCreateTime(const Aws::Utils::DateTime& value) { m_createTimeHasBeenSet = true; m_createTime = value; } /** *

The date and time the NAT gateway was created.

*/ inline void SetCreateTime(Aws::Utils::DateTime&& value) { m_createTimeHasBeenSet = true; m_createTime = std::move(value); } /** *

The date and time the NAT gateway was created.

*/ inline NatGateway& WithCreateTime(const Aws::Utils::DateTime& value) { SetCreateTime(value); return *this;} /** *

The date and time the NAT gateway was created.

*/ inline NatGateway& WithCreateTime(Aws::Utils::DateTime&& value) { SetCreateTime(std::move(value)); return *this;} /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline const Aws::Utils::DateTime& GetDeleteTime() const{ return m_deleteTime; } /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline bool DeleteTimeHasBeenSet() const { return m_deleteTimeHasBeenSet; } /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline void SetDeleteTime(const Aws::Utils::DateTime& value) { m_deleteTimeHasBeenSet = true; m_deleteTime = value; } /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline void SetDeleteTime(Aws::Utils::DateTime&& value) { m_deleteTimeHasBeenSet = true; m_deleteTime = std::move(value); } /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline NatGateway& WithDeleteTime(const Aws::Utils::DateTime& value) { SetDeleteTime(value); return *this;} /** *

The date and time the NAT gateway was deleted, if applicable.

*/ inline NatGateway& WithDeleteTime(Aws::Utils::DateTime&& value) { SetDeleteTime(std::move(value)); return *this;} /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline const Aws::String& GetFailureCode() const{ return m_failureCode; } /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline bool FailureCodeHasBeenSet() const { return m_failureCodeHasBeenSet; } /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline void SetFailureCode(const Aws::String& value) { m_failureCodeHasBeenSet = true; m_failureCode = value; } /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline void SetFailureCode(Aws::String&& value) { m_failureCodeHasBeenSet = true; m_failureCode = std::move(value); } /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline void SetFailureCode(const char* value) { m_failureCodeHasBeenSet = true; m_failureCode.assign(value); } /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline NatGateway& WithFailureCode(const Aws::String& value) { SetFailureCode(value); return *this;} /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline NatGateway& WithFailureCode(Aws::String&& value) { SetFailureCode(std::move(value)); return *this;} /** *

If the NAT gateway could not be created, specifies the error code for the * failure. (InsufficientFreeAddressesInSubnet | * Gateway.NotAttached | InvalidAllocationID.NotFound | * Resource.AlreadyAssociated | InternalError | * InvalidSubnetID.NotFound)

*/ inline NatGateway& WithFailureCode(const char* value) { SetFailureCode(value); return *this;} /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline const Aws::String& GetFailureMessage() const{ return m_failureMessage; } /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline bool FailureMessageHasBeenSet() const { return m_failureMessageHasBeenSet; } /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline void SetFailureMessage(const Aws::String& value) { m_failureMessageHasBeenSet = true; m_failureMessage = value; } /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline void SetFailureMessage(Aws::String&& value) { m_failureMessageHasBeenSet = true; m_failureMessage = std::move(value); } /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline void SetFailureMessage(const char* value) { m_failureMessageHasBeenSet = true; m_failureMessage.assign(value); } /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline NatGateway& WithFailureMessage(const Aws::String& value) { SetFailureMessage(value); return *this;} /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline NatGateway& WithFailureMessage(Aws::String&& value) { SetFailureMessage(std::move(value)); return *this;} /** *

If the NAT gateway could not be created, specifies the error message for the * failure, that corresponds to the error code.

  • For * InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to * create this NAT gateway"

  • For Gateway.NotAttached: "Network * vpc-xxxxxxxx has no Internet gateway attached"

  • For * InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be * associated with this NAT gateway"

  • For * Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already * associated"

  • For InternalError: "Network interface * eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid * state. Please try again."

  • For InvalidSubnetID.NotFound: "The * specified subnet subnet-xxxxxxxx does not exist or could not be found."

    *
*/ inline NatGateway& WithFailureMessage(const char* value) { SetFailureMessage(value); return *this;} /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline const Aws::Vector& GetNatGatewayAddresses() const{ return m_natGatewayAddresses; } /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline bool NatGatewayAddressesHasBeenSet() const { return m_natGatewayAddressesHasBeenSet; } /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline void SetNatGatewayAddresses(const Aws::Vector& value) { m_natGatewayAddressesHasBeenSet = true; m_natGatewayAddresses = value; } /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline void SetNatGatewayAddresses(Aws::Vector&& value) { m_natGatewayAddressesHasBeenSet = true; m_natGatewayAddresses = std::move(value); } /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline NatGateway& WithNatGatewayAddresses(const Aws::Vector& value) { SetNatGatewayAddresses(value); return *this;} /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline NatGateway& WithNatGatewayAddresses(Aws::Vector&& value) { SetNatGatewayAddresses(std::move(value)); return *this;} /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline NatGateway& AddNatGatewayAddresses(const NatGatewayAddress& value) { m_natGatewayAddressesHasBeenSet = true; m_natGatewayAddresses.push_back(value); return *this; } /** *

Information about the IP addresses and network interface associated with the * NAT gateway.

*/ inline NatGateway& AddNatGatewayAddresses(NatGatewayAddress&& value) { m_natGatewayAddressesHasBeenSet = true; m_natGatewayAddresses.push_back(std::move(value)); return *this; } /** *

The ID of the NAT gateway.

*/ inline const Aws::String& GetNatGatewayId() const{ return m_natGatewayId; } /** *

The ID of the NAT gateway.

*/ inline bool NatGatewayIdHasBeenSet() const { return m_natGatewayIdHasBeenSet; } /** *

The ID of the NAT gateway.

*/ inline void SetNatGatewayId(const Aws::String& value) { m_natGatewayIdHasBeenSet = true; m_natGatewayId = value; } /** *

The ID of the NAT gateway.

*/ inline void SetNatGatewayId(Aws::String&& value) { m_natGatewayIdHasBeenSet = true; m_natGatewayId = std::move(value); } /** *

The ID of the NAT gateway.

*/ inline void SetNatGatewayId(const char* value) { m_natGatewayIdHasBeenSet = true; m_natGatewayId.assign(value); } /** *

The ID of the NAT gateway.

*/ inline NatGateway& WithNatGatewayId(const Aws::String& value) { SetNatGatewayId(value); return *this;} /** *

The ID of the NAT gateway.

*/ inline NatGateway& WithNatGatewayId(Aws::String&& value) { SetNatGatewayId(std::move(value)); return *this;} /** *

The ID of the NAT gateway.

*/ inline NatGateway& WithNatGatewayId(const char* value) { SetNatGatewayId(value); return *this;} /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline const ProvisionedBandwidth& GetProvisionedBandwidth() const{ return m_provisionedBandwidth; } /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline bool ProvisionedBandwidthHasBeenSet() const { return m_provisionedBandwidthHasBeenSet; } /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline void SetProvisionedBandwidth(const ProvisionedBandwidth& value) { m_provisionedBandwidthHasBeenSet = true; m_provisionedBandwidth = value; } /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline void SetProvisionedBandwidth(ProvisionedBandwidth&& value) { m_provisionedBandwidthHasBeenSet = true; m_provisionedBandwidth = std::move(value); } /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline NatGateway& WithProvisionedBandwidth(const ProvisionedBandwidth& value) { SetProvisionedBandwidth(value); return *this;} /** *

Reserved. If you need to sustain traffic greater than the documented * limits, contact us through the Support Center.

*/ inline NatGateway& WithProvisionedBandwidth(ProvisionedBandwidth&& value) { SetProvisionedBandwidth(std::move(value)); return *this;} /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline const NatGatewayState& GetState() const{ return m_state; } /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline void SetState(const NatGatewayState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline void SetState(NatGatewayState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline NatGateway& WithState(const NatGatewayState& value) { SetState(value); return *this;} /** *

The state of the NAT gateway.

  • pending: The NAT * gateway is being created and is not ready to process traffic.

  • * failed: The NAT gateway could not be created. Check the * failureCode and failureMessage fields for the * reason.

  • available: The NAT gateway is able to * process traffic. This status remains until you delete the NAT gateway, and does * not indicate the health of the NAT gateway.

  • * deleting: The NAT gateway is in the process of being terminated and * may still be processing traffic.

  • deleted: The * NAT gateway has been terminated and is no longer processing traffic.

  • *
*/ inline NatGateway& WithState(NatGatewayState&& value) { SetState(std::move(value)); return *this;} /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline const Aws::String& GetSubnetId() const{ return m_subnetId; } /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; } /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline void SetSubnetId(const Aws::String& value) { m_subnetIdHasBeenSet = true; m_subnetId = value; } /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline void SetSubnetId(Aws::String&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::move(value); } /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline void SetSubnetId(const char* value) { m_subnetIdHasBeenSet = true; m_subnetId.assign(value); } /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline NatGateway& WithSubnetId(const Aws::String& value) { SetSubnetId(value); return *this;} /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline NatGateway& WithSubnetId(Aws::String&& value) { SetSubnetId(std::move(value)); return *this;} /** *

The ID of the subnet in which the NAT gateway is located.

*/ inline NatGateway& WithSubnetId(const char* value) { SetSubnetId(value); return *this;} /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline NatGateway& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline NatGateway& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the VPC in which the NAT gateway is located.

*/ inline NatGateway& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

The tags for the NAT gateway.

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

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline const ConnectivityType& GetConnectivityType() const{ return m_connectivityType; } /** *

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline bool ConnectivityTypeHasBeenSet() const { return m_connectivityTypeHasBeenSet; } /** *

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline void SetConnectivityType(const ConnectivityType& value) { m_connectivityTypeHasBeenSet = true; m_connectivityType = value; } /** *

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline void SetConnectivityType(ConnectivityType&& value) { m_connectivityTypeHasBeenSet = true; m_connectivityType = std::move(value); } /** *

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline NatGateway& WithConnectivityType(const ConnectivityType& value) { SetConnectivityType(value); return *this;} /** *

Indicates whether the NAT gateway supports public or private * connectivity.

*/ inline NatGateway& WithConnectivityType(ConnectivityType&& value) { SetConnectivityType(std::move(value)); return *this;} private: Aws::Utils::DateTime m_createTime; bool m_createTimeHasBeenSet = false; Aws::Utils::DateTime m_deleteTime; bool m_deleteTimeHasBeenSet = false; Aws::String m_failureCode; bool m_failureCodeHasBeenSet = false; Aws::String m_failureMessage; bool m_failureMessageHasBeenSet = false; Aws::Vector m_natGatewayAddresses; bool m_natGatewayAddressesHasBeenSet = false; Aws::String m_natGatewayId; bool m_natGatewayIdHasBeenSet = false; ProvisionedBandwidth m_provisionedBandwidth; bool m_provisionedBandwidthHasBeenSet = false; NatGatewayState m_state; bool m_stateHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; ConnectivityType m_connectivityType; bool m_connectivityTypeHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws