- release_tracks: [ALPHA, GA]
  help_text:
    brief: |
      Restore a Looker instance from a backup.
    description: |
      Restore a Looker instance from a backup.

      The Looker instance in which the backup is derived from will be restored to that specific backup.

      This command can fail for the following reasons:
        * The instance specified does not exist.
        * The backup specified does not exist.
        * The active account does not have permission to access the given
          instance and backups.
    examples: |
      To restore a backup with id of `7e504e66-c389-4d8d-bca7-f710c6d96567` that belongs to an
      instance named `my-looker-instance`, in the region `us-central1`, run:

        $ {command} my-looker-instance --backup="7e504e66-c389-4d8d-bca7-f710c6d96567" --region="us-central1" --async

  arguments:
    resource:
      spec: !REF googlecloudsdk.command_lib.looker.resources:instance
      help_text: |
        Arguments and flags that specify the Looker instance you want
        to describe.

    params:
    - arg_name: backup
      api_field: restoreInstanceRequest.backup
      required: true
      help_text: |
        The ID of the backup instance in the format
        projects/{project}/locations/{location}/instances/{instance}/backups/{backup}

  request:
    ALPHA:
      api_version: v1alpha2
      modify_request_hooks:
      - googlecloudsdk.command_lib.looker.backups_util:ModifyInstanceBackupNameAlpha
    GA:
      api_version: v1
      modify_request_hooks:
      - googlecloudsdk.command_lib.looker.backups_util:ModifyInstanceBackupName
    collection: looker.projects.locations.instances
    method: restore

  async:
    collection: looker.projects.locations.operations

  output:
    format: none
