project:
  name: project
  collection: artifactregistry.projects
  attributes:
  - &project
    parameter_name: projectsId
    attribute_name: project
    help: |
      Cloud project for the {resource}.
    property: core/project

location:
  name: location
  collection: artifactregistry.projects.locations
  attributes:
  - *project
  - &location
    parameter_name: locationsId
    attribute_name: location
    help: |
      Location of the {resource}. Overrides the default artifacts/location property value
      for this command invocation. To configure the default location, use the command:
      gcloud config set artifacts/location.
    property: artifacts/location

repository:
  name: repository
  collection: artifactregistry.projects.locations.repositories
  request_id_field: repository.name
  attributes:
  - *project
  - *location
  - &repository
    parameter_name: repositoriesId
    attribute_name: repository
    help: |
      The repository associated with the {resource}. Overrides the default artifacts/repository property value
      for this command invocation. To configure the default repository, use the command:
      gcloud config set artifacts/repository.
    property: artifacts/repository

repository_without_property:
  name: repository
  collection: artifactregistry.projects.locations.repositories
  request_id_field: repository.name
  attributes:
  - *project
  - *location
  - &repository_without_property
    parameter_name: repositoriesId
    attribute_name: repository
    help: |
      The repository associated with the {resource}.

mavenArtifact:
  name: mavenArtifact
  collection: artifactregistry.projects.locations.repositories.mavenArtifacts
  attributes:
  - *project
  - *location
  - *repository
  - &mavenArtifact
    parameter_name: mavenArtifactsId
    attribute_name: mavenArtifact
    help: |
      The maven artifact associated with the {resource}.

package:
  name: package
  collection: artifactregistry.projects.locations.repositories.packages
  attributes:
  - *project
  - *location
  - *repository
  - &package
    parameter_name: packagesId
    attribute_name: package
    help: |
      The package associated with the {resource}.

version:
  name: version
  collection: artifactregistry.projects.locations.repositories.packages.versions
  attributes:
  - *project
  - *location
  - *repository
  - *package
  - &version
    parameter_name: versionsId
    attribute_name: version
    help: |
      The version associated with the {resource}.

tag:
  name: tag
  collection: artifactregistry.projects.locations.repositories.packages.tags
  attributes:
  - *project
  - *location
  - *repository
  - *package
  - &tag
    parameter_name: tagsId
    attribute_name: tag
    help: |
      The tag associated with the {resource}.

operation:
  name: operation
  collection: artifactregistry.projects.locations.operations
  attributes:
  - *project
  - *location
  - &operation
    parameter_name: operationsId
    attribute_name: operation
    help: |
      An Artifact Registry operation.

file:
  name: file
  collection: artifactregistry.projects.locations.repositories.files
  attributes:
  - *project
  - *location
  - *repository
  - &file
    parameter_name: filesId
    attribute_name: file
    help: |
      The file associated with the {resource}.

rule:
  name: rule
  collection: artifactregistry.projects.locations.repositories.rules
  attributes:
  - *project
  - *location
  - *repository
  - &rule
    parameter_name: rulesId
    attribute_name: rule
    help: |
      The rule associated with the {resource}.

attachment:
  name: attachment
  collection: artifactregistry.projects.locations.repositories.attachments
  attributes:
  - *project
  - *location
  - *repository
  - &attachment
    parameter_name: attachmentsId
    attribute_name: attachment
    help: |
      Attachment associated with the {resource}.
