- release_tracks: [ALPHA, BETA, GA]
  help_text:
    brief: |
      Apply parameter update to nodes in a Memorystore Memcached instance.
    description: |
      Apply a parameter update to nodes in a Memcached instance from the current configuration
      parameters staged in the instance metadata.

      Applying a parameter update to a node causes a full cache flush on that node.
    examples: |
      To apply parameter update to nodes 'node-1' and 'node-2' of a Memcached
      instance named 'my-memcache-instance' in region 'us-central1', run:

        $ {command} my-memcache-instance --node-ids=node-1,node-2 --region=us-central1

      To apply parameter update to all nodes of a Memcached instance named 'my-memcache-instance'
      in region 'us-central1', run:

        $ {command} my-memcache-instance --apply-all --region=us-central1

  arguments:
    resource:
      spec: !REF googlecloudsdk.command_lib.memcache.resources:instance
      help_text: |
        Arguments and flags that specify the Memcached instance on which to apply parameter update.
    params:
    - group:
        mutex: true
        required: true
        params:
        - arg_name: node-ids
          api_field: applyParametersRequest.nodeIds
          type: arg_list
          help_text: |
            Nodes on which to apply the parameter update.
        - arg_name: apply-all
          api_field: applyParametersRequest.applyAll
          help_text: |
            Apply the parameter update onto all nodes.

  async:
    collection: memcache.projects.locations.operations

  input:
    confirmation_prompt: |
      WARNING: Applying parameters will cause a full cache flush to the selected nodes in instance [{__name__}] in [{locationsId}].

  request:
    ALPHA:
      api_version: v1beta2
    BETA:
      api_version: v1beta2
    GA:
      api_version: v1
    collection: memcache.projects.locations.instances
    method: applyParameters
