CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-mgmt-recoveryservicesbackup

Microsoft Azure Recovery Services Backup Management Client Library for Python

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

restore-operations.mddocs/

Restore Operations

Comprehensive restore capabilities including full restore, file-level restore, and recovery point management. Supports various restore targets and scenarios with detailed restore job tracking, flexible recovery point selection, and advanced restore configurations across all Azure Backup workload types.

Capabilities

Restore Execution

Core operations for triggering and managing restore operations across all supported workload types.

class RestoresOperations:
    def trigger(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        recovery_point_id: str,
        parameters: RestoreRequestResource,
        **kwargs
    ) -> None:
        """
        Trigger a restore operation for a protected item.

        Parameters:
        - resource_group_name: Resource group containing the vault
        - vault_name: Recovery Services vault name
        - fabric_name: Fabric name (usually "Azure")
        - container_name: Container hosting the protected item
        - protected_item_name: Name of the protected item
        - recovery_point_id: ID of the recovery point to restore from
        - parameters: Restore request configuration
        - kwargs: Additional options

        Returns:
        None (operation is asynchronous - monitor via job operations)
        """

Usage example:

from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    RestoreRequestResource,
    IaasVMRestoreRequest
)

# Restore VM to original location
restore_request = RestoreRequestResource(
    properties=IaasVMRestoreRequest(
        recovery_point_id="recovery-point-id-12345",
        recovery_type="OriginalLocation",
        create_new_cloud_service=False,
        original_storage_account_option=False,
        encryption_details={
            "encryption_enabled": False
        }
    )
)

client.restores.trigger(
    resource_group_name="my-rg",
    vault_name="my-vault",
    fabric_name="Azure",
    container_name="iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm",
    protected_item_name="vm;iaasvmcontainerv2;vm-rg;my-vm",
    recovery_point_id="recovery-point-id-12345",
    parameters=restore_request
)

print("Restore operation triggered successfully")

Recovery Point Management

Operations for discovering, listing, and managing recovery points available for restore.

class RecoveryPointsOperations:
    def list(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        **kwargs
    ) -> Iterable[RecoveryPointResource]:
        """
        List recovery points for a protected item.

        Parameters:
        - resource_group_name: Resource group containing the vault
        - vault_name: Recovery Services vault name
        - fabric_name: Fabric name (usually "Azure")
        - container_name: Container hosting the protected item
        - protected_item_name: Name of the protected item
        - kwargs: Filter options (start_date, end_date, etc.)

        Returns:
        Iterable of RecoveryPointResource objects
        """

    def get(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        recovery_point_id: str,
        **kwargs
    ) -> RecoveryPointResource:
        """
        Get details of a specific recovery point.

        Parameters:
        - resource_group_name: Resource group containing the vault
        - vault_name: Recovery Services vault name
        - fabric_name: Fabric name (usually "Azure")
        - container_name: Container hosting the protected item
        - protected_item_name: Name of the protected item
        - recovery_point_id: ID of the recovery point
        - kwargs: Additional options

        Returns:
        RecoveryPointResource with detailed recovery point information
        """

Usage example:

# List recovery points for a VM
recovery_points = client.recovery_points.list(
    "my-rg", "my-vault", "Azure",
    "iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm",
    "vm;iaasvmcontainerv2;vm-rg;my-vm"
)

for rp in recovery_points:
    print(f"Recovery Point: {rp.name}, Time: {rp.properties.recovery_point_time}")

# Get specific recovery point details
latest_rp = client.recovery_points.get(
    "my-rg", "my-vault", "Azure",
    "iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm", 
    "vm;iaasvmcontainerv2;vm-rg;my-vm",
    "recovery-point-id-12345"
)

print(f"Recovery Point Type: {latest_rp.properties.recovery_point_type}")
print(f"Consistency Type: {latest_rp.properties.recovery_point_additional_info}")

Restore Request Types

IaaS VM Restore Request

Restore request for Azure virtual machines with various restore scenarios.

