release_tracks: [GA, ALPHA, BETA]

help_text:
  brief: |
    Update a Managed Service for Apache Kafka cluster.

  description: |
    Update a Managed Service for Apache Kafka cluster.

  examples: |
    To update an attribute in a cluster named mycluster located in us-central1,
    such as the CPU, run the following:

      $ {command} mycluster \
          --location=us-central1 \
          --cpu=3

request:
  collection: managedkafka.projects.locations.clusters
  modify_request_hooks:
  - googlecloudsdk.command_lib.managed_kafka.util:PrepareUpdateWithSubnets
  - googlecloudsdk.command_lib.managed_kafka.util:PrepareUpdateWithCaPools

arguments:
  resource:
    help_text: Identifies the cluster to be updated.
    spec: !REF googlecloudsdk.command_lib.managed_kafka.resources:cluster
  params:
  - group:
      required: true
      params:
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:cpu
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:memory
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:subnets
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:labels
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:auto-rebalance
        default: null
      - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:ssl-principal-mapping-rules
      - group:
          mutex: true
          params:
          - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:mtls-ca-pools
          - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:clear-mtls-ca-pools
  - _REF_: googlecloudsdk.command_lib.managed_kafka.flags:allow-broker-downscale-on-cluster-upscale

async:
  collection: managedkafka.projects.locations.operations
