Method: projects.locations.backupVaults.dataSources.backups.restore

Restore from a Backup

HTTP request

POST https://backupdr.googleapis.com/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}:restore

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
name

string

Required. The resource name of the Backup instance, in the format 'projects/*/locations/*/backupVaults/*/dataSources/*/backups/'.

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestId": string,

  // Union field target_environment can be only one of the following:
  "computeInstanceTargetEnvironment": {
    object (ComputeInstanceTargetEnvironment)
  }
  // End of list of possible types for union field target_environment.

  // Union field instance_properties can be only one of the following:
  "computeInstanceRestoreProperties": {
    object (ComputeInstanceRestoreProperties)
  }
  // End of list of possible types for union field instance_properties.
}
Fields
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).

Union field target_environment. The target environment for the restore operation. target_environment can be only one of the following:
computeInstanceTargetEnvironment

object (ComputeInstanceTargetEnvironment)

Compute Engine target environment to be used during restore.

Union field instance_properties. The property overrides for the instance being restored. instance_properties can be only one of the following:
computeInstanceRestoreProperties

object (ComputeInstanceRestoreProperties)

Compute Engine instance properties to be overridden during restore.

Response body

If successful, the response body contains an instance of Operation.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • backupdr.bvbackups.restore

For more information, see the IAM documentation.

ComputeInstanceTargetEnvironment

ComputeInstanceTargetEnvironment represents Compute Engine target environment to be used during restore.

JSON representation
{
  "project": string,
  "zone": string
}
Fields
project

string

Required. Target project for the Compute Engine instance.

zone

string

Required. The zone of the Compute Engine instance.

ComputeInstanceRestoreProperties

ComputeInstanceRestoreProperties represents Compute Engine instance properties to be overridden during restore.

JSON representation
{
  "disks": [
    {
      object (AttachedDisk)
    }
  ],
  "guestAccelerators": [
    {
      object (AcceleratorConfig)
    }
  ],
  "labels": {
    string: string,
    ...
  },
  "networkInterfaces": [
    {
      object (NetworkInterface)
    }
  ],
  "resourcePolicies": [
    string
  ],
  "serviceAccounts": [
    {
      object (ServiceAccount)
    }
  ],
  "name": string,
  "advancedMachineFeatures": {
    object (AdvancedMachineFeatures)
  },
  "canIpForward": boolean,
  "confidentialInstanceConfig": {
    object (ConfidentialInstanceConfig)
  },
  "deletionProtection": boolean,
  "description": string,
  "displayDevice": {
    object (DisplayDevice)
  },
  "hostname": string,
  "instanceEncryptionKey": {
    object (CustomerEncryptionKey)
  },
  "keyRevocationActionType": enum (KeyRevocationActionType),
  "machineType": string,
  "metadata": {
    object (Metadata)
  },
  "minCpuPlatform": string,
  "networkPerformanceConfig": {
    object (NetworkPerformanceConfig)
  },
  "params": {
    object (InstanceParams)
  },
  "privateIpv6GoogleAccess": enum (InstancePrivateIpv6GoogleAccess),
  "reservationAffinity": {
    object (AllocationAffinity)
  },
  "scheduling": {
    object (Scheduling)
  },
  "tags": {
    object (Tags)
  }
}
Fields
disks[]

object (AttachedDisk)

Optional. Array of disks associated with this instance. Persistent disks must be created before you can assign them.

guestAccelerators[]

object (AcceleratorConfig)

Optional. A list of the type and count of accelerator cards attached to the instance.

labels

map (key: string, value: string)

Optional. Labels to apply to this instance.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

networkInterfaces[]

object (NetworkInterface)

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.

resourcePolicies[]

string

Optional. Resource policies applied to this instance.

serviceAccounts[]

object (ServiceAccount)

Optional. A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.

name

string

Required. Name of the compute instance.

advancedMachineFeatures

object (AdvancedMachineFeatures)

Optional. Controls for advanced machine-related behavior features.

canIpForward

boolean

Optional. Allows this instance to send and receive packets with non-matching destination or source IPs.

