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

protected-items.mddocs/

Protected Items

Management of items under backup protection including virtual machines, databases, file shares, and workloads. Provides comprehensive operations for enabling protection, modifying protection settings, monitoring backup status, and removing protection across all supported Azure Backup workload types.

Capabilities

Protected Item Management

Core operations for managing items that are currently protected by backup policies.

class BackupProtectedItemsOperations:
    def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[BackupProtectedItemResource]:
        """
        List all protected items in a Recovery Services vault.

        Parameters:
        - resource_group_name: Resource group containing the vault
        - vault_name: Recovery Services vault name
        - kwargs: Filter options (backup_management_type, workload_type, etc.)

        Returns:
        Iterable of BackupProtectedItemResource objects
        """

class ProtectedItemsOperations:
    def get(
        self, 
        resource_group_name: str, 
        vault_name: str, 
        fabric_name: str, 
        container_name: str, 
        protected_item_name: str, 
        **kwargs
    ) -> BackupProtectedItemResource:
        """
        Get details of a specific 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 name hosting the item
        - protected_item_name: Name of the protected item
        - kwargs: Additional options (expand, filter)

        Returns:
        BackupProtectedItemResource with detailed information
        """

    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:
        """
        Enable protection or update protection settings for an 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 name hosting the item
        - protected_item_name: Name of the item to protect
        - parameters: Protection configuration details
        - kwargs: Additional options

        Returns:
        Updated BackupProtectedItemResource
        """

    def delete(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str, 
        container_name: str,
        protected_item_name: str,
        **kwargs
    ) -> None:
        """
        Stop protection and optionally delete backup data for an 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 name hosting the item
        - protected_item_name: Name of the protected item
        - kwargs: Options including delete_backup_data flag
        """

Usage example:

# List all protected items
protected_items = client.backup_protected_items.list("my-rg", "my-vault")
for item in protected_items:
    print(f"Item: {item.name}, Type: {item.properties.workload_type}")

# Get specific protected VM
vm_item = client.protected_items.get(
    "my-rg", "my-vault", "Azure", "iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm", "vm;iaasvmcontainerv2;vm-rg;my-vm"
)
print(f"Protection status: {vm_item.properties.protection_status}")

# Enable protection for a VM
from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    BackupProtectedItemResource,
    AzureIaaSVMProtectedItem
)

protection_request = BackupProtectedItemResource(
    properties=AzureIaaSVMProtectedItem(
        backup_management_type="AzureIaasVM",
        workload_type="VM",
        policy_id="/subscriptions/sub-id/resourceGroups/my-rg/providers/Microsoft.RecoveryServices/vaults/my-vault/backupPolicies/DefaultPolicy",
        source_resource_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/my-vm"
    )
)

protected_item = client.protected_items.create_or_update(
    "my-rg", "my-vault", "Azure", "iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm", 
    "vm;iaasvmcontainerv2;vm-rg;my-vm", protection_request
)

Protected Item Operations

Advanced operations for protected items including operation tracking and status monitoring.

class ProtectedItemsOperations:
    def list(self, resource_group_name: str, vault_name: str, **kwargs) -> Iterable[ProtectedItemResource]:
        """List protected items with advanced filtering."""

    def get(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        **kwargs
    ) -> ProtectedItemResource:
        """Get protected item with detailed properties."""

    def create_or_update(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str, 
        protected_item_name: str,
        parameters: ProtectedItemResource,
        **kwargs
    ) -> ProtectedItemResource:
        """Create or update protected item configuration."""

    def delete(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        **kwargs
    ) -> None:
        """Remove protection from item."""

class ProtectedItemOperationResultsOperations:
    def get(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        operation_id: str,
        **kwargs
    ) -> ProtectedItemResource:
        """Get result of protected item operation."""

class ProtectedItemOperationStatusesOperations:
    def get(
        self,
        resource_group_name: str,
        vault_name: str,
        fabric_name: str,
        container_name: str,
        protected_item_name: str,
        operation_id: str,
        **kwargs
    ) -> OperationStatus:
        """Get status of protected item operation."""

Protected Item Types

Azure IaaS VM Protected Items

Protected items representing Azure virtual machines with comprehensive backup and restore capabilities.

