- release_tracks: [ALPHA, BETA, GA]
  help_text:
    brief: "Update a storage pool."
    description: "Update a storage pool."
    examples: |
      To update the size of a storage pool named 'my-storage-pool', run th following command:

        $ {command} my-storage-pool --provisioned-capacity=20TB

  request:
    ALPHA:
      api_version: alpha
    BETA:
      api_version: beta
    GA:
      api_version: v1

    collection: compute.storagePools
    method: update

  async:
    collection: compute.zoneOperations
    response_name_field: selfLink
    state:
      field: status
      success_values: ['DONE']

  arguments:
    resource:
      help_text: Storage pool you want to update.
      spec: !REF googlecloudsdk.command_lib.compute.resources:storage_pool

    params:
    - arg_name: provisioned-capacity
      api_field: storagePoolResource.poolProvisionedCapacityGb
      help_text: |
        Provisioned capacity of the storage pool.
      type: 'googlecloudsdk.calliope.arg_parsers:BinarySize:'
      # TODO(b/283676448), this processor can be effectively eliminated.
      processor: googlecloudsdk.api_lib.compute.storage_pools.processors:convert_to_gb

    - arg_name: description
      api_field: storagePoolResource.description
      help_text: |
        Description of the storage pool.
      type: str

    - arg_name: provisioned-iops
      api_field: storagePoolResource.poolProvisionedIops
      help_text: |
        IOPS to provision the pool with.
      type: int

    - arg_name: provisioned-throughput
      api_field: storagePoolResource.poolProvisionedThroughput
      help_text: |
        Throughput in MB/s provision the pool with.
      type: int
