RecoveryServicesBackupClient icon

RecoveryServicesBackupClient

Connect to RecoveryServicesBackupClient with 1 MCP tools for AI-powered API automation.

COMMUNITYBEARER0 INSTALLS
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "RecoveryServicesBackupClient",
    "version": "2017-07-01",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2017-07-01/bms.json",
        "version": "2.0"
      }
    ],
    "x-preferred": true,
    "x-providerName": "azure.com",
    "x-serviceName": "recoveryservicesbackup-bms",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account."
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "ApiVersion": {
      "description": "Client Api Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "AzureRegion": {
      "description": "Azure region to hit Api",
      "in": "path",
      "name": "azureRegion",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ResourceGroupName": {
      "description": "The name of the resource group where the recovery services vault is present.",
      "in": "path",
      "name": "resourceGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionId": {
      "description": "The subscription Id.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    },
    "VaultName": {
      "description": "The name of the recovery services vault.",
      "in": "path",
      "name": "vaultName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupPreValidateProtection": {
      "post": {
        "operationId": "ProtectionIntent_Validate",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Enable backup validation request on Virtual Machine",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PreValidateEnableBackupRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PreValidateEnableBackupResponse"
            }
          }
        },
        "summary": "It will validate followings\r\n1. Vault capacity\r\n2. VM is already protected\r\n3. Any VM related configuration passed in properties.",
        "tags": [
          "ProtectionIntent"
        ],
        "x-ms-examples": {
          "Validate Enable Protection on Azure Vm": {
            "parameters": {
              "api-version": "2017-07-01",
              "azureRegion": "southeastasia",
              "parameters": {
                "properties": "",
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/arunaupgrade/providers/Microsoft.Compute/VirtualMachines/upgrade1",
                "resourceType": "VM",
                "vaultId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/Vaults/myVault"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "containerName": "iaasvmcontainer;iaasvmcontainerv2;arunaupgrade;upgrade1",
                  "errorCode": "VirtualMachineAlreadyProtected",
                  "errorMessage": "Virtual machine with same name and same resource group is already protected. Please select `Disable' choice above for backup and go to backup item corresponding to this VM in the vault",
                  "protectedItemName": "vm;iaasvmcontainerv2;arunaupgrade;upgrade1",
                  "recommendation": "Please do not enable protection again.",
                  "status": "Failed"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupStatus": {
      "post": {
        "operationId": "BackupStatus_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Container Backup Status Request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupStatusRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BackupStatusResponse"
            }
          }
        },
        "summary": "Get the container backup status",
        "tags": [
          "BackupStatus"
        ],
        "x-ms-examples": {
          "Get Azure Virtual Machine Backup Status": {
            "parameters": {
              "api-version": "2017-07-01",
              "azureRegion": "southeastasia",
              "parameters": {
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm",
                "resourceType": "VM"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "containerName": "iaasvmcontainer;iaasvmcontainerv2;testRg;testVm",
                  "errorCode": "Success",
                  "errorMessage": "ErrorMessage",
                  "fabricName": "Azure",
                  "policyName": "myPolicy",
                  "protectedItemName": "vm;iaasvmcontainerv2;testRg;testVm",
                  "protectionStatus": "Protected",
                  "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/Vaults/testVault"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupValidateFeatures": {
      "post": {
        "operationId": "FeatureSupport_Validate",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Feature support request object",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FeatureSupportRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AzureVMResourceFeatureSupportResponse"
            }
          }
        },
        "summary": "It will validate if given feature with resource properties is supported in service",
        "tags": [
          "FeatureSupport"
        ],
        "x-ms-examples": {
          "Check Azure Vm Backup Feature Support": {
            "parameters": {
              "api-version": "2017-07-01",
              "azureRegion": "southeastasia",
              "parameters": {
                "featureType": "AzureVMResourceBackup",
                "vmSize": "Basic_A0",
                "vmSku": "Premium"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "supportStatus": "DefaultOFF"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/backupProtectionIntent/{intentObjectName}": {
      "delete": {
        "description": "Used to remove intent from an item",
        "operationId": "ProtectionIntent_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the intent.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Intent to be deleted.",
            "in": "path",
            "name": "intentObjectName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "ProtectionIntent"
        ],
        "x-ms-examples": {
          "Delete Protection intent from item": {
            "parameters": {
              "api-version": "2017-07-01",
              "fabricName": "Azure",
              "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E",
              "parameters": {},
              "resourceGroupName": "myRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "myVault"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of the operation,\r\ncall the GetItemOperationResult API.",
        "operationId": "ProtectionIntent_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the backed up item.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backed up item name whose details are to be fetched.",
            "in": "path",
            "name": "intentObjectName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionIntentResource"
            }
          }
        },
        "tags": [
          "ProtectionIntent"
        ],
        "x-ms-examples": {
          "Get ProtectionIntent for an item": {
            "parameters": {
              "api-version": "2017-07-01",
              "fabricName": "Azure",
              "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E",
              "parameters": {},
              "resourceGroupName": "myRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "myVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E",
                  "name": "249D9B07-D2EF-4202-AA64-65F35418564E",
                  "properties": {
                    "backupManagementType": "AzureWorkload",
                    "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER",
                    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create Intent for Enabling backup of an item. This is a synchronous operation.",
        "operationId": "ProtectionIntent_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the backup item.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Intent object name.",
            "in": "path",
            "name": "intentObjectName",
            "required": true,
            "type": "string"
          },
          {
            "description": "resource backed up item",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ProtectionIntentResource"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionIntentResource"
            }
          }
        },
        "tags": [
          "ProtectionIntent"
        ],
        "x-ms-examples": {
          "Create or Update Azure Vm Protection Intent": {
            "parameters": {
              "api-version": "2017-07-01",
              "fabricName": "Azure",
              "intentObjectName": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel",
              "parameters": {
                "properties": {
                  "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy",
                  "protectionIntentItemType": "AzureResourceItem",
                  "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel"
                }
              },
              "resourceGroupName": "myRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "myVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/vm;iaasvmcontainerv2;chamsrgtest;chamscandel",
                  "name": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel",
                  "properties": {
                    "backupManagementType": "AzureIaasVM",
                    "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy",
                    "protectionState": "Protected"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionIntents": {
      "get": {
        "description": "Provides a pageable list of all intents that are present within a vault.",
        "operationId": "BackupProtectionIntent_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "skipToken Filter.",
            "in": "query",
            "name": "$skipToken",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionIntentResourceList"
            }
          }
        },
        "tags": [
          "BackupProtectionIntent"
        ],
        "x-ms-examples": {
          "List protection intent with backupManagementType filter": {
            "parameters": {
              "api-version": "2017-07-01",
              "parameters": {},
              "resourceGroupName": "myRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "myVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E",
                      "name": "249D9B07-D2EF-4202-AA64-65F35418564E",
                      "properties": {
                        "backupManagementType": "AzureWorkload",
                        "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER",
                        "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/ProtectionIntentQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupUsageSummaries": {
      "get": {
        "description": "Fetches the backup management usage summaries of the vault.",
        "operationId": "BackupUsageSummaries_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "skipToken Filter.",
            "in": "query",
            "name": "$skipToken",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BackupManagementUsageList"
            }
          }
        },
        "tags": [
          "BackupUsageSummaries"
        ],
        "x-ms-examples": {
          "Get Protected Containers Usages Summary": {
            "parameters": {
              "$filter": "type eq 'BackupProtectionContainerCountSummary'",
              "api-version": "2017-07-01",
              "resourceGroupName": "testRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "currentValue": 2,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Backup Server",
                        "value": "AzureBackupServer"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 3,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Backup Agent",
                        "value": "MAB"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 1,
                      "limit": -1,
                      "name": {
                        "localizedValue": "SQL in Azure VM",
                        "value": "AzureWorkload"
                      },
                      "unit": "Count"
                    }
                  ]
                }
              }
            }
          },
          "Get Protected Items Usages Summary": {
            "parameters": {
              "$filter": "type eq 'BackupProtectedItemCountSummary'",
              "api-version": "2017-07-01",
              "resourceGroupName": "testRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "currentValue": 7,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Virtual Machine",
                        "value": "AzureIaasVM"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 3,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Backup Agent",
                        "value": "MAB"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 1,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Backup Server",
                        "value": "AzureBackupServer"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 2,
                      "limit": -1,
                      "name": {
                        "localizedValue": "Azure Storage (Azure Files)",
                        "value": "AzureStorage"
                      },
                      "unit": "Count"
                    },
                    {
                      "currentValue": 2,
                      "limit": -1,
                      "name": {
                        "localizedValue": "SQL in Azure VM",
                        "value": "AzureWorkload"
                      },
                      "unit": "Count"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSBackupSummariesQueryObject",
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    }
  },
  "definitions": {
    "AzureBackupGoalFeatureSupportRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/FeatureSupportRequest"
        }
      ],
      "description": "Azure backup goal feature specific request.",
      "type": "object",
      "x-ms-discriminator-value": "AzureBackupGoals"
    },
    "AzureIaaSVMErrorInfo": {
      "description": "Azure IaaS VM workload-specific error information.",
      "properties": {
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "readOnly": true,
          "type": "string"
        },
        "errorTitle": {
          "description": "Title: Typically, the entity that the error pertains to.",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure IaaS VM workload-specific job object.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureIaaSVMErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo",
          "description": "Additional information for this job."
        },
        "virtualMachineVersion": {
          "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureIaaSVMJob"
    },
    "AzureIaaSVMJobExtendedInfo": {
      "description": "Azure IaaS VM workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "estimatedRemainingDuration": {
          "description": "Time remaining for execution of this job.",
          "type": "string"
        },
        "internalPropertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job internal properties.",
          "type": "object"
        },
        "progressPercentage": {
          "description": "Indicates progress of the job. Null if it has not started or completed.",
          "format": "double",
          "type": "number"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks associated with this job.",
          "items": {
            "$ref": "#/definitions/AzureIaaSVMJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMJobTaskDetails": {
      "description": "Azure IaaS VM workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "instanceId": {
          "description": "The instanceId.",
          "type": "string"
        },
        "progressPercentage": {
          "description": "Progress of the task.",
          "format": "double",
          "type": "number"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskExecutionDetails": {
          "description": "Details about execution of the task.\r\neg: number of bytes transferred etc",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureRecoveryServiceVaultProtectionIntent": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionIntent"
        }
      ],
      "description": "Azure Recovery Services Vault specific protection intent item.",
      "type": "object",
      "x-ms-discriminator-value": "RecoveryServiceVaultItem"
    },
    "AzureResourceProtectionIntent": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionIntent"
        }
      ],
      "description": "IaaS VM specific backup protection intent item.",
      "properties": {
        "friendlyName": {
          "description": "Friendly name of the VM represented by this backup item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureResourceItem"
    },
    "AzureStorageErrorInfo": {
      "description": "Azure storage specific error information",
      "properties": {
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureStorageJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure storage specific job.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureStorageErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureStorageJobExtendedInfo",
          "description": "Additional information about the job."
        },
        "storageAccountName": {
          "description": "Specifies friendly name of the storage account.",
          "type": "string"
        },
        "storageAccountVersion": {
          "description": "Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureStorageJob"
    },
    "AzureStorageJobExtendedInfo": {
      "description": "Azure Storage workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job",
          "items": {
            "$ref": "#/definitions/AzureStorageJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureStorageJobTaskDetails": {
      "description": "Azure storage workload specific job task details.",
      "properties": {
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureVMResourceFeatureSupportRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/FeatureSupportRequest"
        }
      ],
      "description": "AzureResource(IaaS VM) Specific feature support request",
      "properties": {
        "vmSize": {
          "description": "Size of the resource: VM size(A/D series etc) in case of IaasVM",
          "type": "string"
        },
        "vmSku": {
          "description": "SKUs (Premium/Managed etc) in case of IaasVM",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureVMResourceBackup"
    },
    "AzureVMResourceFeatureSupportResponse": {
      "description": "Response for feature support requests for Azure IaasVm",
      "properties": {
        "supportStatus": {
          "description": "Support status of feature",
          "enum": [
            "Invalid",
            "Supported",
            "DefaultOFF",
            "DefaultON",
            "NotSupported"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SupportStatus"
          }
        }
      },
      "type": "object"
    },
    "AzureWorkloadAutoProtectionIntent": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureRecoveryServiceVaultProtectionIntent"
        }
      ],
      "description": "Azure Recovery Services Vault specific protection intent item.",
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadAutoProtectionIntent"
    },
    "AzureWorkloadErrorInfo": {
      "description": "Azure storage specific error information",
      "properties": {
        "additionalDetails": {
          "description": "Additional details for above error code.",
          "type": "string"
        },
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "errorTitle": {
          "description": "Title: Typically, the entity that the error pertains to.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureWorkloadJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure storage specific job.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureWorkloadErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureWorkloadJobExtendedInfo",
          "description": "Additional information about the job."
        },
        "workloadType": {
          "description": "Workload type of the job",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadJob"
    },
    "AzureWorkloadJobExtendedInfo": {
      "description": "Azure VM workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job",
          "items": {
            "$ref": "#/definitions/AzureWorkloadJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureWorkloadJobTaskDetails": {
      "description": "Azure VM workload specific job task details.",
      "properties": {
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureWorkloadSQLAutoProtectionIntent": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadAutoProtectionIntent"
        }
      ],
      "description": "Azure Workload SQL Auto Protection intent item.",
      "properties": {
        "workloadItemType": {
          "description": "Workload item type of the item for which intent is to be set",
          "enum": [
            "Invalid",
            "SQLInstance",
            "SQLDataBase",
            "SAPHanaSystem",
            "SAPHanaDatabase",
            "SAPAseSystem",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "WorkloadItemType"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSQLAutoProtectionIntent"
    },
    "BMSBackupSummariesQueryObject": {
      "description": "Query parameters to fetch backup summaries.",
      "properties": {
        "type": {
          "description": "Backup management type for this container.",
          "enum": [
            "Invalid",
            "BackupProtectedItemCountSummary",
            "BackupProtectionContainerCountSummary"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "Type"
          }
        }
      },
      "type": "object"
    },
    "BackupManagementUsage": {
      "description": "Backup management usages of a vault.",
      "properties": {
        "currentValue": {
          "description": "Current value of usage.",
          "format": "int64",
          "type": "integer"
        },
        "limit": {
          "description": "Limit of usage.",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "$ref": "#/definitions/NameInfo",
          "description": "Name of usage."
        },
        "nextResetTime": {
          "description": "Next reset time of usage.",
          "format": "date-time",
          "type": "string"
        },
        "quotaPeriod": {
          "description": "Quota period of usage.",
          "type": "string"
        },
        "unit": {
          "description": "Unit of the usage.",
          "enum": [
            "Count",
            "Bytes",
            "Seconds",
            "Percent",
            "CountPerSecond",
            "BytesPerSecond"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "UsagesUnit"
          }
        }
      },
      "type": "object"
    },
    "BackupManagementUsageList": {
      "description": "Backup management usage for vault.",
      "properties": {
        "value": {
          "description": "The list of backup management usages for the given vault.",
          "items": {
            "$ref": "#/definitions/BackupManagementUsage"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BackupStatusRequest": {
      "description": "BackupStatus request.",
      "properties": {
        "poLogicalName": {
          "description": "Protectable Item Logical Name",
          "type": "string"
        },
        "resourceId": {
          "description": "Entire ARM resource id of the resource",
          "type": "string"
        },
        "resourceType": {
          "description": "Container Type - VM, SQLPaaS, DPM, AzureFileShare...",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "DataSourceType"
          }
        }
      },
      "type": "object"
    },
    "BackupStatusResponse": {
      "description": "BackupStatus response.",
      "properties": {
        "containerName": {
          "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname.",
          "type": "string"
        },
        "errorCode": {
          "description": "ErrorCode in case of intent failed",
          "type": "string"
        },
        "errorMessage": {
          "description": "ErrorMessage in case of intent failed.",
          "type": "string"
        },
        "fabricName": {
          "description": "Specifies the fabric name - Azure or AD",
          "enum": [
            "Invalid",
            "Azure"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "FabricName"
          }
        },
        "policyName": {
          "description": "Specifies the policy name which is used for protection",
          "type": "string"
        },
        "protectedItemName": {
          "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname.",
          "type": "string"
        },
        "protectionStatus": {
          "description": "Specifies whether the container is registered or not",
          "enum": [
            "Invalid",
            "NotProtected",
            "Protecting",
            "Protected",
            "ProtectionFailed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionStatus"
          }
        },
        "registrationStatus": {
          "description": "Container registration status",
          "type": "string"
        },
        "vaultId": {
          "description": "Specifies the arm resource id of the vault",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DpmErrorInfo": {
      "description": "DPM workload-specific error information.",
      "properties": {
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DpmJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "DPM workload-specific job object.",
      "properties": {
        "actionsInfo": {
          "description": "The state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "containerName": {
          "description": "Name of cluster/server protecting current backup item, if any.",
          "type": "string"
        },
        "containerType": {
          "description": "Type of container.",
          "type": "string"
        },
        "dpmServerName": {
          "description": "DPM server name managing the backup item or backup job.",
          "type": "string"
        },
        "duration": {
          "description": "Time elapsed for job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "The errors.",
          "items": {
            "$ref": "#/definitions/DpmErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/DpmJobExtendedInfo",
          "description": "Additional information for this job."
        },
        "workloadType": {
          "description": "Type of backup item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "DpmJob"
    },
    "DpmJobExtendedInfo": {
      "description": "Additional information on the DPM workload-specific job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks associated with this job.",
          "items": {
            "$ref": "#/definitions/DpmJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DpmJobTaskDetails": {
      "description": "DPM workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FeatureSupportRequest": {
      "description": "Base class for feature request",
      "discriminator": "featureType",
      "properties": {
        "featureType": {
          "description": "backup support feature type.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "InstantRPAdditionalDetails": {
      "properties": {
        "azureBackupRGNamePrefix": {
          "type": "string"
        },
        "azureBackupRGNameSuffix": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Job": {
      "description": "Defines workload agnostic properties for a job.",
      "discriminator": "jobType",
      "properties": {
        "activityId": {
          "description": "ActivityId of job.",
          "type": "string"
        },
        "backupManagementType": {
          "description": "Backup management type to execute the current job.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "entityFriendlyName": {
          "description": "Friendly name of the entity on which the current job is executing.",
          "type": "string"
        },
        "jobType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        },
        "operation": {
          "description": "The operation name.",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "Job status.",
          "type": "string"
        }
      },
      "required": [
        "jobType"
      ],
      "type": "object"
    },
    "JobResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Defines workload agnostic properties for a job.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/Job",
          "description": "JobResource properties"
        }
      }
    },
    "MabErrorInfo": {
      "description": "MAB workload-specific error information.",
      "properties": {
        "errorString": {
          "description": "Localized error string.",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object"
    },
    "MabJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "MAB workload-specific job.",
      "properties": {
        "actionsInfo": {
          "description": "The state/actions applicable on jobs like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time taken by job to run.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "The errors.",
          "items": {
            "$ref": "#/definitions/MabErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/MabJobExtendedInfo",
          "description": "Additional information on the job."
        },
        "mabServerName": {
          "description": "Name of server protecting the DS.",
          "type": "string"
        },
        "mabServerType": {
          "description": "Server type of MAB container.",
          "enum": [
            "Invalid",
            "Unknown",
            "IaasVMContainer",
            "IaasVMServiceContainer",
            "DPMContainer",
            "AzureBackupServerContainer",
            "MABContainer",
            "Cluster",
            "AzureSqlContainer",
            "Windows",
            "VCenter",
            "VMAppContainer",
            "SQLAGWorkLoadContainer",
            "StorageContainer",
            "GenericContainer"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "MabServerType"
          }
        },
        "workloadType": {
          "description": "Workload type of backup item.",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "WorkloadType"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "MabJob"
    },
    "MabJobExtendedInfo": {
      "description": "Additional information for the MAB workload-specific job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message specific to this job.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job.",
          "items": {
            "$ref": "#/definitions/MabJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MabJobTaskDetails": {
      "description": "MAB workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NameInfo": {
      "description": "The name of usage.",
      "properties": {
        "localizedValue": {
          "description": "Localized value of usage.",
          "type": "string"
        },
        "value": {
          "description": "Value of usage.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PreValidateEnableBackupRequest": {
      "description": "Contract to validate if backup can be enabled on the given resource in a given vault and given configuration.\r\nIt will validate followings\r\n1. Vault capacity\r\n2. VM is already protected\r\n3. Any VM related configuration passed in properties.",
      "properties": {
        "properties": {
          "description": "Configuration of VM if any needs to be validated like OS type etc",
          "type": "string"
        },
        "resourceId": {
          "description": "ARM Virtual Machine Id",
          "type": "string"
        },
        "resourceType": {
          "description": "ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "DataSourceType"
          }
        },
        "vaultId": {
          "description": "ARM id of the Recovery Services Vault",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PreValidateEnableBackupResponse": {
      "description": "Response contract for enable backup validation request",
      "properties": {
        "containerName": {
          "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required\r\nfor portal",
          "type": "string"
        },
        "errorCode": {
          "description": "Response error code",
          "type": "string"
        },
        "errorMessage": {
          "description": "Response error message",
          "type": "string"
        },
        "protectedItemName": {
          "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal",
          "type": "string"
        },
        "recommendation": {
          "description": "Recommended action for user",
          "type": "string"
        },
        "status": {
          "description": "Validation Status",
          "enum": [
            "Invalid",
            "Succeeded",
            "Failed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ValidationStatus"
          }
        }
      },
      "type": "object"
    },
    "ProtectionIntent": {
      "description": "Base class for backup ProtectionIntent.",
      "discriminator": "protectionIntentItemType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management for the backed up item.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "itemId": {
          "description": "ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId",
          "type": "string"
        },
        "policyId": {
          "description": "ID of the backup policy with which this item is backed up.",
          "type": "string"
        },
        "protectionIntentItemType": {
          "description": "backup protectionIntent type.",
          "type": "string"
        },
        "protectionState": {
          "description": "Backup state of this backup item.",
          "enum": [
            "Invalid",
            "NotProtected",
            "Protecting",
            "Protected",
            "ProtectionFailed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionStatus"
          }
        },
        "sourceResourceId": {
          "description": "ARM ID of the resource to be backed up.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProtectionIntentQueryObject": {
      "description": "Filters to list protection intent.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type for the backed up item",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "itemName": {
          "description": "Item name of the intent",
          "type": "string"
        },
        "itemType": {
          "description": "Type of workload this item represents",
          "enum": [
            "Invalid",
            "SQLInstance",
            "SQLAvailabilityGroupContainer"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "IntentItemType"
          }
        },
        "parentName": {
          "description": "Parent name of the intent",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProtectionIntentResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup ProtectionIntent.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ProtectionIntent",
          "description": "ProtectionIntentResource properties"
        }
      }
    },
    "ProtectionIntentResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of ProtectionIntent resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/ProtectionIntentResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Resource": {
      "description": "ARM Resource.",
      "properties": {
        "eTag": {
          "description": "Optional ETag.",
          "type": "string"
        },
        "id": {
          "description": "Resource Id represents the complete path to the resource.",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "Resource location.",
          "type": "string"
        },
        "name": {
          "description": "Resource name associated with the resource.",
          "readOnly": true,
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags.",
          "type": "object"
        },
        "type": {
          "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-azure-resource": true
    },
    "ResourceList": {
      "description": "Base for all lists of resources.",
      "properties": {
        "nextLink": {
          "description": "The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.",
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}