7#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/ec2/EC2_EXPORTS.h>
11#include <aws/ec2/model/BlockPublicAccessStates.h>
12#include <aws/ec2/model/PrivateDnsNameOptionsOnLaunch.h>
13#include <aws/ec2/model/SubnetIpv6CidrBlockAssociation.h>
14#include <aws/ec2/model/SubnetState.h>
15#include <aws/ec2/model/Tag.h>
48 template <
typename AvailabilityZoneIdT = Aws::String>
50 m_availabilityZoneIdHasBeenSet =
true;
51 m_availabilityZoneId = std::forward<AvailabilityZoneIdT>(value);
53 template <
typename AvailabilityZoneIdT = Aws::String>
69 m_enableLniAtDeviceIndexHasBeenSet =
true;
70 m_enableLniAtDeviceIndex = value;
87 m_mapCustomerOwnedIpOnLaunchHasBeenSet =
true;
88 m_mapCustomerOwnedIpOnLaunch = value;
102 template <
typename CustomerOwnedIpv4PoolT = Aws::String>
104 m_customerOwnedIpv4PoolHasBeenSet =
true;
105 m_customerOwnedIpv4Pool = std::forward<CustomerOwnedIpv4PoolT>(value);
107 template <
typename CustomerOwnedIpv4PoolT = Aws::String>
120 template <
typename OwnerIdT = Aws::String>
122 m_ownerIdHasBeenSet =
true;
123 m_ownerId = std::forward<OwnerIdT>(value);
125 template <
typename OwnerIdT = Aws::String>
140 m_assignIpv6AddressOnCreationHasBeenSet =
true;
141 m_assignIpv6AddressOnCreation = value;
155 template <
typename Ipv6C
idrBlockAssociationSetT = Aws::Vector<SubnetIpv6C
idrBlockAssociation>>
157 m_ipv6CidrBlockAssociationSetHasBeenSet =
true;
158 m_ipv6CidrBlockAssociationSet = std::forward<Ipv6CidrBlockAssociationSetT>(value);
160 template <
typename Ipv6C
idrBlockAssociationSetT = Aws::Vector<SubnetIpv6C
idrBlockAssociation>>
165 template <
typename Ipv6C
idrBlockAssociationSetT = SubnetIpv6C
idrBlockAssociation>
167 m_ipv6CidrBlockAssociationSetHasBeenSet =
true;
168 m_ipv6CidrBlockAssociationSet.emplace_back(std::forward<Ipv6CidrBlockAssociationSetT>(value));
179 template <
typename TagsT = Aws::Vector<Tag>>
181 m_tagsHasBeenSet =
true;
182 m_tags = std::forward<TagsT>(value);
184 template <
typename TagsT = Aws::Vector<Tag>>
186 SetTags(std::forward<TagsT>(value));
189 template <
typename TagsT = Tag>
191 m_tagsHasBeenSet =
true;
192 m_tags.emplace_back(std::forward<TagsT>(value));
203 template <
typename SubnetArnT = Aws::String>
205 m_subnetArnHasBeenSet =
true;
206 m_subnetArn = std::forward<SubnetArnT>(value);
208 template <
typename SubnetArnT = Aws::String>
221 template <
typename OutpostArnT = Aws::String>
223 m_outpostArnHasBeenSet =
true;
224 m_outpostArn = std::forward<OutpostArnT>(value);
226 template <
typename OutpostArnT = Aws::String>
242 m_enableDns64HasBeenSet =
true;
243 m_enableDns64 = value;
258 m_ipv6NativeHasBeenSet =
true;
259 m_ipv6Native = value;
274 template <
typename PrivateDnsNameOptionsOnLaunchT = PrivateDnsNameOptionsOnLaunch>
276 m_privateDnsNameOptionsOnLaunchHasBeenSet =
true;
277 m_privateDnsNameOptionsOnLaunch = std::forward<PrivateDnsNameOptionsOnLaunchT>(value);
279 template <
typename PrivateDnsNameOptionsOnLaunchT = PrivateDnsNameOptionsOnLaunch>
292 template <
typename BlockPublicAccessStatesT = BlockPublicAccessStates>
294 m_blockPublicAccessStatesHasBeenSet =
true;
295 m_blockPublicAccessStates = std::forward<BlockPublicAccessStatesT>(value);
297 template <
typename BlockPublicAccessStatesT = BlockPublicAccessStates>
314 template <
typename TypeT = Aws::String>
316 m_typeHasBeenSet =
true;
317 m_type = std::forward<TypeT>(value);
319 template <
typename TypeT = Aws::String>
321 SetType(std::forward<TypeT>(value));
332 template <
typename SubnetIdT = Aws::String>
334 m_subnetIdHasBeenSet =
true;
335 m_subnetId = std::forward<SubnetIdT>(value);
337 template <
typename SubnetIdT = Aws::String>
355 m_stateHasBeenSet =
true;
370 template <
typename VpcIdT = Aws::String>
372 m_vpcIdHasBeenSet =
true;
373 m_vpcId = std::forward<VpcIdT>(value);
375 template <
typename VpcIdT = Aws::String>
377 SetVpcId(std::forward<VpcIdT>(value));
388 template <
typename C
idrBlockT = Aws::String>
390 m_cidrBlockHasBeenSet =
true;
391 m_cidrBlock = std::forward<CidrBlockT>(value);
393 template <
typename C
idrBlockT = Aws::String>
408 m_availableIpAddressCountHasBeenSet =
true;
409 m_availableIpAddressCount = value;
423 template <
typename AvailabilityZoneT = Aws::String>
425 m_availabilityZoneHasBeenSet =
true;
426 m_availabilityZone = std::forward<AvailabilityZoneT>(value);
428 template <
typename AvailabilityZoneT = Aws::String>
442 m_defaultForAzHasBeenSet =
true;
443 m_defaultForAz = value;
462 m_mapPublicIpOnLaunchHasBeenSet =
true;
463 m_mapPublicIpOnLaunch = value;
473 int m_enableLniAtDeviceIndex{0};
475 bool m_mapCustomerOwnedIpOnLaunch{
false};
481 bool m_assignIpv6AddressOnCreation{
false};
491 bool m_enableDns64{
false};
493 bool m_ipv6Native{
false};
495 PrivateDnsNameOptionsOnLaunch m_privateDnsNameOptionsOnLaunch;
497 BlockPublicAccessStates m_blockPublicAccessStates;
509 int m_availableIpAddressCount{0};
513 bool m_defaultForAz{
false};
515 bool m_mapPublicIpOnLaunch{
false};
516 bool m_availabilityZoneIdHasBeenSet =
false;
517 bool m_enableLniAtDeviceIndexHasBeenSet =
false;
518 bool m_mapCustomerOwnedIpOnLaunchHasBeenSet =
false;
519 bool m_customerOwnedIpv4PoolHasBeenSet =
false;
520 bool m_ownerIdHasBeenSet =
false;
521 bool m_assignIpv6AddressOnCreationHasBeenSet =
false;
522 bool m_ipv6CidrBlockAssociationSetHasBeenSet =
false;
523 bool m_tagsHasBeenSet =
false;
524 bool m_subnetArnHasBeenSet =
false;
525 bool m_outpostArnHasBeenSet =
false;
526 bool m_enableDns64HasBeenSet =
false;
527 bool m_ipv6NativeHasBeenSet =
false;
528 bool m_privateDnsNameOptionsOnLaunchHasBeenSet =
false;
529 bool m_blockPublicAccessStatesHasBeenSet =
false;
530 bool m_typeHasBeenSet =
false;
531 bool m_subnetIdHasBeenSet =
false;
532 bool m_stateHasBeenSet =
false;
533 bool m_vpcIdHasBeenSet =
false;
534 bool m_cidrBlockHasBeenSet =
false;
535 bool m_availableIpAddressCountHasBeenSet =
false;
536 bool m_availabilityZoneHasBeenSet =
false;
537 bool m_defaultForAzHasBeenSet =
false;
538 bool m_mapPublicIpOnLaunchHasBeenSet =
false;
AWS_EC2_API Subnet(const Aws::Utils::Xml::XmlNode &xmlNode)
bool AvailabilityZoneIdHasBeenSet() const
Subnet & WithTags(TagsT &&value)
const BlockPublicAccessStates & GetBlockPublicAccessStates() const
const Aws::String & GetType() const
void SetState(SubnetState value)
const Aws::String & GetOutpostArn() const
const Aws::String & GetCidrBlock() const
bool GetMapCustomerOwnedIpOnLaunch() const
void SetBlockPublicAccessStates(BlockPublicAccessStatesT &&value)
const Aws::Vector< Tag > & GetTags() const
void SetCidrBlock(CidrBlockT &&value)
void SetSubnetId(SubnetIdT &&value)
bool MapPublicIpOnLaunchHasBeenSet() const
void SetIpv6CidrBlockAssociationSet(Ipv6CidrBlockAssociationSetT &&value)
bool EnableLniAtDeviceIndexHasBeenSet() const
void SetSubnetArn(SubnetArnT &&value)
Subnet & WithMapPublicIpOnLaunch(bool value)
Subnet & WithIpv6Native(bool value)
bool GetIpv6Native() const
Subnet & WithCustomerOwnedIpv4Pool(CustomerOwnedIpv4PoolT &&value)
bool AvailabilityZoneHasBeenSet() const
AWS_EC2_API Subnet & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
void SetAvailabilityZoneId(AvailabilityZoneIdT &&value)
void SetIpv6Native(bool value)
Subnet & WithPrivateDnsNameOptionsOnLaunch(PrivateDnsNameOptionsOnLaunchT &&value)
const Aws::Vector< SubnetIpv6CidrBlockAssociation > & GetIpv6CidrBlockAssociationSet() const
Subnet & AddTags(TagsT &&value)
const PrivateDnsNameOptionsOnLaunch & GetPrivateDnsNameOptionsOnLaunch() const
const Aws::String & GetSubnetArn() const
bool Ipv6NativeHasBeenSet() const
void SetVpcId(VpcIdT &&value)
bool CustomerOwnedIpv4PoolHasBeenSet() const
bool TagsHasBeenSet() const
Subnet & AddIpv6CidrBlockAssociationSet(Ipv6CidrBlockAssociationSetT &&value)
AWS_EC2_API Subnet()=default
Subnet & WithCidrBlock(CidrBlockT &&value)
void SetMapCustomerOwnedIpOnLaunch(bool value)
const Aws::String & GetAvailabilityZone() const
void SetPrivateDnsNameOptionsOnLaunch(PrivateDnsNameOptionsOnLaunchT &&value)
bool GetEnableDns64() const
void SetDefaultForAz(bool value)
bool SubnetIdHasBeenSet() const
Subnet & WithDefaultForAz(bool value)
const Aws::String & GetCustomerOwnedIpv4Pool() const
bool BlockPublicAccessStatesHasBeenSet() const
Subnet & WithSubnetArn(SubnetArnT &&value)
void SetAvailableIpAddressCount(int value)
bool StateHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
const Aws::String & GetOwnerId() const
SubnetState GetState() const
Subnet & WithMapCustomerOwnedIpOnLaunch(bool value)
Subnet & WithVpcId(VpcIdT &&value)
Subnet & WithOwnerId(OwnerIdT &&value)
const Aws::String & GetVpcId() const
Subnet & WithAvailabilityZoneId(AvailabilityZoneIdT &&value)
Subnet & WithAvailabilityZone(AvailabilityZoneT &&value)
const Aws::String & GetSubnetId() const
bool EnableDns64HasBeenSet() const
int GetEnableLniAtDeviceIndex() const
void SetTags(TagsT &&value)
Subnet & WithBlockPublicAccessStates(BlockPublicAccessStatesT &&value)
bool SubnetArnHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
Subnet & WithIpv6CidrBlockAssociationSet(Ipv6CidrBlockAssociationSetT &&value)
Subnet & WithAssignIpv6AddressOnCreation(bool value)
void SetCustomerOwnedIpv4Pool(CustomerOwnedIpv4PoolT &&value)
void SetAssignIpv6AddressOnCreation(bool value)
bool TypeHasBeenSet() const
bool Ipv6CidrBlockAssociationSetHasBeenSet() const
bool AvailableIpAddressCountHasBeenSet() const
void SetAvailabilityZone(AvailabilityZoneT &&value)
bool OwnerIdHasBeenSet() const
bool AssignIpv6AddressOnCreationHasBeenSet() const
bool OutpostArnHasBeenSet() const
Subnet & WithEnableLniAtDeviceIndex(int value)
Subnet & WithType(TypeT &&value)
bool PrivateDnsNameOptionsOnLaunchHasBeenSet() const
bool DefaultForAzHasBeenSet() const
Subnet & WithSubnetId(SubnetIdT &&value)
void SetMapPublicIpOnLaunch(bool value)
bool VpcIdHasBeenSet() const
bool CidrBlockHasBeenSet() const
int GetAvailableIpAddressCount() const
const Aws::String & GetAvailabilityZoneId() const
void SetEnableLniAtDeviceIndex(int value)
Subnet & WithState(SubnetState value)
Subnet & WithAvailableIpAddressCount(int value)
bool GetDefaultForAz() const
void SetOwnerId(OwnerIdT &&value)
Subnet & WithOutpostArn(OutpostArnT &&value)
Subnet & WithEnableDns64(bool value)
bool GetMapPublicIpOnLaunch() const
void SetEnableDns64(bool value)
void SetOutpostArn(OutpostArnT &&value)
bool MapCustomerOwnedIpOnLaunchHasBeenSet() const
void SetType(TypeT &&value)
bool GetAssignIpv6AddressOnCreation() const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream