Class VpcIpamPoolCidr


  • public class VpcIpamPoolCidr
    extends com.pulumi.resources.CustomResource
    Provisions 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:
     
     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());
     
         }
     }
     
     
    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 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());
     
         }
     }
     
     
    ## 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 ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • 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 VpcIpamPoolCidr get​(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()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.