import * as core from "@terrascript/core"; export interface FilterArgs extends core.SchemaArgs { name: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Filter extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface DsPoolArgs { /** * Tags that are required to create resources in using this pool. */ allocationResourceTags?: | core.Map | core.MapOut; /** * Custom filter block as described below. */ filter?: core.Array | core.ArrayOut; /** * The ID of the IPAM pool. */ id?: string | core.StringOut; /** * The ID of the IPAM pool you would like information on. */ ipamPoolId?: string | core.StringOut; /** * A map of tags to assigned to the resource. */ tags?: core.Map | core.MapOut; } export class DsPool extends core.Data { /** * The IP protocol assigned to this pool. */ @core.attr(String, { computed: true }) public addressFamily!: string | core.StringOut; /** * A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to t * his pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16. */ @core.attr(Number, { computed: true }) public allocationDefaultNetmaskLength!: number | core.NumberOut; /** * The maximum netmask length that will be required for CIDR allocations in this pool. */ @core.attr(Number, { computed: true }) public allocationMaxNetmaskLength!: number | core.NumberOut; /** * The minimum netmask length that will be required for CIDR allocations in this pool. */ @core.attr(Number, { computed: true }) public allocationMinNetmaskLength!: number | core.NumberOut; /** * Tags that are required to create resources in using this pool. */ @core.attr(String, { computed: true, kind: "map" }) public allocationResourceTags?: | core.Map | core.MapOut; /** * Amazon Resource Name (ARN) of the pool */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automat * ically import them as allocations into your IPAM. */ @core.attr(Boolean, { computed: true }) public autoImport!: boolean | core.BooleanOut; /** * Limits which service in AWS that the pool can be used in. "ec2", for example, allows users to use sp * ace for Elastic IP addresses and VPCs. */ @core.attr(String, { computed: true }) public awsService!: string | core.StringOut; /** * A description for the IPAM pool. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * Custom filter block as described below. */ @core.attr(Filter, { kind: "array" }) public filter?: core.Array | core.ArrayOut; /** * The ID of the IPAM pool. */ @core.attr(String) public id?: string | core.StringOut; /** * The ID of the IPAM pool you would like information on. */ @core.attr(String) public ipamPoolId?: string | core.StringOut; /** * The ID of the scope the pool belongs to. */ @core.attr(String, { computed: true }) public ipamScopeId!: string | core.StringOut; @core.attr(String, { computed: true }) public ipamScopeType!: string | core.StringOut; /** * Locale is the Region where your pool is available for allocations. You can only create pools with lo * cales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose local * e matches the VPC's Region. */ @core.attr(String, { computed: true }) public locale!: string | core.StringOut; @core.attr(Number, { computed: true }) public poolDepth!: number | core.NumberOut; /** * Defines whether or not IPv6 pool space is publicly ∂advertisable over the internet. */ @core.attr(Boolean, { computed: true }) public publiclyAdvertisable!: boolean | core.BooleanOut; /** * The ID of the source IPAM pool. */ @core.attr(String, { computed: true }) public sourceIpamPoolId!: string | core.StringOut; @core.attr(String, { computed: true }) public state!: string | core.StringOut; /** * A map of tags to assigned to the resource. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; constructor(name: string, args?: DsPoolArgs) { super(name, "aws_vpc_ipam_pool", args); } public override getNamespace(): string { return "aws_vpc_ipam"; } }