geField('DockerRepository', 6)
  enableIngestionAttestation = _messages.BooleanField(7)
  goRepository = _messages.MessageField('GoRepository', 8)
  mavenRepository = _messages.MessageField('MavenRepository', 9)
  npmRepository = _messages.MessageField('NpmRepository', 10)
  pythonRepository = _messages.MessageField('PythonRepository', 11)
  remoteType = _messages.EnumField('RemoteTypeValueValuesEnum', 12)
  serviceDirectoryConfig = _messages.MessageField('ServiceDirectoryConfig', 13)
  upstreamCredentials = _messages.MessageField('UpstreamCredentials', 14)
  yumRepository = _messages.MessageField('YumRepository', 15)


class Repository(_messages.Message):
  r"""A Repository for storing artifacts with a specific format.

  Enums:
    FormatValueValuesEnum: Optional. The format of packages that are stored in
      the repository.
    ModeValueValuesEnum: Optional. The mode of the repository.

  Messages:
    CleanupPoliciesValue: Optional. 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.
    LabelsValue: 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.

  Fields:
    cleanupPolicies: Optional. 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.
    cleanupPolicyDryRun: Optional. If true, the cleanup pipeline is prevented
      from deleting versions in this repository.
    createTime: Output only. The time when the repository was created.
    description: The user-provided description of the repository.
    disallowUnspecifiedMode: Optional. If this is true, an unspecified repo
      type will be treated as error rather than defaulting to standard.
    dockerConfig: Docker repository config contains repository level
      configuration for the repositories of docker type.
    format: Optional. The format of packages that are stored in the
      repository.
    kmsKeyName: 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.
    labels: 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.
    mavenConfig: Maven repository config contains repository level
      configuration for the repositories of maven type.
    mode: Optional. The mode of the repository.
    name: The name of the repository, for example: `projects/p1/locations/us-
      central1/repositories/repo1`. For each location in a project, repository
      names must be unique.
    networkConfig: Optional. Config for the routing/network configuration of
      the repository.
    platformLogsConfig: Optional. Configuration for platform logs.
    registryUri: Output only. The repository endpoint, for example: `us-
      docker.pkg.dev/my-proj/my-repo`.
    remoteRepositoryConfig: Configuration specific for a Remote Repository.
    satisfiesPzi: Output only. Whether or not this repository satisfies PZI.
    satisfiesPzs: Output only. Whether or not this repository satisfies PZS.
    sbomConfig: Optional. Config and state for sbom generation for resources
      within this Repository.
    sizeBytes: Output only. The size, in bytes, of all artifact storage in
      this repository. Repositories that are generally available or in public
      preview use this to calculate storage costs.
    updateTime: Output only. The time when the repository was last updated.
    virtualRepositoryConfig: Configuration specific for a Virtual Repository.
    vulnerabilityScanningConfig: Optional. Config and state for vulnerability
      scanning of resources within this Repository.
  """

  class FormatValueValuesEnum(_messages.Enum):
    r"""Optional. The format of packages that are stored in the repository.

    Values:
      FORMAT_UNSPECIFIED: Unspecified package format.
      DOCKER: Docker package format.
      MAVEN: Maven package format.
      NPM: NPM package format.
      APT: APT package format.
      YUM: YUM package format.
      GOOGET: GooGet package format.
      PYTHON: Python package format.
      KFP: Kubeflow Pipelines package format.
      GO: Go package format.
      GENERIC: Generic package format.
      RUBY: Ruby package format.
      CONDA: Conda package format.
    """
    FORMAT_UNSPECIFIED = 0
    DOCKER = 1
    MAVEN = 2
    NPM = 3
    APT = 4
    YUM = 5
    GOOGET = 6
    PYTHON = 7
    KFP = 8
    GO = 9
    GENERIC = 10
    RUBY = 11
    CONDA = 12

  class ModeValueValuesEnum(_messages.Enum):
    r"""Optional. The mode of the repository.

    Values:
      MODE_UNSPECIFIED: Unspecified mode.
      STANDARD_REPOSITORY: A standard repository storing artifacts.
      VIRTUAL_REPOSITORY: A virtual repository to serve artifacts from one or
        more sources.
      REMOTE_REPOSITORY: A remote repository to serve artifacts from a remote
        source.
      AOSS_REPOSITORY: An AOSS repository provides artifacts from AOSS
        upstreams.
      ASSURED_OSS_REPOSITORY: Replacement of AOSS_REPOSITORY.
    """
    MODE_UNSPECIFIED = 0
    STANDARD_REPOSITORY = 1
    VIRTUAL_REPOSITORY = 2
    REMOTE_REPOSITORY = 3
    AOSS_REPOSITORY = 4
    ASSURED_OSS_REPOSITORY = 5

  @encoding.MapUnrecognizedFields('additionalProperties')
  class CleanupPoliciesValue(_messages.Message):
    r"""Optional. 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.

    Messages:
      AdditionalProperty: An additional property for a CleanupPoliciesValue
        object.

    Fields:
      additionalProperties: Additional properties of type CleanupPoliciesValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a CleanupPoliciesValue object.

      Fields:
        key: Name of the additional property.
        value: A CleanupPolicy attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('CleanupPolicy', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""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.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  cleanupPolicies = _messages.MessageField('CleanupPoliciesValue', 1)
  cleanupPolicyDryRun = _messages.BooleanField(2)
  createTime = _messages.StringField(3)
  description = _messages.StringField(4)
  disallowUnspecifiedMode = _messages.BooleanField(5)
  dockerConfig = _messages.MessageField('DockerRepositoryConfig', 6)
  format = _messages.EnumField('FormatValueValuesEnum', 7)
  kmsKeyName = _messages.StringField(8)
  labels = _messages.MessageField('LabelsValue', 9)
  mavenConfig = _messages.MessageField('MavenRepositoryConfig', 10)
  mode = _messages.EnumField('ModeValueValuesEnum', 11)
  name = _messages.StringField(12)
  networkConfig = _messages.MessageField('NetworkConfig', 13)
  platformLogsConfig = _messages.MessageField('PlatformLogsConfig', 14)
  registryUri = _messages.StringField(15)
  remoteRepositoryConfig = _messages.MessageField('RemoteRepositoryConfig', 16)
  satisfiesPzi = _messages.BooleanField(17)
  satisfiesPzs = _messages.BooleanField(18)
  sbomConfig = _messages.MessageField('SbomConfig', 19)
  sizeBytes = _messages.IntegerField(20)
  updateTime = _messages.StringField(21)
  virtualRepositoryConfig = _messages.MessageField('VirtualRepositoryConfig', 22)
  vulnerabilityScanningConfig = _messages.MessageField('VulnerabilityScanningConfig', 23)


class SbomConfig(_messages.Message):
  r"""Config for whether to generate SBOMs for resources in this repository,
  as well as output fields describing current state.

  Enums:
    EnablementConfigValueValuesEnum: Optional. Config for whether this
      repository has sbom generation disabled.
    EnablementStateValueValuesEnum: Output only. State of feature enablement,
      combining repository enablement config and API enablement state.

  Fields:
    enablementConfig: Optional. Config for whether this repository has sbom
      generation disabled.
    enablementState: Output only. State of feature enablement, combining
      repository enablement config and API enablement state.
    enablementStateReason: Output only. Reason for the repository state and
      potential actions to activate it.
    gcsBucket: Optional. The GCS bucket to put the generated SBOMs into.
    lastEnableTime: Output only. The last time this repository config was set
      to INHERITED.
  """

  class EnablementConfigValueValuesEnum(_messages.Enum):
    r"""Optional. Config for whether this repository has sbom generation
    disabled.

    Values:
      ENABLEMENT_CONFIG_UNSPECIFIED: Unspecified config was not set. This will
        be interpreted as DISABLED.
      INHERITED: Inherited indicates the repository is allowed for SBOM
        generation, however the actual state will be inherited from the API
        enablement state.
      DISABLED: Disabled indicates the repository will not generate SBOMs.
    """
    ENABLEMENT_CONFIG_UNSPECIFIED = 0
    INHERITED = 1
    DISABLED = 2

  class EnablementStateValueValuesEnum(_messages.Enum):
    r"""Output only. State of feature enablement, combining repository
    enablement config and API enablement state.

    Values:
      ENABLEMENT_STATE_UNSPECIFIED: Enablement state is unclear.
      SBOM_UNSUPPORTED: Repository does not support SBOM generation.
      SBOM_DISABLED: SBOM generation is disabled for this repository.
      SBOM_ACTIVE: SBOM generation is active for this feature.
    """
    ENABLEMENT_STATE_UNSPECIFIED = 0
    SBOM_UNSUPPORTED = 1
    SBOM_DISABLED = 2
    SBOM_ACTIVE = 3

  enablementConfig = _messages.EnumField('EnablementConfigValueValuesEnum', 1)
  enablementState = _messages.EnumField('EnablementStateValueValuesEnum', 2)
  enablementStateReason = _messages.StringField(3)
  gcsBucket = _messages.StringField(4)
  lastEnableTime = _messages.StringField(5)


class ServiceDirectoryConfig(_messages.Message):
  r"""Config for Service Directory Integration.

  Fields:
    service: Required. Service Directory resource name (versionless), for ex:
      projects/my-proj/locations/us/namespaces/network/services/my-service
  """

  service = _messages.StringField(1)


class SetIamPolicyRequest(_messages.Message):
  r"""Request message for `SetIamPolicy` method.

  Fields:
    policy: REQUIRED: The complete policy to be applied to the `resource`. The
      size of the policy is limited to a few 10s of KB. An empty policy is a
      valid policy but certain Google Cloud services (such as Projects) might
      reject them.
  """

  policy = _messages.MessageField('Policy', 1)


class SkippedVersionError(_messages.Message):
  r"""Represents a version that was skipped during the repo copy due to a non-
  transient error that should not fail the entire copy operation. For example,
  if a version is missing an underlying file.

  Fields:
    error: Specifies the error that occurred during the version copy.
    version: Specifies the resource name of the version that was skipped.
      Format: projects/{project}/locations/{location}/repositories/{repository
      }/packages/{package}/versions/{version}
  """

  error = _messages.MessageField('Status', 1)
  version = _messages.StringField(2)


class StandardQueryParameters(_messages.Message):
  r"""Query parameters accepted by all methods.

  Enums:
    FXgafvValueValuesEnum: V1 error format.
    AltValueValuesEnum: Data format for response.

  Fields:
    f__xgafv: V1 error format.
    access_token: OAuth access token.
    alt: Data format for response.
    callback: JSONP
    fields: Selector specifying which fields to include in a partial response.
    key: API key. Your API key identifies your project and provides you with
      API access, quota, and reports. Required unless you provide an OAuth 2.0
      token.
    oauth_token: OAuth 2.0 token for the current user.
    prettyPrint: Returns response with indentations and line breaks.
    quotaUser: Available to use for quota purposes for server-side
      applications. Can be any arbitrary string assigned to a user, but should
      not exceed 40 characters.
    trace: A tracing token of the form "token:<tokenid>" to include in api
      requests.
    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
  """

  class AltValueValuesEnum(_messages.Enum):
    r"""Data format for response.

    Values:
      json: Responses with Content-Type of application/json
      media: Media download with context-dependent Content-Type
      proto: Responses with Content-Type of application/x-protobuf
    """
    json = 0
    media = 1
    proto = 2

  class FXgafvValueValuesEnum(_messages.Enum):
    r"""V1 error format.

    Values:
      _1: v1 error format
      _2: v2 error format
    """
    _1 = 0
    _2 = 1

  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
  access_token = _messages.StringField(2)
  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
  callback = _messages.StringField(4)
  fields = _messages.StringField(5)
  key = _messages.StringField(6)
  oauth_token = _messages.StringField(7)
  prettyPrint = _messages.BooleanField(8, default=True)
  quotaUser = _messages.StringField(9)
  trace = _messages.StringField(10)
  uploadType = _messages.StringField(11)
  upload_protocol = _messages.StringField(12)


class Status(_messages.Message):
  r"""The `Status` type defines a logical error model that is suitable for
  different programming environments, including REST APIs and RPC APIs. It is
  used by [gRPC](https://github.com/grpc). Each `Status` message contains
  three pieces of data: error code, error message, and error details. You can
  find out more about this error model and how to work with it in the [API
  Design Guide](https://cloud.google.com/apis/design/errors).

  Messages:
    DetailsValueListEntry: A DetailsValueListEntry object.

  Fields:
    code: The status code, which should be an enum value of google.rpc.Code.
    details: A list of messages that carry the error details. There is a
      common set of message types for APIs to use.
    message: A developer-facing error message, which should be in English. Any
      user-facing error message should be localized and sent in the
      google.rpc.Status.details field, or localized by the client.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DetailsValueListEntry(_messages.Message):
    r"""A DetailsValueListEntry object.

    Messages:
      AdditionalProperty: An additional property for a DetailsValueListEntry
        object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DetailsValueListEntry object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
  message = _messages.StringField(3)


class Tag(_messages.Message):
  r"""Tags point to a version and represent an alternative name that can be
  used to access the version.

  Fields:
    name: The name of the tag, for example: "projects/p1/locations/us-
      central1/repositories/repo1/packages/pkg1/tags/tag1". If the package
      part contains slashes, the slashes are escaped. The tag part can only
      have characters in [a-zA-Z0-9\-._~:@], anything else must be URL
      encoded.
    version: The name of the version the tag refers to, for example:
      `projects/p1/locations/us-
      central1/repositories/repo1/packages/pkg1/versions/sha256:5243811` If
      the package or version ID parts contain slashes, the slashes are
      escaped.
  """

  name = _messages.StringField(1)
  version = _messages.StringField(2)


class TestIamPermissionsRequest(_messages.Message):
  r"""Request message for `TestIamPermissions` method.

  Fields:
    permissions: The set of permissions to check for the `resource`.
      Permissions with wildcards (such as `*` or `storage.*`) are not allowed.
      For more information see [IAM
      Overview](https://cloud.google.com/iam/docs/overview#permissions).
  """

  permissions = _messages.StringField(1, repeated=True)


class TestIamPermissionsResponse(_messages.Message):
  r"""Response message for `TestIamPermissions` method.

  Fields:
    permissions: A subset of `TestPermissionsRequest.permissions` that the
      caller is allowed.
  """

  permissions = _messages.StringField(1, repeated=True)


class UploadAptArtifactMediaResponse(_messages.Message):
  r"""The response to upload an artifact.

  Fields:
    operation: Operation to be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadAptArtifactMetadata(_messages.Message):
  r"""The operation metadata for uploading artifacts."""


class UploadAptArtifactRequest(_messages.Message):
  r"""The request to upload an artifact."""


class UploadAptArtifactResponse(_messages.Message):
  r"""The response of the completed artifact upload operation. This response
  is contained in the Operation and available to users.

  Fields:
    aptArtifacts: The Apt artifacts updated.
  """

  aptArtifacts = _messages.MessageField('AptArtifact', 1, repeated=True)


class UploadFileMediaResponse(_messages.Message):
  r"""The response to upload a generic artifact.

  Fields:
    operation: Operation that will be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadFileRequest(_messages.Message):
  r"""The request to upload a file.

  Fields:
    fileId: Optional. The ID of the file. If left empty will default to sha256
      digest of the content uploaded.
  """

  fileId = _messages.StringField(1)


class UploadGenericArtifactMediaResponse(_messages.Message):
  r"""The response to upload a generic artifact.

  Fields:
    operation: Operation that will be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadGenericArtifactMetadata(_messages.Message):
  r"""The operation metadata for uploading generic artifacts."""


class UploadGenericArtifactRequest(_messages.Message):
  r"""The request to upload a generic artifact. The created GenericArtifact
  will have the resource name {parent}/genericArtifacts/package_id:version_id.
  The created file will have the resource name
  {parent}/files/package_id:version_id:filename.

  Fields:
    filename: The name of the file of the generic artifact to be uploaded.
      E.g. `example-file.zip` The filename is limited to letters, numbers, and
      url safe characters, i.e. [a-zA-Z0-9-_.~@].
    packageId: The ID of the package of the generic artifact. If the package
      does not exist, a new package will be created. The `package_id` should
      start and end with a letter or number, only contain letters, numbers,
      hyphens, underscores, and periods, and not exceed 256 characters.
    versionId: The ID of the version of the generic artifact. If the version
      does not exist, a new version will be created. The version_id must start
      and end with a letter or number, can only contain lowercase letters,
      numbers, the following characters [-.+~:], i.e.[a-z0-9-.+~:] and cannot
      exceed a total of 128 characters. Creating a version called `latest` is
      not allowed.
  """

  filename = _messages.StringField(1)
  packageId = _messages.StringField(2)
  versionId = _messages.StringField(3)


class UploadGoModuleMediaResponse(_messages.Message):
  r"""The response to upload a Go module.

  Fields:
    operation: Operation to be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadGoModuleMetadata(_messages.Message):
  r"""The operation metadata for uploading go modules."""


class UploadGoModuleRequest(_messages.Message):
  r"""The request to upload a Go module."""


class UploadGoogetArtifactMediaResponse(_messages.Message):
  r"""The response to upload an artifact.

  Fields:
    operation: Operation to be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadGoogetArtifactMetadata(_messages.Message):
  r"""The operation metadata for uploading artifacts."""


class UploadGoogetArtifactRequest(_messages.Message):
  r"""The request to upload an artifact."""


class UploadGoogetArtifactResponse(_messages.Message):
  r"""The response of the completed artifact upload operation. This response
  is contained in the Operation and available to users.

  Fields:
    googetArtifacts: The GooGet artifacts updated.
  """

  googetArtifacts = _messages.MessageField('GoogetArtifact', 1, repeated=True)


class UploadKfpArtifactMediaResponse(_messages.Message):
  r"""The response to upload an artifact.

  Fields:
    operation: Operation that will be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadKfpArtifactMetadata(_messages.Message):
  r"""The operation metadata for uploading KFP artifacts."""


class UploadKfpArtifactRequest(_messages.Message):
  r"""The request to upload an artifact.

  Fields:
    description: Description of the package version.
    tags: Tags to be created with the version.
  """

  description = _messages.StringField(1)
  tags = _messages.StringField(2, repeated=True)


class UploadYumArtifactMediaResponse(_messages.Message):
  r"""The response to upload an artifact.

  Fields:
    operation: Operation to be returned to the user.
  """

  operation = _messages.MessageField('Operation', 1)


class UploadYumArtifactMetadata(_messages.Message):
  r"""The operation metadata for uploading artifacts."""


class UploadYumArtifactRequest(_messages.Message):
  r"""The request to upload an artifact."""


class UploadYumArtifactResponse(_messages.Message):
  r"""The response of the completed artifact upload operation. This response
  is contained in the Operation and available to users.

  Fields:
    yumArtifacts: The Yum artifacts updated.
  """

  yumArtifacts = _messages.MessageField('YumArtifact', 1, repeated=True)


class UpstreamCredentials(_messages.Message):
  r"""The credentials to access the remote repository.

  Fields:
    usernamePasswordCredentials: Use username and password to access the
      remote repository.
  """

  usernamePasswordCredentials = _messages.MessageField('UsernamePasswordCredentials', 1)


class UpstreamPolicy(_messages.Message):
  r"""Artifact policy configuration for the repository contents.

  Fields:
    id: The user-provided ID of the upstream policy.
    priority: Entries with a greater priority value take precedence in the
      pull order.
    repository: A reference to the repository resource, for example:
      `projects/p1/locations/us-central1/repositories/repo1`.
  """

  id = _messages.StringField(1)
  priority = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  repository = _messages.StringField(3)


class UsernamePasswordCredentials(_messages.Message):
  r"""Username and password credentials.

  Fields:
    passwordSecretVersion: The Secret Manager key version that holds the
      password to access the remote repository. Must be in the format of
      `projects/{project}/secrets/{secret}/versions/{version}`.
    username: The username to access the remote repository.
  """

  passwordSecretVersion = _messages.StringField(1)
  username = _messages.StringField(2)


class VPCSCConfig(_messages.Message):
  r"""The Artifact Registry VPC SC config that apply to a Project.

  Enums:
    VpcscPolicyValueValuesEnum: The project per location VPC SC policy that
      defines the VPC SC behavior for the Remote Repository (Allow/Deny).

  Fields:
    name: The name of the project's VPC SC Config. Always of the form:
      projects/{projectID}/locations/{location}/vpcscConfig In update request:
      never set In response: always set
    vpcscPolicy: The project per location VPC SC policy that defines the VPC
      SC behavior for the Remote Repository (Allow/Deny).
  """

  class VpcscPolicyValueValuesEnum(_messages.Enum):
    r"""The project per location VPC SC policy that defines the VPC SC
    behavior for the Remote Repository (Allow/Deny).

    Values:
      VPCSC_POLICY_UNSPECIFIED: VPCSC_POLICY_UNSPECIFIED - the VPS SC policy
        is not defined. When VPS SC policy is not defined - the Service will
        use the default behavior (VPCSC_DENY).
      DENY: VPCSC_DENY - repository will block the requests to the Upstreams
        for the Remote Repositories if the resource is in the perimeter.
      ALLOW: VPCSC_ALLOW - repository will allow the requests to the Upstreams
        for the Remote Repositories if the resource is in the perimeter.
    """
    VPCSC_POLICY_UNSPECIFIED = 0
    DENY = 1
    ALLOW = 2

  name = _messages.StringField(1)
  vpcscPolicy = _messages.EnumField('VpcscPolicyValueValuesEnum', 2)


class Version(_messages.Message):
  r"""The body of a version resource. A version resource represents a
  collection of components, such as files and other data. This may correspond
  to a version in many package management schemes.

  Messages:
    AnnotationsValue: Optional. Client specified annotations.
    MetadataValue: Output only. Repository-specific Metadata stored against
      this version. The fields returned are defined by the underlying
      repository-specific resource. Currently, the resources could be:
      DockerImage MavenArtifact

  Fields:
    annotations: Optional. Client specified annotations.
    createTime: The time when the version was created.
    description: Optional. Description of the version, as specified in its
      metadata.
    fingerprints: Output only. Immutable reference for the version, calculated
      based on the version's content. Currently we only support dirsum_sha256
      hash algorithm. Additional hash algorithms may be added in the future.
    metadata: Output only. Repository-specific Metadata stored against this
      version. The fields returned are defined by the underlying repository-
      specific resource. Currently, the resources could be: DockerImage
      MavenArtifact
    name: The name of the version, for example: `projects/p1/locations/us-
      central1/repositories/repo1/packages/pkg1/versions/art1`. If the package
      or version ID parts contain slashes, the slashes are escaped.
    relatedTags: Output only. A list of related tags. Will contain up to 100
      tags that reference this version.
    updateTime: The time when the version was last updated.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Optional. Client specified annotations.

    Messages:
      AdditionalProperty: An additional property for a AnnotationsValue
        object.

    Fields:
      additionalProperties: Additional properties of type AnnotationsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Output only. Repository-specific Metadata stored against this version.
    The fields returned are defined by the underlying repository-specific
    resource. Currently, the resources could be: DockerImage MavenArtifact

    Messages:
      AdditionalProperty: An additional property for a MetadataValue object.

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a MetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  createTime = _messages.StringField(2)
  description = _messages.StringField(3)
  fingerprints = _messages.MessageField('Hash', 4, repeated=True)
  metadata = _messages.MessageField('MetadataValue', 5)
  name = _messages.StringField(6)
  relatedTags = _messages.MessageField('Tag', 7, repeated=True)
  updateTime = _messages.StringField(8)


class VirtualRepositoryConfig(_messages.Message):
  r"""Virtual repository configuration.

  Fields:
    upstreamPolicies: Policies that configure the upstream artifacts
      distributed by the Virtual Repository. Upstream policies cannot be set
      on a standard repository.
  """

  upstreamPolicies = _messages.MessageField('UpstreamPolicy', 1, repeated=True)


class VulnerabilityScanningConfig(_messages.Message):
  r"""Config on whether to perform vulnerability scanning for resources in
  this repository, as well as output fields describing current state.

  Enums:
    EnablementConfigValueValuesEnum: Optional. Config for whether this
      repository has vulnerability scanning disabled.
    EnablementStateValueValuesEnum: Output only. State of feature enablement,
      combining repository enablement config and API enablement state.

  Fields:
    enablementConfig: Optional. Config for whether this repository has
      vulnerability scanning disabled.
    enablementState: Output only. State of feature enablement, combining
      repository enablement config and API enablement state.
    enablementStateReason: Output only. Reason for the repository state.
    lastEnableTime: Output only. The last time this repository config was
      enabled.
  """

  class EnablementConfigValueValuesEnum(_messages.Enum):
    r"""Optional. Config for whether this repository has vulnerability
    scanning disabled.

    Values:
      ENABLEMENT_CONFIG_UNSPECIFIED: Not set. This will be treated as
        INHERITED for Docker repositories and DISABLED for non-Docker
        repositories.
      INHERITED: Scanning is Enabled, but dependent on API enablement.
      DISABLED: No automatic vulnerability scanning will be performed for this
        repository.
    """
    ENABLEMENT_CONFIG_UNSPECIFIED = 0
    INHERITED = 1
    DISABLED = 2

  class EnablementStateValueValuesEnum(_messages.Enum):
    r"""Output only. State of feature enablement, combining repository
    enablement config and API enablement state.

    Values:
      ENABLEMENT_STATE_UNSPECIFIED: Enablement state is unclear.
      SCANNING_UNSUPPORTED: Repository does not support vulnerability
        scanning.
      SCANNING_DISABLED: Vulnerability scanning is disabled for this
        repository.
      SCANNING_ACTIVE: Vulnerability scanning is active for this repository.
      ACTIVE_VIA_SCC: Vulnerability scanning is active for this repository via
        SCC entitlement.
    """
    ENABLEMENT_STATE_UNSPECIFIED = 0
    SCANNING_UNSUPPORTED = 1
    SCANNING_DISABLED = 2
    SCANNING_ACTIVE = 3
    ACTIVE_VIA_SCC = 4

  enablementConfig = _messages.EnumField('EnablementConfigValueValuesEnum', 1)
  enablementState = _messages.EnumField('EnablementStateValueValuesEnum', 2)
  enablementStateReason = _messages.StringField(3)
  lastEnableTime = _messages.StringField(4)


class YumArtifact(_messages.Message):
  r"""A detailed representation of a Yum artifact.

  Enums:
    PackageTypeValueValuesEnum: Output only. An artifact is a binary or source
      package.

  Fields:
    architecture: Output only. Operating system architecture of the artifact.
    name: Output only. The Artifact Registry resource name of the artifact.
    packageName: Output only. The yum package name of the artifact.
    packageType: Output only. An artifact is a binary or source package.
  """

  class PackageTypeValueValuesEnum(_messages.Enum):
    r"""Output only. An artifact is a binary or source package.

    Values:
      PACKAGE_TYPE_UNSPECIFIED: Package type is not specified.
      BINARY: Binary package (.rpm).
      SOURCE: Source package (.srpm).
    """
    PACKAGE_TYPE_UNSPECIFIED = 0
    BINARY = 1
    SOURCE = 2

  architecture = _messages.StringField(1)
  name = _messages.StringField(2)
  packageName = _messages.StringField(3)
  packageType = _messages.EnumField('PackageTypeValueValuesEnum', 4)


class YumRepository(_messages.Message):
  r"""Configuration for a Yum remote repository.

  Fields:
    artifactRegistryRepository: An Artifact Registry Repository.
    customRepository: Customer-specified remote repository.
    publicRepository: One of the publicly available Yum repositories supported
      by Artifact Registry.
  """

  artifactRegistryRepository = _messages.MessageField('GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryArtifactRegistryRepository', 1)
  customRepository = _messages.MessageField('GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryCustomRepository', 2)
  publicRepository = _messages.MessageField('GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository', 3)


encoding.AddCustomJsonFieldMapping(
    StandardQueryParameters, 'f__xgafv', '$.xgafv')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
encoding.AddCustomJsonFieldMapping(
    ArtifactregistryProjectsLocationsRepositoriesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion')
