Backup Instances - Validate For Restore

Validates if Restore can be triggered for a DataSource

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore?api-version=2023-01-01

URI Parameters

Name In Required Type Description
backupInstanceName
path True

string

The name of the backup instance.

resourceGroupName
path True

string

The name of the resource group. The name is case insensitive.

subscriptionId
path True

string

uuid

The ID of the target subscription. The value must be an UUID.

vaultName
path True

string

The name of the backup vault.

api-version
query True

string

The API version to use for this operation.

Request Body

Name Required Type Description
restoreRequestObject True AzureBackupRestoreRequest:
  • AzureBackupRecoveryPointBasedRestoreRequest
  • AzureBackupRecoveryTimeBasedRestoreRequest
  • AzureBackupRestoreWithRehydrationRequest

AzureBackupRestoreRequest
Gets or sets the restore request object.

Responses

Name Type Description
200 OK

OperationJobExtendedInfo

Contains additional information like job Id

202 Accepted

The operation will be completed asynchronously.

Headers

  • Location: string
  • Azure-AsyncOperation: string
  • Retry-After: integer
Other Status Codes

CloudError

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation impersonate your user account.

Examples

Validate Restore

Sample Request

POST https://management.azure.com/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/000pikumar/providers/Microsoft.DataProtection/backupVaults/PratikPrivatePreviewVault1/backupInstances/testInstance1/validateRestore?api-version=2023-01-01

{
  "restoreRequestObject": {
    "objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
    "recoveryPointId": "hardcodedRP",
    "sourceDataStoreType": "VaultStore",
    "sourceResourceId": "/subscriptions/f75d8d8b-6735-4697-82e1-1a7a3ff0d5d4/resourceGroups/viveksipgtest/providers/Microsoft.DBforPostgreSQL/servers/viveksipgtest/databases/testdb",
    "restoreTargetInfo": {
      "objectType": "RestoreTargetInfo",
      "recoveryOption": "FailIfExists",
      "datasourceSetInfo": {
        "objectType": "DatasourceSet",
        "resourceID": "/subscriptions/f75d8d8b-6735-4697-82e1-1a7a3ff0d5d4/resourceGroups/viveksipgtest/providers/Microsoft.DBforPostgreSQL/servers/viveksipgtest",
        "resourceName": "viveksipgtest",
        "resourceType": "Microsoft.DBforPostgreSQL/servers",
        "resourceUri": "",
        "resourceLocation": "",
        "datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
      },
      "datasourceInfo": {
        "objectType": "Datasource",
        "resourceID": "/subscriptions/f75d8d8b-6735-4697-82e1-1a7a3ff0d5d4/resourceGroups/viveksipgtest/providers/Microsoft.DBforPostgreSQL/servers/viveksipgtest/databases/targetdb",
        "resourceName": "targetdb",
        "resourceType": "Microsoft.DBforPostgreSQL/servers/databases",
        "resourceUri": "",
        "resourceLocation": "",
        "datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
      },
      "datasourceAuthCredentials": {
        "secretStoreResource": {
          "uri": "https://samplevault.vault.azure.net/secrets/credentials",
          "secretStoreType": "AzureKeyVault"
        },
        "objectType": "SecretStoreBasedAuthCredentials"
      },
      "restoreLocation": "southeastasia"
    }
  }
}

Sample Response

Location: https://management.azure.com/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/000pikumar/providers/Microsoft.DataProtection/operationResults/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2023-01-01
Azure-AsyncOperation: https://management.azure.com/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/000pikumar/providers/Microsoft.DataProtection/backupVaults/PratikPrivatePreviewVault1/operationStatus/ZTA4YjQ0ZGYtYmNkNS00YTk1LWFjZTMtOTc1MjNmZWIxYWZlO2Y1ODg1MzA3LWJkNjItNDQ2OC05ZjZlLTJkMGM2NjNiNmJmNg==?api-version=2023-01-01
Retry-After: 60
{
  "jobId": "c60cb49-63e8-4b21-b9bd-26277b3fdfae",
  "objectType": "OperationJobExtendedInfo"
}

Definitions

Name Description
AzureBackupRecoveryPointBasedRestoreRequest

AzureBackupRecoveryPointBasedRestoreRequest

