{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "RecoveryServicesBackupClient",
    "version": "2016-12-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/2016-12-01/bms.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "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"
    },
    "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}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines": {
      "get": {
        "description": "Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.",
        "operationId": "BackupEngines_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/BackupEngineBaseResourceList"
            }
          }
        },
        "tags": [
          "BackupEngines"
        ],
        "x-ms-examples": {
          "List Dpm/AzureBackupServer/Lajolla Backup Engines": {
            "parameters": {
              "api-version": "2016-12-01",
              "resourceGroupName": "testRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer1",
                      "name": "testServer1",
                      "properties": {
                        "azureBackupAgentVersion": "2.0.9532.0",
                        "backupEngineState": "Active",
                        "backupEngineType": "DpmBackupEngine",
                        "dpmVersion": "5.1.348.0",
                        "extendedInfo": {
                          "availableDiskSpace": 50,
                          "diskCount": 5,
                          "protectedItemsCount": 35,
                          "protectedServersCount": 21,
                          "usedDiskSpace": 20
                        },
                        "friendlyName": "testServer1",
                        "isAzureBackupAgentUpgradeAvailable": false,
                        "isDpmUpgradeAvailable": false,
                        "registrationStatus": "Registered"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupEngines"
                    },
                    {
                      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer5",
                      "name": "testServer5",
                      "properties": {
                        "azureBackupAgentVersion": "2.0.9530.0",
                        "backupEngineState": "Active",
                        "backupEngineType": "DpmBackupEngine",
                        "dpmVersion": "5.1.348.0",
                        "extendedInfo": {
                          "availableDiskSpace": 50,
                          "diskCount": 5,
                          "protectedItemsCount": 35,
                          "protectedServersCount": 21,
                          "usedDiskSpace": 20
                        },
                        "friendlyName": "testServer5",
                        "isAzureBackupAgentUpgradeAvailable": false,
                        "isDpmUpgradeAvailable": false,
                        "registrationStatus": "Registered"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupEngines"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSBackupEnginesQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines/{backupEngineName}": {
      "get": {
        "description": "Returns backup management server registered to Recovery Services Vault.",
        "operationId": "BackupEngines_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Name of the backup management server.",
            "in": "path",
            "name": "backupEngineName",
            "required": true,
            "type": "string"
          },
          {
            "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/BackupEngineBaseResource"
            }
          }
        },
        "tags": [
          "BackupEngines"
        ],
        "x-ms-examples": {
          "Get Dpm/AzureBackupServer/Lajolla Backup Engine Details": {
            "parameters": {
              "api-version": "2016-12-01",
              "backupEngineName": "testServer",
              "resourceGroupName": "testRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer",
                  "name": "testServer",
                  "properties": {
                    "azureBackupAgentVersion": "2.0.9532.0",
                    "backupEngineState": "Active",
                    "backupEngineType": "DpmBackupEngine",
                    "dpmVersion": "5.1.348.0",
                    "extendedInfo": {
                      "availableDiskSpace": 50,
                      "diskCount": 5,
                      "protectedItemsCount": 35,
                      "protectedServersCount": 21,
                      "usedDiskSpace": 20
                    },
                    "friendlyName": "testServer",
                    "isAzureBackupAgentUpgradeAvailable": false,
                    "isDpmUpgradeAvailable": false,
                    "registrationStatus": "Registered"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupEngines"
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSBackupEngineQueryObject"
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/operationResults/{operationId}": {
      "get": {
        "description": "Provides the result of the refresh operation triggered by the BeginRefresh operation.",
        "operationId": "ProtectionContainerRefreshOperationResults_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Operation ID associated with the operation whose result needs to be fetched.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "ProtectionContainerRefreshOperationResults"
        ],
        "x-ms-examples": {
          "Azure Vm Discovery Operation Result": {
            "parameters": {
              "api-version": "2016-12-01",
              "fabricName": "Azure",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              },
              "204": {}
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectableContainers": {
      "get": {
        "description": "Lists the containers that can be registered to Recovery Services Vault.",
        "operationId": "ProtectableContainers_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectableContainerResourceList"
            }
          }
        },
        "tags": [
          "ProtectableContainers"
        ],
        "x-ms-examples": {
          "List protectable items with backupManagementType filter as AzureStorage": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureStorage' and workloadType eq 'AzureFileShare'",
              "api-version": "2017-07-01",
              "fabricName": "Azure",
              "resourceGroupName": "testRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testvault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;storage;test-rg;teststorage",
                      "name": "StorageContainer;storage;test-rg;testst",
                      "properties": {
                        "backupManagementType": "AzureStorage",
                        "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/teststorage",
                        "friendlyName": "teststorage",
                        "healthStatus": "Healthy",
                        "protectableContainerType": "StorageContainer"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers"
                    },
                    {
                      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;ClassicStorage;test-rg;teststorage",
                      "name": "StorageContainer;ClassicStorage;test-rg;teststorage",
                      "properties": {
                        "backupManagementType": "AzureStorage",
                        "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ClassicStorage/storageAccounts/teststorage",
                        "friendlyName": "teststorage",
                        "healthStatus": "Healthy",
                        "protectableContainerType": "StorageContainer"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSContainerQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}": {
      "delete": {
        "description": "Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To determine\r\nwhether the backend service has finished processing the request, call Get Container Operation Result API.",
        "operationId": "ProtectionContainers_Unregister",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Name of the fabric where the container belongs.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the container which needs to be unregistered from the Recovery Services Vault.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "ProtectionContainers"
        ],
        "x-ms-examples": {
          "Unregister Protection Container": {
            "parameters": {
              "api-version": "2016-12-01",
              "containerName": "storagecontainer;Storage;test-rg;teststorage",
              "fabricName": "Azure",
              "resourceGroupName": "testRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Retry-After": 60
                }
              },
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Gets details of the specific container registered to your Recovery Services Vault.",
        "operationId": "ProtectionContainers_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Name of the fabric where the container belongs.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the container whose details need to be fetched.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionContainerResource"
            }
          }
        },
        "tags": [
          "ProtectionContainers"
        ],
        "x-ms-examples": {
          "Get Protection Container Details": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureWorkload'",
              "api-version": "2016-12-01",
              "containerName": "VMAppContainer;Compute;testRG;testSQL",
              "fabricName": "Azure",
              "resourceGroupName": "testRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL",
                  "name": "VMAppContainer;Compute;testRG;testSQL",
                  "properties": {
                    "backupManagementType": "AzureWorkload",
                    "containerType": "VMAppContainer",
                    "extendedInfo": {
                      "hostServerName": "testsql",
                      "inquiryInfo": {
                        "errorDetail": {
                          "code": "Success",
                          "message": "Not Available",
                          "recommendations": [
                            "Not Available"
                          ]
                        },
                        "inquiryDetails": [
                          {
                            "inquiryValidation": {
                              "errorDetail": {
                                "code": "Success",
                                "message": "Not Available",
                                "recommendations": [
                                  "Not Available"
                                ]
                              },
                              "status": "Success"
                            },
                            "itemCount": 14,
                            "type": "sql"
                          }
                        ],
                        "status": "Success"
                      },
                      "nodesList": []
                    },
                    "friendlyName": "testSQL",
                    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL",
                    "workloadType": null
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Registers the container with Recovery Services vault.\r\nThis is an asynchronous operation. To track the operation status, use location header to call get latest status of\r\nthe operation.",
        "operationId": "ProtectionContainers_Register",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the container to be registered.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Request body for operation",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ProtectionContainerResource"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionContainerResource"
            }
          },
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "ProtectionContainers"
        ],
        "x-ms-examples": {
          "RegisterAzure Storage ProtectionContainers": {
            "parameters": {
              "api-version": "2017-07-01",
              "containerName": "VMAppContainer;Compute;testRG;testSQL",
              "fabricName": "Azure",
              "parameters": {
                "properties": {
                  "backupManagementType": "AzureWorkload",
                  "containerType": "VMAppContainer",
                  "friendlyName": "testSQL",
                  "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL"
                }
              },
              "resourceGroupName": "test-rg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testvault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL",
                  "name": "VMAppContainer;Compute;testRG;testSQL",
                  "properties": {
                    "backupManagementType": "AzureWorkload",
                    "containerType": "VMAppContainer",
                    "extendedInfo": {
                      "hostServerName": "testsql",
                      "inquiryInfo": {
                        "errorDetail": {
                          "code": "Success",
                          "message": "Not Available",
                          "recommendations": [
                            "Not Available"
                          ]
                        },
                        "inquiryDetails": [
                          {
                            "inquiryValidation": {
                              "errorDetail": {
                                "code": "Success",
                                "message": "Not Available",
                                "recommendations": [
                                  "Not Available"
                                ]
                              },
                              "status": "Success"
                            },
                            "itemCount": 14,
                            "type": "sql"
                          }
                        ],
                        "status": "Success"
                      },
                      "nodesList": []
                    },
                    "friendlyName": "testSQL",
                    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL",
                    "workloadType": null
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers"
                }
              },
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Retry-After": 60
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/inquire": {
      "post": {
        "description": "This is an async operation and the results should be tracked using location header or Azure-async-url.",
        "operationId": "ProtectionContainers_Inquire",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric Name associated with the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the container in which inquiry needs to be triggered.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "summary": "Inquires all the protectable items under the given container.",
        "tags": [
          "ProtectionContainers"
        ],
        "x-ms-examples": {
          "Inquire Azure Storage Protection Containers": {
            "parameters": {
              "api-version": "2017-07-01",
              "containerName": "storagecontainer;Storage;test-rg;teststorage",
              "fabricName": "Azure",
              "resourceGroupName": "test-rg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testvault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSContainersInquiryQueryObject"
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/items": {
      "get": {
        "description": "Provides a pageable list of workload item of a specific container according to the query filter and the pagination\r\nparameters.",
        "operationId": "BackupWorkloadItems_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of the container.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "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/WorkloadItemResourceList"
            }
          }
        },
        "tags": [
          "BackupWorkloadItems"
        ],
        "x-ms-examples": {
          "List Workload Items in Container": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureWorkload'",
              "api-version": "2016-12-01",
              "containerName": "VMAppContainer;Compute;bvtdtestag;sqlserver-1",
              "fabricName": "Azure",
              "resourceGroupName": "testRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "suchandr-seacan-rsv"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": null,
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testRg/providers/Microsoft.RecoveryServices/vaults/suchandr-seacan-rsv/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;bvtdtestag;sqlserver-1/protectableItems/SQLInstance;MSSQLSERVER",
                      "name": "SQLInstance;MSSQLSERVER",
                      "properties": {
                        "backupManagementType": "AzureWorkload",
                        "dataDirectoryPaths": [
                          {
                            "path": "F:\\DATA\\",
                            "type": "Data"
                          },
                          {
                            "path": "F:\\LOG\\",
                            "type": "Log"
                          }
                        ],
                        "friendlyName": "MSSQLSERVER",
                        "isAutoProtectable": true,
                        "parentName": "MSSQLSERVER",
                        "protectionState": "NotProtected",
                        "serverName": "sqlserver-1.contoso.com",
                        "subWorkloadItemCount": 3,
                        "subinquireditemcount": 0,
                        "workloadItemType": "SQLInstance",
                        "workloadType": "SQL"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/items"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSWorkloadItemQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/operationResults/{operationId}": {
      "get": {
        "description": "Fetches the result of any operation on the container.",
        "operationId": "ProtectionContainerOperationResults_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Container name whose information should be fetched.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Operation ID which represents the operation whose result needs to be fetched.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionContainerResource"
            }
          },
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "ProtectionContainerOperationResults"
        ],
        "x-ms-examples": {
          "Get Azure Storage Protection Container Operation Result": {
            "parameters": {
              "api-version": "2017-07-01",
              "containerName": "VMAppContainer;Compute;testRG;testSQL",
              "fabricName": "Azure",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "resourceGroupName": "test-rg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testvault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL",
                  "name": "VMAppContainer;Compute;testRG;testSQL",
                  "properties": {
                    "backupManagementType": "AzureWorkload",
                    "containerType": "VMAppContainer",
                    "extendedInfo": {
                      "hostServerName": "testsql",
                      "inquiryInfo": {
                        "errorDetail": {
                          "code": "Success",
                          "message": "Not Available",
                          "recommendations": [
                            "Not Available"
                          ]
                        },
                        "inquiryDetails": [
                          {
                            "inquiryValidation": {
                              "errorDetail": {
                                "code": "Success",
                                "message": "Not Available",
                                "recommendations": [
                                  "Not Available"
                                ]
                              },
                              "status": "Success"
                            },
                            "itemCount": 14,
                            "type": "sql"
                          }
                        ],
                        "status": "Success"
                      },
                      "nodesList": []
                    },
                    "friendlyName": "testSQL",
                    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL",
                    "workloadType": null
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers"
                }
              },
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01",
                  "Retry-After": 60
                }
              },
              "204": {}
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup": {
      "post": {
        "description": "Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the\r\noperation, call GetProtectedItemOperationResult API.",
        "operationId": "Backups_Trigger",
        "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": "Container name associated with the backup item.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backup item for which backup needs to be triggered.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "resource backup request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupRequestResource"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "Backups"
        ],
        "x-ms-examples": {
          "Trigger Backup": {
            "parameters": {
              "api-version": "2016-12-01",
              "containerName": "IaasVMContainer;iaasvmcontainerv2;testrg;v1win2012r",
              "fabricName": "Azure",
              "parameters": {
                "properties": {
                  "objectType": "IaasVMBackupRequest"
                }
              },
              "protectedItemName": "VM;iaasvmcontainerv2;testrg;v1win2012r",
              "resourceGroupName": "linuxRsVaultRG",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "linuxRsVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationsStatus/{operationId}": {
      "get": {
        "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some operations\r\ncreate jobs. This method returns the list of jobs associated with the operation.",
        "operationId": "ProtectedItemOperationStatuses_Get",
        "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": "Container name associated with the backup item.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backup item name whose details are to be fetched.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "OperationID represents the operation whose status needs to be fetched.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OperationStatus"
            }
          }
        },
        "tags": [
          "ProtectedItemOperationStatuses"
        ],
        "x-ms-examples": {
          "Get Operation Status of Protected Vm": {
            "parameters": {
              "api-version": "2016-12-01",
              "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1",
              "fabricName": "Azure",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "endTime": "2017-10-29T06:04:18.207325Z",
                  "id": "00000000-0000-0000-0000-000000000000",
                  "name": "00000000-0000-0000-0000-000000000000",
                  "properties": {
                    "jobId": "00000000-0000-0000-0000-000000000000",
                    "objectType": "OperationStatusJobExtendedInfo"
                  },
                  "startTime": "2017-10-29T06:04:18.207325Z",
                  "status": "Succeeded"
                },
                "headers": {}
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/provisionInstantItemRecovery": {
      "post": {
        "description": "Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file\r\nexplorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status of\r\nprovisioning, call GetProtectedItemOperationResult API.",
        "operationId": "ItemLevelRecoveryConnections_Provision",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the backed up items.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Container name associated with the backed up items.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backed up item name whose files/folders are to be restored.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Recovery point ID which represents backed up data. iSCSI connection will be provisioned\r\nfor this backed up data.",
            "in": "path",
            "name": "recoveryPointId",
            "required": true,
            "type": "string"
          },
          {
            "description": "resource ILR request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ILRRequestResource"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "ItemLevelRecoveryConnections"
        ],
        "x-ms-examples": {
          "Provision Instant Item Level Recovery for Azure Vm": {
            "parameters": {
              "api-version": "2016-12-01",
              "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1",
              "fabricName": "Azure",
              "parameters": {
                "properties": {
                  "initiatorName": "Hello World",
                  "objectType": "IaasVMILRRegistrationRequest",
                  "recoveryPointId": "38823086363464",
                  "renewExistingRegistration": true,
                  "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pysdktestrg/providers/Microsoft.Compute/virtualMachines/pysdktestv2vm1"
                }
              },
              "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1",
              "recoveryPointId": "1",
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/revokeInstantItemRecovery": {
      "post": {
        "description": "Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer\r\ndisplaying all recoverable files and folders. This is an asynchronous operation.",
        "operationId": "ItemLevelRecoveryConnections_Revoke",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the backed up items.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Container name associated with the backed up items.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backed up item name whose files/folders are to be restored.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Recovery point ID which represents backed up data. iSCSI connection will be revoked for\r\nthis backed up data.",
            "in": "path",
            "name": "recoveryPointId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "ItemLevelRecoveryConnections"
        ],
        "x-ms-examples": {
          "Revoke Instant Item Level Recovery for Azure Vm": {
            "parameters": {
              "api-version": "2016-12-01",
              "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1",
              "fabricName": "Azure",
              "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1",
              "recoveryPointId": "1",
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers": {
      "post": {
        "description": "Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an\r\nasynchronous operation. To know the status of the operation, call GetRefreshOperationResult API.",
        "operationId": "ProtectionContainers_Refresh",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated the container.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "ProtectionContainers"
        ],
        "x-ms-examples": {
          "Trigger Azure Vm Discovery": {
            "parameters": {
              "api-version": "2016-12-01",
              "fabricName": "Azure",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSRefreshContainersQueryObject"
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperationResults/{operationId}": {
      "get": {
        "description": "Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the\r\nstatus code in the response would be Accepted. It will continue to be in this state till it reaches completion. On\r\nsuccessful completion, the status code will be OK. This method expects OperationID as an argument. OperationID is\r\npart of the Location header of the operation response.",
        "operationId": "BackupOperationResults_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "OperationID which represents the operation.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "202": {
            "description": "Accepted"
          },
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "BackupOperationResults"
        ],
        "x-ms-examples": {
          "Get Result for Protected Item Delete Operation": {
            "parameters": {
              "api-version": "2016-12-01",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperations/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01",
                  "Retry-After": 60
                }
              },
              "204": {}
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperations/{operationId}": {
      "get": {
        "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations\r\ncreate jobs. This method returns the list of jobs when the operation is complete.",
        "operationId": "BackupOperationStatuses_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "OperationID which represents the operation.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OperationStatus"
            }
          }
        },
        "tags": [
          "BackupOperationStatuses"
        ],
        "x-ms-examples": {
          "Get Protected Item Delete Operation Status": {
            "parameters": {
              "api-version": "2016-12-01",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "endTime": "0001-01-01T00:00:00.00000Z",
                  "id": "00000000-0000-0000-0000-000000000000",
                  "name": "00000000-0000-0000-0000-000000000000",
                  "startTime": "2017-08-03T06:52:53.886027Z",
                  "status": "InProgress"
                },
                "headers": {}
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}": {
      "delete": {
        "description": "Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of the\r\noperation can be fetched using GetPolicyOperationResult API.",
        "operationId": "ProtectionPolicies_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Backup policy to be deleted.",
            "in": "path",
            "name": "policyName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "ProtectionPolicies"
        ],
        "x-ms-examples": {
          "Delete Azure Vm Protection Policy": {
            "parameters": {
              "api-version": "2016-06-01",
              "policyName": "testPolicy1",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operations/{operationId}": {
      "get": {
        "description": "Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the Operation Status enum for all the possible states of an operation. Some operations\r\ncreate jobs. This method returns the list of jobs associated with operation.",
        "operationId": "ProtectionPolicyOperationStatuses_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Backup policy name whose operation's status needs to be fetched.",
            "in": "path",
            "name": "policyName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Operation ID which represents an operation whose status needs to be fetched.",
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OperationStatus"
            }
          }
        },
        "tags": [
          "ProtectionPolicyOperationStatuses"
        ],
        "x-ms-examples": {
          "Get Protection Policy Operation Status": {
            "parameters": {
              "api-version": "2016-06-01",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "policyName": "testPolicy1",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "endTime": "2018-01-24T12:57:32.1142968Z",
                  "id": "00000000-0000-0000-0000-000000000000",
                  "name": "GetProtectionPolicyOperationStatus",
                  "properties": {
                    "failedJobsError": {},
                    "jobIds": [
                      "00000000-0000-0000-0000-000000000000"
                    ],
                    "objectType": "OperationStatusJobsExtendedInfo"
                  },
                  "startTime": "2018-01-24T12:57:32.1142968Z",
                  "status": "Succeeded"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems": {
      "get": {
        "description": "Provides a pageable list of protectable objects within your subscription according to the query filter and the\r\npagination parameters.",
        "operationId": "BackupProtectableItems_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/WorkloadProtectableItemResourceList"
            }
          }
        },
        "tags": [
          "BackupProtectableItems"
        ],
        "x-ms-examples": {
          "List protectable items with backupManagementType filter as AzureIaasVm": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureIaasVM'",
              "api-version": "2016-06-01",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "NetSDKTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectableItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1",
                      "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1",
                      "properties": {
                        "backupManagementType": "AzureIaasVM",
                        "friendlyName": "iaasvm-1",
                        "protectableItemType": "Microsoft.ClassicCompute/virtualMachines",
                        "protectionState": "NotProtected",
                        "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1",
                        "workloadType": "VM"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSPOQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionContainers": {
      "get": {
        "description": "Lists the containers registered to Recovery Services Vault.",
        "operationId": "BackupProtectionContainers_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"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProtectionContainerResourceList"
            }
          }
        },
        "tags": [
          "BackupProtectionContainers"
        ],
        "x-ms-examples": {
          "List Backup Protection Containers": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureWorkload'",
              "api-version": "2016-12-01",
              "fabricName": "Azure",
              "resourceGroupName": "testRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "testVault"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125",
                      "name": "StorageContainer;Storage;testrg;suchandrtestsa125",
                      "properties": {
                        "backupManagementType": "AzureStorage",
                        "containerType": "StorageContainer",
                        "friendlyName": "suchandrtestsa125",
                        "healthStatus": "Healthy",
                        "protectedItemCount": 2,
                        "registrationStatus": "Registered",
                        "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSContainerQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupSecurityPIN": {
      "post": {
        "description": "Get the security PIN.",
        "operationId": "SecurityPINs_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TokenInformation"
            }
          }
        },
        "tags": [
          "SecurityPINs"
        ],
        "x-ms-examples": {
          "Get Vault Security Pin": {
            "parameters": {
              "api-version": "2016-12-01",
              "resourceGroupName": "SwaggerTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "SwaggerTest"
            },
            "responses": {
              "200": {
                "body": {
                  "expiryTimeInUtcTicks": 636495150137443100,
                  "securityPIN": "200432",
                  "token": "200432"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig": {
      "get": {
        "description": "Fetches resource storage config.",
        "operationId": "BackupResourceStorageConfigs_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BackupResourceConfigResource"
            }
          }
        },
        "tags": [
          "BackupResourceStorageConfigs"
        ],
        "x-ms-examples": {
          "Get Vault Storage Configuration": {
            "parameters": {
              "api-version": "2016-12-01",
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig",
                  "name": "vaultstorageconfig",
                  "properties": {
                    "storageModelType": "GeoRedundant",
                    "storageType": "GeoRedundant",
                    "storageTypeState": "Locked"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig"
                },
                "headers": {}
              }
            }
          }
        }
      },
      "patch": {
        "description": "Updates vault storage model type.",
        "operationId": "BackupResourceStorageConfigs_Patch",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Vault storage config request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupResourceConfigResource"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "NoContent"
          }
        },
        "tags": [
          "BackupResourceStorageConfigs"
        ],
        "x-ms-examples": {
          "Update Vault Storage Configuration": {
            "parameters": {
              "api-version": "2016-12-01",
              "parameters": {
                "properties": {
                  "storageType": "LocallyRedundant",
                  "storageTypeState": "Unlocked"
                }
              },
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "204": {}
            }
          }
        }
      },
      "put": {
        "description": "Updates vault storage model type.",
        "operationId": "BackupResourceStorageConfigs_Update",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Vault storage config request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupResourceConfigResource"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/BackupResourceConfigResource"
            }
          }
        },
        "tags": [
          "BackupResourceStorageConfigs"
        ],
        "x-ms-examples": {
          "Update Vault Storage Configuration": {
            "parameters": {
              "api-version": "2016-12-01",
              "parameters": {
                "properties": {
                  "storageType": "LocallyRedundant",
                  "storageTypeState": "Unlocked"
                }
              },
              "resourceGroupName": "PythonSDKBackupTestRg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "PySDKBackupTestRsVault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig",
                  "name": "vaultstorageconfig",
                  "properties": {
                    "storageModelType": "LocallyRedundant",
                    "storageType": "LocallyRedundant",
                    "storageTypeState": "Unlocked"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig"
                },
                "headers": {}
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AzureBackupServerContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/DpmContainer"
        }
      ],
      "description": "AzureBackupServer (DPMVenus) workload-specific protection container.",
      "type": "object",
      "x-ms-discriminator-value": "AzureBackupServerContainer"
    },
    "AzureBackupServerEngine": {
      "allOf": [
        {
          "$ref": "#/definitions/BackupEngineBase"
        }
      ],
      "description": "Backup engine type when Azure Backup Server is used to manage the backups.",
      "type": "object",
      "x-ms-discriminator-value": "AzureBackupServerEngine"
    },
    "AzureFileShareBackupRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/BackupRequest"
        }
      ],
      "description": "AzureFileShare workload-specific backup request.",
      "properties": {
        "recoveryPointExpiryTimeInUTC": {
          "description": "Backup copy will expire after the time specified (UTC).",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShareBackupRequest"
    },
    "AzureFileShareProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/WorkloadProtectableItem"
        }
      ],
      "description": "Protectable item for Azure Fileshare workloads.",
      "properties": {
        "azureFileShareType": {
          "description": "File Share type XSync or XSMB.",
          "enum": [
            "Invalid",
            "XSMB",
            "XSync"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "AzureFileShareType"
          }
        },
        "parentContainerFabricId": {
          "description": "Full Fabric ID of container to which this protectable item belongs. For example, ARM ID.",
          "type": "string"
        },
        "parentContainerFriendlyName": {
          "description": "Friendly name of container to which this protectable item belongs.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShare"
    },
    "AzureFileShareProvisionILRRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/ILRRequest"
        }
      ],
      "description": "Update snapshot Uri with the correct friendly Name of the source Azure file share.",
      "properties": {
        "recoveryPointId": {
          "description": "Recovery point ID.",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "Source Storage account ARM Id",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShareProvisionILRRequest"
    },
    "AzureIaaSClassicComputeVMContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/IaaSVMContainer"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing a classic virtual machine.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines"
    },
    "AzureIaaSClassicComputeVMProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/IaaSVMProtectableItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines"
    },
    "AzureIaaSComputeVMContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/IaaSVMContainer"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines"
    },
    "AzureIaaSComputeVMProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/IaaSVMProtectableItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines"
    },
    "AzureSQLAGWorkloadContainerProtectionContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadContainer"
        }
      ],
      "description": "Container for SQL workloads under SQL Availability Group.",
      "type": "object",
      "x-ms-discriminator-value": "SQLAGWorkLoadContainer"
    },
    "AzureSqlContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "Azure Sql workload-specific container.",
      "type": "object",
      "x-ms-discriminator-value": "AzureSqlContainer"
    },
    "AzureStorageContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "Azure Storage Account workload-specific container.",
      "properties": {
        "protectedItemCount": {
          "description": "Number of items backed up in this container.",
          "format": "int64",
          "type": "integer"
        },
        "resourceGroup": {
          "description": "Resource group name of Recovery Services Vault.",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "Fully qualified ARM url.",
          "type": "string"
        },
        "storageAccountVersion": {
          "description": "Storage account version.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "StorageContainer"
    },
    "AzureStorageProtectableContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectableContainer"
        }
      ],
      "description": "Azure Storage-specific protectable containers",
      "type": "object",
      "x-ms-discriminator-value": "StorageContainer"
    },
    "AzureVMAppContainerProtectableContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectableContainer"
        }
      ],
      "description": "Azure workload-specific container",
      "type": "object",
      "x-ms-discriminator-value": "VMAppContainer"
    },
    "AzureVMAppContainerProtectionContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadContainer"
        }
      ],
      "description": "Container for SQL workloads under Azure Virtual Machines.",
      "type": "object",
      "x-ms-discriminator-value": "VMAppContainer"
    },
    "AzureVmWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/WorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item.",
      "properties": {
        "isAutoProtectable": {
          "description": "Indicates if workload item is auto-protectable",
          "type": "boolean"
        },
        "parentName": {
          "description": "Name for instance or AG",
          "type": "string"
        },
        "serverName": {
          "description": "Host/Cluster Name for instance or AG",
          "type": "string"
        },
        "subWorkloadItemCount": {
          "description": "For instance or AG, indicates number of DB's to be protected",
          "format": "int32",
          "type": "integer"
        },
        "subinquireditemcount": {
          "description": "For instance or AG, indicates number of DB's present",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadItem"
    },
    "AzureVmWorkloadProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/WorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item.",
      "properties": {
        "isAutoProtectable": {
          "description": "Indicates if protectable item is auto-protectable",
          "type": "boolean"
        },
        "isAutoProtected": {
          "description": "Indicates if protectable item is auto-protected",
          "type": "boolean"
        },
        "parentName": {
          "description": "Name for instance or AG",
          "type": "string"
        },
        "parentUniqueName": {
          "description": "Parent Unique Name is added to provide the service formatted URI Name of the Parent\r\nOnly Applicable for data bases where the parent would be either Instance or a SQL AG.",
          "type": "string"
        },
        "prebackupvalidation": {
          "$ref": "#/definitions/PreBackupValidation",
          "description": "Pre-backup validation for protectable objects"
        },
        "serverName": {
          "description": "Host/Cluster Name for instance or AG",
          "type": "string"
        },
        "subinquireditemcount": {
          "description": "For instance or AG, indicates number of DB's present",
          "format": "int32",
          "type": "integer"
        },
        "subprotectableitemcount": {
          "description": "For instance or AG, indicates number of DB's to be protected",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadProtectableItem"
    },
    "AzureVmWorkloadSAPAseDatabaseWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SAP ASE Database.",
      "type": "object",
      "x-ms-discriminator-value": "SAPAseDatabase"
    },
    "AzureVmWorkloadSAPAseSystemProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SAP ASE System.",
      "type": "object",
      "x-ms-discriminator-value": "SAPAseSystem"
    },
    "AzureVmWorkloadSAPAseSystemWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SAP ASE System.",
      "type": "object",
      "x-ms-discriminator-value": "SAPAseSystem"
    },
    "AzureVmWorkloadSAPHanaDatabaseProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SAP HANA Database.",
      "type": "object",
      "x-ms-discriminator-value": "SAPHanaDatabase"
    },
    "AzureVmWorkloadSAPHanaDatabaseWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SAP HANA Database.",
      "type": "object",
      "x-ms-discriminator-value": "SAPHanaDatabase"
    },
    "AzureVmWorkloadSAPHanaSystemProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SAP HANA System.",
      "type": "object",
      "x-ms-discriminator-value": "SAPHanaSystem"
    },
    "AzureVmWorkloadSAPHanaSystemWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SAP HANA System.",
      "type": "object",
      "x-ms-discriminator-value": "SAPHanaSystem"
    },
    "AzureVmWorkloadSQLAvailabilityGroupProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SQL Availability Group.",
      "type": "object",
      "x-ms-discriminator-value": "SQLAvailabilityGroupContainer"
    },
    "AzureVmWorkloadSQLDatabaseProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SQL Database.",
      "type": "object",
      "x-ms-discriminator-value": "SQLDataBase"
    },
    "AzureVmWorkloadSQLDatabaseWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SQL Database.",
      "type": "object",
      "x-ms-discriminator-value": "SQLDataBase"
    },
    "AzureVmWorkloadSQLInstanceProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectableItem"
        }
      ],
      "description": "Azure VM workload-specific protectable item representing SQL Instance.",
      "type": "object",
      "x-ms-discriminator-value": "SQLInstance"
    },
    "AzureVmWorkloadSQLInstanceWorkloadItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadItem"
        }
      ],
      "description": "Azure VM workload-specific workload item representing SQL Instance.",
      "properties": {
        "dataDirectoryPaths": {
          "description": "Data Directory Paths for default directories",
          "items": {
            "$ref": "#/definitions/SQLDataDirectory"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "SQLInstance"
    },
    "AzureWorkloadBackupRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/BackupRequest"
        }
      ],
      "description": "AzureWorkload workload-specific backup request.",
      "properties": {
        "backupType": {
          "description": "Type of backup, viz. Full, Differential, Log or CopyOnlyFull",
          "enum": [
            "Invalid",
            "Full",
            "Differential",
            "Log",
            "CopyOnlyFull"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "backupType"
          }
        },
        "enableCompression": {
          "description": "Bool for Compression setting",
          "type": "boolean"
        },
        "recoveryPointExpiryTimeInUTC": {
          "description": "Backup copy will expire after the time specified (UTC).",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadBackupRequest"
    },
    "AzureWorkloadContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "Container for the workloads running inside Azure Compute or Classic Compute.",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo",
          "description": "Additional details of a workload container."
        },
        "lastUpdatedTime": {
          "description": "Time stamp when this container was updated.",
          "format": "date-time",
          "type": "string"
        },
        "operationType": {
          "description": "Re-Do Operation",
          "enum": [
            "Invalid",
            "Register",
            "Reregister"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "OperationType"
          }
        },
        "sourceResourceId": {
          "description": "ARM ID of the virtual machine represented by this Azure Workload Container",
          "type": "string"
        },
        "workloadType": {
          "description": "Workload type for which registration was sent.",
          "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": "AzureWorkloadContainer"
    },
    "AzureWorkloadContainerExtendedInfo": {
      "description": "Extended information of the container.",
      "properties": {
        "hostServerName": {
          "description": "Host Os Name in case of Stand Alone and Cluster Name in case of distributed container.",
          "type": "string"
        },
        "inquiryInfo": {
          "$ref": "#/definitions/InquiryInfo",
          "description": "Inquiry Status for the container."
        },
        "nodesList": {
          "description": "List of the nodes in case of distributed container.",
          "items": {
            "$ref": "#/definitions/DistributedNodesInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BMSBackupEngineQueryObject": {
      "description": "Query parameters to fetch list of backup engines.",
      "properties": {
        "expand": {
          "description": "attribute to add extended info",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BMSBackupEnginesQueryObject": {
      "description": "Query parameters to fetch list of backup engines.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type for the backup engine.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "expand": {
          "description": "Attribute to add extended info.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of the backup engine.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BMSContainerQueryObject": {
      "description": "The query filters that can be used with the list containers API.",
      "properties": {
        "backupEngineName": {
          "description": "Backup engine name",
          "type": "string"
        },
        "backupManagementType": {
          "description": "Backup management type for this container.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "containerType": {
          "description": "Type of container for filter",
          "enum": [
            "Invalid",
            "Unknown",
            "IaasVMContainer",
            "IaasVMServiceContainer",
            "DPMContainer",
            "AzureBackupServerContainer",
            "MABContainer",
            "Cluster",
            "AzureSqlContainer",
            "Windows",
            "VCenter",
            "VMAppContainer",
            "SQLAGWorkLoadContainer",
            "StorageContainer",
            "GenericContainer"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ContainerType"
          }
        },
        "fabricName": {
          "description": "Fabric name for filter",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of this container.",
          "type": "string"
        },
        "status": {
          "description": "Status of registration of this container with the Recovery Services Vault.",
          "type": "string"
        }
      },
      "required": [
        "backupManagementType"
      ],
      "type": "object"
    },
    "BMSContainersInquiryQueryObject": {
      "description": "The query filters that can be used with the inquire container API.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type for this container.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "workloadType": {
          "description": "Workload type for this container.",
          "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"
    },
    "BMSPOQueryObject": {
      "description": "Filters to list items that can be backed up.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureSql",
            "AzureBackupServer",
            "AzureWorkload",
            "AzureStorage",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "containerName": {
          "description": "Full name of the container whose Protectable Objects should be returned.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name.",
          "type": "string"
        },
        "status": {
          "description": "Backup status query parameter.",
          "type": "string"
        },
        "workloadType": {
          "description": "Workload type",
          "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"
    },
    "BMSRefreshContainersQueryObject": {
      "description": "The query filters that can be used with the refresh container API.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type for this container.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        }
      },
      "type": "object"
    },
    "BMSWorkloadItemQueryObject": {
      "description": "Filters to list items that can be backed up.",
      "properties": {
        "backupManagementType": {
          "description": "Backup management type.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureSql",
            "AzureBackupServer",
            "AzureWorkload",
            "AzureStorage",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "protectionStatus": {
          "description": "Backup status query parameter.",
          "enum": [
            "Invalid",
            "NotProtected",
            "Protecting",
            "Protected",
            "ProtectionFailed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionStatus"
          }
        },
        "workloadItemType": {
          "description": "Workload Item type",
          "enum": [
            "Invalid",
            "SQLInstance",
            "SQLDataBase",
            "SAPHanaSystem",
            "SAPHanaDatabase",
            "SAPAseSystem",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "WorkloadItemType"
          }
        },
        "workloadType": {
          "description": "Workload type",
          "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"
    },
    "BackupEngineBase": {
      "description": "The base backup engine class. All workload specific backup engines derive from this class.",
      "discriminator": "backupEngineType",
      "properties": {
        "azureBackupAgentVersion": {
          "description": "Backup agent version",
          "type": "string"
        },
        "backupEngineId": {
          "description": "ID of the backup engine.",
          "type": "string"
        },
        "backupEngineState": {
          "description": "Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}",
          "type": "string"
        },
        "backupEngineType": {
          "description": "Type of the backup engine.",
          "enum": [
            "Invalid",
            "DpmBackupEngine",
            "AzureBackupServerEngine"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupEngineType"
          }
        },
        "backupManagementType": {
          "description": "Type of backup management for the backup engine.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "canReRegister": {
          "description": "Flag indicating if the backup engine be registered, once already registered.",
          "type": "boolean"
        },
        "dpmVersion": {
          "description": "Backup engine version",
          "type": "string"
        },
        "extendedInfo": {
          "$ref": "#/definitions/BackupEngineExtendedInfo",
          "description": "Extended info of the backupengine"
        },
        "friendlyName": {
          "description": "Friendly name of the backup engine.",
          "type": "string"
        },
        "healthStatus": {
          "description": "Backup status of the backup engine.",
          "type": "string"
        },
        "isAzureBackupAgentUpgradeAvailable": {
          "description": "To check if backup agent upgrade available",
          "type": "boolean"
        },
        "isDpmUpgradeAvailable": {
          "description": "To check if backup engine upgrade available",
          "type": "boolean"
        },
        "registrationStatus": {
          "description": "Registration status of the backup engine with the Recovery Services Vault.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BackupEngineBaseResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "The base backup engine class. All workload specific backup engines derive from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/BackupEngineBase",
          "description": "BackupEngineBaseResource properties"
        }
      }
    },
    "BackupEngineBaseResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of BackupEngineBase resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/BackupEngineBaseResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BackupEngineExtendedInfo": {
      "description": "Additional information on backup engine.",
      "properties": {
        "availableDiskSpace": {
          "description": "Disk space currently available in the backup engine.",
          "format": "double",
          "type": "number"
        },
        "azureProtectedInstances": {
          "description": "Protected instances in the backup engine.",
          "format": "int32",
          "type": "integer"
        },
        "databaseName": {
          "description": "Database name of backup engine.",
          "type": "string"
        },
        "diskCount": {
          "description": "Number of disks in the backup engine.",
          "format": "int32",
          "type": "integer"
        },
        "protectedItemsCount": {
          "description": "Number of protected items in the backup engine.",
          "format": "int32",
          "type": "integer"
        },
        "protectedServersCount": {
          "description": "Number of protected servers in the backup engine.",
          "format": "int32",
          "type": "integer"
        },
        "refreshedAt": {
          "description": "Last refresh time in the backup engine.",
          "format": "date-time",
          "type": "string"
        },
        "usedDiskSpace": {
          "description": "Disk space used in the backup engine.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "BackupRequest": {
      "description": "Base class for backup request. Workload-specific backup requests are derived from this class.",
      "discriminator": "objectType",
      "properties": {
        "objectType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        }
      },
      "required": [
        "objectType"
      ],
      "type": "object"
    },
    "BackupRequestResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup request. Workload-specific backup requests are derived from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/BackupRequest",
          "description": "BackupRequestResource properties"
        }
      }
    },
    "BackupResourceConfig": {
      "description": "The resource storage details.",
      "properties": {
        "storageModelType": {
          "description": "Storage type",
          "enum": [
            "Invalid",
            "GeoRedundant",
            "LocallyRedundant"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "StorageType"
          }
        },
        "storageType": {
          "description": "Storage type.",
          "enum": [
            "Invalid",
            "GeoRedundant",
            "LocallyRedundant"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "StorageType"
          }
        },
        "storageTypeState": {
          "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked.",
          "enum": [
            "Invalid",
            "Locked",
            "Unlocked"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "StorageTypeState"
          }
        }
      },
      "type": "object"
    },
    "BackupResourceConfigResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "The resource storage details.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/BackupResourceConfig",
          "description": "BackupResourceConfigResource properties"
        }
      }
    },
    "ClientScriptForConnect": {
      "description": "Client script details for file / folder restore.",
      "properties": {
        "osType": {
          "description": "OS type - Windows, Linux etc. for which this file / folder restore client script works.",
          "type": "string"
        },
        "scriptContent": {
          "description": "File content of the client script for file / folder restore.",
          "type": "string"
        },
        "scriptExtension": {
          "description": "File extension of the client script for file / folder restore - .ps1 , .sh , etc.",
          "type": "string"
        },
        "scriptNameSuffix": {
          "description": "Mandatory suffix that should be added to the name of script that is given for download to user.\r\nIf its null or empty then , ignore it.",
          "type": "string"
        },
        "url": {
          "description": "URL of Executable from where to source the content. If this is not null then ScriptContent should not be used",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ContainerIdentityInfo": {
      "description": "Container identity information",
      "properties": {
        "aadTenantId": {
          "description": "Protection container identity - AAD Tenant",
          "type": "string"
        },
        "audience": {
          "description": "Protection container identity - Audience",
          "type": "string"
        },
        "servicePrincipalClientId": {
          "description": "Protection container identity - AAD Service Principal",
          "type": "string"
        },
        "uniqueName": {
          "description": "Unique name of the container",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DPMContainerExtendedInfo": {
      "description": "Additional information of the DPMContainer.",
      "properties": {
        "lastRefreshedAt": {
          "description": "Last refresh time of the DPMContainer.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DistributedNodesInfo": {
      "description": "This is used to represent the various nodes of the distributed container.",
      "properties": {
        "errorDetail": {
          "$ref": "#/definitions/ErrorDetail",
          "description": "Error Details if the Status is non-success."
        },
        "nodeName": {
          "description": "Name of the node under a distributed container.",
          "type": "string"
        },
        "status": {
          "description": "Status of this Node.\r\nFailed | Succeeded",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DpmBackupEngine": {
      "allOf": [
        {
          "$ref": "#/definitions/BackupEngineBase"
        }
      ],
      "description": "Data Protection Manager (DPM) specific backup engine.",
      "type": "object",
      "x-ms-discriminator-value": "DpmBackupEngine"
    },
    "DpmContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "DPM workload-specific protection container.",
      "properties": {
        "canReRegister": {
          "description": "Specifies whether the container is re-registrable.",
          "type": "boolean"
        },
        "containerId": {
          "description": "ID of container.",
          "type": "string"
        },
        "dpmAgentVersion": {
          "description": "Backup engine Agent version",
          "type": "string"
        },
        "dpmServers": {
          "description": "List of BackupEngines protecting the container",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/DPMContainerExtendedInfo",
          "description": "Extended Info of the container."
        },
        "protectedItemCount": {
          "description": "Number of protected items in the BackupEngine",
          "format": "int64",
          "type": "integer"
        },
        "protectionStatus": {
          "description": "Protection status of the container.",
          "type": "string"
        },
        "upgradeAvailable": {
          "description": "To check if upgrade available",
          "type": "boolean"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "DPMContainer"
    },
    "ErrorDetail": {
      "description": "Error Detail class which encapsulates Code, Message and Recommendations.",
      "properties": {
        "code": {
          "description": "Error code.",
          "readOnly": true,
          "type": "string"
        },
        "message": {
          "description": "Error Message related to the Code.",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "List of recommendation strings.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object"
    },
    "GenericContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "Base class for generic container of backup items",
      "properties": {
        "extendedInformation": {
          "$ref": "#/definitions/GenericContainerExtendedInfo",
          "description": "Extended information (not returned in List container API calls)"
        },
        "fabricName": {
          "description": "Name of the container's fabric",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "GenericContainer"
    },
    "GenericContainerExtendedInfo": {
      "description": "Container extended information",
      "properties": {
        "containerIdentityInfo": {
          "$ref": "#/definitions/ContainerIdentityInfo",
          "description": "Container identity information"
        },
        "rawCertData": {
          "description": "Public key of container cert",
          "type": "string"
        },
        "serviceEndpoints": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Azure Backup Service Endpoints for the container",
          "type": "object"
        }
      },
      "type": "object"
    },
    "ILRRequest": {
      "description": "Parameters to Provision ILR API.",
      "discriminator": "objectType",
      "properties": {
        "objectType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        }
      },
      "required": [
        "objectType"
      ],
      "type": "object"
    },
    "ILRRequestResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Parameters to Provision ILR API.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ILRRequest",
          "description": "ILRRequestResource properties"
        }
      }
    },
    "IaaSVMContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "IaaS VM workload-specific container.",
      "properties": {
        "resourceGroup": {
          "description": "Resource group name of Recovery Services Vault.",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.",
          "type": "string"
        },
        "virtualMachineVersion": {
          "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaaSVMContainer"
    },
    "IaaSVMProtectableItem": {
      "allOf": [
        {
          "$ref": "#/definitions/WorkloadProtectableItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item.",
      "properties": {
        "virtualMachineId": {
          "description": "Fully qualified ARM ID of the virtual machine.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaaSVMProtectableItem"
    },
    "IaasVMBackupRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/BackupRequest"
        }
      ],
      "description": "IaaS VM workload-specific backup request.",
      "properties": {
        "recoveryPointExpiryTimeInUTC": {
          "description": "Backup copy will expire after the time specified (UTC).",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaasVMBackupRequest"
    },
    "IaasVMILRRegistrationRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/ILRRequest"
        }
      ],
      "description": "Restore files/folders from a backup copy of IaaS VM.",
      "properties": {
        "initiatorName": {
          "description": "iSCSI initiator name.",
          "type": "string"
        },
        "recoveryPointId": {
          "description": "ID of the IaaS VM backup copy from where the files/folders have to be restored.",
          "type": "string"
        },
        "renewExistingRegistration": {
          "description": "Whether to renew existing registration with the iSCSI server.",
          "type": "boolean"
        },
        "virtualMachineId": {
          "description": "Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaasVMILRRegistrationRequest"
    },
    "InquiryInfo": {
      "description": "Details about inquired protectable items under a given container.",
      "properties": {
        "errorDetail": {
          "$ref": "#/definitions/ErrorDetail",
          "description": "Error Details if the Status is non-success."
        },
        "inquiryDetails": {
          "description": "Inquiry Details which will have workload specific details.\r\nFor e.g. - For SQL and oracle this will contain different details.",
          "items": {
            "$ref": "#/definitions/WorkloadInquiryDetails"
          },
          "type": "array"
        },
        "status": {
          "description": "Inquiry Status for this container such as\r\nInProgress | Failed | Succeeded",
          "type": "string"
        }
      },
      "type": "object"
    },
    "InquiryValidation": {
      "description": "Validation for inquired protectable items under a given container.",
      "properties": {
        "additionalDetail": {
          "description": "Error Additional Detail in case the status is non-success.",
          "readOnly": true,
          "type": "string"
        },
        "errorDetail": {
          "$ref": "#/definitions/ErrorDetail",
          "description": "Error Detail in case the status is non-success."
        },
        "status": {
          "description": "Status for the Inquiry Validation.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "InstantItemRecoveryTarget": {
      "description": "Target details for file / folder restore.",
      "properties": {
        "clientScripts": {
          "description": "List of client scripts.",
          "items": {
            "$ref": "#/definitions/ClientScriptForConnect"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MABContainerHealthDetails": {
      "description": "MAB workload-specific Health Details.",
      "properties": {
        "code": {
          "description": "Health Code",
          "format": "int32",
          "type": "integer"
        },
        "message": {
          "description": "Health Message",
          "type": "string"
        },
        "recommendations": {
          "description": "Health Recommended Actions",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "title": {
          "description": "Health Title",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MabContainer": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectionContainer"
        }
      ],
      "description": "Container with items backed up using MAB backup engine.",
      "properties": {
        "agentVersion": {
          "description": "Agent version of this container.",
          "type": "string"
        },
        "canReRegister": {
          "description": "Can the container be registered one more time.",
          "type": "boolean"
        },
        "containerHealthState": {
          "description": "Health state of mab container.",
          "type": "string"
        },
        "containerId": {
          "description": "ContainerID represents the container.",
          "format": "int64",
          "type": "integer"
        },
        "extendedInfo": {
          "$ref": "#/definitions/MabContainerExtendedInfo",
          "description": "Additional information for this container"
        },
        "mabContainerHealthDetails": {
          "description": "Health details on this mab container.",
          "items": {
            "$ref": "#/definitions/MABContainerHealthDetails"
          },
          "type": "array"
        },
        "protectedItemCount": {
          "description": "Number of items backed up in this container.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "Windows"
    },
    "MabContainerExtendedInfo": {
      "description": "Additional information of the container.",
      "properties": {
        "backupItemType": {
          "description": "Type of backup items associated with this container.",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupItemType"
          }
        },
        "backupItems": {
          "description": "List of backup items associated with this container.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "lastBackupStatus": {
          "description": "Latest backup status of this container.",
          "type": "string"
        },
        "lastRefreshedAt": {
          "description": "Time stamp when this container was refreshed.",
          "format": "date-time",
          "type": "string"
        },
        "policyName": {
          "description": "Backup policy associated with this container.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OperationStatus": {
      "description": "Operation status.",
      "properties": {
        "endTime": {
          "description": "Operation end time. Format: ISO-8601.",
          "format": "date-time",
          "type": "string"
        },
        "error": {
          "$ref": "#/definitions/OperationStatusError",
          "description": "Error information related to this operation."
        },
        "id": {
          "description": "ID of the operation.",
          "type": "string"
        },
        "name": {
          "description": "Name of the operation.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/OperationStatusExtendedInfo",
          "description": "Additional information associated with this operation."
        },
        "startTime": {
          "description": "Operation start time. Format: ISO-8601.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "Operation status.",
          "enum": [
            "Invalid",
            "InProgress",
            "Succeeded",
            "Failed",
            "Canceled"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "OperationStatusValues"
          }
        }
      },
      "type": "object"
    },
    "OperationStatusError": {
      "description": "Error information associated with operation status call.",
      "properties": {
        "code": {
          "description": "Error code of the operation failure.",
          "type": "string"
        },
        "message": {
          "description": "Error message displayed if the operation failure.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OperationStatusExtendedInfo": {
      "description": "Base class for additional information of operation status.",
      "discriminator": "objectType",
      "properties": {
        "objectType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        }
      },
      "required": [
        "objectType"
      ],
      "type": "object"
    },
    "OperationStatusJobExtendedInfo": {
      "allOf": [
        {
          "$ref": "#/definitions/OperationStatusExtendedInfo"
        }
      ],
      "description": "Operation status job extended info.",
      "properties": {
        "jobId": {
          "description": "ID of the job created for this protected item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "OperationStatusJobExtendedInfo"
    },
    "OperationStatusJobsExtendedInfo": {
      "allOf": [
        {
          "$ref": "#/definitions/OperationStatusExtendedInfo"
        }
      ],
      "description": "Operation status extended info for list of jobs.",
      "properties": {
        "failedJobsError": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Stores all the failed jobs along with the corresponding error codes.",
          "type": "object"
        },
        "jobIds": {
          "description": "IDs of the jobs created for the protected item.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "OperationStatusJobsExtendedInfo"
    },
    "OperationStatusProvisionILRExtendedInfo": {
      "allOf": [
        {
          "$ref": "#/definitions/OperationStatusExtendedInfo"
        }
      ],
      "description": "Operation status extended info for ILR provision action.",
      "properties": {
        "recoveryTarget": {
          "$ref": "#/definitions/InstantItemRecoveryTarget",
          "description": "Target details for file / folder restore."
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "OperationStatusProvisionILRExtendedInfo"
    },
    "PreBackupValidation": {
      "description": "Pre-backup validation for Azure VM Workload provider.",
      "properties": {
        "code": {
          "description": "Error code of protectable item",
          "type": "string"
        },
        "message": {
          "description": "Message corresponding to the error code for the protectable item",
          "type": "string"
        },
        "status": {
          "description": "Status of protectable item, i.e. InProgress,Succeeded,Failed",
          "enum": [
            "Invalid",
            "Success",
            "Failed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "InquiryStatus"
          }
        }
      },
      "type": "object"
    },
    "ProtectableContainer": {
      "description": "Protectable Container Class.",
      "discriminator": "protectableContainerType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management for the container.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "containerId": {
          "description": "Fabric Id of the container such as ARM Id.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of the container.",
          "type": "string"
        },
        "healthStatus": {
          "description": "Status of health of the container.",
          "type": "string"
        },
        "protectableContainerType": {
          "description": "Type of the container. The value of this property for\r\n1. Compute Azure VM is Microsoft.Compute/virtualMachines\r\n2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines",
          "enum": [
            "Invalid",
            "Unknown",
            "IaasVMContainer",
            "IaasVMServiceContainer",
            "DPMContainer",
            "AzureBackupServerContainer",
            "MABContainer",
            "Cluster",
            "AzureSqlContainer",
            "Windows",
            "VCenter",
            "VMAppContainer",
            "SQLAGWorkLoadContainer",
            "StorageContainer",
            "GenericContainer"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ContainerType"
          }
        }
      },
      "type": "object"
    },
    "ProtectableContainerResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Protectable Container Class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ProtectableContainer",
          "description": "ProtectableContainerResource properties"
        }
      }
    },
    "ProtectableContainerResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of ProtectableContainer resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/ProtectableContainerResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ProtectionContainer": {
      "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.",
      "discriminator": "containerType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management for the container.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "containerType": {
          "description": "Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2.\r\nClassic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is\r\nWindows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload\r\nBackup is VMAppContainer",
          "enum": [
            "Invalid",
            "Unknown",
            "IaasVMContainer",
            "IaasVMServiceContainer",
            "DPMContainer",
            "AzureBackupServerContainer",
            "MABContainer",
            "Cluster",
            "AzureSqlContainer",
            "Windows",
            "VCenter",
            "VMAppContainer",
            "SQLAGWorkLoadContainer",
            "StorageContainer",
            "GenericContainer"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ContainerType"
          }
        },
        "friendlyName": {
          "description": "Friendly name of the container.",
          "type": "string"
        },
        "healthStatus": {
          "description": "Status of health of the container.",
          "type": "string"
        },
        "registrationStatus": {
          "description": "Status of registration of the container with the Recovery Services Vault.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProtectionContainerResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ProtectionContainer",
          "description": "ProtectionContainerResource properties"
        }
      }
    },
    "ProtectionContainerResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of ProtectionContainer resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/ProtectionContainerResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "RecoveryPoint": {
      "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.",
      "discriminator": "objectType",
      "properties": {
        "objectType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        }
      },
      "required": [
        "objectType"
      ],
      "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"
    },
    "SQLDataDirectory": {
      "description": "SQLDataDirectory info",
      "properties": {
        "logicalName": {
          "description": "Logical name of the file",
          "type": "string"
        },
        "path": {
          "description": "File path",
          "type": "string"
        },
        "type": {
          "description": "Type of data directory mapping",
          "enum": [
            "Invalid",
            "Data",
            "Log"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SQLDataDirectoryType"
          }
        }
      },
      "type": "object"
    },
    "TokenInformation": {
      "description": "The token information details.",
      "properties": {
        "expiryTimeInUtcTicks": {
          "description": "Expiry time of token.",
          "format": "int64",
          "type": "integer"
        },
        "securityPIN": {
          "description": "Security PIN",
          "type": "string"
        },
        "token": {
          "description": "Token value.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "WorkloadInquiryDetails": {
      "description": "Details of an inquired protectable item.",
      "properties": {
        "inquiryValidation": {
          "$ref": "#/definitions/InquiryValidation",
          "description": "Inquiry validation such as permissions and other backup validations."
        },
        "itemCount": {
          "description": "Contains the protectable item Count inside this Container.",
          "format": "int64",
          "type": "integer"
        },
        "type": {
          "description": "Type of the Workload such as SQL, Oracle etc.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "WorkloadItem": {
      "description": "Base class for backup item. Workload-specific backup items are derived from this class.",
      "discriminator": "workloadItemType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management to backup an item.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of the backup item.",
          "type": "string"
        },
        "protectionState": {
          "description": "State of the back up item.",
          "enum": [
            "Invalid",
            "NotProtected",
            "Protecting",
            "Protected",
            "ProtectionFailed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionStatus"
          }
        },
        "workloadItemType": {
          "description": "Type of the backup item.",
          "type": "string"
        },
        "workloadType": {
          "description": "Type of workload for the backup management",
          "type": "string"
        }
      },
      "type": "object"
    },
    "WorkloadItemResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup item. Workload-specific backup items are derived from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/WorkloadItem",
          "description": "WorkloadItemResource properties"
        }
      }
    },
    "WorkloadItemResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of WorkloadItem resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/WorkloadItemResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "WorkloadProtectableItem": {
      "description": "Base class for backup item. Workload-specific backup items are derived from this class.",
      "discriminator": "protectableItemType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management to backup an item.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of the backup item.",
          "type": "string"
        },
        "protectableItemType": {
          "description": "Type of the backup item.",
          "type": "string"
        },
        "protectionState": {
          "description": "State of the back up item.",
          "enum": [
            "Invalid",
            "NotProtected",
            "Protecting",
            "Protected",
            "ProtectionFailed"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionStatus"
          }
        },
        "workloadType": {
          "description": "Type of workload for the backup management",
          "type": "string"
        }
      },
      "type": "object"
    },
    "WorkloadProtectableItemResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup item. Workload-specific backup items are derived from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/WorkloadProtectableItem",
          "description": "WorkloadProtectableItemResource properties"
        }
      }
    },
    "WorkloadProtectableItemResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of WorkloadProtectableItem resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/WorkloadProtectableItemResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  }
}