1. Packages
  2. AWS
  3. API Docs
  4. ec2
  5. getVpcIpamPool
AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi

aws.ec2.getVpcIpamPool

Explore with Pulumi AI

aws logo
AWS v6.60.0 published on Tuesday, Nov 19, 2024 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,
    });
    
    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)
    
    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
    	})
    }
    
    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,
        });
    
    });
    
    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());
    
        }
    }
    
    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
    

    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>
    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]
    func LookupVpcIpamPool(ctx *Context, args *LookupVpcIpamPoolArgs, opts ...InvokeOption) (*LookupVpcIpamPoolResult, error)
    func LookupVpcIpamPoolOutput(ctx *Context, args *LookupVpcIpamPoolOutputArgs, opts ...InvokeOption) LookupVpcIpamPoolResultOutput

    > 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)
    }
    public static CompletableFuture<GetVpcIpamPoolResult> getVpcIpamPool(GetVpcIpamPoolArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: aws:ec2/getVpcIpamPool:getVpcIpamPool
      arguments:
        # arguments dictionary

    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 string
    The name of the filter. Filter names are case-sensitive.
    Values List<string>
    The filter values. Filter values are case-sensitive.
    Name string
    The name of the filter. Filter names are case-sensitive.
    Values []string
    The filter values. Filter values are case-sensitive.
    name String
    The name of the filter. Filter names are case-sensitive.
    values List<String>
    The filter values. Filter values are case-sensitive.
    name string
    The name of the filter. Filter names are case-sensitive.
    values string[]
    The filter values. Filter values are case-sensitive.
    name str
    The name of the filter. Filter names are case-sensitive.
    values Sequence[str]
    The filter values. Filter values are case-sensitive.
    name String
    The name of the filter. Filter names are case-sensitive.
    values 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 logo
    AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi