UNPKG

@pulumi/aws

Version:

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

156 lines 5.47 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.getAvailabilityZonesOutput = exports.getAvailabilityZones = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("./utilities"); /** * The Availability Zones data source allows access to the list of AWS * Availability Zones which can be accessed by an AWS account within the region * configured in the provider. * * This is different from the `aws.getAvailabilityZone` (singular) data source, * which provides some details about a specific availability zone. * * > When [Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) are enabled in a region, by default the API and this data source include both Local Zones and Availability Zones. To return only Availability Zones, see the example section below. * * ## Example Usage * * ### By State * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Declare the data source * const available = aws.getAvailabilityZones({ * state: "available", * }); * // e.g., Create subnets in the first two available availability zones * const primary = new aws.ec2.Subnet("primary", {availabilityZone: available.then(available => available.names?.[0])}); * const secondary = new aws.ec2.Subnet("secondary", {availabilityZone: available.then(available => available.names?.[1])}); * ``` * * ### By Filter * * All Local Zones (regardless of opt-in status): * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.getAvailabilityZones({ * allAvailabilityZones: true, * filters: [{ * name: "opt-in-status", * values: [ * "not-opted-in", * "opted-in", * ], * }], * }); * ``` * * Only Availability Zones (no Local Zones): * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.getAvailabilityZones({ * filters: [{ * name: "opt-in-status", * values: ["opt-in-not-required"], * }], * }); * ``` */ function getAvailabilityZones(args, opts) { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("aws:index/getAvailabilityZones:getAvailabilityZones", { "allAvailabilityZones": args.allAvailabilityZones, "excludeNames": args.excludeNames, "excludeZoneIds": args.excludeZoneIds, "filters": args.filters, "region": args.region, "state": args.state, }, opts); } exports.getAvailabilityZones = getAvailabilityZones; /** * The Availability Zones data source allows access to the list of AWS * Availability Zones which can be accessed by an AWS account within the region * configured in the provider. * * This is different from the `aws.getAvailabilityZone` (singular) data source, * which provides some details about a specific availability zone. * * > When [Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) are enabled in a region, by default the API and this data source include both Local Zones and Availability Zones. To return only Availability Zones, see the example section below. * * ## Example Usage * * ### By State * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Declare the data source * const available = aws.getAvailabilityZones({ * state: "available", * }); * // e.g., Create subnets in the first two available availability zones * const primary = new aws.ec2.Subnet("primary", {availabilityZone: available.then(available => available.names?.[0])}); * const secondary = new aws.ec2.Subnet("secondary", {availabilityZone: available.then(available => available.names?.[1])}); * ``` * * ### By Filter * * All Local Zones (regardless of opt-in status): * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.getAvailabilityZones({ * allAvailabilityZones: true, * filters: [{ * name: "opt-in-status", * values: [ * "not-opted-in", * "opted-in", * ], * }], * }); * ``` * * Only Availability Zones (no Local Zones): * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.getAvailabilityZones({ * filters: [{ * name: "opt-in-status", * values: ["opt-in-not-required"], * }], * }); * ``` */ function getAvailabilityZonesOutput(args, opts) { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("aws:index/getAvailabilityZones:getAvailabilityZones", { "allAvailabilityZones": args.allAvailabilityZones, "excludeNames": args.excludeNames, "excludeZoneIds": args.excludeZoneIds, "filters": args.filters, "region": args.region, "state": args.state, }, opts); } exports.getAvailabilityZonesOutput = getAvailabilityZonesOutput; //# sourceMappingURL=getAvailabilityZones.js.map