1. Packages
  2. AWS
  3. API Docs
  4. ec2
  5. getIpamPreviewNextCidr
AWS v6.78.0 published on Thursday, Apr 24, 2025 by Pulumi

aws.ec2.getIpamPreviewNextCidr

Explore with Pulumi AI

AWS v6.78.0 published on Thursday, Apr 24, 2025 by Pulumi

Previews a CIDR from an IPAM address pool. Only works for private IPv4.

NOTE: This functionality is also encapsulated in a resource sharing the same name. The data source can be used when you need to use the cidr in a calculation of the same Root module, count for example. However, once a cidr range has been allocated that was previewed, the next refresh will find a new cidr and may force new resources downstream. Make sure to use ignore_changes if this is undesirable.

Example Usage

Basic usage:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const test = aws.ec2.getIpamPreviewNextCidr({
    ipamPoolId: testAwsVpcIpamPool.id,
    netmaskLength: 28,
});
const testVpcIpamPoolCidrAllocation = new aws.ec2.VpcIpamPoolCidrAllocation("test", {
    ipamPoolId: testAwsVpcIpamPool.id,
    cidr: test.then(test => test.cidr),
});
Copy
import pulumi
import pulumi_aws as aws

test = aws.ec2.get_ipam_preview_next_cidr(ipam_pool_id=test_aws_vpc_ipam_pool["id"],
    netmask_length=28)
test_vpc_ipam_pool_cidr_allocation = aws.ec2.VpcIpamPoolCidrAllocation("test",
    ipam_pool_id=test_aws_vpc_ipam_pool["id"],
    cidr=test.cidr)
Copy
package main

