Google Cloud v8.26.0 published on Thursday, Apr 10, 2025 by Pulumi
gcp.artifactregistry.getLocations
Explore with Pulumi AI
Get Artifact Registry locations available for a project.
To get more information about Artifact Registry, see:
- API documentation
- How-to Guides
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const available = gcp.artifactregistry.getLocations({});
import pulumi
import pulumi_gcp as gcp
available = gcp.artifactregistry.get_locations()
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/artifactregistry"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := artifactregistry.GetLocations(ctx, &artifactregistry.GetLocationsArgs{}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var available = Gcp.ArtifactRegistry.GetLocations.Invoke();
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.ArtifactregistryFunctions;
import com.pulumi.gcp.artifactregistry.inputs.GetLocationsArgs;
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 = ArtifactregistryFunctions.getLocations(GetLocationsArgs.builder()
            .build());
    }
}
variables:
  available:
    fn::invoke:
      function: gcp:artifactregistry:getLocations
      arguments: {}
Multi-Regional Artifact Registry Deployment
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const available = gcp.artifactregistry.getLocations({});
const repoOne = new gcp.artifactregistry.Repository("repo_one", {
    location: available.then(available => available.locations?.[0]),
    repositoryId: "repo-one",
    format: "apt",
});
const repoTwo = new gcp.artifactregistry.Repository("repo_two", {
    location: available.then(available => available.locations?.[1]),
    repositoryId: "repo-two",
    format: "apt",
});
import pulumi
import pulumi_gcp as gcp
available = gcp.artifactregistry.get_locations()
repo_one = gcp.artifactregistry.Repository("repo_one",
    location=available.locations[0],
    repository_id="repo-one",
    format="apt")
repo_two = gcp.artifactregistry.Repository("repo_two",
    location=available.locations[1],
    repository_id="repo-two",
    format="apt")
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/artifactregistry"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := artifactregistry.GetLocations(ctx, &artifactregistry.GetLocationsArgs{}, nil)
		if err != nil {
			return err
		}
		_, err = artifactregistry.NewRepository(ctx, "repo_one", &artifactregistry.RepositoryArgs{
			Location:     pulumi.String(available.Locations[0]),
			RepositoryId: pulumi.String("repo-one"),
			Format:       pulumi.String("apt"),
		})
		if err != nil {
			return err
		}
		_, err = artifactregistry.NewRepository(ctx, "repo_two", &artifactregistry.RepositoryArgs{
			Location:     pulumi.String(available.Locations[1]),
			RepositoryId: pulumi.String("repo-two"),
			Format:       pulumi.String("apt"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var available = Gcp.ArtifactRegistry.GetLocations.Invoke();
    var repoOne = new Gcp.ArtifactRegistry.Repository("repo_one", new()
    {
        Location = available.Apply(getLocationsResult => getLocationsResult.Locations[0]),
        RepositoryId = "repo-one",
        Format = "apt",
    });
    var repoTwo = new Gcp.ArtifactRegistry.Repository("repo_two", new()
    {
        Location = available.Apply(getLocationsResult => getLocationsResult.Locations[1]),
        RepositoryId = "repo-two",
        Format = "apt",
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.ArtifactregistryFunctions;
import com.pulumi.gcp.artifactregistry.inputs.GetLocationsArgs;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
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 = ArtifactregistryFunctions.getLocations(GetLocationsArgs.builder()
            .build());
        var repoOne = new Repository("repoOne", RepositoryArgs.builder()
            .location(available.locations()[0])
            .repositoryId("repo-one")
            .format("apt")
            .build());
        var repoTwo = new Repository("repoTwo", RepositoryArgs.builder()
            .location(available.locations()[1])
            .repositoryId("repo-two")
            .format("apt")
            .build());
    }
}
resources:
  repoOne:
    type: gcp:artifactregistry:Repository
    name: repo_one
    properties:
      location: ${available.locations[0]}
      repositoryId: repo-one
      format: apt
  repoTwo:
    type: gcp:artifactregistry:Repository
    name: repo_two
    properties:
      location: ${available.locations[1]}
      repositoryId: repo-two
      format: apt
variables:
  available:
    fn::invoke:
      function: gcp:artifactregistry:getLocations
      arguments: {}
Using getLocations
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 getLocations(args: GetLocationsArgs, opts?: InvokeOptions): Promise<GetLocationsResult>
function getLocationsOutput(args: GetLocationsOutputArgs, opts?: InvokeOptions): Output<GetLocationsResult>def get_locations(project: Optional[str] = None,
                  opts: Optional[InvokeOptions] = None) -> GetLocationsResult
def get_locations_output(project: Optional[pulumi.Input[str]] = None,
                  opts: Optional[InvokeOptions] = None) -> Output[GetLocationsResult]func GetLocations(ctx *Context, args *GetLocationsArgs, opts ...InvokeOption) (*GetLocationsResult, error)
func GetLocationsOutput(ctx *Context, args *GetLocationsOutputArgs, opts ...InvokeOption) GetLocationsResultOutput> Note: This function is named GetLocations in the Go SDK.
public static class GetLocations 
{
    public static Task<GetLocationsResult> InvokeAsync(GetLocationsArgs args, InvokeOptions? opts = null)
    public static Output<GetLocationsResult> Invoke(GetLocationsInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetLocationsResult> getLocations(GetLocationsArgs args, InvokeOptions options)
public static Output<GetLocationsResult> getLocations(GetLocationsArgs args, InvokeOptions options)
fn::invoke:
  function: gcp:artifactregistry/getLocations:getLocations
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Project string
- The project to list versions for. If it is not provided, the provider project is used.
- Project string
- The project to list versions for. If it is not provided, the provider project is used.
- project String
- The project to list versions for. If it is not provided, the provider project is used.
- project string
- The project to list versions for. If it is not provided, the provider project is used.
- project str
- The project to list versions for. If it is not provided, the provider project is used.
- project String
- The project to list versions for. If it is not provided, the provider project is used.
getLocations 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.