File: //snap/google-cloud-cli/current/lib/surface/artifacts/repositories/create.yaml
- release_tracks: [GA]
help_text:
brief: |
Create an Artifact Registry repository.
description: |
Create a new Artifact Registry repository.
This command can fail for the following reasons:
* A repository with the same name already exists.
* The active account does not have permission to create repositories.
* A valid repository format was not provided.
examples: |
To create a docker repository with the name `my-repo` in the default project and location, run the following command:
$ {command} my-repo --repository-format=docker
To create a docker repository `my-repo` with a KMS key
`projects/my-project/locations/us/keyRings/my-kr/cryptoKeys/my-key` in the default project and location, run the following command:
$ {command} my-repo --repository-format=docker --kms-key=projects/my-project/locations/us/keyRings/my-kr/cryptoKeys/my-key
arguments:
resource:
spec: !REF googlecloudsdk.command_lib.artifacts.resources:repository_without_property
help_text: |
The Artifact Registry repository to create.
params:
- arg_name: description
api_field: repository.description
help_text: |
Description for the repository.
- arg_name: kms-key
api_field: repository.kmsKeyName
help_text: |
Name of the encryption key that's used for encrypting the contents of the repository.
- arg_name: allow-snapshot-overwrites
type: bool
default: null
api_field: repository.mavenConfig.allowSnapshotOverwrites
help_text: |
(Maven only) Allow repository users to publish a snapshot that overwrites the same snapshot version in the repository.
- arg_name: version-policy
api_field: repository.mavenConfig.versionPolicy
help_text: |
(Maven only) The package versions that the repository will store.
choices:
- arg_value: NONE
enum_value: VERSION_POLICY_UNSPECIFIED
help_text: (Maven only) The repository doesn't validate the version type.
- arg_value: RELEASE
enum_value: RELEASE
help_text: (Maven only) The repository accepts release versions only.
- arg_value: SNAPSHOT
enum_value: SNAPSHOT
help_text: (Maven only) The repository accepts snapshot versions only.
- arg_name: mode
api_field: repository.mode
default: NONE
help_text: |
Mode is the type of the repository - Standard, Virtual or Remote.
choices:
- arg_value: NONE
enum_value: MODE_UNSPECIFIED
help_text: Repository mode not specified.
- arg_value: STANDARD-REPOSITORY
enum_value: STANDARD_REPOSITORY
help_text: Standard repository mode - should be possible to write/read data to this repo.
- arg_value: VIRTUAL-REPOSITORY
enum_value: VIRTUAL_REPOSITORY
help_text: Virtual repository mode - aggregates data from several upstreams.
- arg_value: REMOTE-REPOSITORY
enum_value: REMOTE_REPOSITORY
help_text: Remote repository mode - fetches data from upstream and caches it.
- arg_name: remote-repo-config-desc
api_field: repository.remoteRepositoryConfig.description
help_text: |
The description for the remote repository config.
- arg_name: immutable-tags
type: bool
api_field: repository.dockerConfig.immutableTags
default: null
help_text: |
(Docker only) Prevent changes to tagged images in the repository. Tags cannot be deleted or moved to a different image digest, and tagged images cannot be deleted.
- arg_name: remote-apt-repo-path
api_field: repository.remoteRepositoryConfig.aptRepository.publicRepository.repositoryPath
help_text: |
(Apt only) Remaining URL path to apt remote repository.
- arg_name: remote-yum-repo-path
api_field: repository.remoteRepositoryConfig.yumRepository.publicRepository.repositoryPath
help_text: |
(Yum only) Remaining URL path to yum remote repository.
- arg_name: disable-remote-validation
type: bool
api_field: repository.remoteRepositoryConfig.disableUpstreamValidation
default: null
help_text: |
Do not make an HTTP request to validate the remote upstream. Not recommended when setting a custom remote upstream unless you are absolutely sure your upstream URI and any auth is valid.
- arg_name: enable-ingestion-attestation
type: bool
api_field: repository.remoteRepositoryConfig.enableIngestionAttestation
default: null
hidden: true
help_text: |
Enable generating attestation with verifiable signature on imported files in remote repositories.
- arg_name: alternative-hostname
api_field: repository.networkConfig.alternativeHostname
hidden: true
default: null
help_text: |
An alternative hostname that a repository can be accessed through.
- arg_name: alternative-hostname-path-prefix
api_field: repository.networkConfig.prefix
hidden: true
default: null
help_text: |
An alternative hostname path prefix that a repository can be accessed through.
- arg_name: alternative-hostname-default
api_field: repository.networkConfig.isDefault
hidden: true
default: null
help_text: |
Whether this is the default repository for the alternative hostname if no repository matches the path prefix.
- group:
mutex: true
params:
- arg_name: allow-vulnerability-scanning
api_field: repository.vulnerabilityScanningConfig.enablementConfig
default: null
action: store_true
help_text: |
Allow vulnerability scanning on the repository.
choices:
- arg_value: true
enum_value: INHERITED
help_text: Vulnerability scanning enablement config set to inherited.
- arg_name: disable-vulnerability-scanning
api_field: repository.vulnerabilityScanningConfig.enablementConfig
default: null
action: store_true
help_text: |
Disable vulnerability scanning on the repository.
choices:
- arg_value: true
enum_value: DISABLED
help_text: Vulnerability scanning enablement config set to disabled.
- group:
mutex: true
hidden: true
params:
- arg_name: allow-sbom-generation
api_field: repository.sbomConfig.enablementConfig
default: null
action: store_true
hidden: true
help_text: |
Allow SBOM generation on the repository.
choices:
- arg_value: true
enum_value: INHERITED
help_text: SBOM generation enablement config set to inherited.
- arg_name: disable-sbom-generation
api_field: repository.sbomConfig.enablementConfig
default: null
action: store_true
hidden: true
help_text: |
Disable SBOM generation on the repository.
choices:
- arg_value: true
enum_value: DISABLED
help_text: SBOM generation enablement config set to disabled.
labels:
api_field: repository.labels
additional_arguments_hook: googlecloudsdk.command_lib.artifacts.util:AddAdditionalArgs
async:
collection: artifactregistry.projects.locations.operations
request:
api_version: v1
collection: artifactregistry.projects.locations.repositories
modify_request_hooks:
- googlecloudsdk.command_lib.artifacts.util:CheckServiceAccountPermission
- googlecloudsdk.command_lib.artifacts.util:AppendRepoDataToRequest
- googlecloudsdk.command_lib.artifacts.util:AppendUpstreamPoliciesToRequest
- googlecloudsdk.command_lib.artifacts.util:SanitizeRemoteRepositoryConfig
- release_tracks: [ALPHA, BETA]
help_text:
brief: |
Create an Artifact Registry repository.
description: |
Create a new Artifact Registry repository.
This command can fail for the following reasons:
* A repository with the same name already exists.
* The active account does not have permission to create repositories.
* A valid repository format was not provided.
examples: |
To create a repository with the name `my-repo` under the current project, run:
$ {command} my-repo
To create repository `my-repo` with a KMS key
`projects/my-project/locations/us/keyRings/my-kr/cryptoKeys/my-key`, run:
$ {command} my-repo --kms-key=projects/my-project/locations/us/keyRings/my-kr/cryptoKeys/my-key
arguments:
resource:
spec: !REF googlecloudsdk.command_lib.artifacts.resources:repository_without_property
help_text: |
The Artifact Registry repository to create.
params:
- arg_name: description
api_field: repository.description
help_text: |
Description for the repository.
- arg_name: kms-key
api_field: repository.kmsKeyName
help_text: |
Name of the encryption key that's used for encrypting the contents of the repository.
- arg_name: allow-snapshot-overwrites
type: bool
default: null
api_field: repository.mavenConfig.allowSnapshotOverwrites
help_text: |
(Maven only) Allow repository users to publish a snapshot that overwrites the same snapshot version in the repository.
- arg_name: version-policy
api_field: repository.mavenConfig.versionPolicy
help_text: |
(Maven only) The package versions that the repository will store.
choices:
- arg_value: NONE
enum_value: VERSION_POLICY_UNSPECIFIED
help_text: (Maven only) The repository doesn't validate the version type.
- arg_value: RELEASE
enum_value: RELEASE
help_text: (Maven only) The repository accepts release versions only.
- arg_value: SNAPSHOT
enum_value: SNAPSHOT
help_text: (Maven only) The repository accepts snapshot versions only.
labels:
api_field: repository.labels
additional_arguments_hook: googlecloudsdk.command_lib.artifacts.util:AddRepositoryFormatArgBeta
async:
collection: artifactregistry.projects.locations.operations
request:
api_version: v1beta2
collection: artifactregistry.projects.locations.repositories
modify_request_hooks:
- googlecloudsdk.command_lib.artifacts.util:CheckServiceAccountPermission
- googlecloudsdk.command_lib.artifacts.util:AppendRepoDataToRequest