import (
	"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 {
		test, err := ec2.GetIpamPreviewNextCidr(ctx, &ec2.GetIpamPreviewNextCidrArgs{
			IpamPoolId:    testAwsVpcIpamPool.Id,
			NetmaskLength: pulumi.IntRef(28),
		}, nil)
		if err != nil {
			return err
		}
		_, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "test", &ec2.VpcIpamPoolCidrAllocationArgs{
			IpamPoolId: pulumi.Any(testAwsVpcIpamPool.Id),
			Cidr:       pulumi.String(test.Cidr),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var test = Aws.Ec2.GetIpamPreviewNextCidr.Invoke(new()
    {
        IpamPoolId = testAwsVpcIpamPool.Id,
        NetmaskLength = 28,
    });

    var testVpcIpamPoolCidrAllocation = new Aws.Ec2.VpcIpamPoolCidrAllocation("test", new()
    {
        IpamPoolId = testAwsVpcIpamPool.Id,
        Cidr = test.Apply(getIpamPreviewNextCidrResult => getIpamPreviewNextCidrResult.Cidr),
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetIpamPreviewNextCidrArgs;
import com.pulumi.aws.ec2.VpcIpamPoolCidrAllocation;
import com.pulumi.aws.ec2.VpcIpamPoolCidrAllocationArgs;
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 test = Ec2Functions.getIpamPreviewNextCidr(GetIpamPreviewNextCidrArgs.builder()
            .ipamPoolId(testAwsVpcIpamPool.id())
            .netmaskLength(28)
            .build());

        var testVpcIpamPoolCidrAllocation = new VpcIpamPoolCidrAllocation("testVpcIpamPoolCidrAllocation", VpcIpamPoolCidrAllocationArgs.builder()
            .ipamPoolId(testAwsVpcIpamPool.id())
            .cidr(test.cidr())
            .build());

    }
}
Copy
resources:
  testVpcIpamPoolCidrAllocation:
    type: aws:ec2:VpcIpamPoolCidrAllocation
    name: test
    properties:
      ipamPoolId: ${testAwsVpcIpamPool.id}
      cidr: ${test.cidr}
variables:
  test:
    fn::invoke:
      function: aws:ec2:getIpamPreviewNextCidr
      arguments:
        ipamPoolId: ${testAwsVpcIpamPool.id}
        netmaskLength: 28
Copy

Using getIpamPreviewNextCidr

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getIpamPreviewNextCidr(args: GetIpamPreviewNextCidrArgs, opts?: InvokeOptions): Promise<GetIpamPreviewNextCidrResult>
function getIpamPreviewNextCidrOutput(args: GetIpamPreviewNextCidrOutputArgs, opts?: InvokeOptions): Output<GetIpamPreviewNextCidrResult>
Copy
def get_ipam_preview_next_cidr(disallowed_cidrs: Optional[Sequence[str]] = None,
                               ipam_pool_id: Optional[str] = None,
                               netmask_length: Optional[int] = None,
                               opts: Optional[InvokeOptions] = None) -> GetIpamPreviewNextCidrResult
def get_ipam_preview_next_cidr_output(disallowed_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                               ipam_pool_id: Optional[pulumi.Input[str]] = None,
                               netmask_length: Optional[pulumi.Input[int]] = None,
                               opts: Optional[InvokeOptions] = None) -> Output[GetIpamPreviewNextCidrResult]
Copy
func GetIpamPreviewNextCidr(ctx *Context, args *GetIpamPreviewNextCidrArgs, opts ...InvokeOption) (*GetIpamPreviewNextCidrResult, error)
func GetIpamPreviewNextCidrOutput(ctx *Context, args *GetIpamPreviewNextCidrOutputArgs, opts ...InvokeOption) GetIpamPreviewNextCidrResultOutput
Copy

> Note: This function is named GetIpamPreviewNextCidr in the Go SDK.

public static class GetIpamPreviewNextCidr 
{
    public static Task<GetIpamPreviewNextCidrResult> InvokeAsync(GetIpamPreviewNextCidrArgs args, InvokeOptions? opts = null)
    public static Output<GetIpamPreviewNextCidrResult> Invoke(GetIpamPreviewNextCidrInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetIpamPreviewNextCidrResult> getIpamPreviewNextCidr(GetIpamPreviewNextCidrArgs args, InvokeOptions options)
public static Output<GetIpamPreviewNextCidrResult> getIpamPreviewNextCidr(GetIpamPreviewNextCidrArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

IpamPoolId This property is required. string
ID of the pool to which you want to assign a CIDR.
DisallowedCidrs List<string>
Exclude a particular CIDR range from being returned by the pool.
NetmaskLength int
Netmask length of the CIDR you would like to preview from the IPAM pool.
IpamPoolId This property is required. string
ID of the pool to which you want to assign a CIDR.
DisallowedCidrs []string
Exclude a particular CIDR range from being returned by the pool.
NetmaskLength int
Netmask length of the CIDR you would like to preview from the IPAM pool.
ipamPoolId This property is required. String
ID of the pool to which you want to assign a CIDR.
disallowedCidrs List<String>
Exclude a particular CIDR range from being returned by the pool.
netmaskLength Integer
Netmask length of the CIDR you would like to preview from the IPAM pool.
ipamPoolId This property is required. string
ID of the pool to which you want to assign a CIDR.
disallowedCidrs string[]
Exclude a particular CIDR range from being returned by the pool.
netmaskLength number
Netmask length of the CIDR you would like to preview from the IPAM pool.
ipam_pool_id This property is required. str
ID of the pool to which you want to assign a CIDR.
disallowed_cidrs Sequence[str]
Exclude a particular CIDR range from being returned by the pool.
netmask_length int
Netmask length of the CIDR you would like to preview from the IPAM pool.
ipamPoolId This property is required. String
ID of the pool to which you want to assign a CIDR.
disallowedCidrs List<String>
Exclude a particular CIDR range from being returned by the pool.
netmaskLength Number
Netmask length of the CIDR you would like to preview from the IPAM pool.

getIpamPreviewNextCidr Result

The following output properties are available:

Cidr string
Previewed CIDR from the pool.
Id string
The provider-assigned unique ID for this managed resource.
IpamPoolId string
DisallowedCidrs List<string>
NetmaskLength int
Cidr string
Previewed CIDR from the pool.
Id string
The provider-assigned unique ID for this managed resource.
IpamPoolId string
DisallowedCidrs []string
NetmaskLength int
cidr String
Previewed CIDR from the pool.
id String
The provider-assigned unique ID for this managed resource.
ipamPoolId String
disallowedCidrs List<String>
netmaskLength Integer
cidr string
Previewed CIDR from the pool.
id string
The provider-assigned unique ID for this managed resource.
ipamPoolId string
disallowedCidrs string[]
netmaskLength number
cidr str
Previewed CIDR from the pool.
id str
The provider-assigned unique ID for this managed resource.
ipam_pool_id str
disallowed_cidrs Sequence[str]
netmask_length int
cidr String
Previewed CIDR from the pool.
id String
The provider-assigned unique ID for this managed resource.
ipamPoolId String
disallowedCidrs List<String>
netmaskLength Number

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.
AWS v6.78.0 published on Thursday, Apr 24, 2025 by Pulumi