Microsoft Azure Recovery Services Backup Management Client Library for Python
npx @tessl/cli install tessl/pypi-azure-mgmt-recoveryservicesbackup@9.2.0The Azure Recovery Services Backup Management Client Library provides comprehensive Python interfaces for managing Azure Backup services through the Azure Resource Manager API. It enables programmatic interaction with Azure Backup operations including vault management, backup policy configuration, backup item management, restore operations, and job monitoring.
pip install azure-mgmt-recoveryservicesbackup azure-identityfrom azure.identity import DefaultAzureCredential
from azure.mgmt.recoveryservicesbackup.activestamp import RecoveryServicesBackupClient
from azure.mgmt.recoveryservicesbackup.passivestamp import RecoveryServicesBackupPassiveClientFor asynchronous operations:
from azure.mgmt.recoveryservicesbackup.activestamp.aio import RecoveryServicesBackupClient as AsyncRecoveryServicesBackupClient
from azure.mgmt.recoveryservicesbackup.passivestamp.aio import RecoveryServicesBackupPassiveClient as AsyncRecoveryServicesBackupPassiveClientimport os
from azure.identity import DefaultAzureCredential
from azure.mgmt.recoveryservicesbackup.activestamp import RecoveryServicesBackupClient
# Authentication using environment variables:
# AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID
credential = DefaultAzureCredential()
subscription_id = os.getenv("AZURE_SUBSCRIPTION_ID")
# Create the main backup client
client = RecoveryServicesBackupClient(
credential=credential,
subscription_id=subscription_id
)
# List backup policies in a resource group
resource_group_name = "my-resource-group"
vault_name = "my-backup-vault"
policies = client.backup_policies.list(
resource_group_name=resource_group_name,
vault_name=vault_name
)
for policy in policies:
print(f"Policy: {policy.name}, Type: {policy.properties.backup_management_type}")
# Get backup status for a virtual machine
vm_resource_group = "vm-resource-group"
vm_name = "my-vm"
backup_status = client.backup_status.get(
azure_region="eastus",
parameters={
"resource_type": "VM",
"resource_id": f"/subscriptions/{subscription_id}/resourceGroups/{vm_resource_group}/providers/Microsoft.Compute/virtualMachines/{vm_name}",
"poQuery_type": "BackupStatus"
}
)
print(f"Protection status: {backup_status.protection_info.protection_status}")The library provides two main API variants designed for different backup scenarios:
Both variants offer:
Core client initialization and configuration for both ActiveStamp and PassiveStamp APIs, including authentication, subscription management, and client lifecycle operations.
class RecoveryServicesBackupClient:
def __init__(
self,
credential: TokenCredential,
subscription_id: str,
base_url: str = "https://management.azure.com",
**kwargs
): ...
class RecoveryServicesBackupPassiveClient:
def __init__(
self,
credential: TokenCredential,
subscription_id: str,
base_url: str = "https://management.azure.com",
**kwargs
): ...Comprehensive backup policy management including creation, modification, deletion, and assignment of backup policies. Supports various workload types including Azure VMs, SQL databases, file shares, and on-premises workloads.
class BackupPoliciesOperations:
def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[ProtectionPolicyResource]: ...
class ProtectionPoliciesOperations:
def get(self, resource_group_name: str, vault_name: str, policy_name: str, **kwargs) -> ProtectionPolicyResource: ...
def create_or_update(self, resource_group_name: str, vault_name: str, policy_name: str, parameters: ProtectionPolicyResource, **kwargs) -> ProtectionPolicyResource: ...
def delete(self, resource_group_name: str, vault_name: str, policy_name: str, **kwargs) -> None: ...Management of items under backup protection including virtual machines, databases, file shares, and workloads. Provides operations for enabling protection, modifying protection settings, and removing protection.
class BackupProtectedItemsOperations:
def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[BackupProtectedItemResource]: ...
class ProtectedItemsOperations:
def get(self, resource_group_name: str, vault_name: str, fabric_name: str, container_name: str, protected_item_name: str, **kwargs) -> BackupProtectedItemResource: ...
def create_or_update(self, resource_group_name: str, vault_name: str, fabric_name: str, container_name: str, protected_item_name: str, parameters: BackupProtectedItemResource, **kwargs) -> BackupProtectedItemResource: ...
def delete(self, resource_group_name: str, vault_name: str, fabric_name: str, container_name: str, protected_item_name: str, **kwargs) -> None: ...Execution and management of backup operations including on-demand backups, backup scheduling, and backup job monitoring. Supports all Azure Backup workload types with comprehensive status tracking.
class BackupsOperations:
def trigger(self, resource_group_name: str, vault_name: str, fabric_name: str, container_name: str, protected_item_name: str, parameters: BackupRequestResource, **kwargs) -> None: ...
class BackupJobsOperations:
def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[JobResource]: ...
class JobDetailsOperations:
def get(self, resource_group_name: str, vault_name: str, job_name: str, **kwargs) -> JobResource: ...
class JobCancellationsOperations:
def trigger(self, resource_group_name: str, vault_name: str, job_name: str, **kwargs) -> None: ...Comprehensive restore capabilities including full restore, file-level restore, and cross-region restore. Supports various restore targets and scenarios with detailed restore job tracking and management.
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: ...
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]: ...
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: ...Specialized operations for Cross-Region Restore (CRR) scenarios using the PassiveStamp API. Enables backup and restore operations across Azure regions for disaster recovery and compliance requirements.
class CrossRegionRestoreOperations:
def trigger(self, azure_region: str, parameters: CrossRegionRestoreRequestResource, **kwargs) -> None: ...
def get_operation_status(self, azure_region: str, operation_id: str, **kwargs) -> OperationStatus: ...Management of Recovery Services vault settings including storage configuration, encryption settings, and vault-level policies. Provides comprehensive vault administration capabilities.
class BackupResourceVaultConfigsOperations:
def get(self, resource_group_name: str, vault_name: str, **kwargs) -> BackupResourceVaultConfigResource: ...
def update(self, resource_group_name: str, vault_name: str, parameters: BackupResourceVaultConfigResource, **kwargs) -> BackupResourceVaultConfigResource: ...
class BackupResourceStorageConfigsOperations:
def get(self, resource_group_name: str, vault_name: str, **kwargs) -> BackupResourceStorageConfigResource: ...
def update(self, resource_group_name: str, vault_name: str, parameters: BackupResourceStorageConfigResource, **kwargs) -> None: ...Comprehensive backup and restore job lifecycle management including job monitoring, cancellation, result retrieval, and detailed status tracking across all supported workload types.
class BackupJobsOperations:
def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[JobResource]: ...
class JobDetailsOperations:
def get(self, resource_group_name: str, vault_name: str, job_name: str, **kwargs) -> JobResource: ...
class JobCancellationsOperations:
def trigger(self, resource_group_name: str, vault_name: str, job_name: str, **kwargs) -> None: ...
class JobsOperations:
def export(self, resource_group_name: str, vault_name: str, **kwargs) -> None: ...# Base resource types
class Resource:
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: Optional[str]
tags: Optional[Dict[str, str]]
class ProxyResource(Resource):
pass
# Backup management types
class BackupManagementType(str, Enum):
AZURE_IAAS_VM = "AzureIaasVM"
AZURE_STORAGE = "AzureStorage"
AZURE_WORKLOAD = "AzureWorkload"
DPM = "DPM"
MABS = "MABS"
INVALID = "Invalid"
# Workload types
class WorkloadType(str, Enum):
VM = "VM"
FILE_SHARE = "FileShare"
SQL_DB = "SQLDB"
SAP_HANA_DATABASE = "SAPHanaDatabase"
EXCHANGE = "Exchange"
SHAREPOINT = "Sharepoint"
INVALID = "Invalid"
# Job status enumeration
class JobStatus(str, Enum):
INVALID = "Invalid"
IN_PROGRESS = "InProgress"
COMPLETED = "Completed"
FAILED = "Failed"
COMPLETED_WITH_WARNINGS = "CompletedWithWarnings"
CANCELLED = "Cancelled"
CANCELLING = "Cancelling"