UNPKG

@pulumi/aws

Version:

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

217 lines (216 loc) 6.85 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * `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. * * ```typescript * 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, * }); * ``` */ export declare function getVpcIpamPool(args?: GetVpcIpamPoolArgs, opts?: pulumi.InvokeOptions): Promise<GetVpcIpamPoolResult>; /** * A collection of arguments for invoking getVpcIpamPool. */ export interface GetVpcIpamPoolArgs { /** * Tags that are required to create resources in using this pool. */ allocationResourceTags?: { [key: string]: string; }; /** * Custom filter block as described below. */ filters?: inputs.ec2.GetVpcIpamPoolFilter[]; /** * ID of the IPAM pool. */ id?: string; /** * ID of the IPAM pool you would like information on. */ ipamPoolId?: string; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: string; /** * Map of tags to assigned to the resource. */ tags?: { [key: string]: string; }; } /** * A collection of values returned by getVpcIpamPool. */ export interface GetVpcIpamPoolResult { /** * IP protocol assigned to this pool. */ readonly addressFamily: string; /** * 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`. */ readonly allocationDefaultNetmaskLength: number; /** * The maximum netmask length that will be required for CIDR allocations in this pool. */ readonly allocationMaxNetmaskLength: number; /** * The minimum netmask length that will be required for CIDR allocations in this pool. */ readonly allocationMinNetmaskLength: number; /** * Tags that are required to create resources in using this pool. */ readonly allocationResourceTags: { [key: string]: string; }; /** * ARN of the pool */ readonly arn: string; /** * If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM. */ readonly autoImport: boolean; /** * 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. */ readonly awsService: string; /** * Description for the IPAM pool. */ readonly description: string; readonly filters?: outputs.ec2.GetVpcIpamPoolFilter[]; /** * ID of the IPAM pool. */ readonly id?: string; readonly ipamPoolId?: string; /** * ID of the scope the pool belongs to. */ readonly ipamScopeId: string; readonly ipamScopeType: 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. */ readonly locale: string; readonly poolDepth: number; /** * Defines whether or not IPv6 pool space is publicly advertisable over the internet. */ readonly publiclyAdvertisable: boolean; readonly region: string; /** * ID of the source IPAM pool. */ readonly sourceIpamPoolId: string; readonly state: string; /** * Map of tags to assigned to the resource. */ readonly tags: { [key: string]: string; }; } /** * `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. * * ```typescript * 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, * }); * ``` */ export declare function getVpcIpamPoolOutput(args?: GetVpcIpamPoolOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetVpcIpamPoolResult>; /** * A collection of arguments for invoking getVpcIpamPool. */ export interface GetVpcIpamPoolOutputArgs { /** * Tags that are required to create resources in using this pool. */ allocationResourceTags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Custom filter block as described below. */ filters?: pulumi.Input<pulumi.Input<inputs.ec2.GetVpcIpamPoolFilterArgs>[]>; /** * ID of the IPAM pool. */ id?: pulumi.Input<string>; /** * ID of the IPAM pool you would like information on. */ ipamPoolId?: pulumi.Input<string>; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input<string>; /** * Map of tags to assigned to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; }