Viewing docs for Google Cloud v9.16.0
published on Thursday, Mar 19, 2026 by Pulumi
published on Thursday, Mar 19, 2026 by Pulumi
Viewing docs for Google Cloud v9.16.0
published on Thursday, Mar 19, 2026 by Pulumi
published on Thursday, Mar 19, 2026 by Pulumi
Provides access to available Google Compute zones in a region for a given project. See more about regions and zones in the upstream docs.
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,
}));
}
});
import pulumi
import pulumi_gcp as gcp
available = gcp.compute.get_zones()
foo = []
def create_foo(range_body):
for range in [{"value": i} for i in range(0, range_body)]:
foo.append(gcp.compute.InstanceGroupManager(f"foo-{range['value']}",
name=f"test-{range['value']}",
instance_template=foobar["selfLink"],
base_instance_name=f"foobar-{range['value']}",
zone=available.names[range["value"]],
target_size=1))
(len(available.names)).apply(create_foo)
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
available, err := compute.GetZones(ctx, &compute.GetZonesArgs{}, nil)
if err != nil {
return err
}
var foo []*compute.InstanceGroupManager
for index := 0; index < int(len(available.Names)); index++ {
key0 := index
val0 := index
__res, err := compute.NewInstanceGroupManager(ctx, fmt.Sprintf("foo-%v", key0), &compute.InstanceGroupManagerArgs{
Name: pulumi.Sprintf("test-%v", val0),
InstanceTemplate: foobar.SelfLink,
BaseInstanceName: pulumi.Sprintf("foobar-%v", val0),
Zone: pulumi.String(available.Names[val0]),
TargetSize: pulumi.Int(1),
})
if err != nil {
return err
}
foo = append(foo, __res)
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var available = Gcp.Compute.GetZones.Invoke();
var foo = new List<Gcp.Compute.InstanceGroupManager>();
for (var rangeIndex = 0; rangeIndex < available.Apply(getZonesResult => getZonesResult.Names).Length; rangeIndex++)
{
var range = new { Value = rangeIndex };
foo.Add(new Gcp.Compute.InstanceGroupManager($"foo-{range.Value}", new()
{
Name = $"test-{range.Value}",
InstanceTemplate = foobar.SelfLink,
BaseInstanceName = $"foobar-{range.Value}",
Zone = available.Apply(getZonesResult => getZonesResult.Names)[range.Value],
TargetSize = 1,
}));
}
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetZonesArgs;
import com.pulumi.gcp.compute.InstanceGroupManager;
import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
import com.pulumi.codegen.internal.KeyedValue;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var available = ComputeFunctions.getZones(GetZonesArgs.builder()
.build());
for (var i = 0; i < available.names().length(); i++) {
new InstanceGroupManager("foo-" + i, InstanceGroupManagerArgs.builder()
.name(String.format("test-%s", range.value()))
.instanceTemplate(foobar.selfLink())
.baseInstanceName(String.format("foobar-%s", range.value()))
.zone(available.names()[range.value()])
.targetSize(1)
.build());
}
}
}
Example coming soon!
Using getZones
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getZones(args: GetZonesArgs, opts?: InvokeOptions): Promise<GetZonesResult>
function getZonesOutput(args: GetZonesOutputArgs, opts?: InvokeOptions): Output<GetZonesResult>def get_zones(project: Optional[str] = None,
region: Optional[str] = None,
status: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetZonesResult
def get_zones_output(project: Optional[pulumi.Input[str]] = None,
region: Optional[pulumi.Input[str]] = None,
status: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetZonesResult]func GetZones(ctx *Context, args *GetZonesArgs, opts ...InvokeOption) (*GetZonesResult, error)
func GetZonesOutput(ctx *Context, args *GetZonesOutputArgs, opts ...InvokeOption) GetZonesResultOutput> Note: This function is named GetZones in the Go SDK.
public static class GetZones
{
public static Task<GetZonesResult> InvokeAsync(GetZonesArgs args, InvokeOptions? opts = null)
public static Output<GetZonesResult> Invoke(GetZonesInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetZonesResult> getZones(GetZonesArgs args, InvokeOptions options)
public static Output<GetZonesResult> getZones(GetZonesArgs args, InvokeOptions options)
fn::invoke:
function: gcp:compute/getZones:getZones
arguments:
# arguments dictionaryThe following arguments are supported:
- Project string
- Project from which to list available zones. Defaults to project declared in the provider.
- Region string
- Region from which to list available zones. Defaults to region declared in the provider.
- Status string
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
- Project string
- Project from which to list available zones. Defaults to project declared in the provider.
- Region string
- Region from which to list available zones. Defaults to region declared in the provider.
- Status string
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
- project String
- Project from which to list available zones. Defaults to project declared in the provider.
- region String
- Region from which to list available zones. Defaults to region declared in the provider.
- status String
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
- project string
- Project from which to list available zones. Defaults to project declared in the provider.
- region string
- Region from which to list available zones. Defaults to region declared in the provider.
- status string
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
- project str
- Project from which to list available zones. Defaults to project declared in the provider.
- region str
- Region from which to list available zones. Defaults to region declared in the provider.
- status str
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
- project String
- Project from which to list available zones. Defaults to project declared in the provider.
- region String
- Region from which to list available zones. Defaults to region declared in the provider.
- status String
- Allows to filter list of zones based on their current status. Status can be either
UPorDOWN. Defaults to no filtering (all available zones - bothUPandDOWN).
getZones Result
The following output properties are available:
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-betaTerraform Provider.
Viewing docs for Google Cloud v9.16.0
published on Thursday, Mar 19, 2026 by Pulumi
published on Thursday, Mar 19, 2026 by Pulumi
