help_text:
  brief: |
    Update a backup, only supported for the following fields: --expiration-date and --retention-period.
  description: |
    Update a backup, only supported for the following fields: --expiration-date and --retention-period.
  examples: |
    To update the expire time of backup `BACKUP_NAME` to 7 days from now, run:

      $ {command} BACKUP_NAME --instance=INSTANCE_NAME --cluster=CLUSTER_NAME
      --retention-period=7d

    To update the hot-to-standard time of backup `BACKUP_NAME` to `2019-03-31T10:49:41Z`, run:

      $ {command} BACKUP_NAME --instance=INSTANCE_NAME --cluster=CLUSTER_NAME
      --hot-to-standard-time=2019-03-31T10:49:41Z

    To update the hot-to-standard time of backup `BACKUP_NAME` to 7 days from now, run:

      $ {command} BACKUP_NAME --instance=INSTANCE_NAME --cluster=CLUSTER_NAME
      --hot-to-standard-time=+P7d

    To clear the hot-to-standard time of backup `BACKUP_NAME`, run:

      $ {command} BACKUP_NAME --instance=INSTANCE_NAME --cluster=CLUSTER_NAME
      --hot-to-standard-time=''

request:
  collection: bigtableadmin.projects.instances.clusters.backups
  modify_request_hooks:
  - googlecloudsdk.api_lib.bigtable.backups:ResetDefaultMaskField
  - googlecloudsdk.api_lib.bigtable.backups:AddBackupFieldsToUpdateMask

arguments:
  resource:
    help_text: Cloud Bigtable backup to update.
    spec: !REF googlecloudsdk.command_lib.bigtable.resources:backup
  params:
  - group:
      mutex: true
      params:
      - arg_name: expiration-date
        api_field: backup.expireTime
        help_text: |
          Absolute expiration time of the backup; must be at least 6 hours and at most 90 days from
          backup creation time. See `$ gcloud topic datetimes` for information on date/time formats.
          See `$ gcloud bigtable backups describe` for creation time.
      - arg_name: retention-period
        api_field: backup.expireTime
        help_text: |
          Retention period of the backup relative from now; must be at least 6 hours and at most 90
          days from backup creation time. See `$ gcloud topic datetimes` for information on duration
          formats. See `$ gcloud bigtable backups describe` for creation time.
  - arg_name: hot-to-standard-time
    api_field: backup.hotToStandardTime
    help_text: |
      Time at which a hot backup will be converted to a standard backup; must be at least 24 hours
      from backup creation time. Only applies for hot backups. See `$ gcloud topic datetimes` for
      information on date/time formats. See `$ gcloud bigtable backups describe` for creation time.