AzureBackupRecoveryTimeBasedRestoreRequest

AzureBackupRecoveryTimeBasedRestoreRequest

AzureBackupRestoreWithRehydrationRequest

AzureBackupRestoreWithRehydrationRequest

CloudError

CloudError

Datasource

Datasource

DatasourceSet

DatasourceSet

Error

The resource management error response.

ErrorAdditionalInfo

The resource management error additional info.

ExistingResourcePolicy

Gets or sets the Conflict Policy property. This property sets policy during conflict of resources during restore.

ItemLevelRestoreTargetInfo

Restore target info for Item level restore operation

ItemPathBasedRestoreCriteria

Prefix criteria to be used to during restore

KubernetesClusterRestoreCriteria

kubernetes Cluster Backup target info for restore operation

KubernetesPVRestoreCriteria

Item Level kubernetes persistent volume target info for restore operation

KubernetesStorageClassRestoreCriteria

Item Level kubernetes storage class target info for restore operation

OperationJobExtendedInfo

OperationJobExtendedInfo

PersistentVolumeRestoreMode

Gets or sets the PV (Persistent Volume) Restore Mode property. This property sets whether volumes needs to be restored.

RangeBasedItemLevelRestoreCriteria

Item Level target info for restore operation

RecoveryOption

Recovery Option

RehydrationPriority

Priority to be used for rehydration. Values High or Standard

RestoreFilesTargetInfo

Class encapsulating restore as files target parameters

RestoreTargetInfo

Class encapsulating restore target parameters

RestoreTargetLocationType

Denotes the target location where the data will be restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}

SecretStoreBasedAuthCredentials

Secret store based authentication credentials.

SecretStoreResource

Class representing a secret store resource.

SecretStoreType

Gets or sets the type of secret store

SourceDataStoreType

Gets or sets the type of the source data store.

TargetDetails

Class encapsulating target details, used where the destination is not a datasource

ValidateRestoreRequestObject

ValidateRestoreRequestObject

AzureBackupRecoveryPointBasedRestoreRequest

AzureBackupRecoveryPointBasedRestoreRequest

Name Type Description
objectType string:

AzureBackupRecoveryPointBasedRestoreRequest

recoveryPointId

string

restoreTargetInfo RestoreTargetInfoBase:
  • ItemLevelRestoreTargetInfo
  • RestoreFilesTargetInfo
  • RestoreTargetInfo

Gets or sets the restore target information.

sourceDataStoreType

SourceDataStoreType

Gets or sets the type of the source data store.

sourceResourceId

string

Fully qualified Azure Resource Manager ID of the datasource which is being recovered.

AzureBackupRecoveryTimeBasedRestoreRequest

AzureBackupRecoveryTimeBasedRestoreRequest

Name Type Description
objectType string:

AzureBackupRecoveryTimeBasedRestoreRequest

recoveryPointTime

string

The recovery time in ISO 8601 format example - 2020-08-14T17:30:00.0000000Z.

restoreTargetInfo RestoreTargetInfoBase:
  • ItemLevelRestoreTargetInfo
  • RestoreFilesTargetInfo
  • RestoreTargetInfo

Gets or sets the restore target information.

sourceDataStoreType

SourceDataStoreType

Gets or sets the type of the source data store.

sourceResourceId

string

Fully qualified Azure Resource Manager ID of the datasource which is being recovered.

AzureBackupRestoreWithRehydrationRequest

AzureBackupRestoreWithRehydrationRequest

Name Type Description
objectType string:

AzureBackupRestoreWithRehydrationRequest

recoveryPointId

string

rehydrationPriority

RehydrationPriority

Priority to be used for rehydration. Values High or Standard

rehydrationRetentionDuration

string

Retention duration in ISO 8601 format i.e P10D .

restoreTargetInfo RestoreTargetInfoBase:
  • ItemLevelRestoreTargetInfo
  • RestoreFilesTargetInfo
  • RestoreTargetInfo

Gets or sets the restore target information.

sourceDataStoreType

SourceDataStoreType

Gets or sets the type of the source data store.

sourceResourceId

string

Fully qualified Azure Resource Manager ID of the datasource which is being recovered.

CloudError

CloudError

Name Type Description
error

Error

The resource management error response.

Datasource

Datasource

