/** * 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 #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class CreateNetworkInterfaceRequest : public EC2Request { public: AWS_EC2_API CreateNetworkInterfaceRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateNetworkInterface"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

A description for the network interface.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the network interface.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the network interface.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the network interface.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the network interface.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the network interface.

*/ inline CreateNetworkInterfaceRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the network interface.

*/ inline CreateNetworkInterfaceRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the network interface.

*/ inline CreateNetworkInterfaceRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline CreateNetworkInterfaceRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The IDs of one or more security groups.

*/ inline const Aws::Vector& GetGroups() const{ return m_groups; } /** *

The IDs of one or more security groups.

*/ inline bool GroupsHasBeenSet() const { return m_groupsHasBeenSet; } /** *

The IDs of one or more security groups.

*/ inline void SetGroups(const Aws::Vector& value) { m_groupsHasBeenSet = true; m_groups = value; } /** *

The IDs of one or more security groups.

*/ inline void SetGroups(Aws::Vector&& value) { m_groupsHasBeenSet = true; m_groups = std::move(value); } /** *

The IDs of one or more security groups.

*/ inline CreateNetworkInterfaceRequest& WithGroups(const Aws::Vector& value) { SetGroups(value); return *this;} /** *

The IDs of one or more security groups.

*/ inline CreateNetworkInterfaceRequest& WithGroups(Aws::Vector&& value) { SetGroups(std::move(value)); return *this;} /** *

The IDs of one or more security groups.

*/ inline CreateNetworkInterfaceRequest& AddGroups(const Aws::String& value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

The IDs of one or more security groups.

*/ inline CreateNetworkInterfaceRequest& AddGroups(Aws::String&& value) { m_groupsHasBeenSet = true; m_groups.push_back(std::move(value)); return *this; } /** *

The IDs of one or more security groups.

*/ inline CreateNetworkInterfaceRequest& AddGroups(const char* value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range.

You can't * specify a count of IPv6 addresses using this parameter if you've specified one * of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of * IPv6 prefixes.

If your subnet has the * AssignIpv6AddressOnCreation attribute set, you can override that * setting by specifying 0 as the IPv6 address count.

*/ inline int GetIpv6AddressCount() const{ return m_ipv6AddressCount; } /** *

The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range.

You can't * specify a count of IPv6 addresses using this parameter if you've specified one * of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of * IPv6 prefixes.

If your subnet has the * AssignIpv6AddressOnCreation attribute set, you can override that * setting by specifying 0 as the IPv6 address count.

*/ inline bool Ipv6AddressCountHasBeenSet() const { return m_ipv6AddressCountHasBeenSet; } /** *

The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range.

You can't * specify a count of IPv6 addresses using this parameter if you've specified one * of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of * IPv6 prefixes.

If your subnet has the * AssignIpv6AddressOnCreation attribute set, you can override that * setting by specifying 0 as the IPv6 address count.

*/ inline void SetIpv6AddressCount(int value) { m_ipv6AddressCountHasBeenSet = true; m_ipv6AddressCount = value; } /** *

The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range.

You can't * specify a count of IPv6 addresses using this parameter if you've specified one * of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of * IPv6 prefixes.

If your subnet has the * AssignIpv6AddressOnCreation attribute set, you can override that * setting by specifying 0 as the IPv6 address count.

*/ inline CreateNetworkInterfaceRequest& WithIpv6AddressCount(int value) { SetIpv6AddressCount(value); return *this;} /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline const Aws::Vector& GetIpv6Addresses() const{ return m_ipv6Addresses; } /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline bool Ipv6AddressesHasBeenSet() const { return m_ipv6AddressesHasBeenSet; } /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline void SetIpv6Addresses(const Aws::Vector& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses = value; } /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline void SetIpv6Addresses(Aws::Vector&& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses = std::move(value); } /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline CreateNetworkInterfaceRequest& WithIpv6Addresses(const Aws::Vector& value) { SetIpv6Addresses(value); return *this;} /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline CreateNetworkInterfaceRequest& WithIpv6Addresses(Aws::Vector&& value) { SetIpv6Addresses(std::move(value)); return *this;} /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline CreateNetworkInterfaceRequest& AddIpv6Addresses(const InstanceIpv6Address& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses.push_back(value); return *this; } /** *

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You * can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.

*/ inline CreateNetworkInterfaceRequest& AddIpv6Addresses(InstanceIpv6Address&& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses.push_back(std::move(value)); return *this; } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline const Aws::String& GetPrivateIpAddress() const{ return m_privateIpAddress; } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline void SetPrivateIpAddress(const Aws::String& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = value; } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline void SetPrivateIpAddress(Aws::String&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::move(value); } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline void SetPrivateIpAddress(const char* value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress.assign(value); } /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline CreateNetworkInterfaceRequest& WithPrivateIpAddress(const Aws::String& value) { SetPrivateIpAddress(value); return *this;} /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline CreateNetworkInterfaceRequest& WithPrivateIpAddress(Aws::String&& value) { SetPrivateIpAddress(std::move(value)); return *this;} /** *

The primary private IPv4 address of the network interface. If you don't * specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 * CIDR range. If you specify an IP address, you cannot indicate any IP addresses * specified in privateIpAddresses as primary (only one IP address can * be designated as primary).

*/ inline CreateNetworkInterfaceRequest& WithPrivateIpAddress(const char* value) { SetPrivateIpAddress(value); return *this;} /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline const Aws::Vector& GetPrivateIpAddresses() const{ return m_privateIpAddresses; } /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline bool PrivateIpAddressesHasBeenSet() const { return m_privateIpAddressesHasBeenSet; } /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline void SetPrivateIpAddresses(const Aws::Vector& value) { m_privateIpAddressesHasBeenSet = true; m_privateIpAddresses = value; } /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline void SetPrivateIpAddresses(Aws::Vector&& value) { m_privateIpAddressesHasBeenSet = true; m_privateIpAddresses = std::move(value); } /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline CreateNetworkInterfaceRequest& WithPrivateIpAddresses(const Aws::Vector& value) { SetPrivateIpAddresses(value); return *this;} /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline CreateNetworkInterfaceRequest& WithPrivateIpAddresses(Aws::Vector&& value) { SetPrivateIpAddresses(std::move(value)); return *this;} /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline CreateNetworkInterfaceRequest& AddPrivateIpAddresses(const PrivateIpAddressSpecification& value) { m_privateIpAddressesHasBeenSet = true; m_privateIpAddresses.push_back(value); return *this; } /** *

The private IPv4 addresses.

You can't specify private IPv4 addresses * if you've specified one of the following: a count of private IPv4 addresses, * specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline CreateNetworkInterfaceRequest& AddPrivateIpAddresses(PrivateIpAddressSpecification&& value) { m_privateIpAddressesHasBeenSet = true; m_privateIpAddresses.push_back(std::move(value)); return *this; } /** *

The number of secondary private IPv4 addresses to assign to a network * interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 * selects these IP addresses within the subnet's IPv4 CIDR range. You can't * specify this option and specify more than one private IP address using * privateIpAddresses.

You can't specify a count of private * IPv4 addresses if you've specified one of the following: specific private IPv4 * addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline int GetSecondaryPrivateIpAddressCount() const{ return m_secondaryPrivateIpAddressCount; } /** *

The number of secondary private IPv4 addresses to assign to a network * interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 * selects these IP addresses within the subnet's IPv4 CIDR range. You can't * specify this option and specify more than one private IP address using * privateIpAddresses.

You can't specify a count of private * IPv4 addresses if you've specified one of the following: specific private IPv4 * addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline bool SecondaryPrivateIpAddressCountHasBeenSet() const { return m_secondaryPrivateIpAddressCountHasBeenSet; } /** *

The number of secondary private IPv4 addresses to assign to a network * interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 * selects these IP addresses within the subnet's IPv4 CIDR range. You can't * specify this option and specify more than one private IP address using * privateIpAddresses.

You can't specify a count of private * IPv4 addresses if you've specified one of the following: specific private IPv4 * addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline void SetSecondaryPrivateIpAddressCount(int value) { m_secondaryPrivateIpAddressCountHasBeenSet = true; m_secondaryPrivateIpAddressCount = value; } /** *

The number of secondary private IPv4 addresses to assign to a network * interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 * selects these IP addresses within the subnet's IPv4 CIDR range. You can't * specify this option and specify more than one private IP address using * privateIpAddresses.

You can't specify a count of private * IPv4 addresses if you've specified one of the following: specific private IPv4 * addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

*/ inline CreateNetworkInterfaceRequest& WithSecondaryPrivateIpAddressCount(int value) { SetSecondaryPrivateIpAddressCount(value); return *this;} /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline const Aws::Vector& GetIpv4Prefixes() const{ return m_ipv4Prefixes; } /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline bool Ipv4PrefixesHasBeenSet() const { return m_ipv4PrefixesHasBeenSet; } /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline void SetIpv4Prefixes(const Aws::Vector& value) { m_ipv4PrefixesHasBeenSet = true; m_ipv4Prefixes = value; } /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline void SetIpv4Prefixes(Aws::Vector&& value) { m_ipv4PrefixesHasBeenSet = true; m_ipv4Prefixes = std::move(value); } /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv4Prefixes(const Aws::Vector& value) { SetIpv4Prefixes(value); return *this;} /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv4Prefixes(Aws::Vector&& value) { SetIpv4Prefixes(std::move(value)); return *this;} /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline CreateNetworkInterfaceRequest& AddIpv4Prefixes(const Ipv4PrefixSpecificationRequest& value) { m_ipv4PrefixesHasBeenSet = true; m_ipv4Prefixes.push_back(value); return *this; } /** *

The IPv4 prefixes assigned to the network interface.

You can't specify * IPv4 prefixes if you've specified one of the following: a count of IPv4 * prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.

*/ inline CreateNetworkInterfaceRequest& AddIpv4Prefixes(Ipv4PrefixSpecificationRequest&& value) { m_ipv4PrefixesHasBeenSet = true; m_ipv4Prefixes.push_back(std::move(value)); return *this; } /** *

The number of IPv4 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv4 prefixes if * you've specified one of the following: specific IPv4 prefixes, specific private * IPv4 addresses, or a count of private IPv4 addresses.

*/ inline int GetIpv4PrefixCount() const{ return m_ipv4PrefixCount; } /** *

The number of IPv4 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv4 prefixes if * you've specified one of the following: specific IPv4 prefixes, specific private * IPv4 addresses, or a count of private IPv4 addresses.

*/ inline bool Ipv4PrefixCountHasBeenSet() const { return m_ipv4PrefixCountHasBeenSet; } /** *

The number of IPv4 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv4 prefixes if * you've specified one of the following: specific IPv4 prefixes, specific private * IPv4 addresses, or a count of private IPv4 addresses.

*/ inline void SetIpv4PrefixCount(int value) { m_ipv4PrefixCountHasBeenSet = true; m_ipv4PrefixCount = value; } /** *

The number of IPv4 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv4 prefixes if * you've specified one of the following: specific IPv4 prefixes, specific private * IPv4 addresses, or a count of private IPv4 addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv4PrefixCount(int value) { SetIpv4PrefixCount(value); return *this;} /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline const Aws::Vector& GetIpv6Prefixes() const{ return m_ipv6Prefixes; } /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline bool Ipv6PrefixesHasBeenSet() const { return m_ipv6PrefixesHasBeenSet; } /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline void SetIpv6Prefixes(const Aws::Vector& value) { m_ipv6PrefixesHasBeenSet = true; m_ipv6Prefixes = value; } /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline void SetIpv6Prefixes(Aws::Vector&& value) { m_ipv6PrefixesHasBeenSet = true; m_ipv6Prefixes = std::move(value); } /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv6Prefixes(const Aws::Vector& value) { SetIpv6Prefixes(value); return *this;} /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv6Prefixes(Aws::Vector&& value) { SetIpv6Prefixes(std::move(value)); return *this;} /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline CreateNetworkInterfaceRequest& AddIpv6Prefixes(const Ipv6PrefixSpecificationRequest& value) { m_ipv6PrefixesHasBeenSet = true; m_ipv6Prefixes.push_back(value); return *this; } /** *

The IPv6 prefixes assigned to the network interface.

You can't specify * IPv6 prefixes if you've specified one of the following: a count of IPv6 * prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

*/ inline CreateNetworkInterfaceRequest& AddIpv6Prefixes(Ipv6PrefixSpecificationRequest&& value) { m_ipv6PrefixesHasBeenSet = true; m_ipv6Prefixes.push_back(std::move(value)); return *this; } /** *

The number of IPv6 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv6 prefixes if * you've specified one of the following: specific IPv6 prefixes, specific IPv6 * addresses, or a count of IPv6 addresses.

*/ inline int GetIpv6PrefixCount() const{ return m_ipv6PrefixCount; } /** *

The number of IPv6 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv6 prefixes if * you've specified one of the following: specific IPv6 prefixes, specific IPv6 * addresses, or a count of IPv6 addresses.

*/ inline bool Ipv6PrefixCountHasBeenSet() const { return m_ipv6PrefixCountHasBeenSet; } /** *

The number of IPv6 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv6 prefixes if * you've specified one of the following: specific IPv6 prefixes, specific IPv6 * addresses, or a count of IPv6 addresses.

*/ inline void SetIpv6PrefixCount(int value) { m_ipv6PrefixCountHasBeenSet = true; m_ipv6PrefixCount = value; } /** *

The number of IPv6 prefixes that Amazon Web Services automatically assigns to * the network interface.

You can't specify a count of IPv6 prefixes if * you've specified one of the following: specific IPv6 prefixes, specific IPv6 * addresses, or a count of IPv6 addresses.

*/ inline CreateNetworkInterfaceRequest& WithIpv6PrefixCount(int value) { SetIpv6PrefixCount(value); return *this;} /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline const NetworkInterfaceCreationType& GetInterfaceType() const{ return m_interfaceType; } /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline bool InterfaceTypeHasBeenSet() const { return m_interfaceTypeHasBeenSet; } /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline void SetInterfaceType(const NetworkInterfaceCreationType& value) { m_interfaceTypeHasBeenSet = true; m_interfaceType = value; } /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline void SetInterfaceType(NetworkInterfaceCreationType&& value) { m_interfaceTypeHasBeenSet = true; m_interfaceType = std::move(value); } /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline CreateNetworkInterfaceRequest& WithInterfaceType(const NetworkInterfaceCreationType& value) { SetInterfaceType(value); return *this;} /** *

The type of network interface. The default is interface.

*

The only supported values are interface, efa, and * trunk.

*/ inline CreateNetworkInterfaceRequest& WithInterfaceType(NetworkInterfaceCreationType&& value) { SetInterfaceType(std::move(value)); return *this;} /** *

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The ID of the subnet to associate with the network interface.

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

The tags to apply to the new network interface.

*/ inline const Aws::Vector& GetTagSpecifications() const{ return m_tagSpecifications; } /** *

The tags to apply to the new network interface.

*/ inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } /** *

The tags to apply to the new network interface.

*/ inline void SetTagSpecifications(const Aws::Vector& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } /** *

The tags to apply to the new network interface.

*/ inline void SetTagSpecifications(Aws::Vector&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } /** *

The tags to apply to the new network interface.

*/ inline CreateNetworkInterfaceRequest& WithTagSpecifications(const Aws::Vector& value) { SetTagSpecifications(value); return *this;} /** *

The tags to apply to the new network interface.

*/ inline CreateNetworkInterfaceRequest& WithTagSpecifications(Aws::Vector&& value) { SetTagSpecifications(std::move(value)); return *this;} /** *

The tags to apply to the new network interface.

*/ inline CreateNetworkInterfaceRequest& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } /** *

The tags to apply to the new network interface.

*/ inline CreateNetworkInterfaceRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline CreateNetworkInterfaceRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline CreateNetworkInterfaceRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see Ensuring * Idempotency.

*/ inline CreateNetworkInterfaceRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} private: Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::Vector m_groups; bool m_groupsHasBeenSet = false; int m_ipv6AddressCount; bool m_ipv6AddressCountHasBeenSet = false; Aws::Vector m_ipv6Addresses; bool m_ipv6AddressesHasBeenSet = false; Aws::String m_privateIpAddress; bool m_privateIpAddressHasBeenSet = false; Aws::Vector m_privateIpAddresses; bool m_privateIpAddressesHasBeenSet = false; int m_secondaryPrivateIpAddressCount; bool m_secondaryPrivateIpAddressCountHasBeenSet = false; Aws::Vector m_ipv4Prefixes; bool m_ipv4PrefixesHasBeenSet = false; int m_ipv4PrefixCount; bool m_ipv4PrefixCountHasBeenSet = false; Aws::Vector m_ipv6Prefixes; bool m_ipv6PrefixesHasBeenSet = false; int m_ipv6PrefixCount; bool m_ipv6PrefixCountHasBeenSet = false; NetworkInterfaceCreationType m_interfaceType; bool m_interfaceTypeHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws