/** * 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 namespace Aws { namespace EC2 { namespace Model { /** */ class CreateVpcRequest : public EC2Request { public: AWS_EC2_API CreateVpcRequest(); // 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 "CreateVpc"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline const Aws::String& GetCidrBlock() const{ return m_cidrBlock; } /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline bool CidrBlockHasBeenSet() const { return m_cidrBlockHasBeenSet; } /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline void SetCidrBlock(const Aws::String& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = value; } /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline void SetCidrBlock(Aws::String&& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = std::move(value); } /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline void SetCidrBlock(const char* value) { m_cidrBlockHasBeenSet = true; m_cidrBlock.assign(value); } /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline CreateVpcRequest& WithCidrBlock(const Aws::String& value) { SetCidrBlock(value); return *this;} /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline CreateVpcRequest& WithCidrBlock(Aws::String&& value) { SetCidrBlock(std::move(value)); return *this;} /** *

The IPv4 network range for the VPC, in CIDR notation. For example, * 10.0.0.0/16. We modify the specified CIDR block to its canonical * form; for example, if you specify 100.68.0.18/18, we modify it to * 100.68.0.0/18.

*/ inline CreateVpcRequest& WithCidrBlock(const char* value) { SetCidrBlock(value); return *this;} /** *

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the * VPC. You cannot specify the range of IP addresses, or the size of the CIDR * block.

*/ inline bool GetAmazonProvidedIpv6CidrBlock() const{ return m_amazonProvidedIpv6CidrBlock; } /** *

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the * VPC. You cannot specify the range of IP addresses, or the size of the CIDR * block.

*/ inline bool AmazonProvidedIpv6CidrBlockHasBeenSet() const { return m_amazonProvidedIpv6CidrBlockHasBeenSet; } /** *

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the * VPC. You cannot specify the range of IP addresses, or the size of the CIDR * block.

*/ inline void SetAmazonProvidedIpv6CidrBlock(bool value) { m_amazonProvidedIpv6CidrBlockHasBeenSet = true; m_amazonProvidedIpv6CidrBlock = value; } /** *

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the * VPC. You cannot specify the range of IP addresses, or the size of the CIDR * block.

*/ inline CreateVpcRequest& WithAmazonProvidedIpv6CidrBlock(bool value) { SetAmazonProvidedIpv6CidrBlock(value); return *this;} /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline const Aws::String& GetIpv6Pool() const{ return m_ipv6Pool; } /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline bool Ipv6PoolHasBeenSet() const { return m_ipv6PoolHasBeenSet; } /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline void SetIpv6Pool(const Aws::String& value) { m_ipv6PoolHasBeenSet = true; m_ipv6Pool = value; } /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline void SetIpv6Pool(Aws::String&& value) { m_ipv6PoolHasBeenSet = true; m_ipv6Pool = std::move(value); } /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline void SetIpv6Pool(const char* value) { m_ipv6PoolHasBeenSet = true; m_ipv6Pool.assign(value); } /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline CreateVpcRequest& WithIpv6Pool(const Aws::String& value) { SetIpv6Pool(value); return *this;} /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline CreateVpcRequest& WithIpv6Pool(Aws::String&& value) { SetIpv6Pool(std::move(value)); return *this;} /** *

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR * block.

*/ inline CreateVpcRequest& WithIpv6Pool(const char* value) { SetIpv6Pool(value); return *this;} /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline const Aws::String& GetIpv6CidrBlock() const{ return m_ipv6CidrBlock; } /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline bool Ipv6CidrBlockHasBeenSet() const { return m_ipv6CidrBlockHasBeenSet; } /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline void SetIpv6CidrBlock(const Aws::String& value) { m_ipv6CidrBlockHasBeenSet = true; m_ipv6CidrBlock = value; } /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline void SetIpv6CidrBlock(Aws::String&& value) { m_ipv6CidrBlockHasBeenSet = true; m_ipv6CidrBlock = std::move(value); } /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline void SetIpv6CidrBlock(const char* value) { m_ipv6CidrBlockHasBeenSet = true; m_ipv6CidrBlock.assign(value); } /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlock(const Aws::String& value) { SetIpv6CidrBlock(value); return *this;} /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlock(Aws::String&& value) { SetIpv6CidrBlock(std::move(value)); return *this;} /** *

The IPv6 CIDR block from the IPv6 address pool. You must also specify * Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR * block for you, omit this parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlock(const char* value) { SetIpv6CidrBlock(value); return *this;} /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline const Aws::String& GetIpv4IpamPoolId() const{ return m_ipv4IpamPoolId; } /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline bool Ipv4IpamPoolIdHasBeenSet() const { return m_ipv4IpamPoolIdHasBeenSet; } /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv4IpamPoolId(const Aws::String& value) { m_ipv4IpamPoolIdHasBeenSet = true; m_ipv4IpamPoolId = value; } /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv4IpamPoolId(Aws::String&& value) { m_ipv4IpamPoolIdHasBeenSet = true; m_ipv4IpamPoolId = std::move(value); } /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv4IpamPoolId(const char* value) { m_ipv4IpamPoolIdHasBeenSet = true; m_ipv4IpamPoolId.assign(value); } /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv4IpamPoolId(const Aws::String& value) { SetIpv4IpamPoolId(value); return *this;} /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv4IpamPoolId(Aws::String&& value) { SetIpv4IpamPoolId(std::move(value)); return *this;} /** *

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. * For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv4IpamPoolId(const char* value) { SetIpv4IpamPoolId(value); return *this;} /** *

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline int GetIpv4NetmaskLength() const{ return m_ipv4NetmaskLength; } /** *

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline bool Ipv4NetmaskLengthHasBeenSet() const { return m_ipv4NetmaskLengthHasBeenSet; } /** *

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv4NetmaskLength(int value) { m_ipv4NetmaskLengthHasBeenSet = true; m_ipv4NetmaskLength = value; } /** *

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv4NetmaskLength(int value) { SetIpv4NetmaskLength(value); return *this;} /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline const Aws::String& GetIpv6IpamPoolId() const{ return m_ipv6IpamPoolId; } /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline bool Ipv6IpamPoolIdHasBeenSet() const { return m_ipv6IpamPoolIdHasBeenSet; } /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv6IpamPoolId(const Aws::String& value) { m_ipv6IpamPoolIdHasBeenSet = true; m_ipv6IpamPoolId = value; } /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv6IpamPoolId(Aws::String&& value) { m_ipv6IpamPoolIdHasBeenSet = true; m_ipv6IpamPoolId = std::move(value); } /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv6IpamPoolId(const char* value) { m_ipv6IpamPoolIdHasBeenSet = true; m_ipv6IpamPoolId.assign(value); } /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv6IpamPoolId(const Aws::String& value) { SetIpv6IpamPoolId(value); return *this;} /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv6IpamPoolId(Aws::String&& value) { SetIpv6IpamPoolId(std::move(value)); return *this;} /** *

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 * CIDR. IPAM is a VPC feature that you can use to automate your IP address * management workflows including assigning, tracking, troubleshooting, and * auditing IP addresses across Amazon Web Services Regions and accounts throughout * your Amazon Web Services Organization. For more information, see What is * IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv6IpamPoolId(const char* value) { SetIpv6IpamPoolId(value); return *this;} /** *

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline int GetIpv6NetmaskLength() const{ return m_ipv6NetmaskLength; } /** *

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline bool Ipv6NetmaskLengthHasBeenSet() const { return m_ipv6NetmaskLengthHasBeenSet; } /** *

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline void SetIpv6NetmaskLength(int value) { m_ipv6NetmaskLengthHasBeenSet = true; m_ipv6NetmaskLength = value; } /** *

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an * Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see * What * is IPAM? in the Amazon VPC IPAM User Guide.

*/ inline CreateVpcRequest& WithIpv6NetmaskLength(int value) { SetIpv6NetmaskLength(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 CreateVpcRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline const Tenancy& GetInstanceTenancy() const{ return m_instanceTenancy; } /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline bool InstanceTenancyHasBeenSet() const { return m_instanceTenancyHasBeenSet; } /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline void SetInstanceTenancy(const Tenancy& value) { m_instanceTenancyHasBeenSet = true; m_instanceTenancy = value; } /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline void SetInstanceTenancy(Tenancy&& value) { m_instanceTenancyHasBeenSet = true; m_instanceTenancy = std::move(value); } /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline CreateVpcRequest& WithInstanceTenancy(const Tenancy& value) { SetInstanceTenancy(value); return *this;} /** *

The tenancy options for instances launched into the VPC. For * default, instances are launched with shared tenancy by default. You * can launch instances with any tenancy into a shared tenancy VPC. For * dedicated, instances are launched as dedicated tenancy instances by * default. You can only launch instances with a tenancy of dedicated * or host into a dedicated tenancy VPC.

Important: * The host value cannot be used with this parameter. Use the * default or dedicated values only.

Default: * default

*/ inline CreateVpcRequest& WithInstanceTenancy(Tenancy&& value) { SetInstanceTenancy(std::move(value)); return *this;} /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline const Aws::String& GetIpv6CidrBlockNetworkBorderGroup() const{ return m_ipv6CidrBlockNetworkBorderGroup; } /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline bool Ipv6CidrBlockNetworkBorderGroupHasBeenSet() const { return m_ipv6CidrBlockNetworkBorderGroupHasBeenSet; } /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline void SetIpv6CidrBlockNetworkBorderGroup(const Aws::String& value) { m_ipv6CidrBlockNetworkBorderGroupHasBeenSet = true; m_ipv6CidrBlockNetworkBorderGroup = value; } /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline void SetIpv6CidrBlockNetworkBorderGroup(Aws::String&& value) { m_ipv6CidrBlockNetworkBorderGroupHasBeenSet = true; m_ipv6CidrBlockNetworkBorderGroup = std::move(value); } /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline void SetIpv6CidrBlockNetworkBorderGroup(const char* value) { m_ipv6CidrBlockNetworkBorderGroupHasBeenSet = true; m_ipv6CidrBlockNetworkBorderGroup.assign(value); } /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlockNetworkBorderGroup(const Aws::String& value) { SetIpv6CidrBlockNetworkBorderGroup(value); return *this;} /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlockNetworkBorderGroup(Aws::String&& value) { SetIpv6CidrBlockNetworkBorderGroup(std::move(value)); return *this;} /** *

The name of the location from which we advertise the IPV6 CIDR block. Use * this parameter to limit the address to this location.

You must set * AmazonProvidedIpv6CidrBlock to true to use this * parameter.

*/ inline CreateVpcRequest& WithIpv6CidrBlockNetworkBorderGroup(const char* value) { SetIpv6CidrBlockNetworkBorderGroup(value); return *this;} /** *

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

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

The tags to assign to the VPC.

*/ inline CreateVpcRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } private: Aws::String m_cidrBlock; bool m_cidrBlockHasBeenSet = false; bool m_amazonProvidedIpv6CidrBlock; bool m_amazonProvidedIpv6CidrBlockHasBeenSet = false; Aws::String m_ipv6Pool; bool m_ipv6PoolHasBeenSet = false; Aws::String m_ipv6CidrBlock; bool m_ipv6CidrBlockHasBeenSet = false; Aws::String m_ipv4IpamPoolId; bool m_ipv4IpamPoolIdHasBeenSet = false; int m_ipv4NetmaskLength; bool m_ipv4NetmaskLengthHasBeenSet = false; Aws::String m_ipv6IpamPoolId; bool m_ipv6IpamPoolIdHasBeenSet = false; int m_ipv6NetmaskLength; bool m_ipv6NetmaskLengthHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; Tenancy m_instanceTenancy; bool m_instanceTenancyHasBeenSet = false; Aws::String m_ipv6CidrBlockNetworkBorderGroup; bool m_ipv6CidrBlockNetworkBorderGroupHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws