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 DsAvailabilityZoneArgs { /** * (Optional) Set to `true` to include all Availability Zones and Local Zones regardless of your opt in * status. */ allAvailabilityZones?: boolean | core.BooleanOut; /** * (Optional) Configuration block(s) for filtering. Detailed below. */ filter?: core.Array | core.ArrayOut; /** * (Optional) The full name of the availability zone to select. */ name?: string | core.StringOut; /** * (Optional) A specific availability zone state to require. May be any of `"available"`, `"information * "` or `"impaired"`. */ state?: string | core.StringOut; /** * (Optional) The zone ID of the availability zone to select. */ zoneId?: string | core.StringOut; } export class DsAvailabilityZone extends core.Data { /** * (Optional) Set to `true` to include all Availability Zones and Local Zones regardless of your opt in * status. */ @core.attr(Boolean) public allAvailabilityZones?: boolean | core.BooleanOut; /** * (Optional) Configuration block(s) for filtering. Detailed below. */ @core.attr(Filter, { kind: "array" }) public filter?: core.Array | core.ArrayOut; /** * For Availability Zones, this is the same value as the Region name. For Local Zones, the name of the * associated group, for example `us-west-2-lax-1`. */ @core.attr(String, { computed: true }) public groupName!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The full name of the availability zone to select. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * The part of the AZ name that appears after the region name, uniquely identifying the AZ within its r * egion. */ @core.attr(String, { computed: true }) public nameSuffix!: string | core.StringOut; /** * The name of the location from which the address is advertised. */ @core.attr(String, { computed: true }) public networkBorderGroup!: string | core.StringOut; /** * For Availability Zones, this always has the value of `opt-in-not-required`. For Local Zones, this is * the opt in status. The possible values are `opted-in` and `not-opted-in`. */ @core.attr(String, { computed: true }) public optInStatus!: string | core.StringOut; /** * The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, * such as API calls. */ @core.attr(String, { computed: true }) public parentZoneId!: string | core.StringOut; /** * The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations * , such as API calls. */ @core.attr(String, { computed: true }) public parentZoneName!: string | core.StringOut; /** * The region where the selected availability zone resides. This is always the region selected on the p * rovider, since this data source searches only within that region. */ @core.attr(String, { computed: true }) public region!: string | core.StringOut; /** * (Optional) A specific availability zone state to require. May be any of `"available"`, `"information * "` or `"impaired"`. */ @core.attr(String, { computed: true }) public state?: string | core.StringOut; /** * (Optional) The zone ID of the availability zone to select. */ @core.attr(String, { computed: true }) public zoneId?: string | core.StringOut; /** * The type of zone. Values are `availability-zone`, `local-zone`, and `wavelength-zone`. */ @core.attr(String, { computed: true }) public zoneType!: string | core.StringOut; constructor(name: string, args?: DsAvailabilityZoneArgs) { super(name, "aws_availability_zone", args); } public override getNamespace(): string { return "aws_ec2"; } }