RepositoryArgs

data class RepositoryArgs(val cleanupPolicies: Output<List<RepositoryCleanupPolicyArgs>>? = null, val cleanupPolicyDryRun: Output<Boolean>? = null, val description: Output<String>? = null, val dockerConfig: Output<RepositoryDockerConfigArgs>? = null, val format: Output<String>? = null, val kmsKeyName: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val location: Output<String>? = null, val mavenConfig: Output<RepositoryMavenConfigArgs>? = null, val mode: Output<String>? = null, val project: Output<String>? = null, val remoteRepositoryConfig: Output<RepositoryRemoteRepositoryConfigArgs>? = null, val repositoryId: Output<String>? = null, val virtualRepositoryConfig: Output<RepositoryVirtualRepositoryConfigArgs>? = null) : ConvertibleToJava<RepositoryArgs>

A repository for storing artifacts To get more information about Repository, see:

Example Usage

Artifact Registry Repository Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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) {
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.description("example docker repository")
.format("DOCKER")
.location("us-central1")
.repositoryId("my-repository")
.build());
}
}

Artifact Registry Repository Docker

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryDockerConfigArgs;
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) {
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.description("example docker repository")
.dockerConfig(RepositoryDockerConfigArgs.builder()
.immutableTags(true)
.build())
.format("DOCKER")
.location("us-central1")
.repositoryId("my-repository")
.build());
}
}

Artifact Registry Repository Cmek

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.kms.CryptoKeyIAMMember;
import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
import com.pulumi.resources.CustomResourceOptions;
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 project = OrganizationsFunctions.getProject();
var cryptoKey = new CryptoKeyIAMMember("cryptoKey", CryptoKeyIAMMemberArgs.builder()
.cryptoKeyId("kms-key")
.role("roles/cloudkms.cryptoKeyEncrypterDecrypter")
.member(String.format("serviceAccount:service-%s@gcp-sa-artifactregistry.iam.gserviceaccount.com", project.applyValue(getProjectResult -> getProjectResult.number())))
.build());
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.location("us-central1")
.repositoryId("my-repository")
.description("example docker repository with cmek")
.format("DOCKER")
.kmsKeyName("kms-key")
.build(), CustomResourceOptions.builder()
.dependsOn(cryptoKey)
.build());
}
}

Artifact Registry Repository Virtual

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryVirtualRepositoryConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
var my_repo_upstream = new Repository("my-repo-upstream", RepositoryArgs.builder()
.location("us-central1")
.repositoryId("my-repository-upstream")
.description("example docker repository (upstream source)")
.format("DOCKER")
.build());
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.location("us-central1")
.repositoryId("my-repository")
.description("example virtual docker repository")
.format("DOCKER")
.mode("VIRTUAL_REPOSITORY")
.virtualRepositoryConfig(RepositoryVirtualRepositoryConfigArgs.builder()
.upstreamPolicies(RepositoryVirtualRepositoryConfigUpstreamPolicyArgs.builder()
.id("my-repository-upstream")
.repository(my_repo_upstream.id())
.priority(1)
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn()
.build());
}
}

Artifact Registry Repository Remote

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryRemoteRepositoryConfigArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryRemoteRepositoryConfigDockerRepositoryArgs;
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) {
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.description("example remote docker repository")
.format("DOCKER")
.location("us-central1")
.mode("REMOTE_REPOSITORY")
.remoteRepositoryConfig(RepositoryRemoteRepositoryConfigArgs.builder()
.description("docker hub")
.dockerRepository(RepositoryRemoteRepositoryConfigDockerRepositoryArgs.builder()
.publicRepository("DOCKER_HUB")
.build())
.build())
.repositoryId("my-repository")
.build());
}
}

