7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/ec2/model/PrivateDnsNameOptionsOnLaunch.h>
12#include <aws/ec2/model/BlockPublicAccessStates.h>
13#include <aws/ec2/model/SubnetState.h>
14#include <aws/ec2/model/SubnetIpv6CidrBlockAssociation.h>
15#include <aws/ec2/model/Tag.h>
54 template<
typename AvailabilityZoneIdT = Aws::String>
55 void SetAvailabilityZoneId(AvailabilityZoneIdT&& value) { m_availabilityZoneIdHasBeenSet =
true; m_availabilityZoneId = std::forward<AvailabilityZoneIdT>(value); }
56 template<
typename AvailabilityZoneIdT = Aws::String>
90 template<
typename CustomerOwnedIpv4PoolT = Aws::String>
91 void SetCustomerOwnedIpv4Pool(CustomerOwnedIpv4PoolT&& value) { m_customerOwnedIpv4PoolHasBeenSet =
true; m_customerOwnedIpv4Pool = std::forward<CustomerOwnedIpv4PoolT>(value); }
92 template<
typename CustomerOwnedIpv4PoolT = Aws::String>
102 template<
typename OwnerIdT = Aws::String>
103 void SetOwnerId(OwnerIdT&& value) { m_ownerIdHasBeenSet =
true; m_ownerId = std::forward<OwnerIdT>(value); }
104 template<
typename OwnerIdT = Aws::String>
125 template<
typename Ipv6C
idrBlockAssociationSetT = Aws::Vector<SubnetIpv6C
idrBlockAssociation>>
126 void SetIpv6CidrBlockAssociationSet(Ipv6CidrBlockAssociationSetT&& value) { m_ipv6CidrBlockAssociationSetHasBeenSet =
true; m_ipv6CidrBlockAssociationSet = std::forward<Ipv6CidrBlockAssociationSetT>(value); }
127 template<
typename Ipv6C
idrBlockAssociationSetT = Aws::Vector<SubnetIpv6C
idrBlockAssociation>>
129 template<
typename Ipv6C
idrBlockAssociationSetT = SubnetIpv6C
idrBlockAssociation>
130 Subnet&
AddIpv6CidrBlockAssociationSet(Ipv6CidrBlockAssociationSetT&& value) { m_ipv6CidrBlockAssociationSetHasBeenSet =
true; m_ipv6CidrBlockAssociationSet.emplace_back(std::forward<Ipv6CidrBlockAssociationSetT>(value));
return *
this; }
139 template<
typename TagsT = Aws::Vector<Tag>>
140 void SetTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags = std::forward<TagsT>(value); }
141 template<
typename TagsT = Aws::Vector<Tag>>
143 template<
typename TagsT = Tag>
144 Subnet&
AddTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags.emplace_back(std::forward<TagsT>(value));
return *
this; }
153 template<
typename SubnetArnT = Aws::String>
154 void SetSubnetArn(SubnetArnT&& value) { m_subnetArnHasBeenSet =
true; m_subnetArn = std::forward<SubnetArnT>(value); }
155 template<
typename SubnetArnT = Aws::String>
165 template<
typename OutpostArnT = Aws::String>
166 void SetOutpostArn(OutpostArnT&& value) { m_outpostArnHasBeenSet =
true; m_outpostArn = std::forward<OutpostArnT>(value); }
167 template<
typename OutpostArnT = Aws::String>
179 inline void SetEnableDns64(
bool value) { m_enableDns64HasBeenSet =
true; m_enableDns64 = value; }
189 inline void SetIpv6Native(
bool value) { m_ipv6NativeHasBeenSet =
true; m_ipv6Native = value; }
200 template<
typename PrivateDnsNameOptionsOnLaunchT = PrivateDnsNameOptionsOnLaunch>
201 void SetPrivateDnsNameOptionsOnLaunch(PrivateDnsNameOptionsOnLaunchT&& value) { m_privateDnsNameOptionsOnLaunchHasBeenSet =
true; m_privateDnsNameOptionsOnLaunch = std::forward<PrivateDnsNameOptionsOnLaunchT>(value); }
202 template<
typename PrivateDnsNameOptionsOnLaunchT = PrivateDnsNameOptionsOnLaunch>
212 template<
typename BlockPublicAccessStatesT = BlockPublicAccessStates>
213 void SetBlockPublicAccessStates(BlockPublicAccessStatesT&& value) { m_blockPublicAccessStatesHasBeenSet =
true; m_blockPublicAccessStates = std::forward<BlockPublicAccessStatesT>(value); }
214 template<
typename BlockPublicAccessStatesT = BlockPublicAccessStates>
228 template<
typename TypeT = Aws::String>
229 void SetType(TypeT&& value) { m_typeHasBeenSet =
true; m_type = std::forward<TypeT>(value); }
230 template<
typename TypeT = Aws::String>
240 template<
typename SubnetIdT = Aws::String>
241 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet =
true; m_subnetId = std::forward<SubnetIdT>(value); }
242 template<
typename SubnetIdT = Aws::String>
266 template<
typename VpcIdT = Aws::String>
267 void SetVpcId(VpcIdT&& value) { m_vpcIdHasBeenSet =
true; m_vpcId = std::forward<VpcIdT>(value); }
268 template<
typename VpcIdT = Aws::String>
278 template<
typename C
idrBlockT = Aws::String>
279 void SetCidrBlock(CidrBlockT&& value) { m_cidrBlockHasBeenSet =
true; m_cidrBlock = std::forward<CidrBlockT>(value); }
280 template<
typename C
idrBlockT = Aws::String>
301 template<
typename AvailabilityZoneT = Aws::String>
302 void SetAvailabilityZone(AvailabilityZoneT&& value) { m_availabilityZoneHasBeenSet =
true; m_availabilityZone = std::forward<AvailabilityZoneT>(value); }
303 template<
typename AvailabilityZoneT = Aws::String>
313 inline void SetDefaultForAz(
bool value) { m_defaultForAzHasBeenSet =
true; m_defaultForAz = value; }
327 inline void SetMapPublicIpOnLaunch(
bool value) { m_mapPublicIpOnLaunchHasBeenSet =
true; m_mapPublicIpOnLaunch = value; }
333 bool m_availabilityZoneIdHasBeenSet =
false;
335 int m_enableLniAtDeviceIndex{0};
336 bool m_enableLniAtDeviceIndexHasBeenSet =
false;
338 bool m_mapCustomerOwnedIpOnLaunch{
false};
339 bool m_mapCustomerOwnedIpOnLaunchHasBeenSet =
false;
342 bool m_customerOwnedIpv4PoolHasBeenSet =
false;
345 bool m_ownerIdHasBeenSet =
false;
347 bool m_assignIpv6AddressOnCreation{
false};
348 bool m_assignIpv6AddressOnCreationHasBeenSet =
false;
351 bool m_ipv6CidrBlockAssociationSetHasBeenSet =
false;
354 bool m_tagsHasBeenSet =
false;
357 bool m_subnetArnHasBeenSet =
false;
360 bool m_outpostArnHasBeenSet =
false;
362 bool m_enableDns64{
false};
363 bool m_enableDns64HasBeenSet =
false;
365 bool m_ipv6Native{
false};
366 bool m_ipv6NativeHasBeenSet =
false;
368 PrivateDnsNameOptionsOnLaunch m_privateDnsNameOptionsOnLaunch;
369 bool m_privateDnsNameOptionsOnLaunchHasBeenSet =
false;
371 BlockPublicAccessStates m_blockPublicAccessStates;
372 bool m_blockPublicAccessStatesHasBeenSet =
false;
375 bool m_typeHasBeenSet =
false;
378 bool m_subnetIdHasBeenSet =
false;
381 bool m_stateHasBeenSet =
false;
384 bool m_vpcIdHasBeenSet =
false;
387 bool m_cidrBlockHasBeenSet =
false;
389 int m_availableIpAddressCount{0};
390 bool m_availableIpAddressCountHasBeenSet =
false;
393 bool m_availabilityZoneHasBeenSet =
false;
395 bool m_defaultForAz{
false};
396 bool m_defaultForAzHasBeenSet =
false;
398 bool m_mapPublicIpOnLaunch{
false};
399 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