release_tracks: [ALPHA, BETA, GA]

help_text:
  brief: |
    Upgrade memcache instance to a newer memcached version
  description: |
    Upgrade memcahce instance to a newer memcached version.
  examples: |
    To upgrade memcache version of an instance with the name 'my-memcache-instance' in region
    'us-central-1' to MEMCACHE_1_6_15

      $ {command} my-memcache-instance --region=us-central1 --memcached-version="1.6.15"

arguments:
  resource:
    spec: !REF googlecloudsdk.command_lib.memcache.resources:instance
    help_text: |
      Arguments and flags that specify the Memorystore for Memcached instance you
      want to upgrade.
  params:
  - arg_name: memcached-version
    ALPHA:
      api_field: googleCloudMemcacheV1beta2UpgradeInstanceRequest.memcacheVersion
    BETA:
      api_field: googleCloudMemcacheV1beta2UpgradeInstanceRequest.memcacheVersion
    GA:
      api_field: googleCloudMemcacheV1UpgradeInstanceRequest.memcacheVersion
    required: true
    choices:
    - arg_value: 1.6.15
      enum_value: MEMCACHE_1_6_15
      help_text: Memcached engine version 1.6.15
    help_text: Memcached engine version to which instance should be upgraded to.

async:
  collection: memcache.projects.locations.operations

input:
  confirmation_prompt: |-
    WARNING: Upgrading the Memcached instance causes a full cache flush on the instance. Some nodes of the instance are temporarily unavailable during the duration of upgrade. For more information, see the "Behaviour during version upgrade" section of the official Memorystore for Memcached documentation.

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