7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/ec2/model/NetworkInterfaceAssociation.h>
10#include <aws/ec2/model/NetworkInterfaceAttachment.h>
11#include <aws/core/utils/memory/stl/AWSString.h>
12#include <aws/ec2/model/ConnectionTrackingConfiguration.h>
13#include <aws/core/utils/memory/stl/AWSVector.h>
14#include <aws/ec2/model/NetworkInterfaceType.h>
15#include <aws/ec2/model/PublicIpDnsNameOptions.h>
16#include <aws/ec2/model/NetworkInterfaceStatus.h>
17#include <aws/ec2/model/OperatorResponse.h>
18#include <aws/ec2/model/GroupIdentifier.h>
19#include <aws/ec2/model/NetworkInterfaceIpv6Address.h>
20#include <aws/ec2/model/NetworkInterfacePrivateIpAddress.h>
21#include <aws/ec2/model/Ipv4PrefixSpecification.h>
22#include <aws/ec2/model/Ipv6PrefixSpecification.h>
23#include <aws/ec2/model/Tag.h>
63 template<
typename AssociationT = NetworkInterfaceAssociation>
64 void SetAssociation(AssociationT&& value) { m_associationHasBeenSet =
true; m_association = std::forward<AssociationT>(value); }
65 template<
typename AssociationT = NetworkInterfaceAssociation>
75 template<
typename AttachmentT = NetworkInterfaceAttachment>
76 void SetAttachment(AttachmentT&& value) { m_attachmentHasBeenSet =
true; m_attachment = std::forward<AttachmentT>(value); }
77 template<
typename AttachmentT = NetworkInterfaceAttachment>
87 template<
typename AvailabilityZoneT = Aws::String>
88 void SetAvailabilityZone(AvailabilityZoneT&& value) { m_availabilityZoneHasBeenSet =
true; m_availabilityZone = std::forward<AvailabilityZoneT>(value); }
89 template<
typename AvailabilityZoneT = Aws::String>
103 template<
typename ConnectionTrackingConfigurationT = ConnectionTrackingConfiguration>
104 void SetConnectionTrackingConfiguration(ConnectionTrackingConfigurationT&& value) { m_connectionTrackingConfigurationHasBeenSet =
true; m_connectionTrackingConfiguration = std::forward<ConnectionTrackingConfigurationT>(value); }
105 template<
typename ConnectionTrackingConfigurationT = ConnectionTrackingConfiguration>
115 template<
typename DescriptionT = Aws::String>
116 void SetDescription(DescriptionT&& value) { m_descriptionHasBeenSet =
true; m_description = std::forward<DescriptionT>(value); }
117 template<
typename DescriptionT = Aws::String>
127 template<
typename GroupsT = Aws::Vector<GroupIdentifier>>
128 void SetGroups(GroupsT&& value) { m_groupsHasBeenSet =
true; m_groups = std::forward<GroupsT>(value); }
129 template<
typename GroupsT = Aws::Vector<GroupIdentifier>>
131 template<
typename GroupsT = GroupIdentifier>
132 NetworkInterface&
AddGroups(GroupsT&& value) { m_groupsHasBeenSet =
true; m_groups.emplace_back(std::forward<GroupsT>(value));
return *
this; }
151 template<
typename Ipv6AddressesT = Aws::Vector<NetworkInterfaceIpv6Address>>
152 void SetIpv6Addresses(Ipv6AddressesT&& value) { m_ipv6AddressesHasBeenSet =
true; m_ipv6Addresses = std::forward<Ipv6AddressesT>(value); }
153 template<
typename Ipv6AddressesT = Aws::Vector<NetworkInterfaceIpv6Address>>
155 template<
typename Ipv6AddressesT = NetworkInterfaceIpv6Address>
156 NetworkInterface&
AddIpv6Addresses(Ipv6AddressesT&& value) { m_ipv6AddressesHasBeenSet =
true; m_ipv6Addresses.emplace_back(std::forward<Ipv6AddressesT>(value));
return *
this; }
165 template<
typename MacAddressT = Aws::String>
166 void SetMacAddress(MacAddressT&& value) { m_macAddressHasBeenSet =
true; m_macAddress = std::forward<MacAddressT>(value); }
167 template<
typename MacAddressT = Aws::String>
177 template<
typename NetworkInterfaceIdT = Aws::String>
178 void SetNetworkInterfaceId(NetworkInterfaceIdT&& value) { m_networkInterfaceIdHasBeenSet =
true; m_networkInterfaceId = std::forward<NetworkInterfaceIdT>(value); }
179 template<
typename NetworkInterfaceIdT = Aws::String>
189 template<
typename OutpostArnT = Aws::String>
190 void SetOutpostArn(OutpostArnT&& value) { m_outpostArnHasBeenSet =
true; m_outpostArn = std::forward<OutpostArnT>(value); }
191 template<
typename OutpostArnT = Aws::String>
201 template<
typename OwnerIdT = Aws::String>
202 void SetOwnerId(OwnerIdT&& value) { m_ownerIdHasBeenSet =
true; m_ownerId = std::forward<OwnerIdT>(value); }
203 template<
typename OwnerIdT = Aws::String>
216 template<
typename PrivateDnsNameT = Aws::String>
217 void SetPrivateDnsName(PrivateDnsNameT&& value) { m_privateDnsNameHasBeenSet =
true; m_privateDnsName = std::forward<PrivateDnsNameT>(value); }
218 template<
typename PrivateDnsNameT = Aws::String>
231 template<
typename PublicDnsNameT = Aws::String>
232 void SetPublicDnsName(PublicDnsNameT&& value) { m_publicDnsNameHasBeenSet =
true; m_publicDnsName = std::forward<PublicDnsNameT>(value); }
233 template<
typename PublicDnsNameT = Aws::String>
246 template<
typename PublicIpDnsNameOptionsT = PublicIpDnsNameOptions>
247 void SetPublicIpDnsNameOptions(PublicIpDnsNameOptionsT&& value) { m_publicIpDnsNameOptionsHasBeenSet =
true; m_publicIpDnsNameOptions = std::forward<PublicIpDnsNameOptionsT>(value); }
248 template<
typename PublicIpDnsNameOptionsT = PublicIpDnsNameOptions>
258 template<
typename PrivateIpAddressT = Aws::String>
259 void SetPrivateIpAddress(PrivateIpAddressT&& value) { m_privateIpAddressHasBeenSet =
true; m_privateIpAddress = std::forward<PrivateIpAddressT>(value); }
260 template<
typename PrivateIpAddressT = Aws::String>
270 template<
typename PrivateIpAddressesT = Aws::Vector<NetworkInterfacePrivateIpAddress>>
271 void SetPrivateIpAddresses(PrivateIpAddressesT&& value) { m_privateIpAddressesHasBeenSet =
true; m_privateIpAddresses = std::forward<PrivateIpAddressesT>(value); }
272 template<
typename PrivateIpAddressesT = Aws::Vector<NetworkInterfacePrivateIpAddress>>
274 template<
typename PrivateIpAddressesT = NetworkInterfacePrivateIpAddress>
275 NetworkInterface&
AddPrivateIpAddresses(PrivateIpAddressesT&& value) { m_privateIpAddressesHasBeenSet =
true; m_privateIpAddresses.emplace_back(std::forward<PrivateIpAddressesT>(value));
return *
this; }
284 template<
typename Ipv4PrefixesT = Aws::Vector<Ipv4PrefixSpecification>>
285 void SetIpv4Prefixes(Ipv4PrefixesT&& value) { m_ipv4PrefixesHasBeenSet =
true; m_ipv4Prefixes = std::forward<Ipv4PrefixesT>(value); }
286 template<
typename Ipv4PrefixesT = Aws::Vector<Ipv4PrefixSpecification>>
288 template<
typename Ipv4PrefixesT = Ipv4PrefixSpecification>
289 NetworkInterface&
AddIpv4Prefixes(Ipv4PrefixesT&& value) { m_ipv4PrefixesHasBeenSet =
true; m_ipv4Prefixes.emplace_back(std::forward<Ipv4PrefixesT>(value));
return *
this; }
298 template<
typename Ipv6PrefixesT = Aws::Vector<Ipv6PrefixSpecification>>
299 void SetIpv6Prefixes(Ipv6PrefixesT&& value) { m_ipv6PrefixesHasBeenSet =
true; m_ipv6Prefixes = std::forward<Ipv6PrefixesT>(value); }
300 template<
typename Ipv6PrefixesT = Aws::Vector<Ipv6PrefixSpecification>>
302 template<
typename Ipv6PrefixesT = Ipv6PrefixSpecification>
303 NetworkInterface&
AddIpv6Prefixes(Ipv6PrefixesT&& value) { m_ipv6PrefixesHasBeenSet =
true; m_ipv6Prefixes.emplace_back(std::forward<Ipv6PrefixesT>(value));
return *
this; }
313 template<
typename RequesterIdT = Aws::String>
314 void SetRequesterId(RequesterIdT&& value) { m_requesterIdHasBeenSet =
true; m_requesterId = std::forward<RequesterIdT>(value); }
315 template<
typename RequesterIdT = Aws::String>
326 inline void SetRequesterManaged(
bool value) { m_requesterManagedHasBeenSet =
true; m_requesterManaged = value; }
336 inline void SetSourceDestCheck(
bool value) { m_sourceDestCheckHasBeenSet =
true; m_sourceDestCheck = value; }
356 template<
typename SubnetIdT = Aws::String>
357 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet =
true; m_subnetId = std::forward<SubnetIdT>(value); }
358 template<
typename SubnetIdT = Aws::String>
368 template<
typename TagSetT = Aws::Vector<Tag>>
369 void SetTagSet(TagSetT&& value) { m_tagSetHasBeenSet =
true; m_tagSet = std::forward<TagSetT>(value); }
370 template<
typename TagSetT = Aws::Vector<Tag>>
372 template<
typename TagSetT = Tag>
373 NetworkInterface&
AddTagSet(TagSetT&& value) { m_tagSetHasBeenSet =
true; m_tagSet.emplace_back(std::forward<TagSetT>(value));
return *
this; }
382 template<
typename VpcIdT = Aws::String>
383 void SetVpcId(VpcIdT&& value) { m_vpcIdHasBeenSet =
true; m_vpcId = std::forward<VpcIdT>(value); }
384 template<
typename VpcIdT = Aws::String>
399 inline void SetDenyAllIgwTraffic(
bool value) { m_denyAllIgwTrafficHasBeenSet =
true; m_denyAllIgwTraffic = value; }
409 inline void SetIpv6Native(
bool value) { m_ipv6NativeHasBeenSet =
true; m_ipv6Native = value; }
419 template<
typename Ipv6AddressT = Aws::String>
420 void SetIpv6Address(Ipv6AddressT&& value) { m_ipv6AddressHasBeenSet =
true; m_ipv6Address = std::forward<Ipv6AddressT>(value); }
421 template<
typename Ipv6AddressT = Aws::String>
431 template<
typename OperatorT = OperatorResponse>
432 void SetOperator(OperatorT&& value) { m_operatorHasBeenSet =
true; m_operator = std::forward<OperatorT>(value); }
433 template<
typename OperatorT = OperatorResponse>
443 template<
typename AssociatedSubnetsT = Aws::Vector<Aws::String>>
444 void SetAssociatedSubnets(AssociatedSubnetsT&& value) { m_associatedSubnetsHasBeenSet =
true; m_associatedSubnets = std::forward<AssociatedSubnetsT>(value); }
445 template<
typename AssociatedSubnetsT = Aws::Vector<Aws::String>>
447 template<
typename AssociatedSubnetsT = Aws::String>
448 NetworkInterface&
AddAssociatedSubnets(AssociatedSubnetsT&& value) { m_associatedSubnetsHasBeenSet =
true; m_associatedSubnets.emplace_back(std::forward<AssociatedSubnetsT>(value));
return *
this; }
453 bool m_associationHasBeenSet =
false;
456 bool m_attachmentHasBeenSet =
false;
459 bool m_availabilityZoneHasBeenSet =
false;
462 bool m_connectionTrackingConfigurationHasBeenSet =
false;
465 bool m_descriptionHasBeenSet =
false;
468 bool m_groupsHasBeenSet =
false;
471 bool m_interfaceTypeHasBeenSet =
false;
474 bool m_ipv6AddressesHasBeenSet =
false;
477 bool m_macAddressHasBeenSet =
false;
480 bool m_networkInterfaceIdHasBeenSet =
false;
483 bool m_outpostArnHasBeenSet =
false;
486 bool m_ownerIdHasBeenSet =
false;
489 bool m_privateDnsNameHasBeenSet =
false;
492 bool m_publicDnsNameHasBeenSet =
false;
494 PublicIpDnsNameOptions m_publicIpDnsNameOptions;
495 bool m_publicIpDnsNameOptionsHasBeenSet =
false;
498 bool m_privateIpAddressHasBeenSet =
false;
501 bool m_privateIpAddressesHasBeenSet =
false;
504 bool m_ipv4PrefixesHasBeenSet =
false;
507 bool m_ipv6PrefixesHasBeenSet =
false;
510 bool m_requesterIdHasBeenSet =
false;
512 bool m_requesterManaged{
false};
513 bool m_requesterManagedHasBeenSet =
false;
515 bool m_sourceDestCheck{
false};
516 bool m_sourceDestCheckHasBeenSet =
false;
519 bool m_statusHasBeenSet =
false;
522 bool m_subnetIdHasBeenSet =
false;
525 bool m_tagSetHasBeenSet =
false;
528 bool m_vpcIdHasBeenSet =
false;
530 bool m_denyAllIgwTraffic{
false};
531 bool m_denyAllIgwTrafficHasBeenSet =
false;
533 bool m_ipv6Native{
false};
534 bool m_ipv6NativeHasBeenSet =
false;
537 bool m_ipv6AddressHasBeenSet =
false;
539 OperatorResponse m_operator;
540 bool m_operatorHasBeenSet =
false;
543 bool m_associatedSubnetsHasBeenSet =
false;
const Aws::String & GetPrivateDnsName() const
void SetIpv6Addresses(Ipv6AddressesT &&value)
bool Ipv6AddressHasBeenSet() const
NetworkInterface & WithOperator(OperatorT &&value)
bool GetSourceDestCheck() const
const Aws::String & GetVpcId() const
bool GetIpv6Native() const
NetworkInterfaceStatus GetStatus() const
const Aws::String & GetRequesterId() const
NetworkInterface & WithGroups(GroupsT &&value)
NetworkInterface & WithStatus(NetworkInterfaceStatus value)
NetworkInterface & WithNetworkInterfaceId(NetworkInterfaceIdT &&value)
void SetInterfaceType(NetworkInterfaceType value)
const Aws::String & GetPrivateIpAddress() const
bool PrivateDnsNameHasBeenSet() const
void SetNetworkInterfaceId(NetworkInterfaceIdT &&value)
bool PublicIpDnsNameOptionsHasBeenSet() const
bool OutpostArnHasBeenSet() const
NetworkInterface & AddGroups(GroupsT &&value)
NetworkInterface & WithDenyAllIgwTraffic(bool value)
AWS_EC2_API NetworkInterface()=default
void SetDescription(DescriptionT &&value)
const Aws::String & GetOwnerId() const
bool Ipv6NativeHasBeenSet() const
void SetConnectionTrackingConfiguration(ConnectionTrackingConfigurationT &&value)
void SetPublicDnsName(PublicDnsNameT &&value)
NetworkInterface & WithPrivateIpAddress(PrivateIpAddressT &&value)
void SetOperator(OperatorT &&value)
bool GetRequesterManaged() const
bool NetworkInterfaceIdHasBeenSet() const
bool DenyAllIgwTrafficHasBeenSet() const
const OperatorResponse & GetOperator() const
const Aws::String & GetMacAddress() const
const PublicIpDnsNameOptions & GetPublicIpDnsNameOptions() const
AWS_EC2_API NetworkInterface(const Aws::Utils::Xml::XmlNode &xmlNode)
bool SourceDestCheckHasBeenSet() const
NetworkInterface & WithInterfaceType(NetworkInterfaceType value)
NetworkInterface & WithIpv6Native(bool value)
bool ConnectionTrackingConfigurationHasBeenSet() const
const Aws::String & GetOutpostArn() const
bool AssociatedSubnetsHasBeenSet() const
void SetPrivateDnsName(PrivateDnsNameT &&value)
void SetIpv6Native(bool value)
NetworkInterface & WithRequesterManaged(bool value)
NetworkInterface & WithTagSet(TagSetT &&value)
void SetPrivateIpAddresses(PrivateIpAddressesT &&value)
bool PrivateIpAddressHasBeenSet() const
NetworkInterface & WithAttachment(AttachmentT &&value)
NetworkInterface & WithIpv6Prefixes(Ipv6PrefixesT &&value)
NetworkInterface & WithIpv6Address(Ipv6AddressT &&value)
const Aws::String & GetDescription() const
void SetAttachment(AttachmentT &&value)
NetworkInterface & WithPublicIpDnsNameOptions(PublicIpDnsNameOptionsT &&value)
void SetIpv4Prefixes(Ipv4PrefixesT &&value)
bool PrivateIpAddressesHasBeenSet() const
NetworkInterface & WithSubnetId(SubnetIdT &&value)
const Aws::String & GetNetworkInterfaceId() const
bool DescriptionHasBeenSet() const
const Aws::Vector< Ipv4PrefixSpecification > & GetIpv4Prefixes() const
void SetPublicIpDnsNameOptions(PublicIpDnsNameOptionsT &&value)
const NetworkInterfaceAssociation & GetAssociation() const
bool VpcIdHasBeenSet() const
bool OwnerIdHasBeenSet() const
NetworkInterface & AddIpv6Prefixes(Ipv6PrefixesT &&value)
void SetAssociation(AssociationT &&value)
void SetMacAddress(MacAddressT &&value)
void SetRequesterId(RequesterIdT &&value)
NetworkInterface & AddIpv4Prefixes(Ipv4PrefixesT &&value)
const Aws::Vector< Ipv6PrefixSpecification > & GetIpv6Prefixes() const
void SetGroups(GroupsT &&value)
const Aws::Vector< NetworkInterfacePrivateIpAddress > & GetPrivateIpAddresses() const
void SetStatus(NetworkInterfaceStatus value)
void SetRequesterManaged(bool value)
void SetSubnetId(SubnetIdT &&value)
void SetDenyAllIgwTraffic(bool value)
NetworkInterface & WithOutpostArn(OutpostArnT &&value)
bool GroupsHasBeenSet() const
bool StatusHasBeenSet() const
const Aws::String & GetIpv6Address() const
void SetAssociatedSubnets(AssociatedSubnetsT &&value)
const Aws::String & GetAvailabilityZone() const
NetworkInterfaceType GetInterfaceType() const
const ConnectionTrackingConfiguration & GetConnectionTrackingConfiguration() const
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
NetworkInterface & WithMacAddress(MacAddressT &&value)
NetworkInterface & AddAssociatedSubnets(AssociatedSubnetsT &&value)
const Aws::String & GetSubnetId() const
void SetAvailabilityZone(AvailabilityZoneT &&value)
void SetPrivateIpAddress(PrivateIpAddressT &&value)
bool MacAddressHasBeenSet() const
NetworkInterface & AddPrivateIpAddresses(PrivateIpAddressesT &&value)
bool InterfaceTypeHasBeenSet() const
const Aws::Vector< Aws::String > & GetAssociatedSubnets() const
NetworkInterface & WithAssociation(AssociationT &&value)
NetworkInterface & WithPrivateIpAddresses(PrivateIpAddressesT &&value)
bool SubnetIdHasBeenSet() const
NetworkInterface & WithConnectionTrackingConfiguration(ConnectionTrackingConfigurationT &&value)
bool AssociationHasBeenSet() const
NetworkInterface & WithIpv4Prefixes(Ipv4PrefixesT &&value)
bool TagSetHasBeenSet() const
NetworkInterface & WithDescription(DescriptionT &&value)
NetworkInterface & WithOwnerId(OwnerIdT &&value)
NetworkInterface & AddIpv6Addresses(Ipv6AddressesT &&value)
NetworkInterface & WithRequesterId(RequesterIdT &&value)
NetworkInterface & WithPrivateDnsName(PrivateDnsNameT &&value)
bool GetDenyAllIgwTraffic() const
NetworkInterface & AddTagSet(TagSetT &&value)
NetworkInterface & WithAssociatedSubnets(AssociatedSubnetsT &&value)
NetworkInterface & WithIpv6Addresses(Ipv6AddressesT &&value)
const NetworkInterfaceAttachment & GetAttachment() const
bool OperatorHasBeenSet() const
void SetIpv6Address(Ipv6AddressT &&value)
AWS_EC2_API NetworkInterface & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
NetworkInterface & WithAvailabilityZone(AvailabilityZoneT &&value)
void SetSourceDestCheck(bool value)
bool PublicDnsNameHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
void SetIpv6Prefixes(Ipv6PrefixesT &&value)
void SetVpcId(VpcIdT &&value)
bool AttachmentHasBeenSet() const
bool Ipv6PrefixesHasBeenSet() const
bool RequesterManagedHasBeenSet() const
bool Ipv4PrefixesHasBeenSet() const
NetworkInterface & WithSourceDestCheck(bool value)
const Aws::String & GetPublicDnsName() const
NetworkInterface & WithPublicDnsName(PublicDnsNameT &&value)
const Aws::Vector< NetworkInterfaceIpv6Address > & GetIpv6Addresses() const
const Aws::Vector< GroupIdentifier > & GetGroups() const
void SetTagSet(TagSetT &&value)
bool AvailabilityZoneHasBeenSet() const
bool RequesterIdHasBeenSet() const
bool Ipv6AddressesHasBeenSet() const
const Aws::Vector< Tag > & GetTagSet() const
NetworkInterface & WithVpcId(VpcIdT &&value)
void SetOutpostArn(OutpostArnT &&value)
void SetOwnerId(OwnerIdT &&value)
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