Artifact Registry Repository Cleanup

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.artifactregistry.Repository;
import com.pulumi.gcp.artifactregistry.RepositoryArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryCleanupPolicyArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryCleanupPolicyConditionArgs;
import com.pulumi.gcp.artifactregistry.inputs.RepositoryCleanupPolicyMostRecentVersionsArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
var my_repo = new Repository("my-repo", RepositoryArgs.builder()
.location("us-central1")
.repositoryId("my-repository")
.description("example docker repository with cleanup policies")
.format("DOCKER")
.cleanupPolicyDryRun(false)
.cleanupPolicies(
RepositoryCleanupPolicyArgs.builder()
.id("delete-prerelease")
.action("DELETE")
.condition(RepositoryCleanupPolicyConditionArgs.builder()
.tagState("TAGGED")
.tagPrefixes(
"alpha",
"v0")
.olderThan("2592000s")
.build())
.build(),
RepositoryCleanupPolicyArgs.builder()
.id("keep-tagged-release")
.action("KEEP")
.condition(RepositoryCleanupPolicyConditionArgs.builder()
.tagState("TAGGED")
.tagPrefixes("release")
.packageNamePrefixes(
"webapp",
"mobile")
.build())
.build(),
RepositoryCleanupPolicyArgs.builder()
.id("keep-minimum-versions")
.action("KEEP")
.mostRecentVersions(RepositoryCleanupPolicyMostRecentVersionsArgs.builder()
.packageNamePrefixes(
"webapp",
"mobile",
"sandbox")
.keepCount(5)
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Import

Repository can be imported using any of these accepted formats

$ pulumi import gcp:artifactregistry/repository:Repository default projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}
$ pulumi import gcp:artifactregistry/repository:Repository default {{project}}/{{location}}/{{repository_id}}
$ pulumi import gcp:artifactregistry/repository:Repository default {{location}}/{{repository_id}}
$ pulumi import gcp:artifactregistry/repository:Repository default {{repository_id}}

Constructors

Link copied to clipboard
constructor(cleanupPolicies: Output<List<RepositoryCleanupPolicyArgs>>? = null, cleanupPolicyDryRun: Output<Boolean>? = null, description: Output<String>? = null, dockerConfig: Output<RepositoryDockerConfigArgs>? = null, format: Output<String>? = null, kmsKeyName: Output<String>? = null, labels: Output<Map<String, String>>? = null, location: Output<String>? = null, mavenConfig: Output<RepositoryMavenConfigArgs>? = null, mode: Output<String>? = null, project: Output<String>? = null, remoteRepositoryConfig: Output<RepositoryRemoteRepositoryConfigArgs>? = null, repositoryId: Output<String>? = null, virtualRepositoryConfig: Output<RepositoryVirtualRepositoryConfigArgs>? = null)

Properties

Link copied to clipboard

Cleanup policies for this repository. Cleanup policies indicate when certain package versions can be automatically deleted. Map keys are policy IDs supplied by users during policy creation. They must unique within a repository and be under 128 characters in length.

Link copied to clipboard
val cleanupPolicyDryRun: Output<Boolean>? = null

If true, the cleanup pipeline is prevented from deleting versions in this repository.

Link copied to clipboard
val description: Output<String>? = null

The user-provided description of the repository.

Link copied to clipboard

Docker repository config contains repository level configuration for the repositories of docker type. Structure is documented below.

Link copied to clipboard
val format: Output<String>? = null

The format of packages that are stored in the repository. Supported formats can be found here. You can only create alpha formats if you are a member of the alpha user group.

Link copied to clipboard
val kmsKeyName: Output<String>? = null

The Cloud KMS resource name of the customer managed encryption key that’s used to encrypt the contents of the Repository. Has the form: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. This value may not be changed after the Repository has been created.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

Labels with user-defined metadata. This field may contain up to 64 entries. Label keys and values may be no longer than 63 characters. Label keys must begin with a lowercase letter and may only contain lowercase letters, numeric characters, underscores, and dashes.

Link copied to clipboard
val location: Output<String>? = null

The name of the location this repository is located in.

Link copied to clipboard

MavenRepositoryConfig is maven related repository details. Provides additional configuration details for repositories of the maven format type. Structure is documented below.

Link copied to clipboard
val mode: Output<String>? = null

The mode configures the repository to serve artifacts from different sources. Default value is STANDARD_REPOSITORY. Possible values are: STANDARD_REPOSITORY, VIRTUAL_REPOSITORY, REMOTE_REPOSITORY.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard

Configuration specific for a Remote Repository. Structure is documented below.

Link copied to clipboard
val repositoryId: Output<String>? = null

The last part of the repository name, for example: "repo1"

Link copied to clipboard

Configuration specific for a Virtual Repository. Structure is documented below.

Functions

Link copied to clipboard
open override fun toJava(): RepositoryArgs