import * as pulumi from "@pulumi/pulumi"; /** * Provides access to available Google Compute zones in a region for a given project. * See more about [regions and zones](https://cloud.google.com/compute/docs/regions-zones/regions-zones) in the upstream docs. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const available = gcp.compute.getZones({}); * const foo: gcp.compute.InstanceGroupManager[] = []; * available.then(available => available.names).length.apply(rangeBody => { * for (const range = {value: 0}; range.value < rangeBody; range.value++) { * foo.push(new gcp.compute.InstanceGroupManager(`foo-${range.value}`, { * name: `test-${range.value}`, * instanceTemplate: foobar.selfLink, * baseInstanceName: `foobar-${range.value}`, * zone: available.then(available => available.names[range.value]), * targetSize: 1, * })); * } * }); * ``` */ export declare function getZones(args?: GetZonesArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getZones. */ export interface GetZonesArgs { /** * Project from which to list available zones. Defaults to project declared in the provider. */ project?: string; /** * Region from which to list available zones. Defaults to region declared in the provider. */ region?: string; /** * Allows to filter list of zones based on their current status. Status can be either `UP` or `DOWN`. * Defaults to no filtering (all available zones - both `UP` and `DOWN`). */ status?: string; } /** * A collection of values returned by getZones. */ export interface GetZonesResult { /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * A list of zones available in the given region */ readonly names: string[]; readonly project: string; readonly region?: string; readonly status?: string; } /** * Provides access to available Google Compute zones in a region for a given project. * See more about [regions and zones](https://cloud.google.com/compute/docs/regions-zones/regions-zones) in the upstream docs. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const available = gcp.compute.getZones({}); * const foo: gcp.compute.InstanceGroupManager[] = []; * available.then(available => available.names).length.apply(rangeBody => { * for (const range = {value: 0}; range.value < rangeBody; range.value++) { * foo.push(new gcp.compute.InstanceGroupManager(`foo-${range.value}`, { * name: `test-${range.value}`, * instanceTemplate: foobar.selfLink, * baseInstanceName: `foobar-${range.value}`, * zone: available.then(available => available.names[range.value]), * targetSize: 1, * })); * } * }); * ``` */ export declare function getZonesOutput(args?: GetZonesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getZones. */ export interface GetZonesOutputArgs { /** * Project from which to list available zones. Defaults to project declared in the provider. */ project?: pulumi.Input; /** * Region from which to list available zones. Defaults to region declared in the provider. */ region?: pulumi.Input; /** * Allows to filter list of zones based on their current status. Status can be either `UP` or `DOWN`. * Defaults to no filtering (all available zones - both `UP` and `DOWN`). */ status?: pulumi.Input; }