Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
- Latest
- 2025-08-01
- 2025-02-28-preview
- 2025-02-01
- 2025-01-01
- 2024-11-01-preview
- 2024-10-01
- 2024-07-30-preview
- 2024-04-30-preview
- 2024-04-01
- 2024-02-01
- 2024-01-01
- 2023-08-01
- 2023-06-01
- 2023-04-01
- 2023-02-01
- 2023-01-01
- 2022-10-01
- 2022-09-30-preview
- 2022-09-01-preview
- 2022-06-01-preview
- 2022-04-01
- 2022-03-01
- 2022-02-01
- 2022-01-01
- 2021-12-01
- 2021-10-01
- 2021-08-01
- 2021-07-01
- 2021-06-01
- 2021-04-01
- 2021-03-01
- 2021-02-10
- 2021-02-01
- 2021-02-01-preview
- 2021-01-01
- 2020-12-01
- 2020-10-01
- 2016-12-01
- 2016-06-01
Bicep resource definition
The vaults/backupFabrics/protectionContainers resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers@2025-02-28-preview' = {
parent: resourceSymbolicName
eTag: 'string'
location: 'string'
name: 'string'
properties: {
backupManagementType: 'string'
friendlyName: 'string'
healthStatus: 'string'
protectableObjectType: 'string'
registrationStatus: 'string'
containerType: 'string'
// For remaining properties, see ProtectionContainer objects
}
tags: {
{customized property}: 'string'
}
}
ProtectionContainer objects
Set the containerType property to specify the type of object.
For AzureBackupServerContainer, use:
{
canReRegister: bool
containerId: 'string'
containerType: 'AzureBackupServerContainer'
dpmAgentVersion: 'string'
dpmServers: [
'string'
]
extendedInfo: {
lastRefreshedAt: 'string'
}
protectedItemCount: int
protectionStatus: 'string'
upgradeAvailable: bool
}
For AzureSqlContainer, use:
{
containerType: 'AzureSqlContainer'
}
For SQLAGWorkLoadContainer, use:
{
containerType: 'SQLAGWorkLoadContainer'
extendedInfo: {
hostServerName: 'string'
inquiryInfo: {
errorDetail: {}
inquiryDetails: [
{
inquiryValidation: {
errorDetail: {}
status: 'string'
}
itemCount: int
type: 'string'
}
]
status: 'string'
}
nodesList: [
{
errorDetail: {}
nodeName: 'string'
sourceResourceId: 'string'
status: 'string'
}
]
}
lastUpdatedTime: 'string'
operationType: 'string'
sourceResourceId: 'string'
workloadType: 'string'
}
For VMAppContainer, use:
{
containerType: 'VMAppContainer'
extendedInfo: {
hostServerName: 'string'
inquiryInfo: {
errorDetail: {}
inquiryDetails: [
{
inquiryValidation: {
errorDetail: {}
status: 'string'
}
itemCount: int
type: 'string'
}
]
status: 'string'
}
nodesList: [
{
errorDetail: {}
nodeName: 'string'
sourceResourceId: 'string'
status: 'string'
}
]
}
lastUpdatedTime: 'string'
operationType: 'string'
sourceResourceId: 'string'
workloadType: 'string'
}
For GenericContainer, use:
{
containerType: 'GenericContainer'
extendedInformation: {
containerIdentityInfo: {
aadTenantId: 'string'
audience: 'string'
servicePrincipalClientId: 'string'
uniqueName: 'string'
}
rawCertData: 'string'
serviceEndpoints: {
{customized property}: 'string'
}
}
fabricName: 'string'
}
For Microsoft.ClassicCompute/virtualMachines, use:
{
containerType: 'Microsoft.ClassicCompute/virtualMachines'
resourceGroup: 'string'
virtualMachineId: 'string'
virtualMachineVersion: 'string'
}
For Microsoft.Compute/virtualMachines, use:
{
containerType: 'Microsoft.Compute/virtualMachines'
resourceGroup: 'string'
virtualMachineId: 'string'
virtualMachineVersion: 'string'
}
For StorageContainer, use:
{
acquireStorageAccountLock: 'string'
containerType: 'StorageContainer'
operationType: 'string'
protectedItemCount: int
resourceGroup: 'string'
sourceResourceId: 'string'
storageAccountVersion: 'string'
}
For Windows, use:
{
agentVersion: 'string'
canReRegister: bool
containerHealthState: 'string'
containerId: int
containerType: 'Windows'
extendedInfo: {
backupItems: [
'string'
]
backupItemType: 'string'
lastBackupStatus: 'string'
lastRefreshedAt: 'string'
policyName: 'string'
}
mabContainerHealthDetails: [
{
code: int
message: 'string'
recommendations: [
'string'
]
title: 'string'
}
]
protectedItemCount: int
}
Property Values
Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers
| Name | Description | Value |
|---|---|---|
| eTag | Optional ETag. | string |
| location | Resource location. | string |
| name | The resource name | string (required) |
| parent | In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource. For more information, see Child resource outside parent resource. |
Symbolic name for resource of type: vaults/backupFabrics |
| properties | ProtectionContainerResource properties | ProtectionContainer |
| tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
AzureBackupServerContainer
| Name | Description | Value |
|---|---|---|
| canReRegister | Specifies whether the container is re-registrable. | bool |
| containerId | ID of container. | string |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureBackupServerContainer' (required) |
| dpmAgentVersion | Backup engine Agent version | string |
| dpmServers | List of BackupEngines protecting the container | string[] |
| extendedInfo | Extended Info of the container. | DPMContainerExtendedInfo |
| protectedItemCount | Number of protected items in the BackupEngine | int |
| protectionStatus | Protection status of the container. | string |
| upgradeAvailable | To check if upgrade available | bool |
AzureIaaSClassicComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.ClassicCompute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureIaaSComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.Compute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureSqlagWorkloadContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'SQLAGWorkLoadContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureSqlContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureSqlContainer' (required) |
AzureStorageContainer
| Name | Description | Value |
|---|---|---|
| acquireStorageAccountLock | Whether storage account lock is to be acquired for this container or not. | 'Acquire' 'NotAcquire' |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'StorageContainer' (required) |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| protectedItemCount | Number of items backed up in this container. | int |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| sourceResourceId | Fully qualified ARM url. | string |
| storageAccountVersion | Storage account version. | string |
AzureVMAppContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'VMAppContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureWorkloadContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| hostServerName | Host Os Name in case of Stand Alone and Cluster Name in case of distributed container. | string |
| inquiryInfo | Inquiry Status for the container. | InquiryInfo |
| nodesList | List of the nodes in case of distributed container. | DistributedNodesInfo[] |
ContainerIdentityInfo
| Name | Description | Value |
|---|---|---|
| aadTenantId | Protection container identity - AAD Tenant | string |
| audience | Protection container identity - Audience | string |
| servicePrincipalClientId | Protection container identity - AAD Service Principal | string |
| uniqueName | Unique name of the container | string |
DistributedNodesInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| nodeName | Name of the node under a distributed container. | string |
| sourceResourceId | ARM resource id of the node | string |
| status | Status of this Node. Failed | Succeeded |
string |
DPMContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| lastRefreshedAt | Last refresh time of the DPMContainer. | string |
ErrorDetail
| Name | Description | Value |
|---|
GenericContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'GenericContainer' (required) |
| extendedInformation | Extended information (not returned in List container API calls) | GenericContainerExtendedInfo |
| fabricName | Name of the container's fabric | string |
GenericContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| containerIdentityInfo | Container identity information | ContainerIdentityInfo |
| rawCertData | Public key of container cert | string |
| serviceEndpoints | Azure Backup Service Endpoints for the container | GenericContainerExtendedInfoServiceEndpoints |
GenericContainerExtendedInfoServiceEndpoints
| Name | Description | Value |
|---|
InquiryInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| inquiryDetails | Inquiry Details which will have workload specific details. For e.g. - For SQL and oracle this will contain different details. |
WorkloadInquiryDetails[] |
| status | Inquiry Status for this container such as InProgress | Failed | Succeeded |
string |
InquiryValidation
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Detail in case the status is non-success. | ErrorDetail |
| status | Status for the Inquiry Validation. | string |
MabContainer
| Name | Description | Value |
|---|---|---|
| agentVersion | Agent version of this container. | string |
| canReRegister | Can the container be registered one more time. | bool |
| containerHealthState | Health state of mab container. | string |
| containerId | ContainerID represents the container. | int |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Windows' (required) |
| extendedInfo | Additional information for this container | MabContainerExtendedInfo |
| mabContainerHealthDetails | Health details on this mab container. | MABContainerHealthDetails[] |
| protectedItemCount | Number of items backed up in this container. | int |
MabContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| backupItems | List of backup items associated with this container. | string[] |
| backupItemType | Type of backup items associated with this container. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
| lastBackupStatus | Latest backup status of this container. | string |
| lastRefreshedAt | Time stamp when this container was refreshed. | string |
| policyName | Backup policy associated with this container. | string |
MABContainerHealthDetails
| Name | Description | Value |
|---|---|---|
| code | Health Code | int |
| message | Health Message | string |
| recommendations | Health Recommended Actions | string[] |
| title | Health Title | string |
ProtectionContainer
| Name | Description | Value |
|---|---|---|
| backupManagementType | Type of backup management for the container. | 'AzureBackupServer' 'AzureIaasVM' 'AzureSql' 'AzureStorage' 'AzureWorkload' 'DefaultBackup' 'DPM' 'Invalid' 'MAB' |
| containerType | Set to 'AzureBackupServerContainer' for type AzureBackupServerContainer. Set to 'AzureSqlContainer' for type AzureSqlContainer. Set to 'SQLAGWorkLoadContainer' for type AzureSqlagWorkloadContainerProtectionContainer. Set to 'VMAppContainer' for type AzureVMAppContainerProtectionContainer. Set to 'GenericContainer' for type GenericContainer. Set to 'Microsoft.ClassicCompute/virtualMachines' for type AzureIaaSClassicComputeVMContainer. Set to 'Microsoft.Compute/virtualMachines' for type AzureIaaSComputeVMContainer. Set to 'StorageContainer' for type AzureStorageContainer. Set to 'Windows' for type MabContainer. | 'AzureBackupServerContainer' 'AzureSqlContainer' 'GenericContainer' 'Microsoft.ClassicCompute/virtualMachines' 'Microsoft.Compute/virtualMachines' 'SQLAGWorkLoadContainer' 'StorageContainer' 'VMAppContainer' 'Windows' (required) |
| friendlyName | Friendly name of the container. | string |
| healthStatus | Status of health of the container. | string |
| protectableObjectType | Type of the protectable object associated with this container | string |
| registrationStatus | Status of registration of the container with the Recovery Services Vault. | string |
ResourceTags
| Name | Description | Value |
|---|
WorkloadInquiryDetails
| Name | Description | Value |
|---|---|---|
| inquiryValidation | Inquiry validation such as permissions and other backup validations. | InquiryValidation |
| itemCount | Contains the protectable item Count inside this Container. | int |
| type | Type of the Workload such as SQL, Oracle etc. | string |
Usage Examples
Azure Quickstart Samples
The following Azure Quickstart templates contain Bicep samples for deploying this resource type.
| Bicep File | Description |
|---|---|
| Azure Backup for Workload in Azure Virtual Machines | This template creates a Recovery Services Vault and a Workload specific Backup Policy. Registers VM with Backup service and Configures Protection |
| Backup existing File Share using Recovery Services (Daily) | This template configures protection for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
| Backup existing File Share using Recovery Services (hourly) | This template configures protection with hourly frequency for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
| Create AVD with FSLogix and AD DS Join | This template allows you to create Azure Virtual Desktop resources such as host pool, application group, workspace, FSLogix storage account, file share, recovery service vault for file share backup a test session host, its extensions with Microsoft Entra ID join pr Active directory domain join. |
ARM template resource definition
The vaults/backupFabrics/protectionContainers resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers resource, add the following JSON to your template.
{
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers",
"apiVersion": "2025-02-28-preview",
"name": "string",
"eTag": "string",
"location": "string",
"properties": {
"backupManagementType": "string",
"friendlyName": "string",
"healthStatus": "string",
"protectableObjectType": "string",
"registrationStatus": "string",
"containerType": "string"
// For remaining properties, see ProtectionContainer objects
},
"tags": {
"{customized property}": "string"
}
}
ProtectionContainer objects
Set the containerType property to specify the type of object.
For AzureBackupServerContainer, use:
{
"canReRegister": "bool",
"containerId": "string",
"containerType": "AzureBackupServerContainer",
"dpmAgentVersion": "string",
"dpmServers": [ "string" ],
"extendedInfo": {
"lastRefreshedAt": "string"
},
"protectedItemCount": "int",
"protectionStatus": "string",
"upgradeAvailable": "bool"
}
For AzureSqlContainer, use:
{
"containerType": "AzureSqlContainer"
}
For SQLAGWorkLoadContainer, use:
{
"containerType": "SQLAGWorkLoadContainer",
"extendedInfo": {
"hostServerName": "string",
"inquiryInfo": {
"errorDetail": {
},
"inquiryDetails": [
{
"inquiryValidation": {
"errorDetail": {
},
"status": "string"
},
"itemCount": "int",
"type": "string"
}
],
"status": "string"
},
"nodesList": [
{
"errorDetail": {
},
"nodeName": "string",
"sourceResourceId": "string",
"status": "string"
}
]
},
"lastUpdatedTime": "string",
"operationType": "string",
"sourceResourceId": "string",
"workloadType": "string"
}
For VMAppContainer, use:
{
"containerType": "VMAppContainer",
"extendedInfo": {
"hostServerName": "string",
"inquiryInfo": {
"errorDetail": {
},
"inquiryDetails": [
{
"inquiryValidation": {
"errorDetail": {
},
"status": "string"
},
"itemCount": "int",
"type": "string"
}
],
"status": "string"
},
"nodesList": [
{
"errorDetail": {
},
"nodeName": "string",
"sourceResourceId": "string",
"status": "string"
}
]
},
"lastUpdatedTime": "string",
"operationType": "string",
"sourceResourceId": "string",
"workloadType": "string"
}
For GenericContainer, use:
{
"containerType": "GenericContainer",
"extendedInformation": {
"containerIdentityInfo": {
"aadTenantId": "string",
"audience": "string",
"servicePrincipalClientId": "string",
"uniqueName": "string"
},
"rawCertData": "string",
"serviceEndpoints": {
"{customized property}": "string"
}
},
"fabricName": "string"
}
For Microsoft.ClassicCompute/virtualMachines, use:
{
"containerType": "Microsoft.ClassicCompute/virtualMachines",
"resourceGroup": "string",
"virtualMachineId": "string",
"virtualMachineVersion": "string"
}
For Microsoft.Compute/virtualMachines, use:
{
"containerType": "Microsoft.Compute/virtualMachines",
"resourceGroup": "string",
"virtualMachineId": "string",
"virtualMachineVersion": "string"
}
For StorageContainer, use:
{
"acquireStorageAccountLock": "string",
"containerType": "StorageContainer",
"operationType": "string",
"protectedItemCount": "int",
"resourceGroup": "string",
"sourceResourceId": "string",
"storageAccountVersion": "string"
}
For Windows, use:
{
"agentVersion": "string",
"canReRegister": "bool",
"containerHealthState": "string",
"containerId": "int",
"containerType": "Windows",
"extendedInfo": {
"backupItems": [ "string" ],
"backupItemType": "string",
"lastBackupStatus": "string",
"lastRefreshedAt": "string",
"policyName": "string"
},
"mabContainerHealthDetails": [
{
"code": "int",
"message": "string",
"recommendations": [ "string" ],
"title": "string"
}
],
"protectedItemCount": "int"
}
Property Values
Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers
| Name | Description | Value |
|---|---|---|
| apiVersion | The api version | '2025-02-28-preview' |
| eTag | Optional ETag. | string |
| location | Resource location. | string |
| name | The resource name | string (required) |
| properties | ProtectionContainerResource properties | ProtectionContainer |
| tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
| type | The resource type | 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers' |
AzureBackupServerContainer
| Name | Description | Value |
|---|---|---|
| canReRegister | Specifies whether the container is re-registrable. | bool |
| containerId | ID of container. | string |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureBackupServerContainer' (required) |
| dpmAgentVersion | Backup engine Agent version | string |
| dpmServers | List of BackupEngines protecting the container | string[] |
| extendedInfo | Extended Info of the container. | DPMContainerExtendedInfo |
| protectedItemCount | Number of protected items in the BackupEngine | int |
| protectionStatus | Protection status of the container. | string |
| upgradeAvailable | To check if upgrade available | bool |
AzureIaaSClassicComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.ClassicCompute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureIaaSComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.Compute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureSqlagWorkloadContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'SQLAGWorkLoadContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureSqlContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureSqlContainer' (required) |
AzureStorageContainer
| Name | Description | Value |
|---|---|---|
| acquireStorageAccountLock | Whether storage account lock is to be acquired for this container or not. | 'Acquire' 'NotAcquire' |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'StorageContainer' (required) |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| protectedItemCount | Number of items backed up in this container. | int |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| sourceResourceId | Fully qualified ARM url. | string |
| storageAccountVersion | Storage account version. | string |
AzureVMAppContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'VMAppContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureWorkloadContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| hostServerName | Host Os Name in case of Stand Alone and Cluster Name in case of distributed container. | string |
| inquiryInfo | Inquiry Status for the container. | InquiryInfo |
| nodesList | List of the nodes in case of distributed container. | DistributedNodesInfo[] |
ContainerIdentityInfo
| Name | Description | Value |
|---|---|---|
| aadTenantId | Protection container identity - AAD Tenant | string |
| audience | Protection container identity - Audience | string |
| servicePrincipalClientId | Protection container identity - AAD Service Principal | string |
| uniqueName | Unique name of the container | string |
DistributedNodesInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| nodeName | Name of the node under a distributed container. | string |
| sourceResourceId | ARM resource id of the node | string |
| status | Status of this Node. Failed | Succeeded |
string |
DPMContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| lastRefreshedAt | Last refresh time of the DPMContainer. | string |
ErrorDetail
| Name | Description | Value |
|---|
GenericContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'GenericContainer' (required) |
| extendedInformation | Extended information (not returned in List container API calls) | GenericContainerExtendedInfo |
| fabricName | Name of the container's fabric | string |
GenericContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| containerIdentityInfo | Container identity information | ContainerIdentityInfo |
| rawCertData | Public key of container cert | string |
| serviceEndpoints | Azure Backup Service Endpoints for the container | GenericContainerExtendedInfoServiceEndpoints |
GenericContainerExtendedInfoServiceEndpoints
| Name | Description | Value |
|---|
InquiryInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| inquiryDetails | Inquiry Details which will have workload specific details. For e.g. - For SQL and oracle this will contain different details. |
WorkloadInquiryDetails[] |
| status | Inquiry Status for this container such as InProgress | Failed | Succeeded |
string |
InquiryValidation
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Detail in case the status is non-success. | ErrorDetail |
| status | Status for the Inquiry Validation. | string |
MabContainer
| Name | Description | Value |
|---|---|---|
| agentVersion | Agent version of this container. | string |
| canReRegister | Can the container be registered one more time. | bool |
| containerHealthState | Health state of mab container. | string |
| containerId | ContainerID represents the container. | int |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Windows' (required) |
| extendedInfo | Additional information for this container | MabContainerExtendedInfo |
| mabContainerHealthDetails | Health details on this mab container. | MABContainerHealthDetails[] |
| protectedItemCount | Number of items backed up in this container. | int |
MabContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| backupItems | List of backup items associated with this container. | string[] |
| backupItemType | Type of backup items associated with this container. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
| lastBackupStatus | Latest backup status of this container. | string |
| lastRefreshedAt | Time stamp when this container was refreshed. | string |
| policyName | Backup policy associated with this container. | string |
MABContainerHealthDetails
| Name | Description | Value |
|---|---|---|
| code | Health Code | int |
| message | Health Message | string |
| recommendations | Health Recommended Actions | string[] |
| title | Health Title | string |
ProtectionContainer
| Name | Description | Value |
|---|---|---|
| backupManagementType | Type of backup management for the container. | 'AzureBackupServer' 'AzureIaasVM' 'AzureSql' 'AzureStorage' 'AzureWorkload' 'DefaultBackup' 'DPM' 'Invalid' 'MAB' |
| containerType | Set to 'AzureBackupServerContainer' for type AzureBackupServerContainer. Set to 'AzureSqlContainer' for type AzureSqlContainer. Set to 'SQLAGWorkLoadContainer' for type AzureSqlagWorkloadContainerProtectionContainer. Set to 'VMAppContainer' for type AzureVMAppContainerProtectionContainer. Set to 'GenericContainer' for type GenericContainer. Set to 'Microsoft.ClassicCompute/virtualMachines' for type AzureIaaSClassicComputeVMContainer. Set to 'Microsoft.Compute/virtualMachines' for type AzureIaaSComputeVMContainer. Set to 'StorageContainer' for type AzureStorageContainer. Set to 'Windows' for type MabContainer. | 'AzureBackupServerContainer' 'AzureSqlContainer' 'GenericContainer' 'Microsoft.ClassicCompute/virtualMachines' 'Microsoft.Compute/virtualMachines' 'SQLAGWorkLoadContainer' 'StorageContainer' 'VMAppContainer' 'Windows' (required) |
| friendlyName | Friendly name of the container. | string |
| healthStatus | Status of health of the container. | string |
| protectableObjectType | Type of the protectable object associated with this container | string |
| registrationStatus | Status of registration of the container with the Recovery Services Vault. | string |
ResourceTags
| Name | Description | Value |
|---|
WorkloadInquiryDetails
| Name | Description | Value |
|---|---|---|
| inquiryValidation | Inquiry validation such as permissions and other backup validations. | InquiryValidation |
| itemCount | Contains the protectable item Count inside this Container. | int |
| type | Type of the Workload such as SQL, Oracle etc. | string |
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
| Template | Description |
|---|---|
| Azure Backup for Workload in Azure Virtual Machines |
This template creates a Recovery Services Vault and a Workload specific Backup Policy. Registers VM with Backup service and Configures Protection |
| Backup existing File Share using Recovery Services (Daily) |
This template configures protection for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
| Backup existing File Share using Recovery Services (hourly) |
This template configures protection with hourly frequency for an existing File Share present in an existing Storage Account. It creates a new or uses an existing Recovery Services Vault and Backup Policy based on the set parameter values. |
| Create AVD with FSLogix and AD DS Join |
This template allows you to create Azure Virtual Desktop resources such as host pool, application group, workspace, FSLogix storage account, file share, recovery service vault for file share backup a test session host, its extensions with Microsoft Entra ID join pr Active directory domain join. |
Terraform (AzAPI provider) resource definition
The vaults/backupFabrics/protectionContainers resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers@2025-02-28-preview"
name = "string"
parent_id = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = {
eTag = "string"
properties = {
backupManagementType = "string"
friendlyName = "string"
healthStatus = "string"
protectableObjectType = "string"
registrationStatus = "string"
containerType = "string"
// For remaining properties, see ProtectionContainer objects
}
}
}
ProtectionContainer objects
Set the containerType property to specify the type of object.
For AzureBackupServerContainer, use:
{
canReRegister = bool
containerId = "string"
containerType = "AzureBackupServerContainer"
dpmAgentVersion = "string"
dpmServers = [
"string"
]
extendedInfo = {
lastRefreshedAt = "string"
}
protectedItemCount = int
protectionStatus = "string"
upgradeAvailable = bool
}
For AzureSqlContainer, use:
{
containerType = "AzureSqlContainer"
}
For SQLAGWorkLoadContainer, use:
{
containerType = "SQLAGWorkLoadContainer"
extendedInfo = {
hostServerName = "string"
inquiryInfo = {
errorDetail = {
}
inquiryDetails = [
{
inquiryValidation = {
errorDetail = {
}
status = "string"
}
itemCount = int
type = "string"
}
]
status = "string"
}
nodesList = [
{
errorDetail = {
}
nodeName = "string"
sourceResourceId = "string"
status = "string"
}
]
}
lastUpdatedTime = "string"
operationType = "string"
sourceResourceId = "string"
workloadType = "string"
}
For VMAppContainer, use:
{
containerType = "VMAppContainer"
extendedInfo = {
hostServerName = "string"
inquiryInfo = {
errorDetail = {
}
inquiryDetails = [
{
inquiryValidation = {
errorDetail = {
}
status = "string"
}
itemCount = int
type = "string"
}
]
status = "string"
}
nodesList = [
{
errorDetail = {
}
nodeName = "string"
sourceResourceId = "string"
status = "string"
}
]
}
lastUpdatedTime = "string"
operationType = "string"
sourceResourceId = "string"
workloadType = "string"
}
For GenericContainer, use:
{
containerType = "GenericContainer"
extendedInformation = {
containerIdentityInfo = {
aadTenantId = "string"
audience = "string"
servicePrincipalClientId = "string"
uniqueName = "string"
}
rawCertData = "string"
serviceEndpoints = {
{customized property} = "string"
}
}
fabricName = "string"
}
For Microsoft.ClassicCompute/virtualMachines, use:
{
containerType = "Microsoft.ClassicCompute/virtualMachines"
resourceGroup = "string"
virtualMachineId = "string"
virtualMachineVersion = "string"
}
For Microsoft.Compute/virtualMachines, use:
{
containerType = "Microsoft.Compute/virtualMachines"
resourceGroup = "string"
virtualMachineId = "string"
virtualMachineVersion = "string"
}
For StorageContainer, use:
{
acquireStorageAccountLock = "string"
containerType = "StorageContainer"
operationType = "string"
protectedItemCount = int
resourceGroup = "string"
sourceResourceId = "string"
storageAccountVersion = "string"
}
For Windows, use:
{
agentVersion = "string"
canReRegister = bool
containerHealthState = "string"
containerId = int
containerType = "Windows"
extendedInfo = {
backupItems = [
"string"
]
backupItemType = "string"
lastBackupStatus = "string"
lastRefreshedAt = "string"
policyName = "string"
}
mabContainerHealthDetails = [
{
code = int
message = "string"
recommendations = [
"string"
]
title = "string"
}
]
protectedItemCount = int
}
Property Values
Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers
| Name | Description | Value |
|---|---|---|
| eTag | Optional ETag. | string |
| location | Resource location. | string |
| name | The resource name | string (required) |
| parent_id | The ID of the resource that is the parent for this resource. | ID for resource of type: vaults/backupFabrics |
| properties | ProtectionContainerResource properties | ProtectionContainer |
| tags | Resource tags | Dictionary of tag names and values. |
| type | The resource type | "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers@2025-02-28-preview" |
AzureBackupServerContainer
| Name | Description | Value |
|---|---|---|
| canReRegister | Specifies whether the container is re-registrable. | bool |
| containerId | ID of container. | string |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureBackupServerContainer' (required) |
| dpmAgentVersion | Backup engine Agent version | string |
| dpmServers | List of BackupEngines protecting the container | string[] |
| extendedInfo | Extended Info of the container. | DPMContainerExtendedInfo |
| protectedItemCount | Number of protected items in the BackupEngine | int |
| protectionStatus | Protection status of the container. | string |
| upgradeAvailable | To check if upgrade available | bool |
AzureIaaSClassicComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.ClassicCompute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureIaaSComputeVMContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Microsoft.Compute/virtualMachines' (required) |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| virtualMachineId | Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. | string |
| virtualMachineVersion | Specifies whether the container represents a Classic or an Azure Resource Manager VM. | string |
AzureSqlagWorkloadContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'SQLAGWorkLoadContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureSqlContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'AzureSqlContainer' (required) |
AzureStorageContainer
| Name | Description | Value |
|---|---|---|
| acquireStorageAccountLock | Whether storage account lock is to be acquired for this container or not. | 'Acquire' 'NotAcquire' |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'StorageContainer' (required) |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| protectedItemCount | Number of items backed up in this container. | int |
| resourceGroup | Resource group name of Recovery Services Vault. | string |
| sourceResourceId | Fully qualified ARM url. | string |
| storageAccountVersion | Storage account version. | string |
AzureVMAppContainerProtectionContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'VMAppContainer' (required) |
| extendedInfo | Additional details of a workload container. | AzureWorkloadContainerExtendedInfo |
| lastUpdatedTime | Time stamp when this container was updated. | string |
| operationType | Re-Do Operation | 'Invalid' 'Register' 'Rehydrate' 'Reregister' |
| sourceResourceId | ARM ID of the virtual machine represented by this Azure Workload Container | string |
| workloadType | Workload type for which registration was sent. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
AzureWorkloadContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| hostServerName | Host Os Name in case of Stand Alone and Cluster Name in case of distributed container. | string |
| inquiryInfo | Inquiry Status for the container. | InquiryInfo |
| nodesList | List of the nodes in case of distributed container. | DistributedNodesInfo[] |
ContainerIdentityInfo
| Name | Description | Value |
|---|---|---|
| aadTenantId | Protection container identity - AAD Tenant | string |
| audience | Protection container identity - Audience | string |
| servicePrincipalClientId | Protection container identity - AAD Service Principal | string |
| uniqueName | Unique name of the container | string |
DistributedNodesInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| nodeName | Name of the node under a distributed container. | string |
| sourceResourceId | ARM resource id of the node | string |
| status | Status of this Node. Failed | Succeeded |
string |
DPMContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| lastRefreshedAt | Last refresh time of the DPMContainer. | string |
ErrorDetail
| Name | Description | Value |
|---|
GenericContainer
| Name | Description | Value |
|---|---|---|
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'GenericContainer' (required) |
| extendedInformation | Extended information (not returned in List container API calls) | GenericContainerExtendedInfo |
| fabricName | Name of the container's fabric | string |
GenericContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| containerIdentityInfo | Container identity information | ContainerIdentityInfo |
| rawCertData | Public key of container cert | string |
| serviceEndpoints | Azure Backup Service Endpoints for the container | GenericContainerExtendedInfoServiceEndpoints |
GenericContainerExtendedInfoServiceEndpoints
| Name | Description | Value |
|---|
InquiryInfo
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Details if the Status is non-success. | ErrorDetail |
| inquiryDetails | Inquiry Details which will have workload specific details. For e.g. - For SQL and oracle this will contain different details. |
WorkloadInquiryDetails[] |
| status | Inquiry Status for this container such as InProgress | Failed | Succeeded |
string |
InquiryValidation
| Name | Description | Value |
|---|---|---|
| errorDetail | Error Detail in case the status is non-success. | ErrorDetail |
| status | Status for the Inquiry Validation. | string |
MabContainer
| Name | Description | Value |
|---|---|---|
| agentVersion | Agent version of this container. | string |
| canReRegister | Can the container be registered one more time. | bool |
| containerHealthState | Health state of mab container. | string |
| containerId | ContainerID represents the container. | int |
| containerType | Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload Backup is VMAppContainer |
'Windows' (required) |
| extendedInfo | Additional information for this container | MabContainerExtendedInfo |
| mabContainerHealthDetails | Health details on this mab container. | MABContainerHealthDetails[] |
| protectedItemCount | Number of items backed up in this container. | int |
MabContainerExtendedInfo
| Name | Description | Value |
|---|---|---|
| backupItems | List of backup items associated with this container. | string[] |
| backupItemType | Type of backup items associated with this container. | 'AzureFileShare' 'AzureSqlDb' 'Client' 'Exchange' 'FileFolder' 'GenericDataSource' 'Invalid' 'SAPAseDatabase' 'SAPHanaDatabase' 'SAPHanaDBInstance' 'Sharepoint' 'SQLDataBase' 'SQLDB' 'SystemState' 'VM' 'VMwareVM' |
| lastBackupStatus | Latest backup status of this container. | string |
| lastRefreshedAt | Time stamp when this container was refreshed. | string |
| policyName | Backup policy associated with this container. | string |
MABContainerHealthDetails
| Name | Description | Value |
|---|---|---|
| code | Health Code | int |
| message | Health Message | string |
| recommendations | Health Recommended Actions | string[] |
| title | Health Title | string |
ProtectionContainer
| Name | Description | Value |
|---|---|---|
| backupManagementType | Type of backup management for the container. | 'AzureBackupServer' 'AzureIaasVM' 'AzureSql' 'AzureStorage' 'AzureWorkload' 'DefaultBackup' 'DPM' 'Invalid' 'MAB' |
| containerType | Set to 'AzureBackupServerContainer' for type AzureBackupServerContainer. Set to 'AzureSqlContainer' for type AzureSqlContainer. Set to 'SQLAGWorkLoadContainer' for type AzureSqlagWorkloadContainerProtectionContainer. Set to 'VMAppContainer' for type AzureVMAppContainerProtectionContainer. Set to 'GenericContainer' for type GenericContainer. Set to 'Microsoft.ClassicCompute/virtualMachines' for type AzureIaaSClassicComputeVMContainer. Set to 'Microsoft.Compute/virtualMachines' for type AzureIaaSComputeVMContainer. Set to 'StorageContainer' for type AzureStorageContainer. Set to 'Windows' for type MabContainer. | 'AzureBackupServerContainer' 'AzureSqlContainer' 'GenericContainer' 'Microsoft.ClassicCompute/virtualMachines' 'Microsoft.Compute/virtualMachines' 'SQLAGWorkLoadContainer' 'StorageContainer' 'VMAppContainer' 'Windows' (required) |
| friendlyName | Friendly name of the container. | string |
| healthStatus | Status of health of the container. | string |
| protectableObjectType | Type of the protectable object associated with this container | string |
| registrationStatus | Status of registration of the container with the Recovery Services Vault. | string |
ResourceTags
| Name | Description | Value |
|---|
WorkloadInquiryDetails
| Name | Description | Value |
|---|---|---|
| inquiryValidation | Inquiry validation such as permissions and other backup validations. | InquiryValidation |
| itemCount | Contains the protectable item Count inside this Container. | int |
| type | Type of the Workload such as SQL, Oracle etc. | string |
Usage Examples
Terraform Samples
A basic example of deploying storage account container in an Azure Recovery Vault.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westus"
}
locals {
# Storage Account name must be 3-24 lowercase alphanumeric
sa_name = substr(join("", regexall("[a-z0-9]", lower(var.resource_name))), 0, 24)
vault_name = "${var.resource_name}-vault"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "vault" {
type = "Microsoft.RecoveryServices/vaults@2024-01-01"
parent_id = azapi_resource.resourceGroup.id
name = local.vault_name
location = var.location
body = {
properties = {
publicNetworkAccess = "Enabled"
redundancySettings = {
crossRegionRestore = "Disabled"
standardTierStorageRedundancy = "GeoRedundant"
}
}
sku = {
name = "Standard"
}
}
}
resource "azapi_resource" "storageAccount" {
type = "Microsoft.Storage/storageAccounts@2023-05-01"
parent_id = azapi_resource.resourceGroup.id
name = local.sa_name
location = var.location
body = {
kind = "StorageV2"
properties = {
accessTier = "Hot"
allowBlobPublicAccess = true
allowCrossTenantReplication = false
allowSharedKeyAccess = true
defaultToOAuthAuthentication = false
dnsEndpointType = "Standard"
encryption = {
keySource = "Microsoft.Storage"
services = {
queue = {
keyType = "Service"
}
table = {
keyType = "Service"
}
}
}
isHnsEnabled = false
isLocalUserEnabled = true
isNfsV3Enabled = false
isSftpEnabled = false
minimumTlsVersion = "TLS1_2"
networkAcls = {
bypass = "AzureServices"
defaultAction = "Allow"
ipRules = []
resourceAccessRules = []
virtualNetworkRules = []
}
publicNetworkAccess = "Enabled"
supportsHttpsTrafficOnly = true
}
sku = {
name = "Standard_LRS"
}
}
}
resource "azapi_resource" "protectionContainer" {
type = "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers@2023-02-01"
parent_id = "${azapi_resource.vault.id}/backupFabrics/Azure"
# Format: "StorageContainer;storage;<resourceGroupName>;<storageAccountName>"
name = "StorageContainer;storage;${var.resource_name};${local.sa_name}"
body = {
properties = {
backupManagementType = "AzureStorage"
containerType = "StorageContainer"
friendlyName = local.sa_name
sourceResourceId = azapi_resource.storageAccount.id
}
}
}