Vpc Ipam Pool Cidr Allocation
Allocates (reserves) a CIDR from an IPAM address pool, preventing usage by IPAM. Only works for private IPv4.
Example Usage
Basic usage:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const current = aws.getRegion({});
const exampleVpcIpam = new aws.ec2.VpcIpam("example", {operatingRegions: [{
regionName: current.then(current => current.name),
}]});
const exampleVpcIpamPool = new aws.ec2.VpcIpamPool("example", {
addressFamily: "ipv4",
ipamScopeId: exampleVpcIpam.privateDefaultScopeId,
locale: current.then(current => current.name),
});
const exampleVpcIpamPoolCidr = new aws.ec2.VpcIpamPoolCidr("example", {
ipamPoolId: exampleVpcIpamPool.id,
cidr: "172.20.0.0/16",
});
const example = new aws.ec2.VpcIpamPoolCidrAllocation("example", {
ipamPoolId: exampleVpcIpamPool.id,
cidr: "172.20.0.0/24",
}, {
dependsOn: [exampleVpcIpamPoolCidr],
});
Content copied to clipboard
import pulumi
import pulumi_aws as aws
current = aws.get_region()
example_vpc_ipam = aws.ec2.VpcIpam("example", operating_regions=[{
"region_name": current.name,
}])
example_vpc_ipam_pool = aws.ec2.VpcIpamPool("example",
address_family="ipv4",
ipam_scope_id=example_vpc_ipam.private_default_scope_id,
locale=current.name)
example_vpc_ipam_pool_cidr = aws.ec2.VpcIpamPoolCidr("example",
ipam_pool_id=example_vpc_ipam_pool.id,
cidr="172.20.0.0/16")
example = aws.ec2.VpcIpamPoolCidrAllocation("example",
ipam_pool_id=example_vpc_ipam_pool.id,
cidr="172.20.0.0/24",
opts = pulumi.ResourceOptions(depends_on=[example_vpc_ipam_pool_cidr]))
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var current = Aws.GetRegion.Invoke();
var exampleVpcIpam = new Aws.Ec2.VpcIpam("example", new()
{
OperatingRegions = new[]
{
new Aws.Ec2.Inputs.VpcIpamOperatingRegionArgs
{
RegionName = current.Apply(getRegionResult => getRegionResult.Name),
},
},
});
var exampleVpcIpamPool = new Aws.Ec2.VpcIpamPool("example", new()
{
AddressFamily = "ipv4",
IpamScopeId = exampleVpcIpam.PrivateDefaultScopeId,
Locale = current.Apply(getRegionResult => getRegionResult.Name),
});
var exampleVpcIpamPoolCidr = new Aws.Ec2.VpcIpamPoolCidr("example", new()
{
IpamPoolId = exampleVpcIpamPool.Id,
Cidr = "172.20.0.0/16",
});
var example = new Aws.Ec2.VpcIpamPoolCidrAllocation("example", new()
{
IpamPoolId = exampleVpcIpamPool.Id,
Cidr = "172.20.0.0/24",
}, new CustomResourceOptions
{
DependsOn =
{
exampleVpcIpamPoolCidr,
},
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
current, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
if err != nil {
return err
}
exampleVpcIpam, err := ec2.NewVpcIpam(ctx, "example", &ec2.VpcIpamArgs{
OperatingRegions: ec2.VpcIpamOperatingRegionArray{
&ec2.VpcIpamOperatingRegionArgs{
RegionName: pulumi.String(current.Name),
},
},
})
if err != nil {
return err
}
exampleVpcIpamPool, err := ec2.NewVpcIpamPool(ctx, "example", &ec2.VpcIpamPoolArgs{
AddressFamily: pulumi.String("ipv4"),
IpamScopeId: exampleVpcIpam.PrivateDefaultScopeId,
Locale: pulumi.String(current.Name),
})
if err != nil {
return err
}
exampleVpcIpamPoolCidr, err := ec2.NewVpcIpamPoolCidr(ctx, "example", &ec2.VpcIpamPoolCidrArgs{
IpamPoolId: exampleVpcIpamPool.ID(),
Cidr: pulumi.String("172.20.0.0/16"),
})
if err != nil {
return err
}
_, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "example", &ec2.VpcIpamPoolCidrAllocationArgs{
IpamPoolId: exampleVpcIpamPool.ID(),
Cidr: pulumi.String("172.20.0.0/24"),
}, pulumi.DependsOn([]pulumi.Resource{
exampleVpcIpamPoolCidr,
}))
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
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 com.pulumi.aws.ec2.VpcIpamPoolCidrAllocation;
import com.pulumi.aws.ec2.VpcIpamPoolCidrAllocationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
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 exampleVpcIpam = new VpcIpam("exampleVpcIpam", VpcIpamArgs.builder()
.operatingRegions(VpcIpamOperatingRegionArgs.builder()
.regionName(current.name())
.build())
.build());
var exampleVpcIpamPool = new VpcIpamPool("exampleVpcIpamPool", VpcIpamPoolArgs.builder()
.addressFamily("ipv4")
.ipamScopeId(exampleVpcIpam.privateDefaultScopeId())
.locale(current.name())
.build());
var exampleVpcIpamPoolCidr = new VpcIpamPoolCidr("exampleVpcIpamPoolCidr", VpcIpamPoolCidrArgs.builder()
.ipamPoolId(exampleVpcIpamPool.id())
.cidr("172.20.0.0/16")
.build());
var example = new VpcIpamPoolCidrAllocation("example", VpcIpamPoolCidrAllocationArgs.builder()
.ipamPoolId(exampleVpcIpamPool.id())
.cidr("172.20.0.0/24")
.build(), CustomResourceOptions.builder()
.dependsOn(exampleVpcIpamPoolCidr)
.build());
}
}
Content copied to clipboard
resources:
example:
type: aws:ec2:VpcIpamPoolCidrAllocation
properties:
ipamPoolId: ${exampleVpcIpamPool.id}
cidr: 172.20.0.0/24
options:
dependsOn:
- ${exampleVpcIpamPoolCidr}
exampleVpcIpamPoolCidr:
type: aws:ec2:VpcIpamPoolCidr
name: example
properties:
ipamPoolId: ${exampleVpcIpamPool.id}
cidr: 172.20.0.0/16
exampleVpcIpamPool:
type: aws:ec2:VpcIpamPool
name: example
properties:
addressFamily: ipv4
ipamScopeId: ${exampleVpcIpam.privateDefaultScopeId}
locale: ${current.name}
exampleVpcIpam:
type: aws:ec2:VpcIpam
name: example
properties:
operatingRegions:
- regionName: ${current.name}
variables:
current:
fn::invoke:
function: aws:getRegion
arguments: {}
Content copied to clipboard
With the disallowed_cidrs
attribute:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const current = aws.getRegion({});
const exampleVpcIpam = new aws.ec2.VpcIpam("example", {operatingRegions: [{
regionName: current.then(current => current.name),
}]});
const exampleVpcIpamPool = new aws.ec2.VpcIpamPool("example", {
addressFamily: "ipv4",
ipamScopeId: exampleVpcIpam.privateDefaultScopeId,
locale: current.then(current => current.name),
});
const exampleVpcIpamPoolCidr = new aws.ec2.VpcIpamPoolCidr("example", {
ipamPoolId: exampleVpcIpamPool.id,
cidr: "172.20.0.0/16",
});
const example = new aws.ec2.VpcIpamPoolCidrAllocation("example", {
ipamPoolId: exampleVpcIpamPool.id,
netmaskLength: 28,
disallowedCidrs: ["172.20.0.0/28"],
}, {
dependsOn: [exampleVpcIpamPoolCidr],
});
Content copied to clipboard
import pulumi
import pulumi_aws as aws
current = aws.get_region()
example_vpc_ipam = aws.ec2.VpcIpam("example", operating_regions=[{
"region_name": current.name,
}])
example_vpc_ipam_pool = aws.ec2.VpcIpamPool("example",
address_family="ipv4",
ipam_scope_id=example_vpc_ipam.private_default_scope_id,
locale=current.name)
example_vpc_ipam_pool_cidr = aws.ec2.VpcIpamPoolCidr("example",
ipam_pool_id=example_vpc_ipam_pool.id,
cidr="172.20.0.0/16")
example = aws.ec2.VpcIpamPoolCidrAllocation("example",
ipam_pool_id=example_vpc_ipam_pool.id,
netmask_length=28,
disallowed_cidrs=["172.20.0.0/28"],
opts = pulumi.ResourceOptions(depends_on=[example_vpc_ipam_pool_cidr]))
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var current = Aws.GetRegion.Invoke();
var exampleVpcIpam = new Aws.Ec2.VpcIpam("example", new()
{
OperatingRegions = new[]
{
new Aws.Ec2.Inputs.VpcIpamOperatingRegionArgs
{
RegionName = current.Apply(getRegionResult => getRegionResult.Name),
},
},
});
var exampleVpcIpamPool = new Aws.Ec2.VpcIpamPool("example", new()
{
AddressFamily = "ipv4",
IpamScopeId = exampleVpcIpam.PrivateDefaultScopeId,
Locale = current.Apply(getRegionResult => getRegionResult.Name),
});
var exampleVpcIpamPoolCidr = new Aws.Ec2.VpcIpamPoolCidr("example", new()
{
IpamPoolId = exampleVpcIpamPool.Id,
Cidr = "172.20.0.0/16",
});
var example = new Aws.Ec2.VpcIpamPoolCidrAllocation("example", new()
{
IpamPoolId = exampleVpcIpamPool.Id,
NetmaskLength = 28,
DisallowedCidrs = new[]
{
"172.20.0.0/28",
},
}, new CustomResourceOptions
{
DependsOn =
{
exampleVpcIpamPoolCidr,
},
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
current, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
if err != nil {
return err
}
exampleVpcIpam, err := ec2.NewVpcIpam(ctx, "example", &ec2.VpcIpamArgs{
OperatingRegions: ec2.VpcIpamOperatingRegionArray{
&ec2.VpcIpamOperatingRegionArgs{
RegionName: pulumi.String(current.Name),
},
},
})
if err != nil {
return err
}
exampleVpcIpamPool, err := ec2.NewVpcIpamPool(ctx, "example", &ec2.VpcIpamPoolArgs{
AddressFamily: pulumi.String("ipv4"),
IpamScopeId: exampleVpcIpam.PrivateDefaultScopeId,
Locale: pulumi.String(current.Name),
})
if err != nil {
return err
}
exampleVpcIpamPoolCidr, err := ec2.NewVpcIpamPoolCidr(ctx, "example", &ec2.VpcIpamPoolCidrArgs{
IpamPoolId: exampleVpcIpamPool.ID(),
Cidr: pulumi.String("172.20.0.0/16"),
})
if err != nil {
return err
}
_, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "example", &ec2.VpcIpamPoolCidrAllocationArgs{
IpamPoolId: exampleVpcIpamPool.ID(),
NetmaskLength: pulumi.Int(28),
DisallowedCidrs: pulumi.StringArray{
pulumi.String("172.20.0.0/28"),
},
}, pulumi.DependsOn([]pulumi.Resource{
exampleVpcIpamPoolCidr,
}))
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
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 com.pulumi.aws.ec2.VpcIpamPoolCidrAllocation;
import com.pulumi.aws.ec2.VpcIpamPoolCidrAllocationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
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 exampleVpcIpam = new VpcIpam("exampleVpcIpam", VpcIpamArgs.builder()
.operatingRegions(VpcIpamOperatingRegionArgs.builder()
.regionName(current.name())
.build())
.build());
var exampleVpcIpamPool = new VpcIpamPool("exampleVpcIpamPool", VpcIpamPoolArgs.builder()
.addressFamily("ipv4")
.ipamScopeId(exampleVpcIpam.privateDefaultScopeId())
.locale(current.name())
.build());
var exampleVpcIpamPoolCidr = new VpcIpamPoolCidr("exampleVpcIpamPoolCidr", VpcIpamPoolCidrArgs.builder()
.ipamPoolId(exampleVpcIpamPool.id())
.cidr("172.20.0.0/16")
.build());
var example = new VpcIpamPoolCidrAllocation("example", VpcIpamPoolCidrAllocationArgs.builder()
.ipamPoolId(exampleVpcIpamPool.id())
.netmaskLength(28)
.disallowedCidrs("172.20.0.0/28")
.build(), CustomResourceOptions.builder()
.dependsOn(exampleVpcIpamPoolCidr)
.build());
}
}
Content copied to clipboard
resources:
example:
type: aws:ec2:VpcIpamPoolCidrAllocation
properties:
ipamPoolId: ${exampleVpcIpamPool.id}
netmaskLength: 28
disallowedCidrs:
- 172.20.0.0/28
options:
dependsOn:
- ${exampleVpcIpamPoolCidr}
exampleVpcIpamPoolCidr:
type: aws:ec2:VpcIpamPoolCidr
name: example
properties:
ipamPoolId: ${exampleVpcIpamPool.id}
cidr: 172.20.0.0/16
exampleVpcIpamPool:
type: aws:ec2:VpcIpamPool
name: example
properties:
addressFamily: ipv4
ipamScopeId: ${exampleVpcIpam.privateDefaultScopeId}
locale: ${current.name}
exampleVpcIpam:
type: aws:ec2:VpcIpam
name: example
properties:
operatingRegions:
- regionName: ${current.name}
variables:
current:
fn::invoke:
function: aws:getRegion
arguments: {}
Content copied to clipboard
Import
Using pulumi import
, import IPAM allocations using the allocation id
and pool id
, separated by _
. For example:
$ pulumi import aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation example ipam-pool-alloc-0dc6d196509c049ba8b549ff99f639736_ipam-pool-07cfb559e0921fcbe
Content copied to clipboard
Properties
Link copied to clipboard
The description for the allocation.
Link copied to clipboard
Exclude a particular CIDR range from being returned by the pool.
Link copied to clipboard
Link copied to clipboard
The ID of the pool to which you want to assign a CIDR.
Link copied to clipboard
The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: 0-128
.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
The ID of the resource.
Link copied to clipboard
The owner of the resource.
Link copied to clipboard
The type of the resource.