confidentialInstanceConfig

object (ConfidentialInstanceConfig)

Optional. Controls Confidential compute options on the instance

deletionProtection

boolean

Optional. Whether the resource should be protected against deletion.

description

string

Optional. An optional description of this resource. Provide this property when you create the resource.

displayDevice

object (DisplayDevice)

Optional. Enables display device for the instance.

hostname

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

object (CustomerEncryptionKey)

Optional. Encrypts suspended data for an instance with a customer-managed encryption key.

keyRevocationActionType

enum (KeyRevocationActionType)

Optional. KeyRevocationActionType of the instance.

machineType

string

Optional. Full or partial URL of the machine type resource to use for this instance.

metadata

object (Metadata)

Optional. This includes custom metadata and predefined keys.

minCpuPlatform

string

Optional. Minimum CPU platform to use for this instance.

networkPerformanceConfig

object (NetworkPerformanceConfig)

Optional. Configure network performance such as egress bandwidth tier.

params

object (InstanceParams)

Input only. Additional params passed with the request, but not persisted as part of resource payload.

privateIpv6GoogleAccess

enum (InstancePrivateIpv6GoogleAccess)

Optional. The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.

reservationAffinity

object (AllocationAffinity)

Optional. Specifies the reservations that this instance can consume from.

scheduling

object (Scheduling)

Optional. Sets the scheduling options for this instance.

tags

object (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.

AdvancedMachineFeatures

Specifies options for controlling advanced machine features.

JSON representation
{
  "enableNestedVirtualization": boolean,
  "threadsPerCore": integer,
  "visibleCoreCount": integer,
  "enableUefiNetworking": boolean
}
Fields
enableNestedVirtualization

boolean

Optional. Whether to enable nested virtualization or not (default is false).

threadsPerCore

integer

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

integer

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.

enableUefiNetworking

boolean

Optional. Whether to enable UEFI networking for instance creation.

ConfidentialInstanceConfig

A set of Confidential Instance options.

JSON representation
{
  "enableConfidentialCompute": boolean
}
Fields
enableConfidentialCompute

boolean

Optional. Defines whether the instance should have confidential compute enabled.

DisplayDevice

A set of Display Device options

JSON representation
{
  "enableDisplay": boolean
}
Fields
enableDisplay

boolean

Optional. Enables display for the Compute Engine VM

NetworkPerformanceConfig

Network performance configuration.

JSON representation
{
  "totalEgressBandwidthTier": enum (Tier)
}
Fields
totalEgressBandwidthTier

enum (Tier)

Optional. The tier of the total egress bandwidth.

Tier

Network performance tier.

Enums
TIER_UNSPECIFIED This value is unused.
DEFAULT Default network performance config.
TIER_1 Tier 1 network performance config.

InstanceParams

Additional instance params.

JSON representation
{
  "resourceManagerTags": {
    string: string,
    ...
  }
}
Fields
resourceManagerTags

map (key: string, value: string)

Optional. Resource manager tags to be bound to the instance.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

InstancePrivateIpv6GoogleAccess

The private IPv6 google access type for the VMs.

Enums
INSTANCE_PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED Default value. This value is unused.
INHERIT_FROM_SUBNETWORK Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork.
ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.
ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.

AllocationAffinity

Specifies the reservations that this instance can consume from.

JSON representation
{
  "values": [
    string
  ],
  "consumeReservationType": enum (Type),
  "key": string
}
Fields
values[]

string

Optional. Corresponds to the label values of a reservation resource.

consumeReservationType

enum (Type)

Optional. Specifies the type of reservation from which this instance can consume

key

string

Optional. Corresponds to the label key of a reservation resource.

Type

Indicates whether to consume from a reservation or not.

Enums
TYPE_UNSPECIFIED Default value. This value is unused.
NO_RESERVATION Do not consume from any allocated capacity.
ANY_RESERVATION Consume any allocation available.
SPECIFIC_RESERVATION Must consume from a specific reservation. Must specify key value fields for specifying the reservations.