- release_tracks: [ALPHA, GA]
  help_text:
    brief: Update an EdgeCacheKeyset resource.
    description: |
      Update an existing EdgeCacheKeyset resource.
    examples: |
      To update an EdgeCacheKeyset resource called 'my-keyset', run:

        $ {command} my-keyset --public-key='id=KEYID,value=BASE64PUBLICKEY'

      The `update` command appends keys to an existing EdgeCacheKeyset
      resource. To add more than one key to an EdgeCacheKeyset
      resource, provide multiple `--public-key` values:

        $ {command} my-keyset --public-key='id=KEYID,value=BASE64PUBLICKEY' \
          --public-key='id=EXISTING,value=EXISTINGPUBLICKEY'

      You can specify, and an EdgeCacheKeyset resource can contain, up
      to three (3) public keys. To delete unused public keys within an
      existing Keyset, use the `import` command to specify the
      EdgeCacheKeyset resource in full, omitting any unused publicKey
      items.

  request:
    collection: networkservices.projects.locations.edgeCacheKeysets
    ALPHA:
      api_version: v1alpha1
    GA:
      api_version: v1
    method: patch

  async:
    collection: networkservices.projects.locations.operations

  arguments:
    resource:
      help_text: The name of the EdgeCacheKeyset resource to update.
      spec: !REF googlecloudsdk.command_lib.edge_cache.resources:edgeCacheKeyset

    params:
    - _REF_: googlecloudsdk.command_lib.edge_cache.flags:keyset.description
    - _REF_: googlecloudsdk.command_lib.edge_cache.flags:keyset.labels
    - _REF_: googlecloudsdk.command_lib.edge_cache.flags:keyset.public_keys
    - _REF_: googlecloudsdk.command_lib.edge_cache.flags:keyset.validation_shared_keys
