1. Packages
  2. AWS
  3. API Docs
  4. ec2
  5. getVpcIpamPool
AWS v6.75.0 published on Wednesday, Apr 2, 2025 by Pulumi

aws.ec2.getVpcIpamPool

Explore with Pulumi AI

AWS v6.75.0 published on Wednesday, Apr 2, 2025 by Pulumi

aws.ec2.VpcIpamPool provides details about an IPAM pool.

This resource can prove useful when an ipam pool was created in another root module and you need the pool’s id as an input variable. For example, pools can be shared via RAM and used to create vpcs with CIDRs from that pool.

Example Usage

The following example shows an account that has only 1 pool, perhaps shared via RAM, and using that pool id to create a VPC with a CIDR derived from AWS IPAM.

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

const test = aws.ec2.getVpcIpamPool({
    filters: [
        {
            name: "description",
            values: ["*test*"],
        },
        {
            name: "address-family",
            values: ["ipv4"],
        },
    ],
});
const testVpc = new aws.ec2.Vpc("test", {
    ipv4IpamPoolId: test.then(test => test.id),
    ipv4NetmaskLength: 28,
});
Copy
import pulumi
import pulumi_aws as aws

test = aws.ec2.get_vpc_ipam_pool(filters=[
    {
        "name": "description",
        "values": ["*test*"],
    },
    {
        "name": "address-family",
        "values": ["ipv4"],
    },
])
test_vpc = aws.ec2.Vpc("test",
    ipv4_ipam_pool_id=test.id,
    ipv4_netmask_length=28)
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.LookupVpcIpamPool(ctx, &ec2.LookupVpcIpamPoolArgs{
			Filters: []ec2.GetVpcIpamPoolFilter{
				{
					Name: "description",
					Values: []string{
						"*test*",
					},
				},
				{
					Name: "address-family",
					Values: []string{
						"ipv4",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = ec2.NewVpc(ctx, "test", &ec2.VpcArgs{
			Ipv4IpamPoolId:    pulumi.String(test.Id),
			Ipv4NetmaskLength: pulumi.Int(28),
		})
		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.GetVpcIpamPool.Invoke(new()
    {
        Filters = new[]
        {
            new Aws.Ec2.Inputs.GetVpcIpamPoolFilterInputArgs
            {
                Name = "description",
                Values = new[]
                {
                    "*test*",
                },
            },
            new Aws.Ec2.Inputs.GetVpcIpamPoolFilterInputArgs
            {
                Name = "address-family",
                Values = new[]
                {
                    "ipv4",
                },
            },
        },
    });

    var testVpc = new Aws.Ec2.Vpc("test", new()
    {
        Ipv4IpamPoolId = test.Apply(getVpcIpamPoolResult => getVpcIpamPoolResult.Id),
        Ipv4NetmaskLength = 28,
    });

});
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.GetVpcIpamPoolArgs;
import com.pulumi.aws.ec2.Vpc;
import com.pulumi.aws.ec2.VpcArgs;
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.getVpcIpamPool(GetVpcIpamPoolArgs.builder()
            .filters(            
                GetVpcIpamPoolFilterArgs.builder()
                    .name("description")
                    .values("*test*")
                    .build(),
                GetVpcIpamPoolFilterArgs.builder()
                    .name("address-family")
                    .values("ipv4")
                    .build())
            .build());

        var testVpc = new Vpc("testVpc", VpcArgs.builder()
            .ipv4IpamPoolId(test.applyValue(getVpcIpamPoolResult -> getVpcIpamPoolResult.id()))
            .ipv4NetmaskLength(28)
            .build());

    }
}
Copy
resources:
  testVpc:
    type: aws:ec2:Vpc
    name: test
    properties:
      ipv4IpamPoolId: ${test.id}
      ipv4NetmaskLength: 28
variables:
  test:
    fn::invoke:
      function: aws:ec2:getVpcIpamPool
      arguments:
        filters:
          - name: description
            values:
              - '*test*'
          - name: address-family
            values:
              - ipv4
Copy

Using getVpcIpamPool

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 getVpcIpamPool(args: GetVpcIpamPoolArgs, opts?: InvokeOptions): Promise<GetVpcIpamPoolResult>
function getVpcIpamPoolOutput(args: GetVpcIpamPoolOutputArgs, opts?: InvokeOptions): Output<GetVpcIpamPoolResult>
Copy
def get_vpc_ipam_pool(allocation_resource_tags: Optional[Mapping[str, str]] = None,
                      filters: Optional[Sequence[GetVpcIpamPoolFilter]] = None,
                      id: Optional[str] = None,
                      ipam_pool_id: Optional[str] = None,
                      tags: Optional[Mapping[str, str]] = None,
                      opts: Optional[InvokeOptions] = None) -> GetVpcIpamPoolResult
def get_vpc_ipam_pool_output(allocation_resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                      filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetVpcIpamPoolFilterArgs]]]] = None,
                      id: Optional[pulumi.Input[str]] = None,
                      ipam_pool_id: Optional[pulumi.Input[str]] = None,
                      tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                      opts: Optional[InvokeOptions] = None) -> Output[GetVpcIpamPoolResult]