class IaasVMRestoreRequest:
    def __init__(
        self,
        recovery_point_id: Optional[str] = None,
        recovery_type: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        target_virtual_machine_id: Optional[str] = None,
        target_resource_group_id: Optional[str] = None,
        storage_account_id: Optional[str] = None,
        virtual_network_id: Optional[str] = None,
        subnet_id: Optional[str] = None,
        target_domain_name_id: Optional[str] = None,
        region: Optional[str] = None,
        affinity_group: Optional[str] = None,
        create_new_cloud_service: Optional[bool] = None,
        original_storage_account_option: Optional[bool] = None,
        encryption_details: Optional[EncryptionDetails] = None,
        restore_disk_lun_list: Optional[List[int]] = None,
        restore_with_managed_disks: Optional[bool] = None,
        disk_encryption_set_id: Optional[str] = None,
        zones: Optional[List[str]] = None,
        identity_info: Optional[IdentityInfo] = None,
        identity_based_restore_details: Optional[IdentityBasedRestoreDetails] = None,
        **kwargs
    ):
        """
        IaaS VM restore request.

        Parameters:
        - recovery_point_id: ID of the recovery point to restore from
        - recovery_type: "OriginalLocation", "AlternateLocation", "RestoreDisks"
        - source_resource_id: Resource ID of the source VM
        - target_virtual_machine_id: Target VM resource ID (for alternate location)
        - target_resource_group_id: Target resource group ID
        - storage_account_id: Storage account for restore operation
        - virtual_network_id: Target virtual network ID
        - subnet_id: Target subnet ID
        - target_domain_name_id: Target domain name ID
        - region: Target Azure region
        - affinity_group: Affinity group for the restore
        - create_new_cloud_service: Whether to create a new cloud service
        - original_storage_account_option: Use original storage account
        - encryption_details: Encryption configuration for restored VM
        - restore_disk_lun_list: List of disk LUNs to restore
        - restore_with_managed_disks: Whether to restore as managed disks
        - disk_encryption_set_id: Disk encryption set ID
        - zones: Availability zones for the restored VM
        - identity_info: Managed identity information
        - identity_based_restore_details: Identity-based restore configuration
        """

    recovery_point_id: Optional[str]
    recovery_type: Optional[str]
    source_resource_id: Optional[str]
    target_virtual_machine_id: Optional[str]
    target_resource_group_id: Optional[str]
    storage_account_id: Optional[str]
    virtual_network_id: Optional[str]
    subnet_id: Optional[str]
    target_domain_name_id: Optional[str]
    region: Optional[str]
    affinity_group: Optional[str]
    create_new_cloud_service: Optional[bool]
    original_storage_account_option: Optional[bool]
    encryption_details: Optional[EncryptionDetails]
    restore_disk_lun_list: Optional[List[int]]
    restore_with_managed_disks: Optional[bool]
    disk_encryption_set_id: Optional[str]
    zones: Optional[List[str]]
    identity_info: Optional[IdentityInfo]
    identity_based_restore_details: Optional[IdentityBasedRestoreDetails]

Azure File Share Restore Request

Restore request for Azure file shares with file-level and share-level restore options.

class AzureFileShareRestoreRequest:
    def __init__(
        self,
        recovery_type: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        copy_options: Optional[str] = None,
        restore_request_type: Optional[str] = None,
        restore_file_specs: Optional[List[RestoreFileSpecs]] = None,
        target_details: Optional[TargetAFSRestoreInfo] = None,
        **kwargs
    ):
        """
        Azure file share restore request.

        Parameters:
        - recovery_type: "OriginalLocation", "AlternateLocation"
        - source_resource_id: Resource ID of the source file share
        - copy_options: "CreateCopy", "Skip", "Overwrite", "FailOnConflict"
        - restore_request_type: "FullShareRestore", "ItemLevelRestore"
        - restore_file_specs: List of files/folders to restore (for item-level)
        - target_details: Target file share details (for alternate location)
        """

    recovery_type: Optional[str]
    source_resource_id: Optional[str]
    copy_options: Optional[str]
    restore_request_type: Optional[str]
    restore_file_specs: Optional[List[RestoreFileSpecs]]
    target_details: Optional[TargetAFSRestoreInfo]

Azure Workload Restore Request

Restore request for workloads running inside Azure VMs (SQL Server, SAP HANA, etc.).

class AzureWorkloadRestoreRequest:
    def __init__(
        self,
        recovery_type: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        property_bag: Optional[Dict[str, str]] = None,
        target_info: Optional[TargetRestoreInfo] = None,
        recovery_mode: Optional[str] = None,
        target_virtual_machine_id: Optional[str] = None,
        **kwargs
    ):
        """
        Azure workload restore request.

        Parameters:
        - recovery_type: "OriginalLocation", "AlternateLocation"
        - source_resource_id: Resource ID of the source workload
        - property_bag: Additional properties for the restore
        - target_info: Target workload details
        - recovery_mode: "FileRecovery", "WorkloadRecovery"
        - target_virtual_machine_id: Target VM resource ID
        """

    recovery_type: Optional[str]
    source_resource_id: Optional[str]
    property_bag: Optional[Dict[str, str]]
    target_info: Optional[TargetRestoreInfo]
    recovery_mode: Optional[str]
    target_virtual_machine_id: Optional[str]

Azure Workload SQL Point In Time Restore Request

Specialized restore request for SQL databases with point-in-time recovery.

class AzureWorkloadSQLPointInTimeRestoreRequest:
    def __init__(
        self,
        recovery_type: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        property_bag: Optional[Dict[str, str]] = None,
        target_info: Optional[TargetRestoreInfo] = None,
        recovery_mode: Optional[str] = None,
        target_virtual_machine_id: Optional[str] = None,
        point_in_time: Optional[datetime] = None,
        **kwargs
    ):
        """
        Azure workload SQL point-in-time restore request.

        Parameters:
        - recovery_type: "OriginalLocation", "AlternateLocation"
        - source_resource_id: Resource ID of the source SQL database
        - property_bag: Additional properties for the restore
        - target_info: Target database details
        - recovery_mode: "FileRecovery", "WorkloadRecovery"
        - target_virtual_machine_id: Target VM resource ID
        - point_in_time: Point in time to restore to
        """

    recovery_type: Optional[str]
    source_resource_id: Optional[str]
    property_bag: Optional[Dict[str, str]]
    target_info: Optional[TargetRestoreInfo]
    recovery_mode: Optional[str]
    target_virtual_machine_id: Optional[str]
    point_in_time: Optional[datetime]

Recovery Point Types

IaaS VM Recovery Point

Recovery point information for Azure virtual machines.