Name Type Description
datasourceType

string

DatasourceType of the resource.

objectType

string

Type of Datasource object, used to initialize the right inherited type

resourceID

string

Full ARM ID of the resource. For azure resources, this is ARM ID. For non azure resources, this will be the ID created by backup service via Fabric/Vault.

resourceLocation

string

Location of datasource.

resourceName

string

Unique identifier of the resource in the context of parent.

resourceType

string

Resource Type of Datasource.

resourceUri

string

Uri of the resource.

DatasourceSet

DatasourceSet

Name Type Description
datasourceType

string

DatasourceType of the resource.

objectType

string

Type of Datasource object, used to initialize the right inherited type

resourceID

string

Full ARM ID of the resource. For azure resources, this is ARM ID. For non azure resources, this will be the ID created by backup service via Fabric/Vault.

resourceLocation

string

Location of datasource.

resourceName

string

Unique identifier of the resource in the context of parent.

resourceType

string

Resource Type of Datasource.

resourceUri

string

Uri of the resource.

Error

The resource management error response.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

Error[]

The error details.

message

string

The error message.

target

string

The error target.

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ExistingResourcePolicy

Gets or sets the Conflict Policy property. This property sets policy during conflict of resources during restore.

Name Type Description
Patch

string

Skip

string

ItemLevelRestoreTargetInfo

Restore target info for Item level restore operation

Name Type Description
datasourceAuthCredentials AuthCredentials:

SecretStoreBasedAuthCredentials

Credentials to use to authenticate with data source provider.

datasourceInfo

Datasource

Datasource
Information of target DS

datasourceSetInfo

DatasourceSet

DatasourceSet
Information of target DS Set

objectType string:

ItemLevelRestoreTargetInfo

Type of Datasource object, used to initialize the right inherited type

recoveryOption

RecoveryOption

Recovery Option

restoreCriteria ItemLevelRestoreCriteria[]:
  • ItemPathBasedRestoreCriteria[]
  • KubernetesClusterRestoreCriteria[]
  • KubernetesPVRestoreCriteria[]
  • KubernetesStorageClassRestoreCriteria[]
  • RangeBasedItemLevelRestoreCriteria[]

Restore Criteria

restoreLocation

string

Target Restore region

ItemPathBasedRestoreCriteria

Prefix criteria to be used to during restore

Name Type Description
isPathRelativeToBackupItem

boolean

Flag to specify if the path is relative to backup item or full path

itemPath

string

The path of the item to be restored. It could be the full path of the item or the path relative to the backup item

objectType string:

ItemPathBasedRestoreCriteria

Type of the specific object - used for deserializing

subItemPathPrefix

string[]

The list of prefix strings to be used as filter criteria during restore. These are relative to the item path specified.

KubernetesClusterRestoreCriteria

kubernetes Cluster Backup target info for restore operation

Name Type Description
conflictPolicy

ExistingResourcePolicy

Gets or sets the Conflict Policy property. This property sets policy during conflict of resources during restore.

excludedNamespaces

string[]

Gets or sets the exclude namespaces property. This property sets the namespaces to be excluded during restore.

excludedResourceTypes

string[]

Gets or sets the exclude resource types property. This property sets the resource types to be excluded during restore.

includeClusterScopeResources

boolean

Gets or sets the include cluster resources property. This property if enabled will include cluster scope resources during restore.

includedNamespaces

string[]

Gets or sets the include namespaces property. This property sets the namespaces to be included during restore.

includedResourceTypes

string[]

Gets or sets the include resource types property. This property sets the resource types to be included during restore.

labelSelectors

string[]

Gets or sets the LabelSelectors property. This property sets the resource with such label selectors to be included during restore.

namespaceMappings

object

Gets or sets the Namespace Mappings property. This property sets if namespace needs to be change during restore.

objectType string:

KubernetesClusterRestoreCriteria

Type of the specific object - used for deserializing

persistentVolumeRestoreMode

PersistentVolumeRestoreMode

Gets or sets the PV (Persistent Volume) Restore Mode property. This property sets whether volumes needs to be restored.

KubernetesPVRestoreCriteria

Item Level kubernetes persistent volume target info for restore operation

Name Type Description
name

string

Selected persistent volume claim name

objectType string:

KubernetesPVRestoreCriteria

