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

Describes a subnet.

See Also:

AWS API * Reference

*/ class Subnet { public: AWS_EC2_API Subnet(); AWS_EC2_API Subnet(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API Subnet& 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 Availability Zone of the subnet.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The Availability Zone of the subnet.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The Availability Zone of the subnet.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The Availability Zone of the subnet.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The Availability Zone of the subnet.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The Availability Zone of the subnet.

*/ inline Subnet& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The Availability Zone of the subnet.

*/ inline Subnet& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone of the subnet.

*/ inline Subnet& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The AZ ID of the subnet.

*/ inline const Aws::String& GetAvailabilityZoneId() const{ return m_availabilityZoneId; } /** *

The AZ ID of the subnet.

*/ inline bool AvailabilityZoneIdHasBeenSet() const { return m_availabilityZoneIdHasBeenSet; } /** *

The AZ ID of the subnet.

*/ inline void SetAvailabilityZoneId(const Aws::String& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = value; } /** *

The AZ ID of the subnet.

*/ inline void SetAvailabilityZoneId(Aws::String&& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = std::move(value); } /** *

The AZ ID of the subnet.

*/ inline void SetAvailabilityZoneId(const char* value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId.assign(value); } /** *

The AZ ID of the subnet.

*/ inline Subnet& WithAvailabilityZoneId(const Aws::String& value) { SetAvailabilityZoneId(value); return *this;} /** *

The AZ ID of the subnet.

*/ inline Subnet& WithAvailabilityZoneId(Aws::String&& value) { SetAvailabilityZoneId(std::move(value)); return *this;} /** *

The AZ ID of the subnet.

*/ inline Subnet& WithAvailabilityZoneId(const char* value) { SetAvailabilityZoneId(value); return *this;} /** *

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses * for any stopped instances are considered unavailable.

*/ inline int GetAvailableIpAddressCount() const{ return m_availableIpAddressCount; } /** *

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses * for any stopped instances are considered unavailable.

*/ inline bool AvailableIpAddressCountHasBeenSet() const { return m_availableIpAddressCountHasBeenSet; } /** *

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses * for any stopped instances are considered unavailable.

*/ inline void SetAvailableIpAddressCount(int value) { m_availableIpAddressCountHasBeenSet = true; m_availableIpAddressCount = value; } /** *

The number of unused private IPv4 addresses in the subnet. The IPv4 addresses * for any stopped instances are considered unavailable.

*/ inline Subnet& WithAvailableIpAddressCount(int value) { SetAvailableIpAddressCount(value); return *this;} /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline const Aws::String& GetCidrBlock() const{ return m_cidrBlock; } /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline bool CidrBlockHasBeenSet() const { return m_cidrBlockHasBeenSet; } /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline void SetCidrBlock(const Aws::String& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = value; } /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline void SetCidrBlock(Aws::String&& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = std::move(value); } /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline void SetCidrBlock(const char* value) { m_cidrBlockHasBeenSet = true; m_cidrBlock.assign(value); } /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline Subnet& WithCidrBlock(const Aws::String& value) { SetCidrBlock(value); return *this;} /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline Subnet& WithCidrBlock(Aws::String&& value) { SetCidrBlock(std::move(value)); return *this;} /** *

The IPv4 CIDR block assigned to the subnet.

*/ inline Subnet& WithCidrBlock(const char* value) { SetCidrBlock(value); return *this;} /** *

Indicates whether this is the default subnet for the Availability Zone.

*/ inline bool GetDefaultForAz() const{ return m_defaultForAz; } /** *

Indicates whether this is the default subnet for the Availability Zone.

*/ inline bool DefaultForAzHasBeenSet() const { return m_defaultForAzHasBeenSet; } /** *

Indicates whether this is the default subnet for the Availability Zone.

*/ inline void SetDefaultForAz(bool value) { m_defaultForAzHasBeenSet = true; m_defaultForAz = value; } /** *

Indicates whether this is the default subnet for the Availability Zone.

*/ inline Subnet& WithDefaultForAz(bool value) { SetDefaultForAz(value); return *this;} /** *

Indicates the device position for local network interfaces in this subnet. * For example, 1 indicates local network interfaces in this subnet * are the secondary network interface (eth1).

*/ inline int GetEnableLniAtDeviceIndex() const{ return m_enableLniAtDeviceIndex; } /** *

Indicates the device position for local network interfaces in this subnet. * For example, 1 indicates local network interfaces in this subnet * are the secondary network interface (eth1).

*/ inline bool EnableLniAtDeviceIndexHasBeenSet() const { return m_enableLniAtDeviceIndexHasBeenSet; } /** *

Indicates the device position for local network interfaces in this subnet. * For example, 1 indicates local network interfaces in this subnet * are the secondary network interface (eth1).

*/ inline void SetEnableLniAtDeviceIndex(int value) { m_enableLniAtDeviceIndexHasBeenSet = true; m_enableLniAtDeviceIndex = value; } /** *

Indicates the device position for local network interfaces in this subnet. * For example, 1 indicates local network interfaces in this subnet * are the secondary network interface (eth1).

*/ inline Subnet& WithEnableLniAtDeviceIndex(int value) { SetEnableLniAtDeviceIndex(value); return *this;} /** *

Indicates whether instances launched in this subnet receive a public IPv4 * address.

*/ inline bool GetMapPublicIpOnLaunch() const{ return m_mapPublicIpOnLaunch; } /** *

Indicates whether instances launched in this subnet receive a public IPv4 * address.

*/ inline bool MapPublicIpOnLaunchHasBeenSet() const { return m_mapPublicIpOnLaunchHasBeenSet; } /** *

Indicates whether instances launched in this subnet receive a public IPv4 * address.

*/ inline void SetMapPublicIpOnLaunch(bool value) { m_mapPublicIpOnLaunchHasBeenSet = true; m_mapPublicIpOnLaunch = value; } /** *

Indicates whether instances launched in this subnet receive a public IPv4 * address.

*/ inline Subnet& WithMapPublicIpOnLaunch(bool value) { SetMapPublicIpOnLaunch(value); return *this;} /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives a customer-owned IPv4 * address.

*/ inline bool GetMapCustomerOwnedIpOnLaunch() const{ return m_mapCustomerOwnedIpOnLaunch; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives a customer-owned IPv4 * address.

*/ inline bool MapCustomerOwnedIpOnLaunchHasBeenSet() const { return m_mapCustomerOwnedIpOnLaunchHasBeenSet; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives a customer-owned IPv4 * address.

*/ inline void SetMapCustomerOwnedIpOnLaunch(bool value) { m_mapCustomerOwnedIpOnLaunchHasBeenSet = true; m_mapCustomerOwnedIpOnLaunch = value; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives a customer-owned IPv4 * address.

*/ inline Subnet& WithMapCustomerOwnedIpOnLaunch(bool value) { SetMapCustomerOwnedIpOnLaunch(value); return *this;} /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline const Aws::String& GetCustomerOwnedIpv4Pool() const{ return m_customerOwnedIpv4Pool; } /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline bool CustomerOwnedIpv4PoolHasBeenSet() const { return m_customerOwnedIpv4PoolHasBeenSet; } /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline void SetCustomerOwnedIpv4Pool(const Aws::String& value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool = value; } /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline void SetCustomerOwnedIpv4Pool(Aws::String&& value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool = std::move(value); } /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline void SetCustomerOwnedIpv4Pool(const char* value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool.assign(value); } /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline Subnet& WithCustomerOwnedIpv4Pool(const Aws::String& value) { SetCustomerOwnedIpv4Pool(value); return *this;} /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline Subnet& WithCustomerOwnedIpv4Pool(Aws::String&& value) { SetCustomerOwnedIpv4Pool(std::move(value)); return *this;} /** *

The customer-owned IPv4 address pool associated with the subnet.

*/ inline Subnet& WithCustomerOwnedIpv4Pool(const char* value) { SetCustomerOwnedIpv4Pool(value); return *this;} /** *

The current state of the subnet.

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

The current state of the subnet.

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

The current state of the subnet.

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

The current state of the subnet.

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

The current state of the subnet.

*/ inline Subnet& WithState(const SubnetState& value) { SetState(value); return *this;} /** *

The current state of the subnet.

*/ inline Subnet& WithState(SubnetState&& value) { SetState(std::move(value)); return *this;} /** *

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the subnet.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the VPC the subnet is in.

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

The ID of the Amazon Web Services account that owns the subnet.

*/ inline const Aws::String& GetOwnerId() const{ return m_ownerId; } /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline bool OwnerIdHasBeenSet() const { return m_ownerIdHasBeenSet; } /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline void SetOwnerId(const Aws::String& value) { m_ownerIdHasBeenSet = true; m_ownerId = value; } /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline void SetOwnerId(Aws::String&& value) { m_ownerIdHasBeenSet = true; m_ownerId = std::move(value); } /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline void SetOwnerId(const char* value) { m_ownerIdHasBeenSet = true; m_ownerId.assign(value); } /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline Subnet& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline Subnet& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} /** *

The ID of the Amazon Web Services account that owns the subnet.

*/ inline Subnet& WithOwnerId(const char* value) { SetOwnerId(value); return *this;} /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives an IPv6 address.

*/ inline bool GetAssignIpv6AddressOnCreation() const{ return m_assignIpv6AddressOnCreation; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives an IPv6 address.

*/ inline bool AssignIpv6AddressOnCreationHasBeenSet() const { return m_assignIpv6AddressOnCreationHasBeenSet; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives an IPv6 address.

*/ inline void SetAssignIpv6AddressOnCreation(bool value) { m_assignIpv6AddressOnCreationHasBeenSet = true; m_assignIpv6AddressOnCreation = value; } /** *

Indicates whether a network interface created in this subnet (including a * network interface created by RunInstances) receives an IPv6 address.

*/ inline Subnet& WithAssignIpv6AddressOnCreation(bool value) { SetAssignIpv6AddressOnCreation(value); return *this;} /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline const Aws::Vector& GetIpv6CidrBlockAssociationSet() const{ return m_ipv6CidrBlockAssociationSet; } /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline bool Ipv6CidrBlockAssociationSetHasBeenSet() const { return m_ipv6CidrBlockAssociationSetHasBeenSet; } /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline void SetIpv6CidrBlockAssociationSet(const Aws::Vector& value) { m_ipv6CidrBlockAssociationSetHasBeenSet = true; m_ipv6CidrBlockAssociationSet = value; } /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline void SetIpv6CidrBlockAssociationSet(Aws::Vector&& value) { m_ipv6CidrBlockAssociationSetHasBeenSet = true; m_ipv6CidrBlockAssociationSet = std::move(value); } /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline Subnet& WithIpv6CidrBlockAssociationSet(const Aws::Vector& value) { SetIpv6CidrBlockAssociationSet(value); return *this;} /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline Subnet& WithIpv6CidrBlockAssociationSet(Aws::Vector&& value) { SetIpv6CidrBlockAssociationSet(std::move(value)); return *this;} /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline Subnet& AddIpv6CidrBlockAssociationSet(const SubnetIpv6CidrBlockAssociation& value) { m_ipv6CidrBlockAssociationSetHasBeenSet = true; m_ipv6CidrBlockAssociationSet.push_back(value); return *this; } /** *

Information about the IPv6 CIDR blocks associated with the subnet.

*/ inline Subnet& AddIpv6CidrBlockAssociationSet(SubnetIpv6CidrBlockAssociation&& value) { m_ipv6CidrBlockAssociationSetHasBeenSet = true; m_ipv6CidrBlockAssociationSet.push_back(std::move(value)); return *this; } /** *

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

Any tags assigned to the subnet.

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

The Amazon Resource Name (ARN) of the subnet.

*/ inline const Aws::String& GetSubnetArn() const{ return m_subnetArn; } /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline bool SubnetArnHasBeenSet() const { return m_subnetArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline void SetSubnetArn(const Aws::String& value) { m_subnetArnHasBeenSet = true; m_subnetArn = value; } /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline void SetSubnetArn(Aws::String&& value) { m_subnetArnHasBeenSet = true; m_subnetArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline void SetSubnetArn(const char* value) { m_subnetArnHasBeenSet = true; m_subnetArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline Subnet& WithSubnetArn(const Aws::String& value) { SetSubnetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline Subnet& WithSubnetArn(Aws::String&& value) { SetSubnetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the subnet.

*/ inline Subnet& WithSubnetArn(const char* value) { SetSubnetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline const Aws::String& GetOutpostArn() const{ return m_outpostArn; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline bool OutpostArnHasBeenSet() const { return m_outpostArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(const Aws::String& value) { m_outpostArnHasBeenSet = true; m_outpostArn = value; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(Aws::String&& value) { m_outpostArnHasBeenSet = true; m_outpostArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(const char* value) { m_outpostArnHasBeenSet = true; m_outpostArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Subnet& WithOutpostArn(const Aws::String& value) { SetOutpostArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Subnet& WithOutpostArn(Aws::String&& value) { SetOutpostArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Subnet& WithOutpostArn(const char* value) { SetOutpostArn(value); return *this;} /** *

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in * this subnet should return synthetic IPv6 addresses for IPv4-only * destinations.

*/ inline bool GetEnableDns64() const{ return m_enableDns64; } /** *

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in * this subnet should return synthetic IPv6 addresses for IPv4-only * destinations.

*/ inline bool EnableDns64HasBeenSet() const { return m_enableDns64HasBeenSet; } /** *

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in * this subnet should return synthetic IPv6 addresses for IPv4-only * destinations.

*/ inline void SetEnableDns64(bool value) { m_enableDns64HasBeenSet = true; m_enableDns64 = value; } /** *

Indicates whether DNS queries made to the Amazon-provided DNS Resolver in * this subnet should return synthetic IPv6 addresses for IPv4-only * destinations.

*/ inline Subnet& WithEnableDns64(bool value) { SetEnableDns64(value); return *this;} /** *

Indicates whether this is an IPv6 only subnet.

*/ inline bool GetIpv6Native() const{ return m_ipv6Native; } /** *

Indicates whether this is an IPv6 only subnet.

*/ inline bool Ipv6NativeHasBeenSet() const { return m_ipv6NativeHasBeenSet; } /** *

Indicates whether this is an IPv6 only subnet.

*/ inline void SetIpv6Native(bool value) { m_ipv6NativeHasBeenSet = true; m_ipv6Native = value; } /** *

Indicates whether this is an IPv6 only subnet.

*/ inline Subnet& WithIpv6Native(bool value) { SetIpv6Native(value); return *this;} /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline const PrivateDnsNameOptionsOnLaunch& GetPrivateDnsNameOptionsOnLaunch() const{ return m_privateDnsNameOptionsOnLaunch; } /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline bool PrivateDnsNameOptionsOnLaunchHasBeenSet() const { return m_privateDnsNameOptionsOnLaunchHasBeenSet; } /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline void SetPrivateDnsNameOptionsOnLaunch(const PrivateDnsNameOptionsOnLaunch& value) { m_privateDnsNameOptionsOnLaunchHasBeenSet = true; m_privateDnsNameOptionsOnLaunch = value; } /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline void SetPrivateDnsNameOptionsOnLaunch(PrivateDnsNameOptionsOnLaunch&& value) { m_privateDnsNameOptionsOnLaunchHasBeenSet = true; m_privateDnsNameOptionsOnLaunch = std::move(value); } /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline Subnet& WithPrivateDnsNameOptionsOnLaunch(const PrivateDnsNameOptionsOnLaunch& value) { SetPrivateDnsNameOptionsOnLaunch(value); return *this;} /** *

The type of hostnames to assign to instances in the subnet at launch. An * instance hostname is based on the IPv4 address or ID of the instance.

*/ inline Subnet& WithPrivateDnsNameOptionsOnLaunch(PrivateDnsNameOptionsOnLaunch&& value) { SetPrivateDnsNameOptionsOnLaunch(std::move(value)); return *this;} private: Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; Aws::String m_availabilityZoneId; bool m_availabilityZoneIdHasBeenSet = false; int m_availableIpAddressCount; bool m_availableIpAddressCountHasBeenSet = false; Aws::String m_cidrBlock; bool m_cidrBlockHasBeenSet = false; bool m_defaultForAz; bool m_defaultForAzHasBeenSet = false; int m_enableLniAtDeviceIndex; bool m_enableLniAtDeviceIndexHasBeenSet = false; bool m_mapPublicIpOnLaunch; bool m_mapPublicIpOnLaunchHasBeenSet = false; bool m_mapCustomerOwnedIpOnLaunch; bool m_mapCustomerOwnedIpOnLaunchHasBeenSet = false; Aws::String m_customerOwnedIpv4Pool; bool m_customerOwnedIpv4PoolHasBeenSet = false; SubnetState m_state; bool m_stateHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::String m_ownerId; bool m_ownerIdHasBeenSet = false; bool m_assignIpv6AddressOnCreation; bool m_assignIpv6AddressOnCreationHasBeenSet = false; Aws::Vector m_ipv6CidrBlockAssociationSet; bool m_ipv6CidrBlockAssociationSetHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_subnetArn; bool m_subnetArnHasBeenSet = false; Aws::String m_outpostArn; bool m_outpostArnHasBeenSet = false; bool m_enableDns64; bool m_enableDns64HasBeenSet = false; bool m_ipv6Native; bool m_ipv6NativeHasBeenSet = false; PrivateDnsNameOptionsOnLaunch m_privateDnsNameOptionsOnLaunch; bool m_privateDnsNameOptionsOnLaunchHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws