Backup and DR Service API . projects . locations . backupVaults . dataSources . backups

Instance Methods

close()

Close httplib2 connections.

delete(name, requestId=None, x__xgafv=None)

Deletes a Backup.

get(name, view=None, x__xgafv=None)

Gets details of a Backup.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)

Lists Backups in a given project and location.

list_next()

Retrieves the next page of results.

patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)

Updates the settings of a Backup.

restore(name, body=None, x__xgafv=None)

Restore from a Backup

Method Details

close()
Close httplib2 connections.
delete(name, requestId=None, x__xgafv=None)
Deletes a Backup.

Args:
  name: string, Required. Name of the resource. (required)
  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, view=None, x__xgafv=None)
Gets details of a Backup.

Args:
  name: string, Required. Name of the data source resource name, in the format 'projects/{project_id}/locations/{location}/backupVaults/{backupVault}/dataSources/{datasource}/backups/{backup}' (required)
  view: string, Optional. Reserved for future use to provide a BASIC & FULL view of Backup resource.
    Allowed values
      BACKUP_VIEW_UNSPECIFIED - If the value is not set, the default 'FULL' view is used.
      BACKUP_VIEW_BASIC - Includes basic data about the Backup, but not the full contents.
      BACKUP_VIEW_FULL - Includes all data about the Backup. This is the default value (for both ListBackups and GetBackup).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Message describing a Backup object.
  "backupApplianceBackupProperties": { # BackupApplianceBackupProperties represents BackupDR backup appliance's properties. # Output only. Backup Appliance specific backup properties.
    "finalizeTime": "A String", # Output only. The time when this backup object was finalized (if none, backup is not finalized).
    "generationId": 42, # Output only. The numeric generation ID of the backup (monotonically increasing).
    "recoveryRangeEndTime": "A String", # Optional. The latest timestamp of data available in this Backup.
    "recoveryRangeStartTime": "A String", # Optional. The earliest timestamp of data available in this Backup.
  },
  "backupApplianceLocks": [ # Optional. The list of BackupLocks taken by the accessor Backup Appliance.
    { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
      "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
        "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
        "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
        "backupImage": "A String", # The image name that depends on this Backup.
        "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
        "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
        "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
      },
      "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
      "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
        "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
      },
    },
  ],
  "backupType": "A String", # Output only. Type of the backup, unspecified, scheduled or ondemand.
  "computeInstanceBackupProperties": { # ComputeInstanceBackupProperties represents Compute Engine instance backup properties. # Output only. Compute Engine specific backup properties.
    "canIpForward": True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify `true`. If unsure, leave this set to `false`. See the https://cloud.google.com/vpc/docs/using-routes#canipforward documentation for more information.
    "description": "A String", # An optional text description for the instances that are created from these properties.
    "disk": [ # An array of disks that are associated with the instances that are created from these properties.
      { # An instance-attached disk resource.
        "autoDelete": True or False, # Optional. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
        "boot": True or False, # Optional. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
        "deviceName": "A String", # Optional. This is used as an identifier for the disks. This is the unique name has to provided to modify disk parameters like disk_name and replica_zones (in case of RePDs)
        "diskEncryptionKey": { # A customer-supplied encryption key. # Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.
          "kmsKeyName": "A String", # Optional. The name of the encryption key that is stored in Google Cloud KMS.
          "kmsKeyServiceAccount": "A String", # Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
          "rawKey": "A String", # Optional. Specifies a 256-bit customer-supplied encryption key.
          "rsaEncryptedKey": "A String", # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
        },
        "diskInterface": "A String", # Optional. Specifies the disk interface to use for attaching this disk.
        "diskSizeGb": "A String", # Optional. The size of the disk in GB.
        "diskType": "A String", # Optional. Output only. The URI of the disk type resource. For example: projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
        "diskTypeDeprecated": "A String", # Specifies the type of the disk.
        "guestOsFeature": [ # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images.
          { # Feature type of the Guest OS.
            "type": "A String", # The ID of a supported feature.
          },
        ],
        "index": "A String", # Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.
        "initializeParams": { # Specifies the parameters to initialize this disk. # Optional. Specifies the parameters to initialize this disk.
          "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance.
          "replicaZones": [ # Optional. URL of the zone where the disk should be created. Required for each regional disk associated with the instance.
            "A String",
          ],
        },
        "kind": "A String", # Optional. Type of the resource.
        "license": [ # Optional. Any valid publicly visible licenses.
          "A String",
        ],
        "mode": "A String", # Optional. The mode in which to attach this disk.
        "savedState": "A String", # Optional. Output only. The state of the disk.
        "source": "A String", # Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.
        "type": "A String", # Optional. Specifies the type of the disk.
      },
    ],
    "guestAccelerator": [ # A list of guest accelerator cards' type and count to use for instances created from these properties.
      { # A specification of the type and number of accelerator cards attached to the instance.
        "acceleratorCount": 42, # Optional. The number of the guest accelerator cards exposed to this instance.
        "acceleratorType": "A String", # Optional. Full or partial URL of the accelerator type resource to attach to this instance.
      },
    ],
    "keyRevocationActionType": "A String", # KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
    "labels": { # Labels to apply to instances that are created from these properties.
      "a_key": "A String",
    },
    "machineType": "A String", # The machine type to use for instances that are created from these properties.
    "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See https://cloud.google.com/compute/docs/metadata/overview for more information.
      "items": [ # Optional. Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
        { # A key/value pair to be used for storing metadata.
          "key": "A String", # Optional. Key for the metadata entry.
          "value": "A String", # Optional. Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).
        },
      ],
    },
    "minCpuPlatform": "A String", # Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: Intel Haswell` or `minCpuPlatform: Intel Sandy Bridge`. For more information, read https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
    "networkInterface": [ # An array of network access configurations for this interface.
      { # A network interface resource attached to an instance. s
        "accessConfigs": [ # Optional. An array of configurations for this interface. Currently, only one access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "aliasIpRanges": [ # Optional. An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.
          { # An alias IP range attached to an instance's network interface.
            "ipCidrRange": "A String", # Optional. The IP alias ranges to allocate for this interface.
            "subnetworkRangeName": "A String", # Optional. The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.
          },
        ],
        "internalIpv6PrefixLength": 42, # Optional. The prefix length of the primary internal IPv6 range.
        "ipv6AccessConfigs": [ # Optional. An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "ipv6AccessType": "A String", # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
        "ipv6Address": "A String", # Optional. An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
        "name": "A String", # Output only. [Output Only] The name of the network interface, which is generated by the server.
        "network": "A String", # Optional. URL of the VPC network resource for this instance.
        "networkAttachment": "A String", # Optional. The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.
        "networkIP": "A String", # Optional. An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
        "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
        "queueCount": 42, # Optional. The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.
        "stackType": "A String", # The stack type for this network interface.
        "subnetwork": "A String", # Optional. The URL of the Subnetwork resource for this instance.
      },
    ],
    "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from these properties.
      "automaticRestart": True or False, # Optional. Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
      "instanceTerminationAction": "A String", # Optional. Specifies the termination action for the instance.
      "localSsdRecoveryTimeout": { # A SchedulingDuration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. # Optional. Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
        "nanos": 42, # Optional. Span of time that's a fraction of a second at nanosecond resolution.
        "seconds": "A String", # Optional. Span of time at a resolution of a second.
      },
      "minNodeCpus": 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
      "nodeAffinities": [ # Optional. A set of node affinity and anti-affinity configurations. Overrides reservationAffinity.
        { # Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.
          "key": "A String", # Optional. Corresponds to the label key of Node resource.
          "operator": "A String", # Optional. Defines the operation of node selection.
          "values": [ # Optional. Corresponds to the label values of Node resource.
            "A String",
          ],
        },
      ],
      "onHostMaintenance": "A String", # Optional. Defines the maintenance behavior for this instance.
      "preemptible": True or False, # Optional. Defines whether the instance is preemptible.
      "provisioningModel": "A String", # Optional. Specifies the provisioning model of the instance.
    },
    "serviceAccount": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.
      { # A service account.
        "email": "A String", # Optional. Email address of the service account.
        "scopes": [ # Optional. The list of scopes to be made available for this service account.
          "A String",
        ],
      },
    ],
    "sourceInstance": "A String", # The source instance used to create this backup. This can be a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance -projects/project/zones/zone/instances/instance
    "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035 (https://www.ietf.org/rfc/rfc1035.txt).
      "items": [ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
        "A String",
      ],
    },
  },
  "consistencyTime": "A String", # Output only. The point in time when this backup was captured from the source.
  "createTime": "A String", # Output only. The time when the instance was created.
  "description": "A String", # Output only. The description of the Backup instance (2048 characters or less).
  "enforcedRetentionEndTime": "A String", # Optional. The backup can not be deleted before this time.
  "etag": "A String", # Optional. Server specified ETag to prevent updates from overwriting each other.
  "expireTime": "A String", # Optional. When this backup is automatically expired.
  "gcpBackupPlanInfo": { # GCPBackupPlanInfo captures the plan configuration details of Google Cloud resources at the time of backup. # Output only. Configuration for a Google Cloud resource.
    "backupPlan": "A String", # Resource name of backup plan by which workload is protected at the time of the backup. Format: projects/{project}/locations/{location}/backupPlans/{backupPlanId}
    "backupPlanRuleId": "A String", # The rule id of the backup plan which triggered this backup in case of scheduled backup or used for
  },
  "labels": { # Optional. Resource labels to represent user provided metadata. No labels currently defined.
    "a_key": "A String",
  },
  "name": "A String", # Output only. Identifier. Name of the backup to create. It must have the format`"projects//locations//backupVaults//dataSources/{datasource}/backups/{backup}"`. `{backup}` cannot be changed after creation. It must be between 3-63 characters long and must be unique within the datasource.
  "resourceSizeBytes": "A String", # Output only. source resource size in bytes at the time of the backup.
  "serviceLocks": [ # Output only. The list of BackupLocks taken by the service to prevent the deletion of the backup.
    { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
      "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
        "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
        "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
        "backupImage": "A String", # The image name that depends on this Backup.
        "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
        "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
        "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
      },
      "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
      "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
        "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
      },
    },
  ],
  "state": "A String", # Output only. The Backup resource instance state.
  "updateTime": "A String", # Output only. The time when the instance was updated.
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)
Lists Backups in a given project and location.

Args:
  parent: string, Required. The project and location for which to retrieve backup information, in the format 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR, locations map to Google Cloud regions, for example **us-central1**. To retrieve data sources for all locations, use "-" for the '{location}' value. (required)
  filter: string, Optional. Filtering results.
  orderBy: string, Optional. Hint for how to order the results.
  pageSize: integer, Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.
  pageToken: string, Optional. A token identifying a page of results the server should return.
  view: string, Optional. Reserved for future use to provide a BASIC & FULL view of Backup resource.
    Allowed values
      BACKUP_VIEW_UNSPECIFIED - If the value is not set, the default 'FULL' view is used.
      BACKUP_VIEW_BASIC - Includes basic data about the Backup, but not the full contents.
      BACKUP_VIEW_FULL - Includes all data about the Backup. This is the default value (for both ListBackups and GetBackup).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for listing Backups.
  "backups": [ # The list of Backup instances in the project for the specified location. If the '{location}' value in the request is "-", the response contains a list of instances from all locations. In case any location is unreachable, the response will only return data sources in reachable locations and the 'unreachable' field will be populated with a list of unreachable locations.
    { # Message describing a Backup object.
      "backupApplianceBackupProperties": { # BackupApplianceBackupProperties represents BackupDR backup appliance's properties. # Output only. Backup Appliance specific backup properties.
        "finalizeTime": "A String", # Output only. The time when this backup object was finalized (if none, backup is not finalized).
        "generationId": 42, # Output only. The numeric generation ID of the backup (monotonically increasing).
        "recoveryRangeEndTime": "A String", # Optional. The latest timestamp of data available in this Backup.
        "recoveryRangeStartTime": "A String", # Optional. The earliest timestamp of data available in this Backup.
      },
      "backupApplianceLocks": [ # Optional. The list of BackupLocks taken by the accessor Backup Appliance.
        { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
          "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
            "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
            "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
            "backupImage": "A String", # The image name that depends on this Backup.
            "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
            "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
            "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
          },
          "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
          "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
            "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
          },
        },
      ],
      "backupType": "A String", # Output only. Type of the backup, unspecified, scheduled or ondemand.
      "computeInstanceBackupProperties": { # ComputeInstanceBackupProperties represents Compute Engine instance backup properties. # Output only. Compute Engine specific backup properties.
        "canIpForward": True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify `true`. If unsure, leave this set to `false`. See the https://cloud.google.com/vpc/docs/using-routes#canipforward documentation for more information.
        "description": "A String", # An optional text description for the instances that are created from these properties.
        "disk": [ # An array of disks that are associated with the instances that are created from these properties.
          { # An instance-attached disk resource.
            "autoDelete": True or False, # Optional. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
            "boot": True or False, # Optional. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
            "deviceName": "A String", # Optional. This is used as an identifier for the disks. This is the unique name has to provided to modify disk parameters like disk_name and replica_zones (in case of RePDs)
            "diskEncryptionKey": { # A customer-supplied encryption key. # Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.
              "kmsKeyName": "A String", # Optional. The name of the encryption key that is stored in Google Cloud KMS.
              "kmsKeyServiceAccount": "A String", # Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
              "rawKey": "A String", # Optional. Specifies a 256-bit customer-supplied encryption key.
              "rsaEncryptedKey": "A String", # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
            },
            "diskInterface": "A String", # Optional. Specifies the disk interface to use for attaching this disk.
            "diskSizeGb": "A String", # Optional. The size of the disk in GB.
            "diskType": "A String", # Optional. Output only. The URI of the disk type resource. For example: projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
            "diskTypeDeprecated": "A String", # Specifies the type of the disk.
            "guestOsFeature": [ # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images.
              { # Feature type of the Guest OS.
                "type": "A String", # The ID of a supported feature.
              },
            ],
            "index": "A String", # Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.
            "initializeParams": { # Specifies the parameters to initialize this disk. # Optional. Specifies the parameters to initialize this disk.
              "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance.
              "replicaZones": [ # Optional. URL of the zone where the disk should be created. Required for each regional disk associated with the instance.
                "A String",
              ],
            },
            "kind": "A String", # Optional. Type of the resource.
            "license": [ # Optional. Any valid publicly visible licenses.
              "A String",
            ],
            "mode": "A String", # Optional. The mode in which to attach this disk.
            "savedState": "A String", # Optional. Output only. The state of the disk.
            "source": "A String", # Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.
            "type": "A String", # Optional. Specifies the type of the disk.
          },
        ],
        "guestAccelerator": [ # A list of guest accelerator cards' type and count to use for instances created from these properties.
          { # A specification of the type and number of accelerator cards attached to the instance.
            "acceleratorCount": 42, # Optional. The number of the guest accelerator cards exposed to this instance.
            "acceleratorType": "A String", # Optional. Full or partial URL of the accelerator type resource to attach to this instance.
          },
        ],
        "keyRevocationActionType": "A String", # KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
        "labels": { # Labels to apply to instances that are created from these properties.
          "a_key": "A String",
        },
        "machineType": "A String", # The machine type to use for instances that are created from these properties.
        "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See https://cloud.google.com/compute/docs/metadata/overview for more information.
          "items": [ # Optional. Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
            { # A key/value pair to be used for storing metadata.
              "key": "A String", # Optional. Key for the metadata entry.
              "value": "A String", # Optional. Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).
            },
          ],
        },
        "minCpuPlatform": "A String", # Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: Intel Haswell` or `minCpuPlatform: Intel Sandy Bridge`. For more information, read https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
        "networkInterface": [ # An array of network access configurations for this interface.
          { # A network interface resource attached to an instance. s
            "accessConfigs": [ # Optional. An array of configurations for this interface. Currently, only one access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
              { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
                "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
                "name": "A String", # Optional. The name of this access configuration.
                "natIP": "A String", # Optional. The external IP address of this access configuration.
                "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
                "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
                "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
                "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
              },
            ],
            "aliasIpRanges": [ # Optional. An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.
              { # An alias IP range attached to an instance's network interface.
                "ipCidrRange": "A String", # Optional. The IP alias ranges to allocate for this interface.
                "subnetworkRangeName": "A String", # Optional. The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.
              },
            ],
            "internalIpv6PrefixLength": 42, # Optional. The prefix length of the primary internal IPv6 range.
            "ipv6AccessConfigs": [ # Optional. An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.
              { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
                "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
                "name": "A String", # Optional. The name of this access configuration.
                "natIP": "A String", # Optional. The external IP address of this access configuration.
                "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
                "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
                "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
                "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
              },
            ],
            "ipv6AccessType": "A String", # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
            "ipv6Address": "A String", # Optional. An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
            "name": "A String", # Output only. [Output Only] The name of the network interface, which is generated by the server.
            "network": "A String", # Optional. URL of the VPC network resource for this instance.
            "networkAttachment": "A String", # Optional. The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.
            "networkIP": "A String", # Optional. An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
            "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
            "queueCount": 42, # Optional. The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.
            "stackType": "A String", # The stack type for this network interface.
            "subnetwork": "A String", # Optional. The URL of the Subnetwork resource for this instance.
          },
        ],
        "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from these properties.
          "automaticRestart": True or False, # Optional. Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
          "instanceTerminationAction": "A String", # Optional. Specifies the termination action for the instance.
          "localSsdRecoveryTimeout": { # A SchedulingDuration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. # Optional. Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
            "nanos": 42, # Optional. Span of time that's a fraction of a second at nanosecond resolution.
            "seconds": "A String", # Optional. Span of time at a resolution of a second.
          },
          "minNodeCpus": 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
          "nodeAffinities": [ # Optional. A set of node affinity and anti-affinity configurations. Overrides reservationAffinity.
            { # Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.
              "key": "A String", # Optional. Corresponds to the label key of Node resource.
              "operator": "A String", # Optional. Defines the operation of node selection.
              "values": [ # Optional. Corresponds to the label values of Node resource.
                "A String",
              ],
            },
          ],
          "onHostMaintenance": "A String", # Optional. Defines the maintenance behavior for this instance.
          "preemptible": True or False, # Optional. Defines whether the instance is preemptible.
          "provisioningModel": "A String", # Optional. Specifies the provisioning model of the instance.
        },
        "serviceAccount": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.
          { # A service account.
            "email": "A String", # Optional. Email address of the service account.
            "scopes": [ # Optional. The list of scopes to be made available for this service account.
              "A String",
            ],
          },
        ],
        "sourceInstance": "A String", # The source instance used to create this backup. This can be a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance -projects/project/zones/zone/instances/instance
        "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035 (https://www.ietf.org/rfc/rfc1035.txt).
          "items": [ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
            "A String",
          ],
        },
      },
      "consistencyTime": "A String", # Output only. The point in time when this backup was captured from the source.
      "createTime": "A String", # Output only. The time when the instance was created.
      "description": "A String", # Output only. The description of the Backup instance (2048 characters or less).
      "enforcedRetentionEndTime": "A String", # Optional. The backup can not be deleted before this time.
      "etag": "A String", # Optional. Server specified ETag to prevent updates from overwriting each other.
      "expireTime": "A String", # Optional. When this backup is automatically expired.
      "gcpBackupPlanInfo": { # GCPBackupPlanInfo captures the plan configuration details of Google Cloud resources at the time of backup. # Output only. Configuration for a Google Cloud resource.
        "backupPlan": "A String", # Resource name of backup plan by which workload is protected at the time of the backup. Format: projects/{project}/locations/{location}/backupPlans/{backupPlanId}
        "backupPlanRuleId": "A String", # The rule id of the backup plan which triggered this backup in case of scheduled backup or used for
      },
      "labels": { # Optional. Resource labels to represent user provided metadata. No labels currently defined.
        "a_key": "A String",
      },
      "name": "A String", # Output only. Identifier. Name of the backup to create. It must have the format`"projects//locations//backupVaults//dataSources/{datasource}/backups/{backup}"`. `{backup}` cannot be changed after creation. It must be between 3-63 characters long and must be unique within the datasource.
      "resourceSizeBytes": "A String", # Output only. source resource size in bytes at the time of the backup.
      "serviceLocks": [ # Output only. The list of BackupLocks taken by the service to prevent the deletion of the backup.
        { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
          "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
            "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
            "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
            "backupImage": "A String", # The image name that depends on this Backup.
            "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
            "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
            "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
          },
          "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
          "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
            "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
          },
        },
      ],
      "state": "A String", # Output only. The Backup resource instance state.
      "updateTime": "A String", # Output only. The time when the instance was updated.
    },
  ],
  "nextPageToken": "A String", # A token identifying a page of results the server should return.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)
Updates the settings of a Backup.

Args:
  name: string, Output only. Identifier. Name of the backup to create. It must have the format`"projects//locations//backupVaults//dataSources/{datasource}/backups/{backup}"`. `{backup}` cannot be changed after creation. It must be between 3-63 characters long and must be unique within the datasource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message describing a Backup object.
  "backupApplianceBackupProperties": { # BackupApplianceBackupProperties represents BackupDR backup appliance's properties. # Output only. Backup Appliance specific backup properties.
    "finalizeTime": "A String", # Output only. The time when this backup object was finalized (if none, backup is not finalized).
    "generationId": 42, # Output only. The numeric generation ID of the backup (monotonically increasing).
    "recoveryRangeEndTime": "A String", # Optional. The latest timestamp of data available in this Backup.
    "recoveryRangeStartTime": "A String", # Optional. The earliest timestamp of data available in this Backup.
  },
  "backupApplianceLocks": [ # Optional. The list of BackupLocks taken by the accessor Backup Appliance.
    { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
      "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
        "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
        "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
        "backupImage": "A String", # The image name that depends on this Backup.
        "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
        "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
        "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
      },
      "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
      "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
        "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
      },
    },
  ],
  "backupType": "A String", # Output only. Type of the backup, unspecified, scheduled or ondemand.
  "computeInstanceBackupProperties": { # ComputeInstanceBackupProperties represents Compute Engine instance backup properties. # Output only. Compute Engine specific backup properties.
    "canIpForward": True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify `true`. If unsure, leave this set to `false`. See the https://cloud.google.com/vpc/docs/using-routes#canipforward documentation for more information.
    "description": "A String", # An optional text description for the instances that are created from these properties.
    "disk": [ # An array of disks that are associated with the instances that are created from these properties.
      { # An instance-attached disk resource.
        "autoDelete": True or False, # Optional. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
        "boot": True or False, # Optional. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
        "deviceName": "A String", # Optional. This is used as an identifier for the disks. This is the unique name has to provided to modify disk parameters like disk_name and replica_zones (in case of RePDs)
        "diskEncryptionKey": { # A customer-supplied encryption key. # Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.
          "kmsKeyName": "A String", # Optional. The name of the encryption key that is stored in Google Cloud KMS.
          "kmsKeyServiceAccount": "A String", # Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
          "rawKey": "A String", # Optional. Specifies a 256-bit customer-supplied encryption key.
          "rsaEncryptedKey": "A String", # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
        },
        "diskInterface": "A String", # Optional. Specifies the disk interface to use for attaching this disk.
        "diskSizeGb": "A String", # Optional. The size of the disk in GB.
        "diskType": "A String", # Optional. Output only. The URI of the disk type resource. For example: projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
        "diskTypeDeprecated": "A String", # Specifies the type of the disk.
        "guestOsFeature": [ # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images.
          { # Feature type of the Guest OS.
            "type": "A String", # The ID of a supported feature.
          },
        ],
        "index": "A String", # Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.
        "initializeParams": { # Specifies the parameters to initialize this disk. # Optional. Specifies the parameters to initialize this disk.
          "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance.
          "replicaZones": [ # Optional. URL of the zone where the disk should be created. Required for each regional disk associated with the instance.
            "A String",
          ],
        },
        "kind": "A String", # Optional. Type of the resource.
        "license": [ # Optional. Any valid publicly visible licenses.
          "A String",
        ],
        "mode": "A String", # Optional. The mode in which to attach this disk.
        "savedState": "A String", # Optional. Output only. The state of the disk.
        "source": "A String", # Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.
        "type": "A String", # Optional. Specifies the type of the disk.
      },
    ],
    "guestAccelerator": [ # A list of guest accelerator cards' type and count to use for instances created from these properties.
      { # A specification of the type and number of accelerator cards attached to the instance.
        "acceleratorCount": 42, # Optional. The number of the guest accelerator cards exposed to this instance.
        "acceleratorType": "A String", # Optional. Full or partial URL of the accelerator type resource to attach to this instance.
      },
    ],
    "keyRevocationActionType": "A String", # KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
    "labels": { # Labels to apply to instances that are created from these properties.
      "a_key": "A String",
    },
    "machineType": "A String", # The machine type to use for instances that are created from these properties.
    "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See https://cloud.google.com/compute/docs/metadata/overview for more information.
      "items": [ # Optional. Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
        { # A key/value pair to be used for storing metadata.
          "key": "A String", # Optional. Key for the metadata entry.
          "value": "A String", # Optional. Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).
        },
      ],
    },
    "minCpuPlatform": "A String", # Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: Intel Haswell` or `minCpuPlatform: Intel Sandy Bridge`. For more information, read https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
    "networkInterface": [ # An array of network access configurations for this interface.
      { # A network interface resource attached to an instance. s
        "accessConfigs": [ # Optional. An array of configurations for this interface. Currently, only one access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "aliasIpRanges": [ # Optional. An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.
          { # An alias IP range attached to an instance's network interface.
            "ipCidrRange": "A String", # Optional. The IP alias ranges to allocate for this interface.
            "subnetworkRangeName": "A String", # Optional. The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.
          },
        ],
        "internalIpv6PrefixLength": 42, # Optional. The prefix length of the primary internal IPv6 range.
        "ipv6AccessConfigs": [ # Optional. An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "ipv6AccessType": "A String", # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
        "ipv6Address": "A String", # Optional. An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
        "name": "A String", # Output only. [Output Only] The name of the network interface, which is generated by the server.
        "network": "A String", # Optional. URL of the VPC network resource for this instance.
        "networkAttachment": "A String", # Optional. The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.
        "networkIP": "A String", # Optional. An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
        "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
        "queueCount": 42, # Optional. The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.
        "stackType": "A String", # The stack type for this network interface.
        "subnetwork": "A String", # Optional. The URL of the Subnetwork resource for this instance.
      },
    ],
    "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from these properties.
      "automaticRestart": True or False, # Optional. Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
      "instanceTerminationAction": "A String", # Optional. Specifies the termination action for the instance.
      "localSsdRecoveryTimeout": { # A SchedulingDuration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. # Optional. Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
        "nanos": 42, # Optional. Span of time that's a fraction of a second at nanosecond resolution.
        "seconds": "A String", # Optional. Span of time at a resolution of a second.
      },
      "minNodeCpus": 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
      "nodeAffinities": [ # Optional. A set of node affinity and anti-affinity configurations. Overrides reservationAffinity.
        { # Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.
          "key": "A String", # Optional. Corresponds to the label key of Node resource.
          "operator": "A String", # Optional. Defines the operation of node selection.
          "values": [ # Optional. Corresponds to the label values of Node resource.
            "A String",
          ],
        },
      ],
      "onHostMaintenance": "A String", # Optional. Defines the maintenance behavior for this instance.
      "preemptible": True or False, # Optional. Defines whether the instance is preemptible.
      "provisioningModel": "A String", # Optional. Specifies the provisioning model of the instance.
    },
    "serviceAccount": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.
      { # A service account.
        "email": "A String", # Optional. Email address of the service account.
        "scopes": [ # Optional. The list of scopes to be made available for this service account.
          "A String",
        ],
      },
    ],
    "sourceInstance": "A String", # The source instance used to create this backup. This can be a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance -projects/project/zones/zone/instances/instance
    "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035 (https://www.ietf.org/rfc/rfc1035.txt).
      "items": [ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
        "A String",
      ],
    },
  },
  "consistencyTime": "A String", # Output only. The point in time when this backup was captured from the source.
  "createTime": "A String", # Output only. The time when the instance was created.
  "description": "A String", # Output only. The description of the Backup instance (2048 characters or less).
  "enforcedRetentionEndTime": "A String", # Optional. The backup can not be deleted before this time.
  "etag": "A String", # Optional. Server specified ETag to prevent updates from overwriting each other.
  "expireTime": "A String", # Optional. When this backup is automatically expired.
  "gcpBackupPlanInfo": { # GCPBackupPlanInfo captures the plan configuration details of Google Cloud resources at the time of backup. # Output only. Configuration for a Google Cloud resource.
    "backupPlan": "A String", # Resource name of backup plan by which workload is protected at the time of the backup. Format: projects/{project}/locations/{location}/backupPlans/{backupPlanId}
    "backupPlanRuleId": "A String", # The rule id of the backup plan which triggered this backup in case of scheduled backup or used for
  },
  "labels": { # Optional. Resource labels to represent user provided metadata. No labels currently defined.
    "a_key": "A String",
  },
  "name": "A String", # Output only. Identifier. Name of the backup to create. It must have the format`"projects//locations//backupVaults//dataSources/{datasource}/backups/{backup}"`. `{backup}` cannot be changed after creation. It must be between 3-63 characters long and must be unique within the datasource.
  "resourceSizeBytes": "A String", # Output only. source resource size in bytes at the time of the backup.
  "serviceLocks": [ # Output only. The list of BackupLocks taken by the service to prevent the deletion of the backup.
    { # BackupLock represents a single lock on a Backup resource. An unexpired lock on a Backup prevents the Backup from being deleted.
      "backupApplianceLockInfo": { # BackupApplianceLockInfo contains metadata about the backupappliance that created the lock. # If the client is a backup and recovery appliance, this contains metadata about why the lock exists.
        "backupApplianceId": "A String", # Required. The ID of the backup/recovery appliance that created this lock.
        "backupApplianceName": "A String", # Required. The name of the backup/recovery appliance that created this lock.
        "backupImage": "A String", # The image name that depends on this Backup.
        "jobName": "A String", # The job name on the backup/recovery appliance that created this lock.
        "lockReason": "A String", # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of this string is only meaningful to the client and it is not interpreted by the BackupVault service.
        "slaId": "A String", # The SLA on the backup/recovery appliance that owns the lock.
      },
      "lockUntilTime": "A String", # Required. The time after which this lock is not considered valid and will no longer protect the Backup from deletion.
      "serviceLockInfo": { # ServiceLockInfo represents the details of a lock taken by the service on a Backup resource. # Output only. Contains metadata about the lock exist for Google Cloud native backups.
        "operation": "A String", # Output only. The name of the operation that created this lock. The lock will automatically be released when the operation completes.
      },
    },
  ],
  "state": "A String", # Output only. The Backup resource instance state.
  "updateTime": "A String", # Output only. The time when the instance was updated.
}

  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  updateMask: string, Required. Field mask is used to specify the fields to be overwritten in the Backup resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then the request will fail.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
