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/ConnectionTrackingConfiguration.h>
12#include <aws/ec2/model/GroupIdentifier.h>
13#include <aws/ec2/model/Ipv4PrefixSpecification.h>
14#include <aws/ec2/model/Ipv6PrefixSpecification.h>
15#include <aws/ec2/model/NetworkInterfaceAssociation.h>
16#include <aws/ec2/model/NetworkInterfaceAttachment.h>
17#include <aws/ec2/model/NetworkInterfaceIpv6Address.h>
18#include <aws/ec2/model/NetworkInterfacePrivateIpAddress.h>
19#include <aws/ec2/model/NetworkInterfaceStatus.h>
20#include <aws/ec2/model/NetworkInterfaceType.h>
21#include <aws/ec2/model/OperatorResponse.h>
22#include <aws/ec2/model/PublicIpDnsNameOptions.h>
23#include <aws/ec2/model/Tag.h>
57 template <
typename AssociationT = NetworkInterfaceAssociation>
59 m_associationHasBeenSet =
true;
60 m_association = std::forward<AssociationT>(value);
62 template <
typename AssociationT = NetworkInterfaceAssociation>
75 template <
typename AttachmentT = NetworkInterfaceAttachment>
77 m_attachmentHasBeenSet =
true;
78 m_attachment = std::forward<AttachmentT>(value);
80 template <
typename AttachmentT = NetworkInterfaceAttachment>
93 template <
typename AvailabilityZoneT = Aws::String>
95 m_availabilityZoneHasBeenSet =
true;
96 m_availabilityZone = std::forward<AvailabilityZoneT>(value);
98 template <
typename AvailabilityZoneT = Aws::String>
115 template <
typename ConnectionTrackingConfigurationT = ConnectionTrackingConfiguration>
117 m_connectionTrackingConfigurationHasBeenSet =
true;
118 m_connectionTrackingConfiguration = std::forward<ConnectionTrackingConfigurationT>(value);
120 template <
typename ConnectionTrackingConfigurationT = ConnectionTrackingConfiguration>
133 template <
typename DescriptionT = Aws::String>
135 m_descriptionHasBeenSet =
true;
136 m_description = std::forward<DescriptionT>(value);
138 template <
typename DescriptionT = Aws::String>
151 template <
typename GroupsT = Aws::Vector<GroupIdentifier>>
153 m_groupsHasBeenSet =
true;
154 m_groups = std::forward<GroupsT>(value);
156 template <
typename GroupsT = Aws::Vector<GroupIdentifier>>
161 template <
typename GroupsT = GroupIdentifier>
163 m_groupsHasBeenSet =
true;
164 m_groups.emplace_back(std::forward<GroupsT>(value));
176 m_interfaceTypeHasBeenSet =
true;
177 m_interfaceType = value;
191 template <
typename Ipv6AddressesT = Aws::Vector<NetworkInterfaceIpv6Address>>
193 m_ipv6AddressesHasBeenSet =
true;
194 m_ipv6Addresses = std::forward<Ipv6AddressesT>(value);
196 template <
typename Ipv6AddressesT = Aws::Vector<NetworkInterfaceIpv6Address>>
201 template <
typename Ipv6AddressesT = NetworkInterfaceIpv6Address>
203 m_ipv6AddressesHasBeenSet =
true;
204 m_ipv6Addresses.emplace_back(std::forward<Ipv6AddressesT>(value));
215 template <
typename MacAddressT = Aws::String>
217 m_macAddressHasBeenSet =
true;
218 m_macAddress = std::forward<MacAddressT>(value);
220 template <
typename MacAddressT = Aws::String>
233 template <
typename NetworkInterfaceIdT = Aws::String>
235 m_networkInterfaceIdHasBeenSet =
true;
236 m_networkInterfaceId = std::forward<NetworkInterfaceIdT>(value);
238 template <
typename NetworkInterfaceIdT = Aws::String>
251 template <
typename OutpostArnT = Aws::String>
253 m_outpostArnHasBeenSet =
true;
254 m_outpostArn = std::forward<OutpostArnT>(value);
256 template <
typename OutpostArnT = Aws::String>
269 template <
typename OwnerIdT = Aws::String>
271 m_ownerIdHasBeenSet =
true;
272 m_ownerId = std::forward<OwnerIdT>(value);
274 template <
typename OwnerIdT = Aws::String>
290 template <
typename PrivateDnsNameT = Aws::String>
292 m_privateDnsNameHasBeenSet =
true;
293 m_privateDnsName = std::forward<PrivateDnsNameT>(value);
295 template <
typename PrivateDnsNameT = Aws::String>
311 template <
typename PublicDnsNameT = Aws::String>
313 m_publicDnsNameHasBeenSet =
true;
314 m_publicDnsName = std::forward<PublicDnsNameT>(value);
316 template <
typename PublicDnsNameT = Aws::String>
332 template <
typename PublicIpDnsNameOptionsT = PublicIpDnsNameOptions>
334 m_publicIpDnsNameOptionsHasBeenSet =
true;
335 m_publicIpDnsNameOptions = std::forward<PublicIpDnsNameOptionsT>(value);
337 template <
typename PublicIpDnsNameOptionsT = PublicIpDnsNameOptions>
350 template <
typename PrivateIpAddressT = Aws::String>
352 m_privateIpAddressHasBeenSet =
true;
353 m_privateIpAddress = std::forward<PrivateIpAddressT>(value);
355 template <
typename PrivateIpAddressT = Aws::String>
368 template <
typename PrivateIpAddressesT = Aws::Vector<NetworkInterfacePrivateIpAddress>>
370 m_privateIpAddressesHasBeenSet =
true;
371 m_privateIpAddresses = std::forward<PrivateIpAddressesT>(value);
373 template <
typename PrivateIpAddressesT = Aws::Vector<NetworkInterfacePrivateIpAddress>>
378 template <
typename PrivateIpAddressesT = NetworkInterfacePrivateIpAddress>
380 m_privateIpAddressesHasBeenSet =
true;
381 m_privateIpAddresses.emplace_back(std::forward<PrivateIpAddressesT>(value));
392 template <
typename Ipv4PrefixesT = Aws::Vector<Ipv4PrefixSpecification>>
394 m_ipv4PrefixesHasBeenSet =
true;
395 m_ipv4Prefixes = std::forward<Ipv4PrefixesT>(value);
397 template <
typename Ipv4PrefixesT = Aws::Vector<Ipv4PrefixSpecification>>
402 template <
typename Ipv4PrefixesT = Ipv4PrefixSpecification>
404 m_ipv4PrefixesHasBeenSet =
true;
405 m_ipv4Prefixes.emplace_back(std::forward<Ipv4PrefixesT>(value));
416 template <
typename Ipv6PrefixesT = Aws::Vector<Ipv6PrefixSpecification>>
418 m_ipv6PrefixesHasBeenSet =
true;
419 m_ipv6Prefixes = std::forward<Ipv6PrefixesT>(value);
421 template <
typename Ipv6PrefixesT = Aws::Vector<Ipv6PrefixSpecification>>
426 template <
typename Ipv6PrefixesT = Ipv6PrefixSpecification>
428 m_ipv6PrefixesHasBeenSet =
true;
429 m_ipv6Prefixes.emplace_back(std::forward<Ipv6PrefixesT>(value));
441 template <
typename RequesterIdT = Aws::String>
443 m_requesterIdHasBeenSet =
true;
444 m_requesterId = std::forward<RequesterIdT>(value);
446 template <
typename RequesterIdT = Aws::String>
461 m_requesterManagedHasBeenSet =
true;
462 m_requesterManaged = value;
477 m_sourceDestCheckHasBeenSet =
true;
478 m_sourceDestCheck = value;
493 m_statusHasBeenSet =
true;
508 template <
typename SubnetIdT = Aws::String>
510 m_subnetIdHasBeenSet =
true;
511 m_subnetId = std::forward<SubnetIdT>(value);
513 template <
typename SubnetIdT = Aws::String>
526 template <
typename TagSetT = Aws::Vector<Tag>>
528 m_tagSetHasBeenSet =
true;
529 m_tagSet = std::forward<TagSetT>(value);
531 template <
typename TagSetT = Aws::Vector<Tag>>
536 template <
typename TagSetT = Tag>
538 m_tagSetHasBeenSet =
true;
539 m_tagSet.emplace_back(std::forward<TagSetT>(value));
550 template <
typename VpcIdT = Aws::String>
552 m_vpcIdHasBeenSet =
true;
553 m_vpcId = std::forward<VpcIdT>(value);
555 template <
typename VpcIdT = Aws::String>
557 SetVpcId(std::forward<VpcIdT>(value));
574 m_denyAllIgwTrafficHasBeenSet =
true;
575 m_denyAllIgwTraffic = value;
590 m_ipv6NativeHasBeenSet =
true;
591 m_ipv6Native = value;
605 template <
typename Ipv6AddressT = Aws::String>
607 m_ipv6AddressHasBeenSet =
true;
608 m_ipv6Address = std::forward<Ipv6AddressT>(value);
610 template <
typename Ipv6AddressT = Aws::String>
623 template <
typename OperatorT = OperatorResponse>
625 m_operatorHasBeenSet =
true;
626 m_operator = std::forward<OperatorT>(value);
628 template <
typename OperatorT = OperatorResponse>
641 template <
typename AssociatedSubnetsT = Aws::Vector<Aws::String>>
643 m_associatedSubnetsHasBeenSet =
true;
644 m_associatedSubnets = std::forward<AssociatedSubnetsT>(value);
646 template <
typename AssociatedSubnetsT = Aws::Vector<Aws::String>>
651 template <
typename AssociatedSubnetsT = Aws::String>
653 m_associatedSubnetsHasBeenSet =
true;
654 m_associatedSubnets.emplace_back(std::forward<AssociatedSubnetsT>(value));
665 template <
typename AvailabilityZoneIdT = Aws::String>
667 m_availabilityZoneIdHasBeenSet =
true;
668 m_availabilityZoneId = std::forward<AvailabilityZoneIdT>(value);
670 template <
typename AvailabilityZoneIdT = Aws::String>
705 PublicIpDnsNameOptions m_publicIpDnsNameOptions;
717 bool m_requesterManaged{
false};
719 bool m_sourceDestCheck{
false};
729 bool m_denyAllIgwTraffic{
false};
731 bool m_ipv6Native{
false};
735 OperatorResponse m_operator;
740 bool m_associationHasBeenSet =
false;
741 bool m_attachmentHasBeenSet =
false;
742 bool m_availabilityZoneHasBeenSet =
false;
743 bool m_connectionTrackingConfigurationHasBeenSet =
false;
744 bool m_descriptionHasBeenSet =
false;
745 bool m_groupsHasBeenSet =
false;
746 bool m_interfaceTypeHasBeenSet =
false;
747 bool m_ipv6AddressesHasBeenSet =
false;
748 bool m_macAddressHasBeenSet =
false;
749 bool m_networkInterfaceIdHasBeenSet =
false;
750 bool m_outpostArnHasBeenSet =
false;
751 bool m_ownerIdHasBeenSet =
false;
752 bool m_privateDnsNameHasBeenSet =
false;
753 bool m_publicDnsNameHasBeenSet =
false;
754 bool m_publicIpDnsNameOptionsHasBeenSet =
false;
755 bool m_privateIpAddressHasBeenSet =
false;
756 bool m_privateIpAddressesHasBeenSet =
false;
757 bool m_ipv4PrefixesHasBeenSet =
false;
758 bool m_ipv6PrefixesHasBeenSet =
false;
759 bool m_requesterIdHasBeenSet =
false;
760 bool m_requesterManagedHasBeenSet =
false;
761 bool m_sourceDestCheckHasBeenSet =
false;
762 bool m_statusHasBeenSet =
false;
763 bool m_subnetIdHasBeenSet =
false;
764 bool m_tagSetHasBeenSet =
false;
765 bool m_vpcIdHasBeenSet =
false;
766 bool m_denyAllIgwTrafficHasBeenSet =
false;
767 bool m_ipv6NativeHasBeenSet =
false;
768 bool m_ipv6AddressHasBeenSet =
false;
769 bool m_operatorHasBeenSet =
false;
770 bool m_associatedSubnetsHasBeenSet =
false;
771 bool m_availabilityZoneIdHasBeenSet =
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)
const Aws::String & GetAvailabilityZoneId() const
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 AvailabilityZoneIdHasBeenSet() const
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 SetAvailabilityZoneId(AvailabilityZoneIdT &&value)
void SetTagSet(TagSetT &&value)
bool AvailabilityZoneHasBeenSet() const
NetworkInterface & WithAvailabilityZoneId(AvailabilityZoneIdT &&value)
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