/*
* Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.ec2.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.Request;
import com.amazonaws.services.ec2.model.transform.CreateVpcRequestMarshaller;
/**
*
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class CreateVpcRequest extends AmazonWebServiceRequest implements Serializable, Cloneable, DryRunSupportedRequest
* The IPv4 network range for the VPC, in CIDR notation. For example,
* 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.
*
* The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
*
* The IPv6 CIDR block from the IPv6 address pool. You must also specify
* To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* The tenancy options for instances launched into the VPC. For
* Important: The
* Default:
* 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
* The tags to assign to the VPC.
*
* The IPv4 network range for the VPC, in CIDR notation. For example,
* The IPv4 network range for the VPC, in CIDR notation. For example,
* The IPv4 network range for the VPC, in CIDR notation. For example,
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
*
* The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
*
* The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
*
* The IPv6 CIDR block from the IPv6 address pool. You must also specify
* To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
* 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
.
* Ipv6Pool
in the request.
* 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.
* host
value cannot be used with this parameter. Use the default
or
* dedicated
values only.
* default
* AmazonProvidedIpv6CidrBlock
to true
to use this parameter.
* 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
.
*/
public CreateVpcRequest(String cidrBlock) {
setCidrBlock(cidrBlock);
}
/**
* 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
.
* 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
.
*/
public void setCidrBlock(String cidrBlock) {
this.cidrBlock = cidrBlock;
}
/**
* 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
.
* 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
.
*/
public String getCidrBlock() {
return this.cidrBlock;
}
/**
* 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
.
* 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
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateVpcRequest withCidrBlock(String cidrBlock) {
setCidrBlock(cidrBlock);
return this;
}
/**
* Ipv6Pool
in the request.
* Ipv6Pool
in the
* request.
* To let Amazon choose the IPv6 CIDR block for you, omit this parameter. */ public void setIpv6CidrBlock(String ipv6CidrBlock) { this.ipv6CidrBlock = 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. *
* * @return The IPv6 CIDR block from the IPv6 address pool. You must also specifyIpv6Pool
in the
* request.
* * To let Amazon choose the IPv6 CIDR block for you, omit this parameter. */ public String getIpv6CidrBlock() { return this.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. *
* * @param ipv6CidrBlock * The IPv6 CIDR block from the IPv6 address pool. You must also specifyIpv6Pool
in the
* request.
* * To let Amazon choose the IPv6 CIDR block for you, omit this parameter. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withIpv6CidrBlock(String ipv6CidrBlock) { setIpv6CidrBlock(ipv6CidrBlock); 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. *
* * @param 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. */ public void setIpv4IpamPoolId(String ipv4IpamPoolId) { this.ipv4IpamPoolId = 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. *
* * @return 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. */ public String getIpv4IpamPoolId() { return this.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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withIpv4IpamPoolId(String ipv4IpamPoolId) { setIpv4IpamPoolId(ipv4IpamPoolId); 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. *
* * @param 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. */ public void setIpv4NetmaskLength(Integer ipv4NetmaskLength) { this.ipv4NetmaskLength = 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. *
* * @return 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. */ public Integer getIpv4NetmaskLength() { return this.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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withIpv4NetmaskLength(Integer ipv4NetmaskLength) { setIpv4NetmaskLength(ipv4NetmaskLength); 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. *
* * @param 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. */ public void setIpv6IpamPoolId(String ipv6IpamPoolId) { this.ipv6IpamPoolId = 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. *
* * @return 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. */ public String getIpv6IpamPoolId() { return this.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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withIpv6IpamPoolId(String ipv6IpamPoolId) { setIpv6IpamPoolId(ipv6IpamPoolId); 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. *
* * @param 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. */ public void setIpv6NetmaskLength(Integer ipv6NetmaskLength) { this.ipv6NetmaskLength = 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. *
* * @return 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. */ public Integer getIpv6NetmaskLength() { return this.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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withIpv6NetmaskLength(Integer ipv6NetmaskLength) { setIpv6NetmaskLength(ipv6NetmaskLength); 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
*
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
* @see Tenancy
*/
public void setInstanceTenancy(String instanceTenancy) {
this.instanceTenancy = 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
*
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
* @see Tenancy
*/
public String getInstanceTenancy() {
return this.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
*
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
* @return Returns a reference to this object so that method calls can be chained together.
* @see Tenancy
*/
public CreateVpcRequest withInstanceTenancy(String instanceTenancy) {
setInstanceTenancy(instanceTenancy);
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
*
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
* @see Tenancy
*/
public void setInstanceTenancy(Tenancy instanceTenancy) {
withInstanceTenancy(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
*
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
* @return Returns a reference to this object so that method calls can be chained together.
* @see Tenancy
*/
public CreateVpcRequest withInstanceTenancy(Tenancy instanceTenancy) {
this.instanceTenancy = instanceTenancy.toString();
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.
*
* You must set AmazonProvidedIpv6CidrBlock
to true
to use this parameter.
*/
public void setIpv6CidrBlockNetworkBorderGroup(String ipv6CidrBlockNetworkBorderGroup) {
this.ipv6CidrBlockNetworkBorderGroup = 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.
*
* You must set AmazonProvidedIpv6CidrBlock
to true
to use this parameter.
*/
public String getIpv6CidrBlockNetworkBorderGroup() {
return this.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.
*
* You must set AmazonProvidedIpv6CidrBlock
to true
to use this parameter.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateVpcRequest withIpv6CidrBlockNetworkBorderGroup(String ipv6CidrBlockNetworkBorderGroup) {
setIpv6CidrBlockNetworkBorderGroup(ipv6CidrBlockNetworkBorderGroup);
return this;
}
/**
*
* The tags to assign to the VPC. *
* * @return The tags to assign to the VPC. */ public java.util.List* The tags to assign to the VPC. *
* * @param tagSpecifications * The tags to assign to the VPC. */ public void setTagSpecifications(java.util.Collection* The tags to assign to the VPC. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTagSpecifications(java.util.Collection)} or {@link #withTagSpecifications(java.util.Collection)} if * you want to override the existing values. *
* * @param tagSpecifications * The tags to assign to the VPC. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withTagSpecifications(TagSpecification... tagSpecifications) { if (this.tagSpecifications == null) { setTagSpecifications(new com.amazonaws.internal.SdkInternalList* The tags to assign to the VPC. *
* * @param tagSpecifications * The tags to assign to the VPC. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateVpcRequest withTagSpecifications(java.util.Collection