class AzureIaaSVMProtectedItem:
    def __init__(
        self,
        backup_management_type: str = "AzureIaasVM",
        workload_type: str = "VM",
        container_name: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        policy_id: Optional[str] = None,
        last_recovery_point: Optional[datetime] = None,
        backup_set_name: Optional[str] = None,
        create_mode: Optional[str] = None,
        deferred_delete_time_in_utc: Optional[datetime] = None,
        is_deferred_delete_schedule_upcoming: Optional[bool] = None,
        is_rehydrate: Optional[bool] = None,
        resource_guard_operation_requests: Optional[List[str]] = None,
        is_archive_enabled: Optional[bool] = None,
        policy_name: Optional[str] = None,
        soft_delete_retention_period: Optional[int] = None,
        **kwargs
    ):
        """
        Azure IaaS VM protected item.

        Parameters:
        - backup_management_type: Always "AzureIaasVM"
        - workload_type: Always "VM"
        - container_name: Container hosting the VM
        - source_resource_id: Azure resource ID of the VM
        - policy_id: ID of the backup policy applied to the VM
        - last_recovery_point: Date/time of last successful backup
        - backup_set_name: Backup set identifier
        - create_mode: Protection creation mode
        - deferred_delete_time_in_utc: Soft delete expiration time
        - is_deferred_delete_schedule_upcoming: Whether soft delete is scheduled
        - is_rehydrate: Whether item is being rehydrated from archive
        - resource_guard_operation_requests: Resource guard operation identifiers
        - is_archive_enabled: Whether archive tier is enabled
        - policy_name: Name of the applied backup policy
        - soft_delete_retention_period: Soft delete retention period in days
        """

    backup_management_type: str
    workload_type: str
    container_name: Optional[str]
    source_resource_id: Optional[str]
    policy_id: Optional[str]
    last_recovery_point: Optional[datetime]
    backup_set_name: Optional[str]
    create_mode: Optional[str]
    deferred_delete_time_in_utc: Optional[datetime]
    is_deferred_delete_schedule_upcoming: Optional[bool]
    is_rehydrate: Optional[bool]
    resource_guard_operation_requests: Optional[List[str]]
    is_archive_enabled: Optional[bool]
    policy_name: Optional[str]
    soft_delete_retention_period: Optional[int]
    friendly_name: Optional[str]
    virtual_machine_id: Optional[str]
    protection_status: Optional[str]
    protection_state: Optional[str]
    health_status: Optional[str]
    health_details: Optional[List[AzureIaaSVMHealthDetails]]
    kpis_healths: Optional[Dict[str, AzureIaaSVMProtectedItemHealthStatus]]
    last_backup_status: Optional[str]
    last_backup_time: Optional[datetime]
    protected_item_data_id: Optional[str]
    protected_item_health_status: Optional[str]
    extended_info: Optional[AzureIaaSVMProtectedItemExtendedInfo]

Azure File Share Protected Items

Protected items for Azure file shares with snapshot-based backup protection.

class AzureFileshareProtectedItem:
    def __init__(
        self,
        backup_management_type: str = "AzureStorage",
        workload_type: str = "AzureFileShare",
        container_name: Optional[str] = None,
        source_resource_id: Optional[str] = None, 
        policy_id: Optional[str] = None,
        last_recovery_point: Optional[datetime] = None,
        friendly_name: Optional[str] = None,
        protection_status: Optional[str] = None,
        protection_state: Optional[str] = None,
        last_backup_status: Optional[str] = None,
        last_backup_time: Optional[datetime] = None,
        kpis_healths: Optional[Dict[str, str]] = None,
        extended_info: Optional[AzureFileshareProtectedItemExtendedInfo] = None,
        **kwargs
    ):
        """
        Azure file share protected item.

        Parameters:
        - backup_management_type: Always "AzureStorage"
        - workload_type: Always "AzureFileShare"
        - container_name: Storage account container name
        - source_resource_id: Azure resource ID of the file share
        - policy_id: ID of the backup policy
        - last_recovery_point: Date/time of last successful backup
        - friendly_name: Display name for the file share
        - protection_status: Current protection status
        - protection_state: Current protection state
        - last_backup_status: Status of the last backup operation
        - last_backup_time: Date/time of last backup attempt
        - kpis_healths: Key performance indicator health statuses
        - extended_info: Additional file share information
        """

    backup_management_type: str
    workload_type: str
    container_name: Optional[str]
    source_resource_id: Optional[str]
    policy_id: Optional[str]
    last_recovery_point: Optional[datetime]
    friendly_name: Optional[str]
    protection_status: Optional[str]
    protection_state: Optional[str]
    last_backup_status: Optional[str]
    last_backup_time: Optional[datetime]
    kpis_healths: Optional[Dict[str, str]]
    extended_info: Optional[AzureFileshareProtectedItemExtendedInfo]

Azure SQL Protected Items

Protected items for SQL databases with transaction log backup support.

class AzureSqlProtectedItem:
    def __init__(
        self,
        backup_management_type: str = "AzureSql",
        workload_type: str = "SQLDB",
        container_name: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        policy_id: Optional[str] = None,
        last_recovery_point: Optional[datetime] = None,
        protection_status: Optional[str] = None,
        protection_state: Optional[str] = None,
        extended_info: Optional[AzureSqlProtectedItemExtendedInfo] = None,
        **kwargs
    ):
        """
        Azure SQL database protected item.

        Parameters:
        - backup_management_type: Always "AzureSql"
        - workload_type: Always "SQLDB"
        - container_name: SQL server container name
        - source_resource_id: Azure resource ID of the SQL database
        - policy_id: ID of the backup policy
        - last_recovery_point: Date/time of last successful backup
        - protection_status: Current protection status
        - protection_state: Current protection state
        - extended_info: Additional SQL database information
        """

    backup_management_type: str
    workload_type: str
    container_name: Optional[str]
    source_resource_id: Optional[str]
    policy_id: Optional[str]
    last_recovery_point: Optional[datetime]
    protection_status: Optional[str]
    protection_state: Optional[str]
    extended_info: Optional[AzureSqlProtectedItemExtendedInfo]

