Package com.pulumi.aws.ec2
Class VpcIpamPoolCidr
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.ec2.VpcIpamPoolCidr
-
public class VpcIpamPoolCidr extends com.pulumi.resources.CustomResourceProvisions a CIDR from an IPAM address pool. > **NOTE:** Provisioning Public IPv4 or Public IPv6 require [steps outside the scope of this resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#prepare-for-byoip). The resource accepts `message` and `signature` as part of the `cidrAuthorizationContext` attribute but those must be generated ahead of time. Public IPv6 CIDRs that are provisioned into a Pool with `publiclyAdvertisable = true` and all public IPv4 CIDRs also require creating a Route Origin Authorization (ROA) object in your Regional Internet Registry (RIR). > **NOTE:** In order to deprovision CIDRs all Allocations must be released. Allocations created by a VPC take up to 30 minutes to be released. However, for IPAM to properly manage the removal of allocation records created by VPCs and other resources, you must [grant it permissions](https://docs.aws.amazon.com/vpc/latest/ipam/choose-single-user-or-orgs-ipam.html) in either a single account or organizationally. If you are unable to deprovision a CIDR after waiting over 30 minutes, you may be missing the Service Linked Role. ## Example Usage Basic usage:
Provision Public IPv6 Pool CIDRs:package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetRegionArgs; import com.pulumi.aws.ec2.VpcIpam; import com.pulumi.aws.ec2.VpcIpamArgs; import com.pulumi.aws.ec2.inputs.VpcIpamOperatingRegionArgs; import com.pulumi.aws.ec2.VpcIpamPool; import com.pulumi.aws.ec2.VpcIpamPoolArgs; import com.pulumi.aws.ec2.VpcIpamPoolCidr; import com.pulumi.aws.ec2.VpcIpamPoolCidrArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var current = AwsFunctions.getRegion(GetRegionArgs.builder() .build()); var example = new VpcIpam("example", VpcIpamArgs.builder() .operatingRegions(VpcIpamOperatingRegionArgs.builder() .regionName(current.region()) .build()) .build()); var exampleVpcIpamPool = new VpcIpamPool("exampleVpcIpamPool", VpcIpamPoolArgs.builder() .addressFamily("ipv4") .ipamScopeId(example.privateDefaultScopeId()) .locale(current.region()) .build()); var exampleVpcIpamPoolCidr = new VpcIpamPoolCidr("exampleVpcIpamPoolCidr", VpcIpamPoolCidrArgs.builder() .ipamPoolId(exampleVpcIpamPool.id()) .cidr("172.20.0.0/16") .build()); } }
## Import Using `pulumi import`, import IPAMs using the `<cidr>_<ipam-pool-id>`. For example: **NOTE:** Do not use the IPAM Pool CIDR ID as this was introduced after the resource already existed. ```sh $ pulumi import aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr example 172.20.0.0/24_ipam-pool-0e634f5a1517cccdc ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetRegionArgs; import com.pulumi.aws.ec2.VpcIpam; import com.pulumi.aws.ec2.VpcIpamArgs; import com.pulumi.aws.ec2.inputs.VpcIpamOperatingRegionArgs; import com.pulumi.aws.ec2.VpcIpamPool; import com.pulumi.aws.ec2.VpcIpamPoolArgs; import com.pulumi.aws.ec2.VpcIpamPoolCidr; import com.pulumi.aws.ec2.VpcIpamPoolCidrArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var current = AwsFunctions.getRegion(GetRegionArgs.builder() .build()); var example = new VpcIpam("example", VpcIpamArgs.builder() .operatingRegions(VpcIpamOperatingRegionArgs.builder() .regionName(current.region()) .build()) .build()); var ipv6TestPublic = new VpcIpamPool("ipv6TestPublic", VpcIpamPoolArgs.builder() .addressFamily("ipv6") .ipamScopeId(example.publicDefaultScopeId()) .locale("us-east-1") .description("public ipv6") .publiclyAdvertisable(false) .publicIpSource("amazon") .awsService("ec2") .build()); var ipv6TestPublicVpcIpamPoolCidr = new VpcIpamPoolCidr("ipv6TestPublicVpcIpamPoolCidr", VpcIpamPoolCidrArgs.builder() .ipamPoolId(ipv6TestPublic.id()) .netmaskLength(52) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description VpcIpamPoolCidr(java.lang.String name)VpcIpamPoolCidr(java.lang.String name, VpcIpamPoolCidrArgs args)VpcIpamPoolCidr(java.lang.String name, VpcIpamPoolCidrArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>cidr()com.pulumi.core.Output<java.util.Optional<VpcIpamPoolCidrCidrAuthorizationContext>>cidrAuthorizationContext()static VpcIpamPoolCidrget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, VpcIpamPoolCidrState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>ipamPoolCidrId()com.pulumi.core.Output<java.lang.String>ipamPoolId()com.pulumi.core.Output<java.lang.Integer>netmaskLength()com.pulumi.core.Output<java.lang.String>region()
-
-
-
Constructor Detail
-
VpcIpamPoolCidr
public VpcIpamPoolCidr(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
VpcIpamPoolCidr
public VpcIpamPoolCidr(java.lang.String name, VpcIpamPoolCidrArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
VpcIpamPoolCidr
public VpcIpamPoolCidr(java.lang.String name, VpcIpamPoolCidrArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
cidr
public com.pulumi.core.Output<java.lang.String> cidr()
- Returns:
- CIDR you want to assign to the pool. Conflicts with `netmaskLength`.
-
cidrAuthorizationContext
public com.pulumi.core.Output<java.util.Optional<VpcIpamPoolCidrCidrAuthorizationContext>> cidrAuthorizationContext()
- Returns:
- Signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP. This is not stored in the state file. See cidrAuthorizationContext for more information.
-
ipamPoolCidrId
public com.pulumi.core.Output<java.lang.String> ipamPoolCidrId()
- Returns:
- Unique ID generated by AWS for the pool CIDR. Typically this is the resource `id` but this attribute was added to the API calls after the fact and is therefore not used as the Pulumi resource ID.
-
ipamPoolId
public com.pulumi.core.Output<java.lang.String> ipamPoolId()
- Returns:
- ID of the pool to which you want to assign a CIDR.
-
netmaskLength
public com.pulumi.core.Output<java.lang.Integer> netmaskLength()
- Returns:
- If provided, the CIDR provisioned into the specified pool will be the next available CIDR given this declared netmask length. Conflicts with `cidr`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
get
public static VpcIpamPoolCidr get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable VpcIpamPoolCidrState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-