{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "title": "RecoveryServicesBackupClient",
    "version": "2018-12-20",
    "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/2018-12-20/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"
    },
    "AzureRegion": {
      "description": "Azure region to hit Api",
      "in": "path",
      "name": "azureRegion",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ResourceGroupName": {
      "description": "The name of the resource group where the recovery services vault is present.",
      "in": "path",
      "name": "resourceGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionId": {
      "description": "The subscription Id.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    },
    "VaultName": {
      "description": "The name of the recovery services vault.",
      "in": "path",
      "name": "vaultName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupAadProperties/default": {
      "get": {
        "operationId": "AadProperties_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AADPropertiesResource"
            }
          }
        },
        "summary": "Fetches the AAD properties from target region BCM stamp.",
        "tags": [
          "AadProperties"
        ],
        "x-ms-examples": {
          "Get AAD Properties for authentication in the third region": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "properties": {
                    "audience": "https://RecoveryServices/IaasCoord/aadmgmt/ecy",
                    "servicePrincipalObjectId": "07e0a67b-cba3-4fcf-a58c-b670d5ced06d",
                    "tenantId": "33e01921-4d64-4f8c-a055-5bdaffd5e33d"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrossRegionRestore": {
      "post": {
        "operationId": "CrossRegionRestore_Trigger",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "resource cross region restore request",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CrossRegionRestoreRequestResource"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "summary": "Restores the specified backed up data in a different region as compared to where the data is backed up.",
        "tags": [
          "CrossRegionRestore"
        ],
        "x-ms-examples": {
          "Trigger Cross Region Restore": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "parameters": {
                "properties": {
                  "crossRegionRestoreAccessDetails": {
                    "accessTokenString": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhqaUJHdVExa2lWV2hyc2lzLUhEckhyWVZNbyJ9.eyJVc2VySWRlbnRpdHlUeXBlIjoiQUFEIiwiQWFkVGVuYW50SWQiOiIzM2UwMTkyMS00ZDY0LTRmOGMtYTA1NS01YmRhZmZkNWUzM2QiLCJBYWRTUE9iamVjdElkIjoiOTMzMjc2ZmMtMWJiNy00ZWNiLTk0ZTYtYWY3ODMyNWY3MjZhIiwiUmVzdG9yZVBvaW50UGVybWlzc2lvbnMiOiJSZWFkIiwiUmVzdG9yZVBvaW50SUQiOiJyZXNvdXJjZXMvMTMzMDgzNzkwNjQxODEzODE2MC9wcm90ZWN0aW9uQ29udGFpbmVycy8xMTE0Ni9wcm90ZWN0ZWRJdGVtcy8xMTQyOTM3MDMxL3JlY292ZXJ5UG9pbnRzLzg3MTc4MzU1MzkyNzE2IiwiaXNzIjoiaHR0cHM6Ly9SZWNvdmVyeVNlcnZpY2UiLCJhdWQiOiJodHRwczovL1JlY292ZXJ5U2VydmljZXMvUHJvdGVjdGlvblNlcnZpY2UiLCJleHAiOjE1NzExMjE5ODYsIm5iZiI6MTU3MTAzNTI4Nn0.oNbeX8ueE6JRGU0IagFjkOlU-o48ez9gCeCrn1-8XEsaVtYJIFKq9FeHfPAoCMxiLQvwL7S0JTjDTjiEsZEvr_VM7tDVwW3sESo2oW-SZlxT_1dJiUBn0jVlQyfDcHEMzbkaTuZswgNWfowgOrnJ67y-ztSUcegf3eVKPEhN1enBBS7pIuL9bZ3SVwMuqznUen6dH54y9lN2w6H14X0UK2CwSN94Uh-spB27j9SbksxLY_tyZm6xsamZFTHpwbgZwR24-GDtElPSxpFL6n_tWLSCHQtN9s84o0X7PfFaMkVmGWbOf4AZmP9M6agagG0JLnlOwObr07YrzZRkg3s2eQ",
                    "backupManagementType": "AzureIaasVM",
                    "containerName": "iaasvmcontainerv2;srinivasccyrg;sriniccylinux",
                    "containerType": "IaasVMContainer",
                    "coordinatorServiceStampUri": "https://pod01-coord1.ccy.backup.windowsazure.com",
                    "datasourceContainerName": "iaasvmcontainerv2;srinivasccyrg;sriniccylinux",
                    "datasourceId": "1142937031",
                    "datasourceName": "sriniccylinux",
                    "datasourceType": "VM",
                    "protectionServiceStampId": "90d98224-2ac6-4bda-9f35-33fb22841f2a",
                    "protectionServiceStampUri": "https://pod01-prot1-int.ccy.backup.windowsazure.com",
                    "recoveryPointId": "87178355392716",
                    "recoveryPointTime": "10/9/2019 6:05:54 PM",
                    "resourceGroupName": "srinivasccyrg",
                    "resourceId": "1330837906418138160",
                    "resourceName": "sriniccyvault",
                    "subscriptionId": "f2edfd5d-5496-4683-b94f-b3588c579009",
                    "tokenExtendedInformation": "<IaaSVMRecoveryPointMetadataBase xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" i:type=\"IaaSVMRecoveryPointMetadata_V2015_09\" xmlns=\"http://windowscloudbackup.com/CloudCommon/V2011_09\"><MetadataVersion>V2015_09</MetadataVersion><ContainerType i:nil=\"true\" /><InstantRpGCId>f2edfd5d-5496-4683-b94f-b3588c579009;AzureBackup_sriniccylinux_1142937031;AzureBackup_20191009_060554;AzureBackupRG_centraluseuap_1</InstantRpGCId><IsBlockBlobEnabled>true</IsBlockBlobEnabled><IsManagedVirtualMachine>true</IsManagedVirtualMachine><OriginalSAOption>false</OriginalSAOption><OsType>Linux</OsType><ReadMetadaFromConfigBlob i:nil=\"true\" /><RecoveryPointConsistencyType>FileSystemConsistent</RecoveryPointConsistencyType><RpDiskDetails i:nil=\"true\" /><SourceIaaSVMRPKeyAndSecret i:nil=\"true\" /><SourceIaaSVMStorageType>PremiumVMOnPremiumStorage</SourceIaaSVMStorageType><VMSizeDescription>Standard_D2s_v3</VMSizeDescription></IaaSVMRecoveryPointMetadataBase>"
                  },
                  "restoreRequest": {
                    "affinityGroup": "",
                    "createNewCloudService": false,
                    "encryptionDetails": {
                      "encryptionEnabled": false
                    },
                    "objectType": "IaasVMRestoreRequest",
                    "originalStorageAccountOption": false,
                    "recoveryPointId": "87178355392716",
                    "recoveryType": "AlternateLocation",
                    "region": "eastus2euap",
                    "sourceResourceId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/srinivasccyrg/providers/Microsoft.Compute/virtualMachines/sriniccylinux",
                    "storageAccountId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00prjaiTestRg1/providers/Microsoft.Storage/storageAccounts/00prjaitestrg1disks993",
                    "subnetId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAcklVaultCCY/providers/Microsoft.Network/virtualNetworks/00networkAcklVaultCCY-vnet/subnets/default",
                    "targetDomainNameId": null,
                    "targetResourceGroupId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAckl",
                    "targetVirtualMachineId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAckl/providers/Microsoft.Compute/virtualMachines/gaallaVM",
                    "virtualNetworkId": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/resourceGroups/00networkAcklVaultCCY/providers/Microsoft.Network/virtualNetworks/00networkAcklVaultCCY-vnet"
                  }
                }
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "azure-asyncoperation: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview",
                  "Location": "location: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationResults/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview",
                  "Retry-After": 60
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true,
        "x-ms-long-running-operation-options": {
          "final-state-via": "azure-async-operation"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrJob": {
      "post": {
        "operationId": "BackupCrrJobDetails_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/JobResource"
            }
          }
        },
        "summary": "Get CRR job details from target region.",
        "tags": [
          "CrrJobDetails"
        ],
        "x-ms-examples": {
          "Get Cross Region Restore Job Details in the secondary region": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "parameters": {
                "jobName": "02585cc9-d7f4-4b46-860c-14c048cce178",
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupJobs/02585cc9-d7f4-4b46-860c-14c048cce178",
                  "name": "02585cc9-d7f4-4b46-860c-14c048cce178",
                  "properties": {
                    "activityId": "6e503ee3-1093-4a83-a62a-3b666cc8c028-2019-10-12T10:22:43Z-Ibz",
                    "backupManagementType": "AzureIaasVM",
                    "duration": "1.20:17:03.2938821",
                    "entityFriendlyName": "sriniccylinux",
                    "extendedInfo": {
                      "propertyBag": {},
                      "tasksList": []
                    },
                    "jobType": "AzureIaaSVMJob",
                    "operation": "CrossRegionRestore",
                    "startTime": "2019-10-12T10:22:43.9139656Z",
                    "status": "InProgress",
                    "virtualMachineVersion": "Compute"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupJobs"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrJobs": {
      "post": {
        "operationId": "BackupCrrJobs_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/JobResourceList"
            }
          }
        },
        "summary": "Gets the list of CRR jobs from the target region.",
        "tags": [
          "BackupCrrJobs"
        ],
        "x-ms-examples": {
          "List Cross Region Restore Jobs in the secondary region": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "parameters": {
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupJobs/02585cc9-d7f4-4b46-860c-14c048cce178",
                      "name": "02585cc9-d7f4-4b46-860c-14c048cce178",
                      "properties": {
                        "activityId": "6e503ee3-1093-4a83-a62a-3b666cc8c028-2019-10-12T10:22:43Z-Ibz",
                        "backupManagementType": "AzureIaasVM",
                        "duration": "1.19:59:12.7946856",
                        "entityFriendlyName": "sriniccylinux",
                        "jobType": "AzureIaaSVMJob",
                        "operation": "CrossRegionRestore",
                        "startTime": "2019-10-12T10:22:43.9139656Z",
                        "status": "InProgress",
                        "virtualMachineVersion": "Compute"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupJobs"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrOperationResults/{operationId}": {
      "get": {
        "operationId": "CrrOperationResults_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "CrrOperationResults"
        ],
        "x-ms-examples": {
          "Get Operation Results for Cross Region Restore": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "parameters": {
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Azure-AsyncOperation": "azure-asyncoperation: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview",
                  "Location": "location: https://centraluseuap.management.azure.com/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationResults/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=?api-version=2018-12-20-preview",
                  "Retry-After": 60
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true,
        "x-ms-long-running-operation-options": {
          "final-state-via": "azure-async-operation"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrrOperationsStatus/{operationId}": {
      "get": {
        "operationId": "CrrOperationStatus_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/AzureRegion"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "in": "path",
            "name": "operationId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OperationStatus"
            }
          }
        },
        "tags": [
          "CrrOperationStatus"
        ],
        "x-ms-examples": {
          "Get Operation Status for Cross Region Restore": {
            "parameters": {
              "api-version": "2018-12-20",
              "azureRegion": "southeastasia",
              "operationId": "00000000-0000-0000-0000-000000000000",
              "parameters": {
                "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm"
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "endTime": "2019-10-14T06:46:44Z",
                  "id": "/subscriptions/f2edfd5d-5496-4683-b94f-b3588c579009/providers/microsoft.recoveryservices/locations/eastus2euap/backupCrrOperationsStatus/MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=",
                  "name": "MTMzMDgzNzkwNjQxODEzODE2MDtkMTY3MzM3Yy0yM2I1LTQ5ODgtODkwZC0xY2MyMmQ5MTYyZjA=",
                  "startTime": "2019-10-14T06:46:44.3225024Z",
                  "status": "Succeeded"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/": {
      "get": {
        "description": "Lists the backup copies for the backed up item.",
        "operationId": "RecoveryPointsCrr_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "$ref": "#/parameters/VaultName"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "description": "Fabric name associated with the backed up item.",
            "in": "path",
            "name": "fabricName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Container name associated with the backed up item.",
            "in": "path",
            "name": "containerName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Backed up item whose backup copies are to be fetched.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "OData filter options.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/RecoveryPointResourceList"
            }
          }
        },
        "tags": [
          "RecoveryPoints_Crr"
        ],
        "x-ms-examples": {
          "Get Protected Azure Vm Recovery Points": {
            "parameters": {
              "api-version": "2019-05-13",
              "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall",
              "fabricName": "Azure",
              "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall",
              "resourceGroupName": "rshhtestmdvmrg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "rshvault"
            },
            "responses": {
              "200": {
                "body": {
                  "nextLink": null,
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382",
                      "name": "22244821112382",
                      "properties": {
                        "isInstantIlrSessionActive": false,
                        "isManagedVirtualMachine": true,
                        "isSourceVMEncrypted": false,
                        "objectType": "IaasVMRecoveryPoint",
                        "originalStorageAccountOption": false,
                        "recoveryPointAdditionalInfo": "",
                        "recoveryPointTierDetails": [
                          {
                            "status": "Valid",
                            "type": "InstantRP"
                          },
                          {
                            "status": "Valid",
                            "type": "HardenedRP"
                          }
                        ],
                        "recoveryPointTime": "2017-12-21T22:48:25.4353958Z",
                        "recoveryPointType": "CrashConsistent",
                        "sourceVMStorageType": "NormalStorage",
                        "virtualMachineSize": "Standard_D1"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250",
                      "name": "24977149827250",
                      "properties": {
                        "isInstantIlrSessionActive": false,
                        "isManagedVirtualMachine": true,
                        "isSourceVMEncrypted": false,
                        "objectType": "IaasVMRecoveryPoint",
                        "originalStorageAccountOption": false,
                        "recoveryPointAdditionalInfo": "",
                        "recoveryPointTierDetails": [
                          {
                            "status": "Valid",
                            "type": "InstantRP"
                          },
                          {
                            "status": "Valid",
                            "type": "HardenedRP"
                          }
                        ],
                        "recoveryPointTime": "2017-12-20T22:49:44.3317945Z",
                        "recoveryPointType": "CrashConsistent",
                        "sourceVMStorageType": "NormalStorage",
                        "virtualMachineSize": "Standard_D1"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/BMSRPQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/accessToken": {
      "post": {
        "operationId": "RecoveryPoints_GetAccessToken",
        "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": "Name of the Protected Item.",
            "in": "path",
            "name": "protectedItemName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Recovery Point Id",
            "in": "path",
            "name": "recoveryPointId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CrrAccessTokenResource"
            }
          }
        },
        "summary": "Returns the Access token for communication between BMS and Protection service",
        "tags": [
          "RecoveryPoints"
        ],
        "x-ms-examples": {
          "Get Access Token for Crr": {
            "parameters": {
              "api-version": "2018-12-20-preview",
              "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall",
              "fabricName": "Azure",
              "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall",
              "recoveryPointId": "26083826328862",
              "resourceGroupName": "rshhtestmdvmrg",
              "subscriptionId": "00000000-0000-0000-0000-000000000000",
              "vaultName": "rshvault"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/26083826328862",
                  "name": "26083826328862",
                  "properties": {
                    "accessTokenString": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjVocE9ZWkdhZnk2VG50bUhKeGZZaEZKWHpQcyJ9.eyJVc2VySWRlbnRpdHlUeXBlIjoiQUFEIiwiQWFkVGVuYW50SWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJBYWRTUE9iamVjdElkIjoiODlkMmY3NzQtODBkNy00YzU0LTgwMjQtMjY2YzIzZGI0ZWNiIiwiUmVzdG9yZVBvaW50UGVybWlzc2lvbnMiOiJSZWFkIiwiUmVzdG9yZVBvaW50SUQiOiJyZXNvdXJjZXMvMzYzOTI0OTUyNDMwMjg4Mjk3MS9wcm90ZWN0aW9uQ29udGFpbmVycy8xMDA2NjAwL3Byb3RlY3RlZEl0ZW1zLzIyNTIzNDUxNzI0OTY4MjgyMTEvcmVjb3ZlcnlQb2ludHMvMjI1Mjg4NDA2MDEwNDg4OTkwNyIsImlzcyI6Imh0dHBzOi8vUmVjb3ZlcnlTZXJ2aWNlIiwiYXVkIjoiaHR0cHM6Ly9SZWNvdmVyeVNlcnZpY2VzL1Byb3RlY3Rpb25TZXJ2aWNlIiwiZXhwIjoxNTcwMjAwOTEzLCJuYmYiOjE1NzAxMTQyMTN9.gOGEmAhrAio3M6gcQHZ7EpEAbz4o-JaLE6dIFa4bF_-6VaP4LiBU_Qemjev_s-2fKZTAk3AVEXevbxbKIX6DENALXyOy3cMZsSPIr7L0_VrC6nlNnrwMBpiwQWGLuPckh4LHhsQE2cgOKmsIifqb4XrSJlwNq18aT_XyV6ZlkKqog3w7n4f-_eANJXDjxzOvAzsDIjnw_R-rVBNUI8w5OyO01mK1s2xStYgCBLpkTNEw5dxTTNOv5wPzmgjgRa2p-GmecE0ZTUfsL3VUvzpzfO8tRHBTbUYIIAG2Cn9utmXLK-PmAAanJVCOQ0YuoNSTN40D1NhpklJOtyD_TKdmvA",
                    "backupManagementType": "AzureIaasVM",
                    "containerName": "iaasvmcontainerv2;anubhtest;anubh-ext-2",
                    "containerType": "IaasVMContainer",
                    "coordinatorServiceStampUri": "https://sea-bvtd2-coord1-t56tl.ext.trafficmanager.net",
                    "datasourceContainerName": "iaasvmcontainerv2;anubhtest;anubh-ext-2",
                    "datasourceId": "2252345172496828211",
                    "datasourceName": "anubh-ext-2",
                    "datasourceType": "VM",
                    "protectionServiceStampId": "253c2223-fefd-483d-912f-55fb46ce0eab",
                    "protectionServiceStampUri": "https://sea-bvtd2-prot1-t56tl.ext.trafficmanager.net",
                    "recoveryPointId": "2252884060104889907",
                    "recoveryPointTime": "10/3/2019 1:35:19 AM",
                    "resourceGroupName": "gaallaReportingV2",
                    "resourceId": "3639249524302882971",
                    "resourceName": "garbvtd2",
                    "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b",
                    "tokenExtendedInformation": "<IaaSVMRecoveryPointMetadataBase xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" i:type=\"IaaSVMRecoveryPointMetadata_V2015_09\" xmlns=\"http://windowscloudbackup.com/CloudCommon/V2011_09\"><MetadataVersion>V2015_09</MetadataVersion><ContainerType i:nil=\"true\" /><InstantRpGCId>1a2311d9-66f5-47d3-a9fb-7a37da63934b;BackUpOperationJobId;e1ebcf24-81a5-434e-b64b-cc81be65ae16</InstantRpGCId><IsBlockBlobEnabled>false</IsBlockBlobEnabled><IsManagedVirtualMachine>false</IsManagedVirtualMachine><OriginalSAOption>true</OriginalSAOption><OsType>Windows</OsType><ReadMetadaFromConfigBlob i:nil=\"true\" /><RecoveryPointConsistencyType>CrashConsistent</RecoveryPointConsistencyType><RpDiskDetails i:nil=\"true\" /><SourceIaaSVMRPKeyAndSecret i:nil=\"true\" /><SourceIaaSVMStorageType>NormalStorage</SourceIaaSVMStorageType><VMSizeDescription>Standard_D2s_v3</VMSizeDescription></IaaSVMRecoveryPointMetadataBase>"
                  },
                  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints"
                }
              }
            }
          }
        }
      }
    },
    "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems/": {
      "get": {
        "description": "Provides a pageable list of all items that are backed up within a vault.",
        "operationId": "BackupProtectedItemsCrr_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/ProtectedItemResourceList"
            }
          }
        },
        "tags": [
          "BackupProtectedItems_Crr"
        ],
        "x-ms-examples": {
          "List protected items with backupManagementType filter as AzureIaasVm": {
            "parameters": {
              "$filter": "backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'",
              "api-version": "2019-05-13",
              "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/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1",
                      "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1",
                      "properties": {
                        "backupManagementType": "AzureIaasVM",
                        "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1",
                        "friendlyName": "iaasvm-1",
                        "healthStatus": "Passed",
                        "lastBackupStatus": "Completed",
                        "lastBackupTime": "2018-01-22T12:25:32.048723Z",
                        "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z",
                        "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1",
                        "protectedItemDataId": "636482643132986882",
                        "protectedItemType": "Microsoft.ClassicCompute/virtualMachines",
                        "protectionState": "Protected",
                        "protectionStatus": "Healthy",
                        "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1",
                        "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1",
                        "workloadType": "VM"
                      },
                      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/ProtectedItemQueryObject",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    }
  },
  "definitions": {
    "AADProperties": {
      "properties": {
        "audience": {
          "type": "string"
        },
        "authority": {
          "type": "string"
        },
        "servicePrincipalClientId": {
          "type": "string"
        },
        "servicePrincipalObjectId": {
          "type": "string"
        },
        "tenantId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "AADPropertiesResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "properties": {
        "properties": {
          "$ref": "#/definitions/AADProperties",
          "description": "AADPropertiesResource properties"
        }
      }
    },
    "AzureFileShareRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/RecoveryPoint"
        }
      ],
      "description": "Azure File Share workload specific backup copy.",
      "properties": {
        "fileShareSnapshotUri": {
          "description": "Contains Url to the snapshot of fileshare, if applicable",
          "readOnly": true,
          "type": "string"
        },
        "recoveryPointSizeInGB": {
          "description": "Contains recovery point size",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "recoveryPointTime": {
          "description": "Time at which this backup copy was created.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "recoveryPointType": {
          "description": "Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShareRecoveryPoint"
    },
    "AzureFileShareRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/RestoreRequest"
        }
      ],
      "description": "AzureFileShare Restore Request",
      "properties": {
        "copyOptions": {
          "description": "Options to resolve copy conflicts.",
          "enum": [
            "Invalid",
            "CreateCopy",
            "Skip",
            "Overwrite",
            "FailOnConflict"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "CopyOptions"
          }
        },
        "recoveryType": {
          "description": "Type of this recovery.",
          "enum": [
            "Invalid",
            "OriginalLocation",
            "AlternateLocation",
            "RestoreDisks",
            "Offline"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RecoveryType"
          }
        },
        "restoreFileSpecs": {
          "description": "List of Source Files/Folders(which need to recover) and TargetFolderPath details",
          "items": {
            "$ref": "#/definitions/RestoreFileSpecs"
          },
          "type": "array"
        },
        "restoreRequestType": {
          "description": "Restore Type (FullShareRestore or ItemLevelRestore)",
          "enum": [
            "Invalid",
            "FullShareRestore",
            "ItemLevelRestore"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RestoreRequestType"
          }
        },
        "sourceResourceId": {
          "description": "Source storage account ARM Id",
          "type": "string"
        },
        "targetDetails": {
          "$ref": "#/definitions/TargetAFSRestoreInfo",
          "description": "Target File Share Details"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShareRestoreRequest"
    },
    "AzureFileshareProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "Azure File Share workload-specific backup item.",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureFileshareProtectedItemExtendedInfo",
          "description": "Additional information with this backup item."
        },
        "friendlyName": {
          "description": "Friendly name of the fileshare represented by this backup item.",
          "type": "string"
        },
        "healthStatus": {
          "description": "backups running status for this backup item.",
          "enum": [
            "Passed",
            "ActionRequired",
            "ActionSuggested",
            "Invalid"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "HealthStatus"
          }
        },
        "lastBackupStatus": {
          "description": "Last backup operation status. Possible values: Healthy, Unhealthy.",
          "type": "string"
        },
        "lastBackupTime": {
          "description": "Timestamp of the last backup operation on this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "protectionState": {
          "description": "Backup state of this backup item.",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionState"
          }
        },
        "protectionStatus": {
          "description": "Backup status of this backup item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureFileShareProtectedItem"
    },
    "AzureFileshareProtectedItemExtendedInfo": {
      "description": "Additional information about Azure File Share backup item.",
      "properties": {
        "oldestRecoveryPoint": {
          "description": "The oldest backup copy available for this item in the service.",
          "format": "date-time",
          "type": "string"
        },
        "policyState": {
          "description": "Indicates consistency of policy object and policy applied to this backup item.",
          "type": "string"
        },
        "recoveryPointCount": {
          "description": "Number of available backup copies associated with this backup item.",
          "format": "int32",
          "type": "integer"
        },
        "resourceState": {
          "description": "Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted}",
          "readOnly": true,
          "type": "string"
        },
        "resourceStateSyncTime": {
          "description": "The resource state sync time for this backup item.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureIaaSClassicComputeVMProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureIaaSVMProtectedItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines"
    },
    "AzureIaaSComputeVMProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureIaaSVMProtectedItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.",
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines"
    },
    "AzureIaaSVMErrorInfo": {
      "description": "Azure IaaS VM workload-specific error information.",
      "properties": {
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "readOnly": true,
          "type": "string"
        },
        "errorTitle": {
          "description": "Title: Typically, the entity that the error pertains to.",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMHealthDetails": {
      "description": "Azure IaaS VM workload-specific Health Details.",
      "properties": {
        "code": {
          "description": "Health Code",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "message": {
          "description": "Health Message",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "Health Recommended Actions",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "title": {
          "description": "Health Title",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure IaaS VM workload-specific job object.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureIaaSVMErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo",
          "description": "Additional information for this job."
        },
        "virtualMachineVersion": {
          "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureIaaSVMJob"
    },
    "AzureIaaSVMJobExtendedInfo": {
      "description": "Azure IaaS VM workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "estimatedRemainingDuration": {
          "description": "Time remaining for execution of this job.",
          "type": "string"
        },
        "internalPropertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job internal properties.",
          "type": "object"
        },
        "progressPercentage": {
          "description": "Indicates progress of the job. Null if it has not started or completed.",
          "format": "double",
          "type": "number"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks associated with this job.",
          "items": {
            "$ref": "#/definitions/AzureIaaSVMJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMJobTaskDetails": {
      "description": "Azure IaaS VM workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "instanceId": {
          "description": "The instanceId.",
          "type": "string"
        },
        "progressPercentage": {
          "description": "Progress of the task.",
          "format": "double",
          "type": "number"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskExecutionDetails": {
          "description": "Details about execution of the task.\r\neg: number of bytes transferred etc",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureIaaSVMProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "IaaS VM workload-specific backup item.",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureIaaSVMProtectedItemExtendedInfo",
          "description": "Additional information for this backup item."
        },
        "extendedProperties": {
          "$ref": "#/definitions/ExtendedProperties"
        },
        "friendlyName": {
          "description": "Friendly name of the VM represented by this backup item.",
          "type": "string"
        },
        "healthDetails": {
          "description": "Health details on this backup item.",
          "items": {
            "$ref": "#/definitions/AzureIaaSVMHealthDetails"
          },
          "type": "array"
        },
        "healthStatus": {
          "description": "Health status of protected item",
          "enum": [
            "Passed",
            "ActionRequired",
            "ActionSuggested",
            "Invalid"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "HealthStatus"
          }
        },
        "lastBackupStatus": {
          "description": "Last backup operation status.",
          "type": "string"
        },
        "lastBackupTime": {
          "description": "Timestamp of the last backup operation on this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "protectedItemDataId": {
          "description": "Data ID of the protected item.",
          "type": "string"
        },
        "protectionState": {
          "description": "Backup state of this backup item.",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionState"
          }
        },
        "protectionStatus": {
          "description": "Backup status of this backup item.",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "Fully qualified ARM ID of the virtual machine represented by this item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureIaaSVMProtectedItem"
    },
    "AzureIaaSVMProtectedItemExtendedInfo": {
      "description": "Additional information on Azure IaaS VM specific backup item.",
      "properties": {
        "oldestRecoveryPoint": {
          "description": "The oldest backup copy available for this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "policyInconsistent": {
          "description": "Specifies if backup policy associated with the backup item is inconsistent.",
          "type": "boolean"
        },
        "recoveryPointCount": {
          "description": "Number of backup copies available for this backup item.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AzureSqlProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "Azure SQL workload-specific backup item.",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo",
          "description": "Additional information for this backup item."
        },
        "protectedItemDataId": {
          "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.",
          "type": "string"
        },
        "protectionState": {
          "description": "Backup state of the backed up item.",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectedItemState"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "Microsoft.Sql/servers/databases"
    },
    "AzureSqlProtectedItemExtendedInfo": {
      "description": "Additional information on Azure Sql specific protected item.",
      "properties": {
        "oldestRecoveryPoint": {
          "description": "The oldest backup copy available for this item in the service.",
          "format": "date-time",
          "type": "string"
        },
        "policyState": {
          "description": "State of the backup policy associated with this backup item.",
          "type": "string"
        },
        "recoveryPointCount": {
          "description": "Number of available backup copies associated with this backup item.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AzureStorageErrorInfo": {
      "description": "Azure storage specific error information",
      "properties": {
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureStorageJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure storage specific job.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureStorageErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureStorageJobExtendedInfo",
          "description": "Additional information about the job."
        },
        "storageAccountName": {
          "description": "Specifies friendly name of the storage account.",
          "type": "string"
        },
        "storageAccountVersion": {
          "description": "Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureStorageJob"
    },
    "AzureStorageJobExtendedInfo": {
      "description": "Azure Storage workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job",
          "items": {
            "$ref": "#/definitions/AzureStorageJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureStorageJobTaskDetails": {
      "description": "Azure storage workload specific job task details.",
      "properties": {
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureVmWorkloadProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "Azure VM workload-specific protected item.",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo",
          "description": "Additional information for this backup item."
        },
        "friendlyName": {
          "description": "Friendly name of the DB represented by this backup item.",
          "type": "string"
        },
        "lastBackupErrorDetail": {
          "$ref": "#/definitions/ErrorDetail",
          "description": "Error details in last backup"
        },
        "lastBackupStatus": {
          "description": "Last backup operation status. Possible values: Healthy, Unhealthy.",
          "enum": [
            "Invalid",
            "Healthy",
            "Unhealthy",
            "IRPending"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "LastBackupStatus"
          }
        },
        "lastBackupTime": {
          "description": "Timestamp of the last backup operation on this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "parentName": {
          "description": "Parent name of the DB such as Instance or Availability Group.",
          "type": "string"
        },
        "parentType": {
          "description": "Parent type of protected item, example: for a DB, standalone server or distributed",
          "type": "string"
        },
        "protectedItemDataSourceId": {
          "description": "Data ID of the protected item.",
          "type": "string"
        },
        "protectedItemHealthStatus": {
          "description": "Health status of the backup item, evaluated based on last heartbeat received",
          "enum": [
            "Invalid",
            "Healthy",
            "Unhealthy",
            "NotReachable",
            "IRPending"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectedItemHealthStatus"
          }
        },
        "protectionState": {
          "description": "Backup state of this backup item.",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionState"
          }
        },
        "protectionStatus": {
          "description": "Backup status of this backup item.",
          "type": "string"
        },
        "serverName": {
          "description": "Host/Cluster Name for instance or AG",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadProtectedItem"
    },
    "AzureVmWorkloadProtectedItemExtendedInfo": {
      "description": "Additional information on Azure Workload for SQL specific backup item.",
      "properties": {
        "oldestRecoveryPoint": {
          "description": "The oldest backup copy available for this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "policyState": {
          "description": "Indicates consistency of policy object and policy applied to this backup item.",
          "type": "string"
        },
        "recoveryPointCount": {
          "description": "Number of backup copies available for this backup item.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AzureVmWorkloadSAPAseDatabaseProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectedItem"
        }
      ],
      "description": "Azure VM workload-specific protected item representing SAP ASE Database.",
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadSAPAseDatabase"
    },
    "AzureVmWorkloadSAPHanaDatabaseProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectedItem"
        }
      ],
      "description": "Azure VM workload-specific protected item representing SAP HANA Database.",
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadSAPHanaDatabase"
    },
    "AzureVmWorkloadSQLDatabaseProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureVmWorkloadProtectedItem"
        }
      ],
      "description": "Azure VM workload-specific protected item representing SQL Database.",
      "type": "object",
      "x-ms-discriminator-value": "AzureVmWorkloadSQLDatabase"
    },
    "AzureWorkloadErrorInfo": {
      "description": "Azure storage specific error information",
      "properties": {
        "additionalDetails": {
          "description": "Additional details for above error code.",
          "type": "string"
        },
        "errorCode": {
          "description": "Error code.",
          "format": "int32",
          "type": "integer"
        },
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "errorTitle": {
          "description": "Title: Typically, the entity that the error pertains to.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureWorkloadJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "Azure storage specific job.",
      "properties": {
        "actionsInfo": {
          "description": "Gets or sets the state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time elapsed during the execution of this job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "Error details on execution of this job.",
          "items": {
            "$ref": "#/definitions/AzureWorkloadErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/AzureWorkloadJobExtendedInfo",
          "description": "Additional information about the job."
        },
        "workloadType": {
          "description": "Workload type of the job",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadJob"
    },
    "AzureWorkloadJobExtendedInfo": {
      "description": "Azure VM workload-specific additional information for job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job",
          "items": {
            "$ref": "#/definitions/AzureWorkloadJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AzureWorkloadJobTaskDetails": {
      "description": "Azure VM workload specific job task details.",
      "properties": {
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureWorkloadPointInTimeRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRecoveryPoint"
        }
      ],
      "description": "Recovery point specific to PointInTime",
      "properties": {
        "timeRanges": {
          "description": "List of log ranges",
          "items": {
            "$ref": "#/definitions/PointInTimeRange"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadPointInTimeRecoveryPoint"
    },
    "AzureWorkloadPointInTimeRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRestoreRequest"
        }
      ],
      "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore",
      "properties": {
        "pointInTime": {
          "description": "PointInTime value",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadPointInTimeRestoreRequest"
    },
    "AzureWorkloadRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/RecoveryPoint"
        }
      ],
      "description": "Workload specific recovery point, specifically encapsulates full/diff recovery point",
      "properties": {
        "recoveryPointTimeInUTC": {
          "description": "UTC time at which recovery point was created",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Type of restore point",
          "enum": [
            "Invalid",
            "Full",
            "Log",
            "Differential"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RestorePointType"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadRecoveryPoint"
    },
    "AzureWorkloadRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/RestoreRequest"
        }
      ],
      "description": "AzureWorkload-specific restore.",
      "properties": {
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Workload specific property bag.",
          "type": "object"
        },
        "recoveryMode": {
          "description": "Defines whether the current recovery mode is file restore or database restore",
          "enum": [
            "Invalid",
            "FileRecovery",
            "WorkloadRecovery"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RecoveryMode"
          }
        },
        "recoveryType": {
          "description": "Type of this recovery.",
          "enum": [
            "Invalid",
            "OriginalLocation",
            "AlternateLocation",
            "RestoreDisks",
            "Offline"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RecoveryType"
          }
        },
        "sourceResourceId": {
          "description": "Fully qualified ARM ID of the VM on which workload that was running is being recovered.",
          "type": "string"
        },
        "targetInfo": {
          "$ref": "#/definitions/TargetRestoreInfo",
          "description": "Details of target database"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadRestoreRequest"
    },
    "AzureWorkloadSAPHanaPointInTimeRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint"
        }
      ],
      "description": "Recovery point specific to PointInTime in SAPHana",
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRecoveryPoint"
    },
    "AzureWorkloadSAPHanaPointInTimeRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest"
        }
      ],
      "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore",
      "properties": {
        "pointInTime": {
          "description": "PointInTime value",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreRequest"
    },
    "AzureWorkloadSAPHanaRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRecoveryPoint"
        }
      ],
      "description": "SAPHana specific recoverypoint, specifically encapsulates full/diff recoverypoints",
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSAPHanaRecoveryPoint"
    },
    "AzureWorkloadSAPHanaRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRestoreRequest"
        }
      ],
      "description": "AzureWorkload SAP Hana-specific restore.",
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreRequest"
    },
    "AzureWorkloadSQLPointInTimeRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadSQLRecoveryPoint"
        }
      ],
      "description": "Recovery point specific to PointInTime",
      "properties": {
        "timeRanges": {
          "description": "List of log ranges",
          "items": {
            "$ref": "#/definitions/PointInTimeRange"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRecoveryPoint"
    },
    "AzureWorkloadSQLPointInTimeRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest"
        }
      ],
      "description": "AzureWorkload SQL -specific restore. Specifically for PointInTime/Log restore",
      "properties": {
        "pointInTime": {
          "description": "PointInTime value",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreRequest"
    },
    "AzureWorkloadSQLRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRecoveryPoint"
        }
      ],
      "description": "SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint along with extended info",
      "properties": {
        "extendedInfo": {
          "$ref": "#/definitions/AzureWorkloadSQLRecoveryPointExtendedInfo",
          "description": "Extended Info that provides data directory details. Will be populated in two cases:\r\nWhen a specific recovery point is accessed using GetRecoveryPoint\r\nOr when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSQLRecoveryPoint"
    },
    "AzureWorkloadSQLRecoveryPointExtendedInfo": {
      "description": "Extended info class details",
      "properties": {
        "dataDirectoryPaths": {
          "description": "List of data directory paths during restore operation.",
          "items": {
            "$ref": "#/definitions/SQLDataDirectory"
          },
          "readOnly": true,
          "type": "array"
        },
        "dataDirectoryTimeInUTC": {
          "description": "UTC time at which data directory info was captured",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureWorkloadSQLRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureWorkloadRestoreRequest"
        }
      ],
      "description": "AzureWorkload SQL -specific restore. Specifically for full/diff restore",
      "properties": {
        "alternateDirectoryPaths": {
          "description": "Data directory details",
          "items": {
            "$ref": "#/definitions/SQLDataDirectoryMapping"
          },
          "type": "array"
        },
        "isNonRecoverable": {
          "description": "SQL specific property where user can chose to set no-recovery when restore operation is tried",
          "type": "boolean"
        },
        "shouldUseAlternateTargetLocation": {
          "description": "Default option set to true. If this is set to false, alternate data directory must be provided",
          "type": "boolean"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "AzureWorkloadSQLRestoreRequest"
    },
    "BEKDetails": {
      "description": "BEK is bitlocker encryption key.",
      "properties": {
        "secretData": {
          "description": "BEK data.",
          "type": "string"
        },
        "secretUrl": {
          "description": "Secret is BEK.",
          "type": "string"
        },
        "secretVaultId": {
          "description": "ID of the Key Vault where this Secret is stored.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BMSRPQueryObject": {
      "description": "Filters to list backup copies.",
      "properties": {
        "endDate": {
          "description": "Backup copies created before this time.",
          "format": "date-time",
          "type": "string"
        },
        "extendedInfo": {
          "description": "In Get Recovery Point, it tells whether extended information about recovery point is asked.",
          "type": "boolean"
        },
        "restorePointQueryType": {
          "description": "RestorePoint type",
          "enum": [
            "Invalid",
            "Full",
            "Log",
            "Differential",
            "FullAndDifferential",
            "All"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RestorePointQueryType"
          }
        },
        "startDate": {
          "description": "Backup copies created after this time.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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"
    },
    "CrossRegionRestoreRequest": {
      "properties": {
        "crossRegionRestoreAccessDetails": {
          "$ref": "#/definitions/CrrAccessToken",
          "description": "Access details for cross region restore"
        },
        "restoreRequest": {
          "$ref": "#/definitions/RestoreRequest",
          "description": "Request object for triggering restore"
        }
      },
      "type": "object"
    },
    "CrossRegionRestoreRequestResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "properties": {
        "properties": {
          "$ref": "#/definitions/CrossRegionRestoreRequest",
          "description": "CrossRegionRestoreRequestResource properties"
        }
      }
    },
    "CrrAccessToken": {
      "description": "Container level access token for CRR",
      "properties": {
        "accessTokenString": {
          "description": "Access token used for authentication",
          "type": "string"
        },
        "backupManagementType": {
          "description": "Backup Management Type",
          "type": "string"
        },
        "containerName": {
          "description": "Container Unique name",
          "type": "string"
        },
        "containerType": {
          "description": "Container Type",
          "type": "string"
        },
        "coordinatorServiceStampId": {
          "description": "CoordinatorServiceStampId to be used by BCM in restore call",
          "type": "string"
        },
        "coordinatorServiceStampUri": {
          "description": "CoordinatorServiceStampUri to be used by BCM in restore call",
          "type": "string"
        },
        "datasourceContainerName": {
          "description": "Datasource Container Unique Name",
          "type": "string"
        },
        "datasourceId": {
          "description": "Datasource Id",
          "type": "string"
        },
        "datasourceName": {
          "description": "Datasource Friendly Name",
          "type": "string"
        },
        "datasourceType": {
          "description": "Datasource Type",
          "type": "string"
        },
        "protectionServiceStampId": {
          "description": "ProtectionServiceStampId to be used by BCM in restore call",
          "type": "string"
        },
        "protectionServiceStampUri": {
          "description": "ProtectionServiceStampUri to be used by BCM in restore call",
          "type": "string"
        },
        "recoveryPointId": {
          "description": "Recovery Point Id",
          "type": "string"
        },
        "recoveryPointTime": {
          "description": "Recovery Point Time",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Resource Group name of the source vault",
          "type": "string"
        },
        "resourceId": {
          "description": "Resource Id of the source vault",
          "type": "string"
        },
        "resourceName": {
          "description": "Resource Name of the source vault",
          "type": "string"
        },
        "subscriptionId": {
          "description": "Subscription Id of the source vault",
          "type": "string"
        },
        "tokenExtendedInformation": {
          "description": "Extended Information about the token like FileSpec etc.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CrrAccessTokenResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Container level access token for CRR",
      "properties": {
        "properties": {
          "$ref": "#/definitions/CrrAccessToken",
          "description": "CrrAccessTokenResource properties"
        }
      }
    },
    "DPMProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "Additional information on Backup engine specific backup item.",
      "properties": {
        "backupEngineName": {
          "description": "Backup Management server protecting this backup item",
          "type": "string"
        },
        "extendedInfo": {
          "$ref": "#/definitions/DPMProtectedItemExtendedInfo",
          "description": "Extended info of the backup item."
        },
        "friendlyName": {
          "description": "Friendly name of the managed item",
          "type": "string"
        },
        "protectionState": {
          "description": "Protection state of the backup engine",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectedItemState"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "DPMProtectedItem"
    },
    "DPMProtectedItemExtendedInfo": {
      "description": "Additional information of DPM Protected item.",
      "properties": {
        "diskStorageUsedInBytes": {
          "description": "Used Disk storage in bytes.",
          "type": "string"
        },
        "isCollocated": {
          "description": "To check if backup item is collocated.",
          "type": "boolean"
        },
        "isPresentOnCloud": {
          "description": "To check if backup item is cloud protected.",
          "type": "boolean"
        },
        "lastBackupStatus": {
          "description": "Last backup status information on backup item.",
          "type": "string"
        },
        "lastRefreshedAt": {
          "description": "Last refresh time on backup item.",
          "format": "date-time",
          "type": "string"
        },
        "oldestRecoveryPoint": {
          "description": "Oldest cloud recovery point time.",
          "format": "date-time",
          "type": "string"
        },
        "onPremiseLatestRecoveryPoint": {
          "description": "latest disk recovery point time.",
          "format": "date-time",
          "type": "string"
        },
        "onPremiseOldestRecoveryPoint": {
          "description": "Oldest disk recovery point time.",
          "format": "date-time",
          "type": "string"
        },
        "onPremiseRecoveryPointCount": {
          "description": "disk recovery point count.",
          "format": "int32",
          "type": "integer"
        },
        "protectableObjectLoadPath": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Attribute to provide information on various DBs.",
          "type": "object"
        },
        "protected": {
          "description": "To check if backup item is disk protected.",
          "type": "boolean"
        },
        "protectionGroupName": {
          "description": "Protection group name of the backup item.",
          "type": "string"
        },
        "recoveryPointCount": {
          "description": "cloud recovery point count.",
          "format": "int32",
          "type": "integer"
        },
        "totalDiskStorageSizeInBytes": {
          "description": "total Disk storage in bytes.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DiskExclusionProperties": {
      "properties": {
        "diskLunList": {
          "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.",
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        },
        "isInclusionList": {
          "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "DiskInformation": {
      "description": "Disk information",
      "properties": {
        "lun": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "DpmErrorInfo": {
      "description": "DPM workload-specific error information.",
      "properties": {
        "errorString": {
          "description": "Localized error string.",
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations for above error code.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DpmJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "DPM workload-specific job object.",
      "properties": {
        "actionsInfo": {
          "description": "The state/actions applicable on this job like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "containerName": {
          "description": "Name of cluster/server protecting current backup item, if any.",
          "type": "string"
        },
        "containerType": {
          "description": "Type of container.",
          "type": "string"
        },
        "dpmServerName": {
          "description": "DPM server name managing the backup item or backup job.",
          "type": "string"
        },
        "duration": {
          "description": "Time elapsed for job.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "The errors.",
          "items": {
            "$ref": "#/definitions/DpmErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/DpmJobExtendedInfo",
          "description": "Additional information for this job."
        },
        "workloadType": {
          "description": "Type of backup item.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "DpmJob"
    },
    "DpmJobExtendedInfo": {
      "description": "Additional information on the DPM workload-specific job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message on job execution.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks associated with this job.",
          "items": {
            "$ref": "#/definitions/DpmJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DpmJobTaskDetails": {
      "description": "DPM workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "EncryptionDetails": {
      "description": "Details needed if the VM was encrypted at the time of backup.",
      "properties": {
        "encryptionEnabled": {
          "description": "Identifies whether this backup copy represents an encrypted VM at the time of backup.",
          "type": "boolean"
        },
        "kekUrl": {
          "description": "Key Url.",
          "type": "string"
        },
        "kekVaultId": {
          "description": "ID of Key Vault where KEK is stored.",
          "type": "string"
        },
        "secretKeyUrl": {
          "description": "Secret Url.",
          "type": "string"
        },
        "secretKeyVaultId": {
          "description": "ID of Key Vault where Secret is stored.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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"
    },
    "ExtendedProperties": {
      "description": "Extended Properties for Azure IaasVM Backup.",
      "properties": {
        "diskExclusionProperties": {
          "$ref": "#/definitions/DiskExclusionProperties",
          "description": "Extended Properties for Disk Exclusion."
        }
      },
      "type": "object"
    },
    "GenericProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "Base class for backup items.",
      "properties": {
        "fabricName": {
          "description": "Name of this backup item's fabric.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of the container.",
          "type": "string"
        },
        "policyState": {
          "description": "Indicates consistency of policy object and policy applied to this backup item.",
          "type": "string"
        },
        "protectedItemId": {
          "description": "Data Plane Service ID of the protected item.",
          "format": "int64",
          "type": "integer"
        },
        "protectionState": {
          "description": "Backup state of this backup item.",
          "enum": [
            "Invalid",
            "IRPending",
            "Protected",
            "ProtectionError",
            "ProtectionStopped",
            "ProtectionPaused"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ProtectionState"
          }
        },
        "sourceAssociations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Loosely coupled (type, value) associations (example - parent of a protected item)",
          "type": "object"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "GenericProtectedItem"
    },
    "GenericRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/RecoveryPoint"
        }
      ],
      "description": "Generic backup copy.",
      "properties": {
        "friendlyName": {
          "description": "Friendly name of the backup copy.",
          "type": "string"
        },
        "recoveryPointAdditionalInfo": {
          "description": "Additional information associated with this backup copy.",
          "type": "string"
        },
        "recoveryPointTime": {
          "description": "Time at which this backup copy was created.",
          "format": "date-time",
          "type": "string"
        },
        "recoveryPointType": {
          "description": "Type of the backup copy.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "GenericRecoveryPoint"
    },
    "IaasVMRecoveryPoint": {
      "allOf": [
        {
          "$ref": "#/definitions/RecoveryPoint"
        }
      ],
      "description": "IaaS VM workload specific backup copy.",
      "properties": {
        "isInstantIlrSessionActive": {
          "description": "Is the session to recover items from this backup copy still active.",
          "type": "boolean"
        },
        "isManagedVirtualMachine": {
          "description": "Whether VM is with Managed Disks",
          "type": "boolean"
        },
        "isSourceVMEncrypted": {
          "description": "Identifies whether the VM was encrypted when the backup copy is created.",
          "readOnly": true,
          "type": "boolean"
        },
        "keyAndSecret": {
          "$ref": "#/definitions/KeyAndSecretDetails",
          "description": "Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true."
        },
        "originalStorageAccountOption": {
          "description": "Original Storage Account Option",
          "type": "boolean"
        },
        "osType": {
          "description": "OS type",
          "type": "string"
        },
        "recoveryPointAdditionalInfo": {
          "description": "Additional information associated with this backup copy.",
          "readOnly": true,
          "type": "string"
        },
        "recoveryPointDiskConfiguration": {
          "$ref": "#/definitions/RecoveryPointDiskConfiguration",
          "description": "Disk configuration"
        },
        "recoveryPointTierDetails": {
          "description": "Recovery point tier information.",
          "items": {
            "$ref": "#/definitions/RecoveryPointTierInformation"
          },
          "type": "array"
        },
        "recoveryPointTime": {
          "description": "Time at which this backup copy was created.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "recoveryPointType": {
          "description": "Type of the backup copy.",
          "readOnly": true,
          "type": "string"
        },
        "sourceVMStorageType": {
          "description": "Storage type of the VM whose backup copy is created.",
          "readOnly": true,
          "type": "string"
        },
        "virtualMachineSize": {
          "description": "Virtual Machine Size",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaasVMRecoveryPoint"
    },
    "IaasVMRestoreRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/RestoreRequest"
        }
      ],
      "description": "IaaS VM workload-specific restore.",
      "properties": {
        "affinityGroup": {
          "description": "Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.",
          "type": "string"
        },
        "createNewCloudService": {
          "description": "Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same\r\ncloud service as it was at the time of backup.",
          "type": "boolean"
        },
        "encryptionDetails": {
          "$ref": "#/definitions/EncryptionDetails",
          "description": "Details needed if the VM was encrypted at the time of backup."
        },
        "originalStorageAccountOption": {
          "description": "Original Storage Account Option",
          "type": "boolean"
        },
        "recoveryPointId": {
          "description": "ID of the backup copy to be recovered.",
          "type": "string"
        },
        "recoveryType": {
          "description": "Type of this recovery.",
          "enum": [
            "Invalid",
            "OriginalLocation",
            "AlternateLocation",
            "RestoreDisks",
            "Offline"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "RecoveryType"
          }
        },
        "region": {
          "description": "Region in which the virtual machine is restored.",
          "type": "string"
        },
        "restoreDiskLunList": {
          "description": "List of Disk LUNs for partial restore",
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        },
        "sourceResourceId": {
          "description": "Fully qualified ARM ID of the VM which is being recovered.",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Fully qualified ARM ID of the storage account to which the VM has to be restored.",
          "type": "string"
        },
        "subnetId": {
          "description": "Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be\r\n{VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent\r\nthe subnet.",
          "type": "string"
        },
        "targetDomainNameId": {
          "description": "Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic\r\nVirtual Machines.",
          "type": "string"
        },
        "targetResourceGroupId": {
          "description": "This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}",
          "type": "string"
        },
        "targetVirtualMachineId": {
          "description": "This is the complete ARM Id of the VM that will be created.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}",
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "This is the virtual network Id of the vnet that will be attached to the virtual machine.\r\nUser will be validated for join action permissions in the linked access.",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "IaasVMRestoreRequest"
    },
    "InstantItemRecoveryTarget": {
      "description": "Target details for file / folder restore.",
      "properties": {
        "clientScripts": {
          "description": "List of client scripts.",
          "items": {
            "$ref": "#/definitions/ClientScriptForConnect"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Job": {
      "description": "Defines workload agnostic properties for a job.",
      "discriminator": "jobType",
      "properties": {
        "activityId": {
          "description": "ActivityId of job.",
          "type": "string"
        },
        "backupManagementType": {
          "description": "Backup management type to execute the current job.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "entityFriendlyName": {
          "description": "Friendly name of the entity on which the current job is executing.",
          "type": "string"
        },
        "jobType": {
          "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.",
          "type": "string"
        },
        "operation": {
          "description": "The operation name.",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "Job status.",
          "type": "string"
        }
      },
      "required": [
        "jobType"
      ],
      "type": "object"
    },
    "JobResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Defines workload agnostic properties for a job.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/Job",
          "description": "JobResource properties"
        }
      }
    },
    "JobResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of Job resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/JobResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "KEKDetails": {
      "description": "KEK is encryption key for BEK.",
      "properties": {
        "keyBackupData": {
          "description": "KEK data.",
          "type": "string"
        },
        "keyUrl": {
          "description": "Key is KEK.",
          "type": "string"
        },
        "keyVaultId": {
          "description": "Key Vault ID where this Key is stored.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "KeyAndSecretDetails": {
      "description": "BEK is bitlocker key.\r\nKEK is encryption key for BEK\r\nIf the VM was encrypted then we will store following details :\r\n1. Secret(BEK) - Url + Backup Data + vaultId.\r\n2. Key(KEK) - Url + Backup Data + vaultId.\r\n3. EncryptionMechanism\r\nBEK and KEK can potentially have different vault ids.",
      "properties": {
        "bekDetails": {
          "$ref": "#/definitions/BEKDetails",
          "description": "BEK is bitlocker encryption key."
        },
        "encryptionMechanism": {
          "description": "Encryption mechanism: None/ SinglePass/ DoublePass",
          "type": "string"
        },
        "kekDetails": {
          "$ref": "#/definitions/KEKDetails",
          "description": "KEK is encryption key for BEK."
        }
      },
      "type": "object"
    },
    "MabErrorInfo": {
      "description": "MAB workload-specific error information.",
      "properties": {
        "errorString": {
          "description": "Localized error string.",
          "readOnly": true,
          "type": "string"
        },
        "recommendations": {
          "description": "List of localized recommendations.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object"
    },
    "MabFileFolderProtectedItem": {
      "allOf": [
        {
          "$ref": "#/definitions/ProtectedItem"
        }
      ],
      "description": "MAB workload-specific backup item.",
      "properties": {
        "computerName": {
          "description": "Name of the computer associated with this backup item.",
          "type": "string"
        },
        "deferredDeleteSyncTimeInUTC": {
          "description": "Sync time for deferred deletion in UTC",
          "format": "int64",
          "type": "integer"
        },
        "extendedInfo": {
          "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo",
          "description": "Additional information with this backup item."
        },
        "friendlyName": {
          "description": "Friendly name of this backup item.",
          "type": "string"
        },
        "lastBackupStatus": {
          "description": "Status of last backup operation.",
          "type": "string"
        },
        "lastBackupTime": {
          "description": "Timestamp of the last backup operation on this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "protectionState": {
          "description": "Protected, ProtectionStopped, IRPending or ProtectionError",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "MabFileFolderProtectedItem"
    },
    "MabFileFolderProtectedItemExtendedInfo": {
      "description": "Additional information on the backed up item.",
      "properties": {
        "lastRefreshedAt": {
          "description": "Last time when the agent data synced to service.",
          "format": "date-time",
          "type": "string"
        },
        "oldestRecoveryPoint": {
          "description": "The oldest backup copy available.",
          "format": "date-time",
          "type": "string"
        },
        "recoveryPointCount": {
          "description": "Number of backup copies associated with the backup item.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "MabJob": {
      "allOf": [
        {
          "$ref": "#/definitions/Job"
        }
      ],
      "description": "MAB workload-specific job.",
      "properties": {
        "actionsInfo": {
          "description": "The state/actions applicable on jobs like cancel/retry.",
          "items": {
            "enum": [
              "Invalid",
              "Cancellable",
              "Retriable"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "JobSupportedAction"
            }
          },
          "type": "array"
        },
        "duration": {
          "description": "Time taken by job to run.",
          "format": "duration",
          "type": "string"
        },
        "errorDetails": {
          "description": "The errors.",
          "items": {
            "$ref": "#/definitions/MabErrorInfo"
          },
          "type": "array"
        },
        "extendedInfo": {
          "$ref": "#/definitions/MabJobExtendedInfo",
          "description": "Additional information on the job."
        },
        "mabServerName": {
          "description": "Name of server protecting the DS.",
          "type": "string"
        },
        "mabServerType": {
          "description": "Server type of MAB container.",
          "enum": [
            "Invalid",
            "Unknown",
            "IaasVMContainer",
            "IaasVMServiceContainer",
            "DPMContainer",
            "AzureBackupServerContainer",
            "MABContainer",
            "Cluster",
            "AzureSqlContainer",
            "Windows",
            "VCenter",
            "VMAppContainer",
            "SQLAGWorkLoadContainer",
            "StorageContainer",
            "GenericContainer"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "MabServerType"
          }
        },
        "workloadType": {
          "description": "Workload type of backup item.",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "WorkloadType"
          }
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "MabJob"
    },
    "MabJobExtendedInfo": {
      "description": "Additional information for the MAB workload-specific job.",
      "properties": {
        "dynamicErrorMessage": {
          "description": "Non localized error message specific to this job.",
          "type": "string"
        },
        "propertyBag": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The job properties.",
          "type": "object"
        },
        "tasksList": {
          "description": "List of tasks for this job.",
          "items": {
            "$ref": "#/definitions/MabJobTaskDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MabJobTaskDetails": {
      "description": "MAB workload-specific job task details.",
      "properties": {
        "duration": {
          "description": "Time elapsed for task.",
          "format": "duration",
          "type": "string"
        },
        "endTime": {
          "description": "The end time.",
          "format": "date-time",
          "type": "string"
        },
        "startTime": {
          "description": "The start time.",
          "format": "date-time",
          "type": "string"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        },
        "taskId": {
          "description": "The task display name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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"
    },
    "OperationStatusRecoveryPointExtendedInfo": {
      "allOf": [
        {
          "$ref": "#/definitions/OperationStatusExtendedInfo"
        }
      ],
      "description": "Operation status extended info for Updated Recovery Point.",
      "properties": {
        "deletedBackupItemVersion": {
          "description": "In case the share is in soft-deleted state, populate this field with deleted backup item",
          "type": "string"
        },
        "updatedRecoveryPoint": {
          "$ref": "#/definitions/RecoveryPoint",
          "description": "Recovery Point info with updated source snapshot URI"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "OperationStatusRecoveryPointExtendedInfo"
    },
    "PointInTimeRange": {
      "description": "Provides details for log ranges",
      "properties": {
        "endTime": {
          "description": "End time of the time range for log recovery.",
          "format": "date-time",
          "type": "string"
        },
        "startTime": {
          "description": "Start time of the time range for log recovery.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProtectedItem": {
      "description": "Base class for backup items.",
      "discriminator": "protectedItemType",
      "properties": {
        "backupManagementType": {
          "description": "Type of backup management for the backed up item.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "backupSetName": {
          "description": "Name of the backup set the backup item belongs to",
          "type": "string"
        },
        "containerName": {
          "description": "Unique name of container",
          "type": "string"
        },
        "createMode": {
          "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source.",
          "enum": [
            "Invalid",
            "Default",
            "Recover"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "CreateMode"
          }
        },
        "deferredDeleteTimeInUTC": {
          "description": "Time for deferred deletion in UTC",
          "format": "date-time",
          "type": "string"
        },
        "deferredDeleteTimeRemaining": {
          "description": "Time remaining before the DS marked for deferred delete is permanently deleted",
          "type": "string"
        },
        "isDeferredDeleteScheduleUpcoming": {
          "description": "Flag to identify whether the deferred deleted DS is to be purged soon",
          "type": "boolean"
        },
        "isRehydrate": {
          "description": "Flag to identify that deferred deleted DS is to be moved into Pause state",
          "type": "boolean"
        },
        "isScheduledForDeferredDelete": {
          "description": "Flag to identify whether the DS is scheduled for deferred delete",
          "type": "boolean"
        },
        "lastRecoveryPoint": {
          "description": "Timestamp when the last (latest) backup copy was created for this backup item.",
          "format": "date-time",
          "type": "string"
        },
        "policyId": {
          "description": "ID of the backup policy with which this item is backed up.",
          "type": "string"
        },
        "protectedItemType": {
          "description": "backup item type.",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "ARM ID of the resource to be backed up.",
          "type": "string"
        },
        "workloadType": {
          "description": "Type of workload this item represents.",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "DataSourceType"
          }
        }
      },
      "required": [
        "protectedItemType"
      ],
      "type": "object"
    },
    "ProtectedItemQueryObject": {
      "description": "Filters to list backup items.",
      "properties": {
        "backupEngineName": {
          "description": "Backup Engine name",
          "type": "string"
        },
        "backupManagementType": {
          "description": "Backup management type for the backed up item.",
          "enum": [
            "Invalid",
            "AzureIaasVM",
            "MAB",
            "DPM",
            "AzureBackupServer",
            "AzureSql",
            "AzureStorage",
            "AzureWorkload",
            "DefaultBackup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BackupManagementType"
          }
        },
        "backupSetName": {
          "description": "Name of the backup set.",
          "type": "string"
        },
        "containerName": {
          "description": "Name of the container.",
          "type": "string"
        },
        "fabricName": {
          "description": "Name of the fabric.",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name of protected item",
          "type": "string"
        },
        "healthState": {
          "description": "Health State for the backed up item.",
          "enum": [
            "Passed",
            "ActionRequired",
            "ActionSuggested",
            "Invalid"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "HealthState"
          }
        },
        "itemType": {
          "description": "Type of workload this item represents.",
          "enum": [
            "Invalid",
            "VM",
            "FileFolder",
            "AzureSqlDb",
            "SQLDB",
            "Exchange",
            "Sharepoint",
            "VMwareVM",
            "SystemState",
            "Client",
            "GenericDataSource",
            "SQLDataBase",
            "AzureFileShare",
            "SAPHanaDatabase",
            "SAPAseDatabase"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "DataSourceType"
          }
        },
        "policyName": {
          "description": "Backup policy name associated with the backup item.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProtectedItemResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup items.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ProtectedItem",
          "description": "ProtectedItemResource properties"
        }
      }
    },
    "ProtectedItemResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of ProtectedItem resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/ProtectedItemResource"
          },
          "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"
    },
    "RecoveryPointDiskConfiguration": {
      "description": "Disk configuration",
      "properties": {
        "excludedDiskList": {
          "description": "Information of disks excluded from backup",
          "items": {
            "$ref": "#/definitions/DiskInformation"
          },
          "type": "array"
        },
        "includedDiskList": {
          "description": "Information of disks included in backup",
          "items": {
            "$ref": "#/definitions/DiskInformation"
          },
          "type": "array"
        },
        "numberOfDisksAttachedToVm": {
          "description": "Number of disks attached to the VM",
          "format": "int32",
          "type": "integer"
        },
        "numberOfDisksIncludedInBackup": {
          "description": "Number of disks included in backup",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "RecoveryPointResource": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/RecoveryPoint",
          "description": "RecoveryPointResource properties"
        }
      }
    },
    "RecoveryPointResourceList": {
      "allOf": [
        {
          "$ref": "#/definitions/ResourceList"
        }
      ],
      "description": "List of RecoveryPoint resources",
      "properties": {
        "value": {
          "description": "List of resources.",
          "items": {
            "$ref": "#/definitions/RecoveryPointResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "RecoveryPointTierInformation": {
      "description": "Recovery point tier information.",
      "properties": {
        "status": {
          "description": "Recovery point tier status.",
          "enum": [
            "Invalid",
            "Valid",
            "Disabled",
            "Deleted"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "RecoveryPointTierStatus"
          }
        },
        "type": {
          "description": "Recovery point tier type.",
          "enum": [
            "Invalid",
            "InstantRP",
            "HardenedRP"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "RecoveryPointTierType"
          }
        }
      },
      "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"
    },
    "RestoreFileSpecs": {
      "description": "Restore file specs like file path, type and target folder path info.",
      "properties": {
        "fileSpecType": {
          "description": "Indicates what the Path variable stands for",
          "type": "string"
        },
        "path": {
          "description": "Source File/Folder path",
          "type": "string"
        },
        "targetFolderPath": {
          "description": "Destination folder path in target FileShare",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RestoreRequest": {
      "description": "Base class for restore request. Workload-specific restore 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"
    },
    "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"
    },
    "SQLDataDirectoryMapping": {
      "description": "Encapsulates information regarding data directory",
      "properties": {
        "mappingType": {
          "description": "Type of data directory mapping",
          "enum": [
            "Invalid",
            "Data",
            "Log"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "SQLDataDirectoryType"
          }
        },
        "sourceLogicalName": {
          "description": "Restore source logical name path",
          "type": "string"
        },
        "sourcePath": {
          "description": "Restore source path",
          "type": "string"
        },
        "targetPath": {
          "description": "Target path",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TargetAFSRestoreInfo": {
      "description": "Target Azure File Share Info.",
      "properties": {
        "name": {
          "description": "File share name",
          "type": "string"
        },
        "targetResourceId": {
          "description": "Target file share resource ARM ID",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TargetRestoreInfo": {
      "description": "Details about target workload during restore operation.",
      "properties": {
        "containerId": {
          "description": "Resource Id name of the container in which Target DataBase resides",
          "type": "string"
        },
        "databaseName": {
          "description": "Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana",
          "type": "string"
        },
        "overwriteOption": {
          "description": "Can Overwrite if Target DataBase already exists",
          "enum": [
            "Invalid",
            "FailOnConflict",
            "Overwrite"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "OverwriteOptions"
          }
        },
        "targetDirectoryMapping": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "This will contain the target folder mapping for the Full/Diff/Log/Incremental pits.",
          "type": "object"
        }
      },
      "type": "object"
    }
  }
}