Azure VM Workload Protected Items

Protected items for workloads running inside Azure VMs (SQL Server, SAP HANA, etc.).

class AzureVmWorkloadProtectedItem:
    def __init__(
        self,
        backup_management_type: str = "AzureWorkload",
        workload_type: Optional[str] = None,
        container_name: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        policy_id: Optional[str] = None,
        last_recovery_point: Optional[datetime] = None,
        friendly_name: Optional[str] = None,
        server_name: Optional[str] = None,
        parent_name: Optional[str] = None,
        parent_type: Optional[str] = None,
        protection_status: Optional[str] = None,
        protection_state: Optional[str] = None,
        last_backup_status: Optional[str] = None,
        last_backup_time: Optional[datetime] = None,
        last_backup_error_detail: Optional[ErrorDetail] = None,
        protected_item_data_source_id: Optional[str] = None,
        protected_item_health_status: Optional[str] = None,
        extended_info: Optional[AzureVmWorkloadProtectedItemExtendedInfo] = None,
        kpis_healths: Optional[Dict[str, str]] = None,
        **kwargs
    ):
        """
        Azure VM workload protected item.

        Parameters:
        - backup_management_type: Always "AzureWorkload"
        - workload_type: Type of workload ("SQLDataBase", "SAPHanaDatabase", etc.)
        - container_name: VM container name
        - source_resource_id: Azure resource ID of the workload
        - policy_id: ID of the backup policy
        - last_recovery_point: Date/time of last successful backup
        - friendly_name: Display name for the workload
        - server_name: Name of the server hosting the workload
        - parent_name: Name of the parent component
        - parent_type: Type of the parent component
        - protection_status: Current protection status
        - protection_state: Current protection state
        - last_backup_status: Status of the last backup operation
        - last_backup_time: Date/time of last backup attempt
        - last_backup_error_detail: Details of the last backup error
        - protected_item_data_source_id: Data source identifier
        - protected_item_health_status: Health status of the protected item
        - extended_info: Additional workload information
        - kpis_healths: Key performance indicator health statuses
        """

    backup_management_type: str
    workload_type: Optional[str]
    container_name: Optional[str]
    source_resource_id: Optional[str]
    policy_id: Optional[str]
    last_recovery_point: Optional[datetime]
    friendly_name: Optional[str]
    server_name: Optional[str]
    parent_name: Optional[str]
    parent_type: Optional[str]
    protection_status: Optional[str]
    protection_state: Optional[str]
    last_backup_status: Optional[str]
    last_backup_time: Optional[datetime]
    last_backup_error_detail: Optional[ErrorDetail]
    protected_item_data_source_id: Optional[str]
    protected_item_health_status: Optional[str]
    extended_info: Optional[AzureVmWorkloadProtectedItemExtendedInfo]
    kpis_healths: Optional[Dict[str, str]]

Usage Examples

Enable VM Protection

from azure.mgmt.recoveryservicesbackup.activestamp.models import (
    BackupProtectedItemResource,
    AzureIaaSVMProtectedItem
)

# Enable backup protection for an Azure VM
vm_protection = BackupProtectedItemResource(
    properties=AzureIaaSVMProtectedItem(
        backup_management_type="AzureIaasVM",
        workload_type="VM",
        policy_id="/subscriptions/sub-id/resourceGroups/my-rg/providers/Microsoft.RecoveryServices/vaults/my-vault/backupPolicies/DefaultPolicy",
        source_resource_id="/subscriptions/sub-id/resourceGroups/vm-rg/providers/Microsoft.Compute/virtualMachines/my-vm"
    )
)

protected_vm = client.protected_items.create_or_update(
    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",
    parameters=vm_protection
)

print(f"VM protection enabled: {protected_vm.properties.protection_status}")

Stop Protection and Delete Data

# Stop protection and delete backup data
client.protected_items.delete(
    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",
    delete_backup_data=True
)

Monitor Protection Status

# Get detailed protection information
protected_item = client.protected_items.get(
    "my-rg", "my-vault", "Azure", 
    "iaasvmcontainer;iaasvmcontainerv2;vm-rg;my-vm",
    "vm;iaasvmcontainerv2;vm-rg;my-vm"
)

print(f"Protection Status: {protected_item.properties.protection_status}")
print(f"Last Backup: {protected_item.properties.last_backup_time}")
print(f"Last Recovery Point: {protected_item.properties.last_recovery_point}")
print(f"Health Status: {protected_item.properties.health_status}")

if hasattr(protected_item.properties, 'health_details'):
    for detail in protected_item.properties.health_details:
        print(f"Health Detail: {detail.message}")

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