class IaasVMRecoveryPoint:
    def __init__(
        self,
        recovery_point_type: Optional[str] = None,
        recovery_point_time: Optional[datetime] = None,
        recovery_point_additional_info: Optional[str] = None,
        source_vm_storage_type: Optional[str] = None,
        is_source_vm_encrypted: Optional[bool] = None,
        key_and_secret: Optional[KeyAndSecretDetails] = None,
        is_instant_ilr_session_active: Optional[bool] = None,
        recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]] = None,
        is_managed_virtual_machine: Optional[bool] = None,
        virtual_machine_size: Optional[str] = None,
        original_storage_account_option: Optional[bool] = None,
        os_type: Optional[str] = None,
        recovery_point_disk_configuration: Optional[RecoveryPointDiskConfiguration] = None,
        zones: Optional[List[str]] = None,
        **kwargs
    ):
        """
        IaaS VM recovery point.

        Parameters:
        - recovery_point_type: "AppConsistent", "CrashConsistent", "FileSystemConsistent"
        - recovery_point_time: Time when the recovery point was created
        - recovery_point_additional_info: Additional recovery point information
        - source_vm_storage_type: Storage type of the source VM
        - is_source_vm_encrypted: Whether the source VM is encrypted
        - key_and_secret: Encryption key and secret details
        - is_instant_ilr_session_active: Whether instant ILR session is active
        - recovery_point_tier_details: Tier information for the recovery point
        - is_managed_virtual_machine: Whether VM uses managed disks
        - virtual_machine_size: Size of the virtual machine
        - original_storage_account_option: Original storage account option
        - os_type: Operating system type
        - recovery_point_disk_configuration: Disk configuration details
        - zones: Availability zones
        """

    recovery_point_type: Optional[str]
    recovery_point_time: Optional[datetime]
    recovery_point_additional_info: Optional[str]
    source_vm_storage_type: Optional[str]
    is_source_vm_encrypted: Optional[bool]
    key_and_secret: Optional[KeyAndSecretDetails]
    is_instant_ilr_session_active: Optional[bool]
    recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]]
    is_managed_virtual_machine: Optional[bool]
    virtual_machine_size: Optional[str]
    original_storage_account_option: Optional[bool]
    os_type: Optional[str]
    recovery_point_disk_configuration: Optional[RecoveryPointDiskConfiguration]
    zones: Optional[List[str]]

Azure File Share Recovery Point

Recovery point information for Azure file shares.

class AzureFileShareRecoveryPoint:
    def __init__(
        self,
        recovery_point_type: Optional[str] = None,
        recovery_point_time: Optional[datetime] = None,
        file_share_snapshot_uri: Optional[str] = None,
        recovery_point_size_in_gb: Optional[int] = None,
        recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]] = None,
        **kwargs
    ):
        """
        Azure file share recovery point.

        Parameters:
        - recovery_point_type: Type of recovery point
        - recovery_point_time: Time when the recovery point was created
        - file_share_snapshot_uri: URI of the file share snapshot
        - recovery_point_size_in_gb: Size of the recovery point in GB
        - recovery_point_tier_details: Tier information for the recovery point
        """

    recovery_point_type: Optional[str]
    recovery_point_time: Optional[datetime]
    file_share_snapshot_uri: Optional[str]
    recovery_point_size_in_gb: Optional[int]
    recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]]

Azure Workload Recovery Point

Recovery point information for workloads running inside Azure VMs.

class AzureWorkloadRecoveryPoint:
    def __init__(
        self,
        recovery_point_time_in_utc: Optional[datetime] = None,
        type: Optional[str] = None,
        recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]] = None,
        recovery_point_move_readiness_info: Optional[Dict[str, RecoveryPointMoveReadinessInfo]] = None,
        **kwargs
    ):
        """
        Azure workload recovery point.

        Parameters:
        - recovery_point_time_in_utc: UTC time when recovery point was created
        - type: Type of recovery point ("Full", "Log", "Differential")
        - recovery_point_tier_details: Tier information for the recovery point
        - recovery_point_move_readiness_info: Move readiness information
        """

    recovery_point_time_in_utc: Optional[datetime]
    type: Optional[str]
    recovery_point_tier_details: Optional[List[RecoveryPointTierInformation]]
    recovery_point_move_readiness_info: Optional[Dict[str, RecoveryPointMoveReadinessInfo]]

Usage Examples

Restore VM to Original Location

from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    RestoreRequestResource,
    IaasVMRestoreRequest
)

# Restore VM to its original location
restore_request = RestoreRequestResource(
    properties=IaasVMRestoreRequest(
        recovery_point_id="recovery-point-id-12345",
        recovery_type="OriginalLocation",
        source_resource_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/my-vm",
        create_new_cloud_service=False,
        original_storage_account_option=True,
        encryption_details={"encryption_enabled": False}
    )
)

client.restores.trigger(
    resource_group_name="my-rg",
    vault_name="my-vault",
    fabric_name="Azure",
    container_name="iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm",
    protected_item_name="vm;iaasvmcontainerv2;vm-rg;my-vm",
    recovery_point_id="recovery-point-id-12345",
    parameters=restore_request
)

Restore VM to Alternate Location

# Restore VM to different resource group/location
alternate_restore = RestoreRequestResource(
    properties=IaasVMRestoreRequest(
        recovery_point_id="recovery-point-id-12345",
        recovery_type="AlternateLocation",
        source_resource_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/my-vm",
        target_resource_group_id="/subscriptions/sub-id/resourceGroups/restored-vms",
        storage_account_id="/subscriptions/sub-id/resourceGroups/storage-rg/providers/Microsoft.Storage/storageAccounts/restorestorage",
        virtual_network_id="/subscriptions/sub-id/resourceGroups/network-rg/providers/Microsoft.Network/virtualNetworks/restore-vnet",
        subnet_id="/subscriptions/sub-id/resourceGroups/network-rg/providers/Microsoft.Network/virtualNetworks/restore-vnet/subnets/default",
        region="eastus2",
        restore_with_managed_disks=True
    )
)

client.restores.trigger(
    resource_group_name="my-rg",
    vault_name="my-vault",
    fabric_name="Azure",
    container_name="iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm",
    protected_item_name="vm;iaasvmcontainerv2;vm-rg;my-vm",
    recovery_point_id="recovery-point-id-12345",
    parameters=alternate_restore
)

Restore Specific Files from File Share

from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    RestoreRequestResource,
    AzureFileShareRestoreRequest,
    RestoreFileSpecs
)

# Restore specific files from Azure file share
file_restore = RestoreRequestResource(
    properties=AzureFileShareRestoreRequest(
        recovery_type="OriginalLocation",
        source_resource_id="/subscriptions/sub-id/resourceGroups/storage-rg/providers/Microsoft.Storage/storageAccounts/mystorageaccount/fileServices/default/fileshares/myfileshare",
        copy_options="Overwrite",
        restore_request_type="ItemLevelRestore",
        restore_file_specs=[
            RestoreFileSpecs(
                path="documents/important.docx",
                file_spec_type="File",
                target_folder_path="restored/"
            ),
            RestoreFileSpecs(
                path="data/",
                file_spec_type="Folder", 
                target_folder_path="restored/"
            )
        ]
    )
)

client.restores.trigger(
    resource_group_name="my-rg",
    vault_name="my-vault",
    fabric_name="Azure",
    container_name="storagecontainer;storage;storage-rg;mystorageaccount",
    protected_item_name="azurefileshare;myfileshare",
    recovery_point_id="recovery-point-id-12345",
    parameters=file_restore
)

SQL Database Point-in-Time Restore

from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    RestoreRequestResource,
    AzureWorkloadSQLPointInTimeRestoreRequest
)
from datetime import datetime

# Restore SQL database to specific point in time
sql_restore = RestoreRequestResource(
    properties=AzureWorkloadSQLPointInTimeRestoreRequest(
        recovery_type="AlternateLocation",
        source_resource_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/sql-vm",
        target_virtual_machine_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/sql-vm",
        point_in_time=datetime(2024, 1, 15, 14, 30, 0),
        recovery_mode="WorkloadRecovery",
        target_info={
            "overwrite_option": "AlternateDatabase",
            "database_name": "RestoredDatabase",
            "container_id": "vmappcontainer;compute;vm-rg;sql-vm"
        }
    )
)

client.restores.trigger(
    resource_group_name="my-rg", 
    vault_name="my-vault",
    fabric_name="Azure",
    container_name="vmappcontainer;compute;vm-rg;sql-vm",
    protected_item_name="sqldatabase;mssqlserver;originaldb",
    recovery_point_id="point-in-time-recovery",
    parameters=sql_restore
)

Install with Tessl CLI

npx tessl i tessl/pypi-azure-mgmt-recoveryservicesbackup

docs

backup-operations.md

backup-policies.md

client-management.md

cross-region-restore.md

index.md

job-management.md

protected-items.md

restore-operations.md

vault-configuration.md

tile.json