1. Packages
  2. AWS Classic
  3. API Docs
  4. ec2
  5. getVpcIamPool

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

aws.ec2.getVpcIamPool

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

    Deprecated:

    aws.ec2/getvpciampool.getVpcIamPool has been deprecated in favor of aws.ec2/getvpcipampool.getVpcIpamPool

    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

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var testVpcIpamPool = 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("testVpc", new()
        {
            Ipv4IpamPoolId = testVpcIpamPool.Apply(getVpcIpamPoolResult => getVpcIpamPoolResult.Id),
            Ipv4NetmaskLength = 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 {
    		testVpcIpamPool, 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, "testVpc", &ec2.VpcArgs{
    			Ipv4IpamPoolId:    *pulumi.String(testVpcIpamPool.Id),
    			Ipv4NetmaskLength: pulumi.Int(28),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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 testVpcIpamPool = 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(testVpcIpamPool.applyValue(getVpcIpamPoolResult -> getVpcIpamPoolResult.id()))
                .ipv4NetmaskLength(28)
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    test_vpc_ipam_pool = aws.ec2.get_vpc_ipam_pool(filters=[
        aws.ec2.GetVpcIpamPoolFilterArgs(
            name="description",
            values=["*test*"],
        ),
        aws.ec2.GetVpcIpamPoolFilterArgs(
            name="address-family",
            values=["ipv4"],
        ),
    ])
    test_vpc = aws.ec2.Vpc("testVpc",
        ipv4_ipam_pool_id=test_vpc_ipam_pool.id,
        ipv4_netmask_length=28)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const testVpcIpamPool = aws.ec2.getVpcIpamPool({
        filters: [
            {
                name: "description",
                values: ["*test*"],
            },
            {
                name: "address-family",
                values: ["ipv4"],
            },
        ],
    });
    const testVpc = new aws.ec2.Vpc("testVpc", {
        ipv4IpamPoolId: testVpcIpamPool.then(testVpcIpamPool => testVpcIpamPool.id),
        ipv4NetmaskLength: 28,
    });
    
    resources:
      testVpc:
        type: aws:ec2:Vpc
        properties:
          ipv4IpamPoolId: ${testVpcIpamPool.id}
          ipv4NetmaskLength: 28
    variables:
      testVpcIpamPool:
        fn::invoke:
          Function: aws:ec2:getVpcIpamPool
          Arguments:
            filters:
              - name: description
                values:
                  - '*test*'
              - name: address-family
                values:
                  - ipv4
    

    Using getVpcIamPool

    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 getVpcIamPool(args: GetVpcIamPoolArgs, opts?: InvokeOptions): Promise<GetVpcIamPoolResult>
    function getVpcIamPoolOutput(args: GetVpcIamPoolOutputArgs, opts?: InvokeOptions): Output<GetVpcIamPoolResult>
    def get_vpc_iam_pool(allocation_resource_tags: Optional[Mapping[str, str]] = None,
                         filters: Optional[Sequence[GetVpcIamPoolFilter]] = None,
                         id: Optional[str] = None,
                         ipam_pool_id: Optional[str] = None,
                         tags: Optional[Mapping[str, str]] = None,
                         opts: Optional[InvokeOptions] = None) -> GetVpcIamPoolResult
    def get_vpc_iam_pool_output(allocation_resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                         filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetVpcIamPoolFilterArgs]]]] = 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[GetVpcIamPoolResult]
    func GetVpcIamPool(ctx *Context, args *GetVpcIamPoolArgs, opts ...InvokeOption) (*GetVpcIamPoolResult, error)
    func GetVpcIamPoolOutput(ctx *Context, args *GetVpcIamPoolOutputArgs, opts ...InvokeOption) GetVpcIamPoolResultOutput

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

    public static class GetVpcIamPool 
    {
        public static Task<GetVpcIamPoolResult> InvokeAsync(GetVpcIamPoolArgs args, InvokeOptions? opts = null)
        public static Output<GetVpcIamPoolResult> Invoke(GetVpcIamPoolInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetVpcIamPoolResult> getVpcIamPool(GetVpcIamPoolArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: aws:ec2/getVpcIamPool:getVpcIamPool
      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<GetVpcIamPoolFilter>

    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 []GetVpcIamPoolFilter

    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<GetVpcIamPoolFilter>

    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 GetVpcIamPoolFilter[]

    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[GetVpcIamPoolFilter]

    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.

    getVpcIamPool 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<GetVpcIamPoolFilter>
    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 []GetVpcIamPoolFilter
    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<GetVpcIamPoolFilter>
    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 GetVpcIamPoolFilter[]
    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[GetVpcIamPoolFilter]
    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

    GetVpcIamPoolFilter

    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

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi