import * as core from "@terrascript/core"; export interface PoolArgs extends core.ResourceArgs { /** * (Optional) The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a * pool. */ addressFamily: string | core.StringOut; /** * (Optional) A default netmask length for allocations added to this pool. If, for example, the CIDR as * signed to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 * (unless you provide a different netmask value when you create the new allocation). */ allocationDefaultNetmaskLength?: number | core.NumberOut; /** * (Optional) The maximum netmask length that will be required for CIDR allocations in this pool. */ allocationMaxNetmaskLength?: number | core.NumberOut; /** * (Optional) The minimum netmask length that will be required for CIDR allocations in this pool. */ allocationMinNetmaskLength?: number | core.NumberOut; /** * (Optional) Tags that are required for resources that use CIDRs from this IPAM pool. Resources that d * o not have these tags will not be allowed to allocate space from the pool. If the resources have the * ir tags changed after they have allocated space or if the allocation tagging requirements are change * d on the pool, the resource may be marked as noncompliant. */ allocationResourceTags?: | core.Map | core.MapOut; /** * (Optional) If you include this argument, IPAM automatically imports any VPCs you have in your scope * that fall */ autoImport?: boolean | core.BooleanOut; /** * (Optional) Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Va * lues: `ec2`. */ awsService?: string | core.StringOut; /** * (Optional) A description for the IPAM pool. */ description?: string | core.StringOut; /** * (Optional) The ID of the scope in which you would like to create the IPAM pool. */ ipamScopeId: string | core.StringOut; /** * (Optional) The locale in which you would like to create the IPAM pool. Locale is the Region where yo * u want to make an IPAM pool available for allocations. You can only create pools with locales that m * atch the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches th * e VPC's Region. Possible values: Any AWS region, such as `us-east-1`. */ locale?: string | core.StringOut; /** * (Optional) Defines whether or not IPv6 pool space is publicly advertisable over the internet. This o * ption is not available for IPv4 pool space. */ publiclyAdvertisable?: boolean | core.BooleanOut; /** * (Optional) The ID of the source IPAM pool. Use this argument to create a child pool within an existi * ng pool. */ sourceIpamPoolId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Pool extends core.Resource { /** * (Optional) The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a * pool. */ @core.attr(String) public addressFamily!: string | core.StringOut; /** * (Optional) A default netmask length for allocations added to this pool. If, for example, the CIDR as * signed to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 * (unless you provide a different netmask value when you create the new allocation). */ @core.attr(Number) public allocationDefaultNetmaskLength?: number | core.NumberOut; /** * (Optional) The maximum netmask length that will be required for CIDR allocations in this pool. */ @core.attr(Number) public allocationMaxNetmaskLength?: number | core.NumberOut; /** * (Optional) The minimum netmask length that will be required for CIDR allocations in this pool. */ @core.attr(Number) public allocationMinNetmaskLength?: number | core.NumberOut; /** * (Optional) Tags that are required for resources that use CIDRs from this IPAM pool. Resources that d * o not have these tags will not be allowed to allocate space from the pool. If the resources have the * ir tags changed after they have allocated space or if the allocation tagging requirements are change * d on the pool, the resource may be marked as noncompliant. */ @core.attr(String, { kind: "map" }) public allocationResourceTags?: | core.Map | core.MapOut; /** * Amazon Resource Name (ARN) of IPAM */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) If you include this argument, IPAM automatically imports any VPCs you have in your scope * that fall */ @core.attr(Boolean) public autoImport?: boolean | core.BooleanOut; /** * (Optional) Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Va * lues: `ec2`. */ @core.attr(String) public awsService?: string | core.StringOut; /** * (Optional) A description for the IPAM pool. */ @core.attr(String) public description?: string | core.StringOut; /** * The ID of the IPAM */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ID of the scope in which you would like to create the IPAM pool. */ @core.attr(String) public ipamScopeId!: string | core.StringOut; @core.attr(String, { computed: true }) public ipamScopeType!: string | core.StringOut; /** * (Optional) The locale in which you would like to create the IPAM pool. Locale is the Region where yo * u want to make an IPAM pool available for allocations. You can only create pools with locales that m * atch the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches th * e VPC's Region. Possible values: Any AWS region, such as `us-east-1`. */ @core.attr(String) public locale?: string | core.StringOut; @core.attr(Number, { computed: true }) public poolDepth!: number | core.NumberOut; /** * (Optional) Defines whether or not IPv6 pool space is publicly advertisable over the internet. This o * ption is not available for IPv4 pool space. */ @core.attr(Boolean) public publiclyAdvertisable?: boolean | core.BooleanOut; /** * (Optional) The ID of the source IPAM pool. Use this argument to create a child pool within an existi * ng pool. */ @core.attr(String) public sourceIpamPoolId?: string | core.StringOut; /** * The ID of the IPAM */ @core.attr(String, { computed: true }) public state!: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: PoolArgs) { super(name, "aws_vpc_ipam_pool", args); } public override getNamespace(): string { return "aws_vpc_ipam"; } }