Type of the specific object - used for deserializing

storageClassName

string

Selected storage class name for restore operation

KubernetesStorageClassRestoreCriteria

Item Level kubernetes storage class target info for restore operation

Name Type Description
objectType string:

KubernetesStorageClassRestoreCriteria

Type of the specific object - used for deserializing

provisioner

string

Provisioner of the storage class

selectedStorageClassName

string

Selected storage class name

OperationJobExtendedInfo

OperationJobExtendedInfo

Name Type Description
jobId

string

Arm Id of the job created for this operation.

objectType string:

OperationJobExtendedInfo

This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.

PersistentVolumeRestoreMode

Gets or sets the PV (Persistent Volume) Restore Mode property. This property sets whether volumes needs to be restored.

Name Type Description
RestoreWithVolumeData

string

RestoreWithoutVolumeData

string

RangeBasedItemLevelRestoreCriteria

Item Level target info for restore operation

Name Type Description
maxMatchingValue

string

maximum value for range prefix match

minMatchingValue

string

minimum value for range prefix match

objectType string:

RangeBasedItemLevelRestoreCriteria

Type of the specific object - used for deserializing

RecoveryOption

Recovery Option

Name Type Description
FailIfExists

string

RehydrationPriority

Priority to be used for rehydration. Values High or Standard

Name Type Description
High

string

Invalid

string

Standard

string

RestoreFilesTargetInfo

Class encapsulating restore as files target parameters

Name Type Description
objectType string:

RestoreFilesTargetInfo

Type of Datasource object, used to initialize the right inherited type

recoveryOption

RecoveryOption

Recovery Option

restoreLocation

string

Target Restore region

targetDetails

TargetDetails

Destination of RestoreAsFiles operation, when destination is not a datasource

RestoreTargetInfo

Class encapsulating restore target parameters

Name Type Description
datasourceAuthCredentials AuthCredentials:

SecretStoreBasedAuthCredentials

Credentials to use to authenticate with data source provider.

datasourceInfo

Datasource

Datasource
Information of target DS

datasourceSetInfo

DatasourceSet

DatasourceSet
Information of target DS Set

objectType string:

RestoreTargetInfo

Type of Datasource object, used to initialize the right inherited type

recoveryOption

RecoveryOption

Recovery Option

restoreLocation

string

Target Restore region

RestoreTargetLocationType

Denotes the target location where the data will be restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}

Name Type Description
AzureBlobs

string

AzureFiles

string

Invalid

string

SecretStoreBasedAuthCredentials

Secret store based authentication credentials.

Name Type Description
objectType string:

SecretStoreBasedAuthCredentials

Type of the specific object - used for deserializing

secretStoreResource

SecretStoreResource

Secret store resource

SecretStoreResource

Class representing a secret store resource.

Name Type Description
secretStoreType

SecretStoreType

Gets or sets the type of secret store

uri

string

Uri to get to the resource

value

string

Gets or sets value stored in secret store resource

SecretStoreType

Gets or sets the type of secret store

Name Type Description
AzureKeyVault

string

Invalid

string

SourceDataStoreType

Gets or sets the type of the source data store.

Name Type Description
ArchiveStore

string

OperationalStore

string

SnapshotStore

string

VaultStore

string

TargetDetails

Class encapsulating target details, used where the destination is not a datasource

Name Type Description
filePrefix

string

Restore operation may create multiple files inside location pointed by Url Below will be the common prefix for all of them

restoreTargetLocationType

RestoreTargetLocationType

Denotes the target location where the data will be restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}

targetResourceArmId

string

Full ARM Id denoting the restore destination. It is the ARM Id pointing to container / file share This is optional if the target subscription can be identified with the URL field. If not then this is needed if CrossSubscriptionRestore field of BackupVault is in any of the disabled states

url

string

Url denoting the restore destination. It can point to container / file share etc

ValidateRestoreRequestObject

ValidateRestoreRequestObject

Name Type Description
restoreRequestObject AzureBackupRestoreRequest:
  • AzureBackupRecoveryPointBasedRestoreRequest
  • AzureBackupRecoveryTimeBasedRestoreRequest
  • AzureBackupRestoreWithRehydrationRequest

AzureBackupRestoreRequest
Gets or sets the restore request object.