Copy
func LookupVpcIpamPool(ctx *Context, args *LookupVpcIpamPoolArgs, opts ...InvokeOption) (*LookupVpcIpamPoolResult, error)
func LookupVpcIpamPoolOutput(ctx *Context, args *LookupVpcIpamPoolOutputArgs, opts ...InvokeOption) LookupVpcIpamPoolResultOutput
Copy

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

public static class GetVpcIpamPool 
{
    public static Task<GetVpcIpamPoolResult> InvokeAsync(GetVpcIpamPoolArgs args, InvokeOptions? opts = null)
    public static Output<GetVpcIpamPoolResult> Invoke(GetVpcIpamPoolInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetVpcIpamPoolResult> getVpcIpamPool(GetVpcIpamPoolArgs args, InvokeOptions options)
public static Output<GetVpcIpamPoolResult> getVpcIpamPool(GetVpcIpamPoolArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: aws:ec2/getVpcIpamPool:getVpcIpamPool
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

AllocationResourceTags Dictionary<string, string>
Tags that are required to create resources in using this pool.
Filters List<GetVpcIpamPoolFilter>
Custom filter block as described below.
Id string
ID of the IPAM pool.
IpamPoolId string
ID of the IPAM pool you would like information on.
Tags Dictionary<string, string>
Map of tags to assigned to the resource.
AllocationResourceTags map[string]string
Tags that are required to create resources in using this pool.
Filters []GetVpcIpamPoolFilter
Custom filter block as described below.
Id string
ID of the IPAM pool.
IpamPoolId string
ID of the IPAM pool you would like information on.
Tags map[string]string
Map of tags to assigned to the resource.
allocationResourceTags Map<String,String>
Tags that are required to create resources in using this pool.
filters List<GetVpcIpamPoolFilter>
Custom filter block as described below.
id String
ID of the IPAM pool.
ipamPoolId String
ID of the IPAM pool you would like information on.
tags Map<String,String>
Map of tags to assigned to the resource.
allocationResourceTags {[key: string]: string}
Tags that are required to create resources in using this pool.
filters GetVpcIpamPoolFilter[]
Custom filter block as described below.
id string
ID of the IPAM pool.
ipamPoolId string
ID of the IPAM pool you would like information on.
tags {[key: string]: string}
Map of tags to assigned to the resource.
allocation_resource_tags Mapping[str, str]
Tags that are required to create resources in using this pool.
filters Sequence[GetVpcIpamPoolFilter]
Custom filter block as described below.
id str
ID of the IPAM pool.
ipam_pool_id str
ID of the IPAM pool you would like information on.
tags Mapping[str, str]
Map of tags to assigned to the resource.
allocationResourceTags Map<String>
Tags that are required to create resources in using this pool.
filters List<Property Map>
Custom filter block as described below.
id String
ID of the IPAM pool.
ipamPoolId String
ID of the IPAM pool you would like information on.
tags Map<String>
Map of tags to assigned to the resource.

getVpcIpamPool Result

The following output properties are available:

AddressFamily string
IP protocol assigned to this pool.
AllocationDefaultNetmaskLength int
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
AllocationMaxNetmaskLength int
The maximum netmask length that will be required for CIDR allocations in this pool.
AllocationMinNetmaskLength int
The minimum netmask length that will be required for CIDR allocations in this pool.
AllocationResourceTags Dictionary<string, string>
Tags that are required to create resources in using this pool.
Arn string
ARN of the pool
AutoImport bool
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
AwsService string
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
Description string
Description for the IPAM pool.
IpamScopeId string
ID of the scope the pool belongs to.
IpamScopeType string
Locale string
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
PoolDepth int
PubliclyAdvertisable bool
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
SourceIpamPoolId string
ID of the source IPAM pool.
State string
Tags Dictionary<string, string>
Map of tags to assigned to the resource.
Filters List<GetVpcIpamPoolFilter>
Id string
ID of the IPAM pool.
IpamPoolId string
AddressFamily string
IP protocol assigned to this pool.
AllocationDefaultNetmaskLength int
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
AllocationMaxNetmaskLength int
The maximum netmask length that will be required for CIDR allocations in this pool.
AllocationMinNetmaskLength int
The minimum netmask length that will be required for CIDR allocations in this pool.
AllocationResourceTags map[string]string
Tags that are required to create resources in using this pool.
Arn string
ARN of the pool
AutoImport bool
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
AwsService string
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
Description string
Description for the IPAM pool.
IpamScopeId string
ID of the scope the pool belongs to.
IpamScopeType string
Locale string
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
PoolDepth int
PubliclyAdvertisable bool
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
SourceIpamPoolId string
ID of the source IPAM pool.
State string
Tags map[string]string
Map of tags to assigned to the resource.
Filters []GetVpcIpamPoolFilter
Id string
ID of the IPAM pool.
IpamPoolId string
addressFamily String
IP protocol assigned to this pool.
allocationDefaultNetmaskLength Integer
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
allocationMaxNetmaskLength Integer
The maximum netmask length that will be required for CIDR allocations in this pool.
allocationMinNetmaskLength Integer
The minimum netmask length that will be required for CIDR allocations in this pool.
allocationResourceTags Map<String,String>
Tags that are required to create resources in using this pool.
arn String
ARN of the pool
autoImport Boolean
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
awsService String
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
description String
Description for the IPAM pool.
ipamScopeId String
ID of the scope the pool belongs to.
ipamScopeType String
locale String
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
poolDepth Integer
publiclyAdvertisable Boolean
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
sourceIpamPoolId String
ID of the source IPAM pool.
state String
tags Map<String,String>
Map of tags to assigned to the resource.
filters List<GetVpcIpamPoolFilter>
id String
ID of the IPAM pool.
ipamPoolId String
addressFamily string
IP protocol assigned to this pool.
allocationDefaultNetmaskLength number
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
allocationMaxNetmaskLength number
The maximum netmask length that will be required for CIDR allocations in this pool.
allocationMinNetmaskLength number
The minimum netmask length that will be required for CIDR allocations in this pool.
allocationResourceTags {[key: string]: string}
Tags that are required to create resources in using this pool.
arn string
ARN of the pool
autoImport boolean
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
awsService string
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
description string
Description for the IPAM pool.
ipamScopeId string
ID of the scope the pool belongs to.
ipamScopeType string
locale string
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
poolDepth number
publiclyAdvertisable boolean
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
sourceIpamPoolId string
ID of the source IPAM pool.
state string
tags {[key: string]: string}
Map of tags to assigned to the resource.
filters GetVpcIpamPoolFilter[]
id string
ID of the IPAM pool.
ipamPoolId string
address_family str
IP protocol assigned to this pool.
allocation_default_netmask_length int
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
allocation_max_netmask_length int
The maximum netmask length that will be required for CIDR allocations in this pool.
allocation_min_netmask_length int
The minimum netmask length that will be required for CIDR allocations in this pool.
allocation_resource_tags Mapping[str, str]
Tags that are required to create resources in using this pool.
arn str
ARN of the pool
auto_import bool
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
aws_service str
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
description str
Description for the IPAM pool.
ipam_scope_id str
ID of the scope the pool belongs to.
ipam_scope_type str
locale str
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
pool_depth int
publicly_advertisable bool
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
source_ipam_pool_id str
ID of the source IPAM pool.
state str
tags Mapping[str, str]
Map of tags to assigned to the resource.
filters Sequence[GetVpcIpamPoolFilter]
id str
ID of the IPAM pool.
ipam_pool_id str
addressFamily String
IP protocol assigned to this pool.
allocationDefaultNetmaskLength Number
A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
allocationMaxNetmaskLength Number
The maximum netmask length that will be required for CIDR allocations in this pool.
allocationMinNetmaskLength Number
The minimum netmask length that will be required for CIDR allocations in this pool.
allocationResourceTags Map<String>
Tags that are required to create resources in using this pool.
arn String
ARN of the pool
autoImport Boolean
If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
awsService String
Limits which service in AWS that the pool can be used in. ec2 for example, allows users to use space for Elastic IP addresses and VPCs.
description String
Description for the IPAM pool.
ipamScopeId String
ID of the scope the pool belongs to.
ipamScopeType String
locale String
Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
poolDepth Number
publiclyAdvertisable Boolean
Defines whether or not IPv6 pool space is publicly advertisable over the internet.
sourceIpamPoolId String
ID of the source IPAM pool.
state String
tags Map<String>
Map of tags to assigned to the resource.
filters List<Property Map>
id String
ID of the IPAM pool.
ipamPoolId String

Supporting Types

GetVpcIpamPoolFilter

Name This property is required. string
The name of the filter. Filter names are case-sensitive.
Values This property is required. List<string>
The filter values. Filter values are case-sensitive.
Name This property is required. string
The name of the filter. Filter names are case-sensitive.
Values This property is required. []string
The filter values. Filter values are case-sensitive.
name This property is required. String
The name of the filter. Filter names are case-sensitive.
values This property is required. List<String>
The filter values. Filter values are case-sensitive.
name This property is required. string
The name of the filter. Filter names are case-sensitive.
values This property is required. string[]
The filter values. Filter values are case-sensitive.
name This property is required. str
The name of the filter. Filter names are case-sensitive.
values This property is required. Sequence[str]
The filter values. Filter values are case-sensitive.
name This property is required. String
The name of the filter. Filter names are case-sensitive.
values This property is required. List<String>
The filter values. Filter values are case-sensitive.

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.75.0 published on Wednesday, Apr 2, 2025 by Pulumi