restore(name, body=None, x__xgafv=None)
Restore from a Backup

Args:
  name: string, Required. The resource name of the Backup instance, in the format 'projects/*/locations/*/backupVaults/*/dataSources/*/backups/'. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for restoring from a Backup.
  "computeInstanceRestoreProperties": { # ComputeInstanceRestoreProperties represents Compute Engine instance properties to be overridden during restore. # Compute Engine instance properties to be overridden during restore.
    "advancedMachineFeatures": { # Specifies options for controlling advanced machine features. # Optional. Controls for advanced machine-related behavior features.
      "enableNestedVirtualization": True or False, # Optional. Whether to enable nested virtualization or not (default is false).
      "enableUefiNetworking": True or False, # Optional. Whether to enable UEFI networking for instance creation.
      "threadsPerCore": 42, # Optional. The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
      "visibleCoreCount": 42, # Optional. The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.
    },
    "canIpForward": True or False, # Optional. Allows this instance to send and receive packets with non-matching destination or source IPs.
    "confidentialInstanceConfig": { # A set of Confidential Instance options. # Optional. Controls Confidential compute options on the instance
      "enableConfidentialCompute": True or False, # Optional. Defines whether the instance should have confidential compute enabled.
    },
    "deletionProtection": True or False, # Optional. Whether the resource should be protected against deletion.
    "description": "A String", # Optional. An optional description of this resource. Provide this property when you create the resource.
    "disks": [ # Optional. Array of disks associated with this instance. Persistent disks must be created before you can assign them.
      { # An instance-attached disk resource.
        "autoDelete": True or False, # Optional. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
        "boot": True or False, # Optional. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
        "deviceName": "A String", # Optional. This is used as an identifier for the disks. This is the unique name has to provided to modify disk parameters like disk_name and replica_zones (in case of RePDs)
        "diskEncryptionKey": { # A customer-supplied encryption key. # Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.
          "kmsKeyName": "A String", # Optional. The name of the encryption key that is stored in Google Cloud KMS.
          "kmsKeyServiceAccount": "A String", # Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
          "rawKey": "A String", # Optional. Specifies a 256-bit customer-supplied encryption key.
          "rsaEncryptedKey": "A String", # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
        },
        "diskInterface": "A String", # Optional. Specifies the disk interface to use for attaching this disk.
        "diskSizeGb": "A String", # Optional. The size of the disk in GB.
        "diskType": "A String", # Optional. Output only. The URI of the disk type resource. For example: projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
        "diskTypeDeprecated": "A String", # Specifies the type of the disk.
        "guestOsFeature": [ # Optional. A list of features to enable on the guest operating system. Applicable only for bootable images.
          { # Feature type of the Guest OS.
            "type": "A String", # The ID of a supported feature.
          },
        ],
        "index": "A String", # Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.
        "initializeParams": { # Specifies the parameters to initialize this disk. # Optional. Specifies the parameters to initialize this disk.
          "diskName": "A String", # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance.
          "replicaZones": [ # Optional. URL of the zone where the disk should be created. Required for each regional disk associated with the instance.
            "A String",
          ],
        },
        "kind": "A String", # Optional. Type of the resource.
        "license": [ # Optional. Any valid publicly visible licenses.
          "A String",
        ],
        "mode": "A String", # Optional. The mode in which to attach this disk.
        "savedState": "A String", # Optional. Output only. The state of the disk.
        "source": "A String", # Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.
        "type": "A String", # Optional. Specifies the type of the disk.
      },
    ],
    "displayDevice": { # A set of Display Device options # Optional. Enables display device for the instance.
      "enableDisplay": True or False, # Optional. Enables display for the Compute Engine VM
    },
    "guestAccelerators": [ # Optional. A list of the type and count of accelerator cards attached to the instance.
      { # A specification of the type and number of accelerator cards attached to the instance.
        "acceleratorCount": 42, # Optional. The number of the guest accelerator cards exposed to this instance.
        "acceleratorType": "A String", # Optional. Full or partial URL of the accelerator type resource to attach to this instance.
      },
    ],
    "hostname": "A String", # Optional. Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
    "instanceEncryptionKey": { # A customer-supplied encryption key. # Optional. Encrypts suspended data for an instance with a customer-managed encryption key.
      "kmsKeyName": "A String", # Optional. The name of the encryption key that is stored in Google Cloud KMS.
      "kmsKeyServiceAccount": "A String", # Optional. The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
      "rawKey": "A String", # Optional. Specifies a 256-bit customer-supplied encryption key.
      "rsaEncryptedKey": "A String", # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
    },
    "keyRevocationActionType": "A String", # Optional. KeyRevocationActionType of the instance.
    "labels": { # Optional. Labels to apply to this instance.
      "a_key": "A String",
    },
    "machineType": "A String", # Optional. Full or partial URL of the machine type resource to use for this instance.
    "metadata": { # A metadata key/value entry. # Optional. This includes custom metadata and predefined keys.
      "items": [ # Optional. Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
        { # A key/value pair to be used for storing metadata.
          "key": "A String", # Optional. Key for the metadata entry.
          "value": "A String", # Optional. Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).
        },
      ],
    },
    "minCpuPlatform": "A String", # Optional. Minimum CPU platform to use for this instance.
    "name": "A String", # Required. Name of the compute instance.
    "networkInterfaces": [ # Optional. An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
      { # A network interface resource attached to an instance. s
        "accessConfigs": [ # Optional. An array of configurations for this interface. Currently, only one access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "aliasIpRanges": [ # Optional. An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.
          { # An alias IP range attached to an instance's network interface.
            "ipCidrRange": "A String", # Optional. The IP alias ranges to allocate for this interface.
            "subnetworkRangeName": "A String", # Optional. The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.
          },
        ],
        "internalIpv6PrefixLength": 42, # Optional. The prefix length of the primary internal IPv6 range.
        "ipv6AccessConfigs": [ # Optional. An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.
          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
            "externalIpv6": "A String", # Optional. The external IPv6 address of this access configuration.
            "externalIpv6PrefixLength": 42, # Optional. The prefix length of the external IPv6 range.
            "name": "A String", # Optional. The name of this access configuration.
            "natIP": "A String", # Optional. The external IP address of this access configuration.
            "networkTier": "A String", # Optional. This signifies the networking tier used for configuring this access
            "publicPtrDomainName": "A String", # Optional. The DNS domain name for the public PTR record.
            "setPublicPtr": True or False, # Optional. Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name.
            "type": "A String", # Optional. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.
          },
        ],
        "ipv6AccessType": "A String", # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
        "ipv6Address": "A String", # Optional. An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
        "name": "A String", # Output only. [Output Only] The name of the network interface, which is generated by the server.
        "network": "A String", # Optional. URL of the VPC network resource for this instance.
        "networkAttachment": "A String", # Optional. The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.
        "networkIP": "A String", # Optional. An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
        "nicType": "A String", # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
        "queueCount": 42, # Optional. The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.
        "stackType": "A String", # The stack type for this network interface.
        "subnetwork": "A String", # Optional. The URL of the Subnetwork resource for this instance.
      },
    ],
    "networkPerformanceConfig": { # Network performance configuration. # Optional. Configure network performance such as egress bandwidth tier.
      "totalEgressBandwidthTier": "A String", # Optional. The tier of the total egress bandwidth.
    },
    "params": { # Additional instance params. # Input only. Additional params passed with the request, but not persisted as part of resource payload.
      "resourceManagerTags": { # Optional. Resource manager tags to be bound to the instance.
        "a_key": "A String",
      },
    },
    "privateIpv6GoogleAccess": "A String", # Optional. The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
    "reservationAffinity": { # Specifies the reservations that this instance can consume from. # Optional. Specifies the reservations that this instance can consume from.
      "consumeReservationType": "A String", # Optional. Specifies the type of reservation from which this instance can consume
      "key": "A String", # Optional. Corresponds to the label key of a reservation resource.
      "values": [ # Optional. Corresponds to the label values of a reservation resource.
        "A String",
      ],
    },
    "resourcePolicies": [ # Optional. Resource policies applied to this instance.
      "A String",
    ],
    "scheduling": { # Sets the scheduling options for an Instance. # Optional. Sets the scheduling options for this instance.
      "automaticRestart": True or False, # Optional. Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
      "instanceTerminationAction": "A String", # Optional. Specifies the termination action for the instance.
      "localSsdRecoveryTimeout": { # A SchedulingDuration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. # Optional. Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
        "nanos": 42, # Optional. Span of time that's a fraction of a second at nanosecond resolution.
        "seconds": "A String", # Optional. Span of time at a resolution of a second.
      },
      "minNodeCpus": 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
      "nodeAffinities": [ # Optional. A set of node affinity and anti-affinity configurations. Overrides reservationAffinity.
        { # Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.
          "key": "A String", # Optional. Corresponds to the label key of Node resource.
          "operator": "A String", # Optional. Defines the operation of node selection.
          "values": [ # Optional. Corresponds to the label values of Node resource.
            "A String",
          ],
        },
      ],
      "onHostMaintenance": "A String", # Optional. Defines the maintenance behavior for this instance.
      "preemptible": True or False, # Optional. Defines whether the instance is preemptible.
      "provisioningModel": "A String", # Optional. Specifies the provisioning model of the instance.
    },
    "serviceAccounts": [ # Optional. A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
      { # A service account.
        "email": "A String", # Optional. Email address of the service account.
        "scopes": [ # Optional. The list of scopes to be made available for this service account.
          "A String",
        ],
      },
    ],
    "tags": { # A set of instance tags. # Optional. Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation.
      "items": [ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
        "A String",
      ],
    },
  },
  "computeInstanceTargetEnvironment": { # ComputeInstanceTargetEnvironment represents Compute Engine target environment to be used during restore. # Compute Engine target environment to be used during restore.
    "project": "A String", # Required. Target project for the Compute Engine instance.
    "zone": "A String", # Required. The zone of the Compute Engine instance.
  },
  "requestId": "A String", # Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}