swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  title: RecoveryServicesBackupClient
  version: 2016-06-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2016-06-01/recoveryservicesbackup.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: recoveryservicesbackup
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow.
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account.
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersion:
    description: Client API version.
    in: query
    name: api-version
    required: true
    type: string
  ResourceGroupName:
    description: The name of the resource group associated with the Recovery Services vault.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionId:
    description: The subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
  VaultName:
    description: The name of the Recovery Services vault.
    in: path
    name: vaultName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines":
    get:
      deprecated: false
      description: The backup management servers registered to a Recovery Services vault. This returns a pageable list of servers.
      operationId: BackupEngines_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Use this filter to choose the specific backup management server. backupManagementType { AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql }.
          in: query
          name: $filter
          required: false
          type: string
        - description: The Skip Token filter.
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/BackupEngineBaseResourceList"
      tags:
        - BackupEngines
      x-ms-odata: "#/definitions/BMSBackupEngineQueryObject"
      x-ms-pageable:
        nextLinkName: nextLink
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/operationResults/{operationId}":
    get:
      deprecated: false
      description: Provides the result of the refresh operation triggered by the BeginRefresh operation.
      operationId: ProtectionContainerRefreshOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the container.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The operation ID used for this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - ProtectionContainerRefreshOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}":
    get:
      deprecated: false
      description: Gets details of the specific container registered to your Recovery Services vault.
      operationId: ProtectionContainers_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the container.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name used for this GET operation.
          in: path
          name: containerName
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionContainerResource"
      tags:
        - ProtectionContainers
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/operationResults/{operationId}":
    get:
      deprecated: false
      description: Gets the result of any operation on the container.
      operationId: ProtectionContainerOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the container.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name used for this GET operation.
          in: path
          name: containerName
          required: true
          type: string
        - description: The operation ID used for this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionContainerResource"
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - ProtectionContainerOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}":
    delete:
      deprecated: false
      description: Used to disable the backup job for an item within a container. This is an asynchronous operation. To learn the status of the request, call the GetItemOperationResult API.
      operationId: ProtectedItems_Delete
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: " The fabric name associated with the backup item."
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The backup item to be deleted.
          in: path
          name: protectedItemName
          required: true
          type: string
      responses:
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - ProtectedItems
    get:
      deprecated: false
      description: Provides the details of the backup item. This is an asynchronous operation. To know the status of the operation, call the GetItemOperationResult API.
      operationId: ProtectedItems_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The backup item name used in this GET operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: expand eq {extendedInfo}. This filter enables you to choose (or filter) specific items in the list of backup items.
          in: query
          name: $filter
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectedItemResource"
      tags:
        - ProtectedItems
      x-ms-odata: "#/definitions/GetProtectedItemQueryObject"
    put:
      deprecated: false
      description: This operation enables an item to be backed up, or modifies the existing backup policy information for an item that has been backed up. This is an asynchronous operation. To learn the status of the operation, call the GetItemOperationResult API.
      operationId: ProtectedItems_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of the backup item.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The resource backup item.
          in: body
          name: resourceProtectedItem
          required: true
          schema:
            $ref: "#/definitions/ProtectedItemResource"
      responses:
        "202":
          description: Accepted.
      tags:
        - ProtectedItems
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup":
    post:
      deprecated: false
      description: Triggers the backup job for the specified backup item. This is an asynchronous operation. To know the status of the operation, call GetProtectedItemOperationResult API.
      operationId: Backups_Trigger
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of backup item used in this POST operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The resource backup request.
          in: body
          name: resourceBackupRequest
          required: true
          schema:
            $ref: "#/definitions/BackupRequestResource"
      responses:
        "202":
          description: Accepted
      tags:
        - Backups
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationResults/{operationId}":
    get:
      deprecated: false
      description: Gets the result of any operation on the backup item.
      operationId: ProtectedItemOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of backup item used in this GET operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The OperationID used in this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectedItemResource"
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - ProtectedItemOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationsStatus/{operationId}":
    get:
      deprecated: false
      description: "Gets the status of an operation such as triggering a backup or restore. The status can be: In progress, Completed, or Failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some operations create jobs. This method returns the list of jobs associated with the operation."
      operationId: ProtectedItemOperationStatuses_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of backup item used in this GET operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The OperationID used in this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/OperationStatus"
      tags:
        - ProtectedItemOperationStatuses
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints":
    get:
      deprecated: false
      description: Lists the recovery points, or backup copies, for the specified backup item.
      operationId: RecoveryPoints_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of backup item used in this GET operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: startDate eq {yyyy-mm-dd hh:mm:ss PM} and endDate { yyyy-mm-dd hh:mm:ss PM}.
          in: query
          name: $filter
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/RecoveryPointResourceList"
      tags:
        - RecoveryPoints
      x-ms-odata: "#/definitions/BMSRPQueryObject"
      x-ms-pageable:
        nextLinkName: null
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}":
    get:
      deprecated: false
      description: Provides the backup data for the RecoveryPointID. This is an asynchronous operation. To learn the status of the operation, call the GetProtectedItemOperationResult API.
      operationId: RecoveryPoints_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with backup item.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of the backup item used in this GET operation.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The RecoveryPointID associated with this GET operation.
          in: path
          name: recoveryPointId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/RecoveryPointResource"
      tags:
        - RecoveryPoints
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/provisionInstantItemRecovery":
    post:
      deprecated: false
      description: Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens File Explorer which displays the recoverable files and folders. This is an asynchronous operation. To get the provisioning status, call GetProtectedItemOperationResult API.
      operationId: ItemLevelRecoveryConnections_Provision
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup items.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup items.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of the backup item whose files or folders are to be restored.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The recovery point ID for backup data. The iSCSI connection will be provisioned for this backup data.
          in: path
          name: recoveryPointId
          required: true
          type: string
        - description: The resource Item Level Recovery (ILR) request.
          in: body
          name: resourceILRRequest
          required: true
          schema:
            $ref: "#/definitions/ILRRequestResource"
      responses:
        "202":
          description: Accepted.
      tags:
        - ItemLevelRecoveryConnections
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore":
    post:
      deprecated: false
      description: Restores the specified backup data. This is an asynchronous operation. To know the status of this API call, use GetProtectedItemOperationResult API.
      operationId: Restores_Trigger
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup items.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup items.
          in: path
          name: containerName
          required: true
          type: string
        - description: The backup item to be restored.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The recovery point ID for the backup data to be restored.
          in: path
          name: recoveryPointId
          required: true
          type: string
        - description: The resource restore request.
          in: body
          name: resourceRestoreRequest
          required: true
          schema:
            $ref: "#/definitions/RestoreRequestResource"
      responses:
        "202":
          description: The data restore operation was accepted.
      tags:
        - Restores
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/revokeInstantItemRecovery":
    post:
      deprecated: false
      description: Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer displaying all recoverable files and folders. This is an asynchronous operation.
      operationId: ItemLevelRecoveryConnections_Revoke
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the backup items. The value allowed is Azure.
          in: path
          name: fabricName
          required: true
          type: string
        - description: The container name associated with the backup items.
          in: path
          name: containerName
          required: true
          type: string
        - description: The name of the backup items whose files or folders will be restored.
          in: path
          name: protectedItemName
          required: true
          type: string
        - description: The string that identifies the recovery point. The iSCSI connection will be revoked for this protected data.
          in: path
          name: recoveryPointId
          required: true
          type: string
      responses:
        "202":
          description: The revocation was accepted.
      tags:
        - ItemLevelRecoveryConnections
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers":
    post:
      deprecated: false
      description: Discovers the containers in the subscription that can be protected in a Recovery Services vault. This is an asynchronous operation. To learn the status of the operation, use the GetRefreshOperationResult API.
      operationId: ProtectionContainers_Refresh
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The fabric name associated with the container.
          in: path
          name: fabricName
          required: true
          type: string
      responses:
        "202":
          description: Accepted.
      tags:
        - ProtectionContainers
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs":
    get:
      deprecated: false
      description: Provides a pageable list of jobs.
      operationId: Jobs_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The following equation can be used to filter the list of jobs based on status, type, start date, and end date. status eq { InProgress , Completed , Failed , CompletedWithWarnings , Cancelled , Cancelling } and backupManagementType eq {AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql } and operation eq { ConfigureBackup , Backup , Restore , DisableBackup , DeleteBackupData } and jobId eq {guid} and startTime eq { yyyy-mm-dd hh:mm:ss PM } and endTime eq { yyyy-mm-dd hh:mm:ss PM }.
          in: query
          name: $filter
          required: false
          type: string
        - description: The Skip Token filter.
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/JobResourceList"
      tags:
        - Jobs
      x-ms-odata: "#/definitions/JobQueryObject"
      x-ms-pageable:
        nextLinkName: nextLink
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/operationResults/{operationId}":
    get:
      deprecated: false
      description: Gets the result of the operation triggered by the ExportJob API.
      operationId: ExportJobsOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The ID associated with the export job.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/OperationResultInfoBaseResource"
        "202":
          description: Accepted
      tags:
        - ExportJobsOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}":
    get:
      deprecated: false
      description: Gets extended information associated with the job.
      operationId: JobDetails_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Name of the job associated with this GET operation.
          in: path
          name: jobName
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/JobResource"
      tags:
        - JobDetails
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/cancel":
    post:
      deprecated: false
      description: Cancels the job. This is an asynchronous operation. To know the status of the cancellation, call the GetCancelOperationResult API.
      operationId: JobCancellations_Trigger
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Name of the job to cancel.
          in: path
          name: jobName
          required: true
          type: string
      responses:
        "202":
          description: Accepted.
      tags:
        - JobCancellations
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/operationResults/{operationId}":
    get:
      deprecated: false
      description: Gets the result of the operation.
      operationId: JobOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Job name associated with this GET operation.
          in: path
          name: jobName
          required: true
          type: string
        - description: OperationID associated with this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - JobOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobsExport":
    post:
      deprecated: false
      description: Exports all jobs for a given Shared Access Signatures (SAS) URL. The SAS URL expires within 15 minutes of its creation.
      operationId: Jobs_Export
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The OData filter options. status eq { InProgress , Completed , Failed , CompletedWithWarnings , Cancelled , Cancelling } and backupManagementType eq {AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql } and operation eq { ConfigureBackup , Backup , Restore , DisableBackup , DeleteBackupData } and jobId eq {guid} and startTime eq { yyyy-mm-dd hh:mm:ss PM } and endTime eq { yyyy-mm-dd hh:mm:ss PM }.
          in: query
          name: $filter
          required: false
          type: string
      responses:
        "202":
          description: Accepted.
      tags:
        - Jobs
      x-ms-odata: "#/definitions/JobQueryObject"
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperationResults/{operationId}":
    get:
      deprecated: false
      description: Provides the status of the delete operations, for example, deleting a backup item. Once the operation starts, the response status code is Accepted. The response status code remains in this state until the operation reaches completion. On successful completion, the status code changes to OK. This method expects OperationID as an argument. OperationID is part of the Location header of the operation response.
      operationId: BackupOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The ID of the operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
        "202":
          description: Accepted.
        "204":
          description: No content.
      tags:
        - BackupOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperations/{operationId}":
    get:
      deprecated: false
      description: Gets the status of an operation such as triggering a backup or restore. The status can be In progress, Completed or Failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations create jobs. This method returns the list of jobs when the operation is complete.
      operationId: BackupOperationStatuses_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The ID of the operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/OperationStatus"
      tags:
        - BackupOperationStatuses
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies":
    get:
      deprecated: false
      description: Lists the backup policies associated with the Recovery Services vault. The API provides parameters to Get scoped results.
      operationId: ProtectionPolicies_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The following equation can be used to filter the list of backup policies. backupManagementType eq {AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql}.
          in: query
          name: $filter
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionPolicyResourceList"
      tags:
        - ProtectionPolicies
      x-ms-odata: "#/definitions/ProtectionPolicyQueryObject"
      x-ms-pageable:
        nextLinkName: null
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}":
    delete:
      deprecated: false
      description: Deletes the specified backup policy from your Recovery Services vault. This is an asynchronous operation. Use the GetPolicyOperationResult API to Get the operation status.
      operationId: ProtectionPolicies_Delete
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The name of the backup policy to be deleted.
          in: path
          name: policyName
          required: true
          type: string
      responses:
        "200":
          description: OK.
        "204":
          description: No content.
      tags:
        - ProtectionPolicies
    get:
      deprecated: false
      description: Gets the details of the backup policy associated with the Recovery Services vault. This is an asynchronous operation. Use the GetPolicyOperationResult API to Get the operation status.
      operationId: ProtectionPolicies_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The backup policy name used in this GET operation.
          in: path
          name: policyName
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionPolicyResource"
      tags:
        - ProtectionPolicies
    put:
      deprecated: false
      description: Creates or modifies a backup policy. This is an asynchronous operation. Use the GetPolicyOperationResult API to Get the operation status.
      operationId: ProtectionPolicies_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The backup policy to be created.
          in: path
          name: policyName
          required: true
          type: string
        - description: The resource backup policy.
          in: body
          name: resourceProtectionPolicy
          required: true
          schema:
            $ref: "#/definitions/ProtectionPolicyResource"
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionPolicyResource"
        "202":
          description: Accepted.
      tags:
        - ProtectionPolicies
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operationResults/{operationId}":
    get:
      deprecated: false
      description: Provides the result of an operation.
      operationId: ProtectionPolicyOperationResults_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The backup policy name used in this GET operation.
          in: path
          name: policyName
          required: true
          type: string
        - description: The ID associated with this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionPolicyResource"
      tags:
        - ProtectionPolicyOperationResults
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operations/{operationId}":
    get:
      deprecated: false
      description: "Provides the status of the asynchronous operations like backup or restore. The status can be: in progress, completed, or failed. You can refer to the Operation Status enumeration for the possible states of an operation. Some operations create jobs. This method returns the list of jobs associated with the operation."
      operationId: ProtectionPolicyOperationStatuses_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The backup policy name used in this GET operation.
          in: path
          name: policyName
          required: true
          type: string
        - description: The ID associated with this GET operation.
          in: path
          name: operationId
          required: true
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/OperationStatus"
      tags:
        - ProtectionPolicyOperationStatuses
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems":
    get:
      deprecated: false
      description: Based on the query filter and the pagination parameters, this operation provides a pageable list of objects within the subscription that can be protected.
      operationId: ProtectableItems_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: "Using the following query filters, you can sort a specific backup item based on: type of backup item, status, name of the item, and more.  providerType eq { AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql } and status eq { NotProtected , Protecting , Protected } and friendlyName {name} and skipToken eq {string which provides the next set of list} and topToken eq {int} and backupManagementType eq { AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql }."
          in: query
          name: $filter
          required: false
          type: string
        - description: The Skip Token filter.
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/WorkloadProtectableItemResourceList"
      tags:
        - ProtectableItems
      x-ms-odata: "#/definitions/BMSPOQueryObject"
      x-ms-pageable:
        nextLinkName: nextLink
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems":
    get:
      deprecated: false
      description: Provides a pageable list of all items in a subscription, that can be protected.
      operationId: ProtectedItems_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: " itemType eq { VM , FileFolder , AzureSqlDb , SQLDB , Exchange , Sharepoint , DPMUnknown } and providerType eq { AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql } and policyName eq {policyName} and containerName eq {containername} and backupManagementType eq { AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql }."
          in: query
          name: $filter
          required: false
          type: string
        - description: " The Skip Token filter."
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectedItemResourceList"
      tags:
        - ProtectedItems
      x-ms-odata: "#/definitions/ProtectedItemQueryObject"
      x-ms-pageable:
        nextLinkName: nextLink
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionContainers":
    get:
      deprecated: false
      description: Lists the containers registered to the Recovery Services vault.
      operationId: ProtectionContainers_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: The following equation is used to sort or filter the containers registered to the vault. providerType eq {AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql} and status eq {Unknown, NotRegistered, Registered, Registering} and friendlyName eq {containername} and backupManagementType eq {AzureIaasVM, MAB, DPM, AzureBackupServer, AzureSql}.
          in: query
          name: $filter
          required: false
          type: string
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/ProtectionContainerResourceList"
      tags:
        - ProtectionContainers
      x-ms-odata: "#/definitions/BMSContainerQueryObject"
      x-ms-pageable:
        nextLinkName: null
definitions:
  AzureBackupServerEngine:
    allOf:
      - $ref: "#/definitions/BackupEngineBase"
    description: The backup engine type when Azure Backup Server is used to manage the backups.
    type: object
    x-ms-discriminator-value: AzureBackupServerEngine
  AzureIaaSClassicComputeVMContainer:
    allOf:
      - $ref: "#/definitions/IaaSVMContainer"
    description: IaaS VM workload-specific backup item representing a classic-deployed virtual machine.
    type: object
    x-ms-discriminator-value: Microsoft.ClassicCompute/virtualMachines
  AzureIaaSClassicComputeVMProtectableItem:
    allOf:
      - $ref: "#/definitions/IaaSVMProtectableItem"
    description: IaaS VM workload-specific backup item representing a classic VM.
    type: object
    x-ms-discriminator-value: Microsoft.ClassicCompute/virtualMachines
  AzureIaaSClassicComputeVMProtectedItem:
    allOf:
      - $ref: "#/definitions/AzureIaaSVMProtectedItem"
    description: IaaS VM workload-specific backup item representing the classic VM.
    type: object
    x-ms-discriminator-value: Microsoft.ClassicCompute/virtualMachines
  AzureIaaSComputeVMContainer:
    allOf:
      - $ref: "#/definitions/IaaSVMContainer"
    description: IaaS VM workload-specific backup item representing a Resource Manager-deployed virtual machine.
    type: object
    x-ms-discriminator-value: Microsoft.Compute/virtualMachines
  AzureIaaSComputeVMProtectableItem:
    allOf:
      - $ref: "#/definitions/IaaSVMProtectableItem"
    description: IaaS VM workload-specific backup item representing a Resource Manager VM.
    type: object
    x-ms-discriminator-value: Microsoft.Compute/virtualMachines
  AzureIaaSComputeVMProtectedItem:
    allOf:
      - $ref: "#/definitions/AzureIaaSVMProtectedItem"
    description: IaaS VM workload-specific backup item representing the 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
        type: integer
      errorString:
        description: Localized error string.
        type: string
      errorTitle:
        description: "Title: typically, the entity associated the error."
        type: string
      recommendations:
        description: List of localized recommendations for the error string.
        items:
          type: string
        type: array
    type: object
  AzureIaaSVMJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: The Azure IaaS VM workload-specific job object.
    properties:
      actionsInfo:
        description: "Gets or sets the state, or actions, applicable on this job. Examples of the actions are: Cancel or Retry."
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: The time that elapsed during the execution of this job.
        format: duration
        type: string
      errorDetails:
        description: Error details about 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 VM or a Resource Manager VM.
        type: string
    type: object
    x-ms-discriminator-value: AzureIaaSVMJob
  AzureIaaSVMJobExtendedInfo:
    description: Additional information for the Azure IaaS VM workload-specific job.
    properties:
      dynamicErrorMessage:
        description: Non-localized error message for job execution.
        type: string
      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: The time elapsed for the task.
        format: duration
        type: string
      endTime:
        description: The end time.
        format: date-time
        type: string
      instanceId:
        description: The instance ID.
        type: string
      progressPercentage:
        description: The progress of the task, as a percentage.
        format: double
        type: number
      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
  AzureIaaSVMProtectedItem:
    allOf:
      - $ref: "#/definitions/ProtectedItem"
    description: This Azure VM workload-specific (also known as IaaS VM workload-specific) backup item has been backed up.
    properties:
      extendedInfo:
        $ref: "#/definitions/AzureIaaSVMProtectedItemExtendedInfo"
        description: Additional information for this backup item.
      friendlyName:
        description: The friendly name of the VM represented by this backup item.
        type: string
      lastBackupStatus:
        description: "The last backup operation status. The possible values are: Healthy or Unhealthy."
        type: string
      lastBackupTime:
        description: The timestamp of the last backup operation for this backup item.
        format: date-time
        type: string
      protectionState:
        description: The backup state of this backup item.
        enum:
          - Invalid
          - IRPending
          - Protected
          - ProtectionError
          - ProtectionStopped
          - ProtectionPaused
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProtectionState
      protectionStatus:
        description: The backup status of this backup item.
        type: string
      virtualMachineId:
        description: The fully qualified Resource Manager ID of the virtual machine represented by this item.
        type: string
    type: object
    x-ms-discriminator-value: AzureIaaSVMProtectedItem
  AzureIaaSVMProtectedItemExtendedInfo:
    description: Additional information for the Azure VM (also known as 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 the backup policy associated with the backup item is inconsistent.
        type: boolean
      recoveryPointCount:
        description: The number of backup copies available for this backup item.
        format: int32
        type: integer
    type: object
  AzureIaaSVMProtectionPolicy:
    allOf:
      - $ref: "#/definitions/ProtectionPolicy"
    description: Azure VM (also known as IaaS VM) workload-specific backup policy.
    properties:
      retentionPolicy:
        $ref: "#/definitions/RetentionPolicy"
        description: The retention policy with the details on backup copy retention ranges.
      schedulePolicy:
        $ref: "#/definitions/SchedulePolicy"
        description: The backup schedule specified as part of backup policy.
    type: object
    x-ms-discriminator-value: AzureIaasVM
  AzureSqlContainer:
    allOf:
      - $ref: "#/definitions/ProtectionContainer"
    description: Azure SQL workload-specific container.
    type: object
    x-ms-discriminator-value: AzureSqlContainer
  AzureSqlProtectedItem:
    allOf:
      - $ref: "#/definitions/ProtectedItem"
    description: This is an Azure SQL workload-specific backup item.
    properties:
      extendedInfo:
        $ref: "#/definitions/AzureSqlProtectedItemExtendedInfo"
        description: Additional information for this backup item.
      protectedItemDataId:
        description: The internal ID of a backup item. The internal ID is used by the Azure SQL Backup engine to contact Recovery Services.
        type: string
      protectionState:
        description: The backup state of the backup item.
        enum:
          - Invalid
          - IRPending
          - Protected
          - ProtectionError
          - ProtectionStopped
          - ProtectionPaused
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProtectedItemState
    type: object
    x-ms-discriminator-value: Microsoft.Sql/servers/databases
  AzureSqlProtectedItemExtendedInfo:
    description: Additional information for the Azure SQL specific backup item.
    properties:
      oldestRecoveryPoint:
        description: The oldest backup copy available for this item in the service.
        format: date-time
        type: string
      policyState:
        description: The state of the backup policy associated with this backup item.
        type: string
      recoveryPointCount:
        description: The number of available backup copies for this backup item.
        format: int32
        type: integer
    type: object
  AzureSqlProtectionPolicy:
    allOf:
      - $ref: "#/definitions/ProtectionPolicy"
    description: " The Azure SQL workload-specific backup policy."
    properties:
      retentionPolicy:
        $ref: "#/definitions/RetentionPolicy"
        description: The retention policy details.
    type: object
    x-ms-discriminator-value: AzureSql
  BEKDetails:
    description: BEK is Bitlocker Encryption Key.
    properties:
      secretData:
        description: Bitlocker Encryption Key (BEK) data.
        type: string
      secretUrl:
        description: Secret refers to Bitlocker Encryption Key (BEK). The Secret can be unlocked by the key (or KEK).
        type: string
      secretVaultId:
        description: ID of the Key Vault where this Secret is stored.
        type: string
    type: object
  BMSBackupEngineQueryObject:
    description: The query parameters used to GET the list of backup engines.
    properties:
      backupManagementType:
        description: The backup management type associated with the backup engine.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
    type: object
  BMSContainerQueryObject:
    description: The query filters that can be used with the list containers API.
    properties:
      backupManagementType:
        description: The backup management type for this container.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      friendlyName:
        description: The friendly name of the container.
        type: string
      status:
        description: The status of the container's registration with the Recovery Services vault.
        type: string
    type: object
  BMSPOQueryObject:
    description: Filters the list of backup items.
    properties:
      backupManagementType:
        description: The backup management type.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      friendlyName:
        description: The friendly name for the item.
        type: string
      status:
        description: The backup status query parameter.
        type: string
    type: object
  BMSRPQueryObject:
    description: Filters the list of backup copies based on the property.
    properties:
      endDate:
        description: Use backup copies created before this time.
        format: date-time
        type: string
      startDate:
        description: Use backup copies created after this time.
        format: date-time
        type: string
    type: object
  BackupEngineBase:
    description: The base backup engine class. All workload-specific backup engines derive from this class.
    discriminator: backupEngineType
    properties:
      backupEngineId:
        description: The ID of the backup engine.
        type: string
      backupEngineType:
        description: The type of the backup engine.
        type: string
      backupManagementType:
        description: The type of backup management associated with the backup engine.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      canReRegister:
        description: The flag indicating whether the backup engine be registered again, once the engine has been initially registered.
        type: boolean
      friendlyName:
        description: The friendly name of the backup engine.
        type: string
      healthStatus:
        description: The backup status of the backup engine.
        type: string
      registrationStatus:
        description: The status of the backup engine registration with the Recovery Services vault.
        type: string
    type: object
  BackupEngineBaseResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base backup engine class. All workload-specific backup engines derive from this class.
    properties:
      properties:
        $ref: "#/definitions/BackupEngineBase"
  BackupEngineBaseResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: List of BackupEngineBase resources
    properties:
      value:
        description: List of resources.
        items:
          $ref: "#/definitions/BackupEngineBaseResource"
        type: array
    type: object
  BackupRequest:
    description: The base class for a backup request. Workload-specific backup requests are derived from this class.
    discriminator: objectType
    properties:
      objectType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  BackupRequestResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Base class for the backup request. Workload-specific backup requests are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/BackupRequest"
  ClientScriptForConnect:
    description: Client script details for the file or folder restore.
    properties:
      osType:
        description: The operating system platform ("Windows" or "Linux") for which this file or folder restore client script works.
        type: string
      scriptContent:
        description: File content of the client script for file or folder restore.
        type: string
      scriptExtension:
        description: "File extension of the client script for the file or folder restore. Some examples of the extension are: .ps1 and .sh."
        type: string
    type: object
  DailyRetentionFormat:
    description: Daily retention format.
    properties:
      daysOfTheMonth:
        description: List of days of the month.
        items:
          $ref: "#/definitions/Day"
        type: array
    type: object
  DailyRetentionSchedule:
    description: Daily retention schedule.
    properties:
      retentionDuration:
        $ref: "#/definitions/RetentionDuration"
        description: The retention duration of retention policy.
      retentionTimes:
        description: The retention times of retention policy.
        items:
          format: date-time
          type: string
        type: array
    type: object
  Day:
    description: Day of the week.
    properties:
      date:
        format: int32
        type: integer
      isLast:
        type: boolean
    type: object
  DpmBackupEngine:
    allOf:
      - $ref: "#/definitions/BackupEngineBase"
    description: The backup engine type when Data Protection Manager (DPM) is used to manage backups.
    type: object
    x-ms-discriminator-value: DpmBackupEngine
  DpmErrorInfo:
    description: DPM workload-specific error information.
    properties:
      errorString:
        description: Localized error string.
        type: string
      recommendations:
        description: The list of localized recommendations for the error string.
        items:
          type: string
        type: array
    type: object
  DpmJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: The DPM workload-specific job object.
    properties:
      actionsInfo:
        description: The state or actions applicable on this job, such as Cancel or Retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      containerName:
        description: The name of the cluster or server protecting the current backup item, if any.
        type: string
      containerType:
        description: The type of container.
        type: string
      dpmServerName:
        description: DPM server name managing the backup item or backup job.
        type: string
      duration:
        description: The time elapsed for the 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: The 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: The 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 the backup copy represents an encrypted VM at the time of backup.
        type: boolean
      kekUrl:
        description: URL of the Key Encryption Key (KEK).
        type: string
      kekVaultId:
        description: The ID of Key Vault where the Key Encryption Key (KEK) is stored.
        type: string
      secretKeyUrl:
        description: URL of the Bitlocker Encryption Key (BEK).
        type: string
      secretKeyVaultId:
        description: The ID of Key Vault where the Bitlocker Encryption Key (BEK), or Secret, is stored.
        type: string
    type: object
  ExportJobsOperationResultInfo:
    allOf:
      - $ref: "#/definitions/OperationResultInfoBase"
    description: This class is used to send blob details after exporting jobs.
    properties:
      blobSasKey:
        description: The Shared Access Signatures (SAS) key used to access the blob. The key expires after 15 minutes.
        type: string
      blobUrl:
        description: The URL of the blob. The serialized string, which is the list of jobs, is exported to this URL.
        type: string
    type: object
    x-ms-discriminator-value: ExportJobsOperationResultInfo
  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: The time when 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
  GetProtectedItemQueryObject:
    description: This object filters the list of backup items.
    properties:
      expand:
        description: Specifies if the additional information should be provided for this item.
        type: string
    type: object
  ILRRequest:
    description: Parameters to restore file or folders API.
    discriminator: objectType
    properties:
      objectType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  ILRRequestResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The parameters to restore files or folders.
    properties:
      properties:
        $ref: "#/definitions/ILRRequest"
  IaaSVMContainer:
    allOf:
      - $ref: "#/definitions/ProtectionContainer"
    description: IaaS VM workload-specific container.
    properties:
      resourceGroup:
        description: The resource group name associated with the Recovery Services vault.
        type: string
      virtualMachineId:
        description: The fully qualified Resource Manager URL of the virtual machine represented by this Azure IaaS VM container.
        type: string
      virtualMachineVersion:
        description: Specifies whether the container represents a classic or a Resource Manager-deployed virtual machine.
        type: string
    type: object
    x-ms-discriminator-value: IaaSVMContainer
  IaaSVMProtectableItem:
    allOf:
      - $ref: "#/definitions/WorkloadProtectableItem"
    description: This Azure VM workload-specific (also known as IaaS VM workload-specific) backup item can be backed up.
    properties:
      virtualMachineId:
        description: The fully qualified Resource Manager ID of the virtual machine.
        type: string
    type: object
  IaasVMBackupRequest:
    allOf:
      - $ref: "#/definitions/BackupRequest"
    description: This is an Azure VM (also known as IaaS VM) workload-specific backup request.
    properties:
      recoveryPointExpiryTimeInUTC:
        description: The backup copy will expire after the time specified. The time is in UTC format.
        format: date-time
        type: string
    type: object
    x-ms-discriminator-value: IaasVMBackupRequest
  IaasVMILRRegistrationRequest:
    allOf:
      - $ref: "#/definitions/ILRRequest"
    description: Restore files or folders from a backup copy, or recovery point, of an IaaS (or Azure) VM.
    properties:
      initiatorName:
        description: The iSCSI initiator name.
        type: string
      recoveryPointId:
        description: The ID of the IaaS VM recovery point used to restore the files or folders.
        type: string
      renewExistingRegistration:
        description: Whether to renew the existing registration with the iSCSI server.
        type: boolean
      virtualMachineId:
        description: The fully qualified Resource Manager ID of the VM used to restore the files or folders.
        type: string
    type: object
    x-ms-discriminator-value: IaasVMILRRegistrationRequest
  IaasVMRecoveryPoint:
    allOf:
      - $ref: "#/definitions/RecoveryPoint"
    description: Azure VM (also known as IaaS VM) workload-specific backup copy.
    properties:
      isInstantILRSessionActive:
        description: Answer to the question - Is the session to recover items from this backup copy still active.
        type: boolean
      isSourceVMEncrypted:
        description: Identifies whether the VM was encrypted when the backup copy is created.
        type: boolean
      keyAndSecret:
        $ref: "#/definitions/KeyAndSecretDetails"
        description: Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true.
      recoveryPointAdditionalInfo:
        description: Additional information associated with this backup copy.
        type: string
      recoveryPointTime:
        description: The date and time when the backup copy was created.
        format: date-time
        type: string
      recoveryPointType:
        description: Type of the backup copy.
        type: string
      sourceVMStorageType:
        description: The storage type for the VM whose backup copy was created.
        type: string
    type: object
    x-ms-discriminator-value: IaasVMRecoveryPoint
  IaasVMRestoreRequest:
    allOf:
      - $ref: "#/definitions/RestoreRequest"
    description: IaaS VM workload-specific restore.
    properties:
      affinityGroup:
        description: The affinity group associated with the VM to be restored. Affinity groups are used only for Classic-deployed virtual machines.
        type: string
      createNewCloudService:
        description: Asks the question if a new cloud service should be created while restoring the VM. If the answer is false, the VM is restored to the same cloud service.
        type: boolean
      encryptionDetails:
        $ref: "#/definitions/EncryptionDetails"
        description: If the VM was encrypted at the time of backup, these details are needed.
      recoveryPointId:
        description: The ID of the backup copy to be recovered.
        type: string
      recoveryType:
        description: The type of this recovery.
        enum:
          - Invalid
          - OriginalLocation
          - AlternateLocation
          - RestoreDisks
        type: string
        x-ms-enum:
          modelAsString: false
          name: RecoveryType
      region:
        description: The region where the virtual machine is restored.
        type: string
      sourceResourceId:
        description: The fully qualified Resource Manager ID of the VM being recovered.
        type: string
      storageAccountId:
        description: The fully qualified Resource Manager ID of the storage account where the VM will be restored.
        type: string
      subnetId:
        description: Subnet ID is the identifier for the VM to be restored. For Classic VMs the subnet ID would be {VnetID}/Subnet/{SubnetName}, and for the Resource Manager VMs, the subnet ID would be the Resource Manager resource ID used to represent the subnet.
        type: string
      targetDomainNameId:
        description: The fully qualified Resource Manager ID of the domain name to be associated with the VM being restored. Use the Resource Manager ID to identify the domain, only for Classic-deployed virtual machines.
        type: string
      targetResourceGroupId:
        description: "The Resource Manager ID of the resource group you're creating for this VM and other artifacts.\r

          \    For example: /subscriptions/{subId}/resourcegroups/{rg}"
        type: string
      targetVirtualMachineId:
        description: "The complete Resource Manager ID of the VM that will be created.\r

          \            For example: /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}"
        type: string
      virtualNetworkId:
        description: "This is the virtual network ID of the vnet that is attached to the virtual machine.\r

          \            Your join action permissions are validated during the linked access."
        type: string
    type: object
    x-ms-discriminator-value: IaasVMRestoreRequest
  InstantItemRecoveryTarget:
    description: Target details for the file or 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: The backup management type for the current job.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      endTime:
        description: The end time.
        format: date-time
        type: string
      entityFriendlyName:
        description: The friendly name of the entity on which the current job is executing.
        type: string
      jobType:
        description: This property is the discriminator for deciding between 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: The job status.
        type: string
    type: object
  JobQueryObject:
    description: The filters to list the jobs.
    properties:
      backupManagementType:
        description: Type of backup management for the job.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      endTime:
        description: The time when the job ends. The value is in UTC.
        format: date-time
        type: string
      jobId:
        description: The ID of the job. Each jobID is unique.
        type: string
      operation:
        description: The type of operation.
        enum:
          - Invalid
          - ConfigureBackup
          - Backup
          - Restore
          - DisableBackup
          - DeleteBackupData
        type: string
        x-ms-enum:
          modelAsString: false
          name: JobOperationType
      startTime:
        description: The time when the job starts. The value is in UTC.
        format: date-time
        type: string
      status:
        description: Status of the job.
        enum:
          - Invalid
          - InProgress
          - Completed
          - Failed
          - CompletedWithWarnings
          - Cancelled
          - Cancelling
        type: string
        x-ms-enum:
          modelAsString: false
          name: JobStatus
    type: object
  JobResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Defines the workload-agnostic properties for a job.
    properties:
      properties:
        $ref: "#/definitions/Job"
  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: The Key Encryption Key (KEK) is the encryption key for the Bitlocker Encryption Key (BEK).
    properties:
      keyBackupData:
        description: Key Backup Data refers to Key Encryption Key (KEK) data.
        type: string
      keyUrl:
        description: Key refers to the Key Encryption Key (KEK). The KEK is the Key to unlock the Secret.
        type: string
      keyVaultId:
        description: Key Vault ID identifies where the KEK is stored.
        type: string
    type: object
  KeyAndSecretDetails:
    description: "BEK stands for Bitlocker Encryption Key.\r

      \ KEK stands for Key Encryption Key. KEK is the encryption key used to protect the Secret for the BEK\r

      \  If the VM is encrypted, then the service stores the following details :\r

      \  1. Secret(BEK) - Url + Backup Data + vaultID.\r

      \            2. Key(KEK) - Url + Backup Data + vaultID.\r

      \   It is possible for the BEK and KEK to have different vaultIDs."
    properties:
      bekDetails:
        $ref: "#/definitions/BEKDetails"
        description: BEK is Bitlocker Encryption Key.
      kekDetails:
        $ref: "#/definitions/KEKDetails"
        description: The Key Encryption Key (KEK) is the encryption key for the Bitlocker Encryption Key (BEK).
    type: object
  LongTermRetentionPolicy:
    allOf:
      - $ref: "#/definitions/RetentionPolicy"
    description: Long-term retention policy.
    properties:
      dailySchedule:
        $ref: "#/definitions/DailyRetentionSchedule"
        description: Daily retention schedule of the backup policy.
      monthlySchedule:
        $ref: "#/definitions/MonthlyRetentionSchedule"
        description: Monthly retention schedule of the backup policy.
      weeklySchedule:
        $ref: "#/definitions/WeeklyRetentionSchedule"
        description: Weekly retention schedule of the backup policy.
      yearlySchedule:
        $ref: "#/definitions/YearlyRetentionSchedule"
        description: Yearly retention schedule of the backup policy.
    type: object
    x-ms-discriminator-value: LongTermRetentionPolicy
  LongTermSchedulePolicy:
    allOf:
      - $ref: "#/definitions/SchedulePolicy"
    description: Long-term policy schedule.
    type: object
  MabContainer:
    allOf:
      - $ref: "#/definitions/ProtectionContainer"
    description: The container associated with items backed up using Azure Backup Server.
    properties:
      agentVersion:
        description: The version of the agent used with this container.
        type: string
      canReRegister:
        description: The container can be registered one more time.
        type: boolean
      containerId:
        description: The ID for the container.
        format: int64
        type: integer
      extendedInfo:
        $ref: "#/definitions/MabContainerExtendedInfo"
        description: Additional information for the container.
      protectedItemCount:
        description: The number of backup items in the container.
        format: int64
        type: integer
    type: object
    x-ms-discriminator-value: MABWindowsContainer
  MabContainerExtendedInfo:
    description: Additional information for the container.
    properties:
      backupItemType:
        description: The type of backup items associated with this container.
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - DPMUnknown
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupItemType
      backupItems:
        description: The list of backup items associated with this container.
        items:
          type: string
        type: array
      lastBackupStatus:
        description: The latest backup status of this container.
        type: string
      lastRefreshedAt:
        description: The time stamp when this container was refreshed.
        format: date-time
        type: string
      policyName:
        description: The backup policy associated with this container.
        type: string
    type: object
  MabErrorInfo:
    description: Azure Backup Server workload-specific error information.
    properties:
      errorString:
        description: Localized error string.
        type: string
      recommendations:
        description: List of localized recommendations.
        items:
          type: string
        type: array
    type: object
  MabFileFolderProtectedItem:
    allOf:
      - $ref: "#/definitions/ProtectedItem"
    description: This is a file or folder workload-specific backup item.
    properties:
      computerName:
        description: The name of the computer associated with this backup item.
        type: string
      extendedInfo:
        $ref: "#/definitions/MabFileFolderProtectedItemExtendedInfo"
        description: Additional information for this backup item.
      friendlyName:
        description: The friendly name of this backup item.
        type: string
      isScheduledForDeferredDelete:
        type: boolean
      lastBackupStatus:
        description: The status of last backup operation.
        type: string
      protectionState:
        description: "The states for this property are: Protected, ProtectionStopped, IRPending, or ProtectionError."
        type: string
    type: object
    x-ms-discriminator-value: MabFileFolderProtectedItem
  MabFileFolderProtectedItemExtendedInfo:
    description: Additional information for the backup item.
    properties:
      lastRefreshedAt:
        description: The last day and time the agent synced with the service.
        format: date-time
        type: string
      oldestRecoveryPoint:
        description: The oldest backup copy available.
        format: date-time
        type: string
      recoveryPointCount:
        description: The number of backup copies associated with the backup item.
        format: int32
        type: integer
    type: object
  MabJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: The Azure Backup Server workload-specific job.
    properties:
      actionsInfo:
        description: The state or actions applicable on jobs such as Cancel or Retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: The time required for the 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: The name of server protecting the data store.
        type: string
      mabServerType:
        description: Server type of the Azure Backup Server container.
        enum:
          - Invalid
          - Unknown
          - IaasVMContainer
          - IaasVMServiceContainer
          - DPMContainer
          - DPMVenusContainer
          - MABContainer
          - ClusterResource
          - AzureSqlContainer
          - WindowsServer
          - Windows
        type: string
        x-ms-enum:
          modelAsString: false
          name: MabServerType
      workloadType:
        description: Workload type of backup item.
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - DPMUnknown
        type: string
        x-ms-enum:
          modelAsString: false
          name: WorkloadType
    type: object
    x-ms-discriminator-value: MabJob
  MabJobExtendedInfo:
    description: Additional information for the Azure Backup Server 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: Azure Backup Server 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
  MabProtectionPolicy:
    allOf:
      - $ref: "#/definitions/ProtectionPolicy"
    description: The backup policy for the file or folder container.
    properties:
      retentionPolicy:
        $ref: "#/definitions/RetentionPolicy"
        description: The details specified in the Retention policy.
      schedulePolicy:
        $ref: "#/definitions/SchedulePolicy"
        description: The schedule specified in the backup policy.
    type: object
    x-ms-discriminator-value: MAB
  MonthlyRetentionSchedule:
    description: The monthly retention schedule.
    properties:
      retentionDuration:
        $ref: "#/definitions/RetentionDuration"
        description: Retention duration of the retention policy.
      retentionScheduleDaily:
        $ref: "#/definitions/DailyRetentionFormat"
        description: Daily retention format for the monthly retention policy.
      retentionScheduleFormatType:
        description: Retention schedule format type for monthly retention policy.
        enum:
          - Invalid
          - Daily
          - Weekly
        type: string
        x-ms-enum:
          modelAsString: false
          name: RetentionScheduleFormat
      retentionScheduleWeekly:
        $ref: "#/definitions/WeeklyRetentionFormat"
        description: Weekly retention format for the monthly retention policy.
      retentionTimes:
        description: Retention times of the retention policy.
        items:
          format: date-time
          type: string
        type: array
    type: object
  Object:
    description: Base of all objects.
    type: object
  OperationResultInfo:
    allOf:
      - $ref: "#/definitions/OperationResultInfoBase"
    description: Information about the result of the operation.
    properties:
      jobList:
        description: List of jobs created by this operation.
        items:
          type: string
        type: array
    type: object
    x-ms-discriminator-value: OperationResultInfo
  OperationResultInfoBase:
    description: The base class for operation result information.
    discriminator: objectType
    properties:
      objectType:
        description: This property is the discriminator for deciding between the specific types in the polymorphic chain of types.
        type: string
    type: object
  OperationResultInfoBaseResource:
    allOf:
      - $ref: "#/definitions/OperationWorkerResponse"
    description: Base class for operation result information.
    properties:
      properties:
        $ref: "#/definitions/OperationResultInfoBase"
  OperationStatus:
    description: Operation status.
    properties:
      endTime:
        description: The operation end time. The format of the time is 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: The operation start time. The format of the time is ISO-8601.
        format: date-time
        type: string
      status:
        description: Operation status.
        enum:
          - Invalid
          - InProgress
          - Succeeded
          - Failed
          - Canceled
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperationStatusValues
    type: object
  OperationStatusError:
    description: Error information associated with the operation status call.
    properties:
      code:
        description: The error code for the failed operation.
        type: string
      message:
        description: The error message for the failed operation.
        type: string
    type: object
  OperationStatusExtendedInfo:
    description: The base class for additional information about the operation status.
    discriminator: objectType
    properties:
      objectType:
        description: This property is used as the discriminator for deciding between types, in the polymorphic chain of types.
        type: string
    type: object
  OperationStatusJobExtendedInfo:
    allOf:
      - $ref: "#/definitions/OperationStatusExtendedInfo"
    description: Extended information about the operation status job.
    properties:
      jobId:
        description: ID of the job created for this backup item.
        type: string
    type: object
    x-ms-discriminator-value: OperationStatusJobExtendedInfo
  OperationStatusJobsExtendedInfo:
    allOf:
      - $ref: "#/definitions/OperationStatusExtendedInfo"
    description: Operation status extended info for the job list.
    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 backup item.
        items:
          type: string
        type: array
    type: object
    x-ms-discriminator-value: OperationStatusJobsExtendedInfo
  OperationStatusProvisionILRExtendedInfo:
    allOf:
      - $ref: "#/definitions/OperationStatusExtendedInfo"
    description: Extended information about the Item Level Recovery (ILR) provision action, operation status.
    properties:
      recoveryTarget:
        $ref: "#/definitions/InstantItemRecoveryTarget"
        description: Target details for the file or folder restore.
    type: object
    x-ms-discriminator-value: OperationStatusProvisionILRExtendedInfo
  OperationWorkerResponse:
    description: The base class for operation result responses.
    properties:
      Headers:
        additionalProperties:
          items:
            type: string
          type: array
        description: The HTTP headers associated with this operation.
        type: object
      statusCode:
        description: The HTTP status code of the operation.
        enum:
          - Continue
          - SwitchingProtocols
          - OK
          - Created
          - Accepted
          - NonAuthoritativeInformation
          - NoContent
          - ResetContent
          - PartialContent
          - MultipleChoices
          - Ambiguous
          - MovedPermanently
          - Moved
          - Found
          - Redirect
          - SeeOther
          - RedirectMethod
          - NotModified
          - UseProxy
          - Unused
          - TemporaryRedirect
          - RedirectKeepVerb
          - BadRequest
          - Unauthorized
          - PaymentRequired
          - Forbidden
          - NotFound
          - MethodNotAllowed
          - NotAcceptable
          - ProxyAuthenticationRequired
          - RequestTimeout
          - Conflict
          - Gone
          - LengthRequired
          - PreconditionFailed
          - RequestEntityTooLarge
          - RequestUriTooLong
          - UnsupportedMediaType
          - RequestedRangeNotSatisfiable
          - ExpectationFailed
          - UpgradeRequired
          - InternalServerError
          - NotImplemented
          - BadGateway
          - ServiceUnavailable
          - GatewayTimeout
          - HttpVersionNotSupported
        type: string
        x-ms-enum:
          modelAsString: false
          name: HttpStatusCode
    type: object
  ProtectedItem:
    description: The base class for backup items.
    discriminator: protectedItemType
    properties:
      backupManagementType:
        description: The backup management type associated with the backup item.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      lastRecoveryPoint:
        description: The timestamp when the most recent backup copy was created for this backup item.
        format: date-time
        type: string
      policyId:
        description: The ID of the backup policy associated with this backup item.
        type: string
      protectedItemType:
        description: The backup item type.
        type: string
      sourceResourceId:
        description: The ID of the resource to be backed up.
        type: string
      workloadType:
        description: The workload type for this item.
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - DPMUnknown
        type: string
        x-ms-enum:
          modelAsString: false
          name: DataSourceType
    type: object
  ProtectedItemQueryObject:
    description: Filters the list of backup items.
    properties:
      backupManagementType:
        description: The backup management type associated with an item.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      containerName:
        description: The name of the container.
        type: string
      itemType:
        description: The workload type associated with an item.
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - DPMUnknown
        type: string
        x-ms-enum:
          modelAsString: false
          name: DataSourceType
      policyName:
        description: The name of the backup policy associated with the item.
        type: string
    type: object
  ProtectedItemResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base class for backup items.
    properties:
      properties:
        $ref: "#/definitions/ProtectedItem"
  ProtectedItemResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: The list of ProtectedItem resources.
    properties:
      value:
        description: The list of resources.
        items:
          $ref: "#/definitions/ProtectedItemResource"
        type: array
    type: object
  ProtectionContainer:
    description: The base class for a container with backup items. Containers with specific workloads are derived from this class.
    discriminator: protectableObjectType
    properties:
      backupManagementType:
        description: The backup management type for the container.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
      containerType:
        description: The type assigned to the container. The values to use for each of these properties are:<br/> 1. Compute Azure VM is Microsoft.Compute/virtualMachines<br/> 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines<br/> 3. Windows machines (like Azure Backup Server and DPM) is Windows<br/> 4. Azure SQL instance is AzureSqlContainer.
        readOnly: true
        type: string
      friendlyName:
        description: Friendly name of the container.
        type: string
      healthStatus:
        description: The status of the container's health.
        type: string
      protectableObjectType:
        description: The protectable object type associated with the container.
        type: string
      registrationStatus:
        description: The container's registration status with the Recovery Services vault.
        type: string
    type: object
  ProtectionContainerResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Base class for a container with backup items. Containers with specific workloads are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/ProtectionContainer"
  ProtectionContainerResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: The list of ProtectionContainer resources.
    properties:
      value:
        description: The list of resources.
        items:
          $ref: "#/definitions/ProtectionContainerResource"
        type: array
    type: object
  ProtectionPolicy:
    description: The base class for a backup policy. Workload-specific backup policies are derived from this class.
    discriminator: backupManagementType
    properties:
      backupManagementType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
      protectedItemsCount:
        description: The number of items associated with this policy.
        format: int32
        type: integer
    type: object
  ProtectionPolicyQueryObject:
    description: This object filters the list of backup policies.
    properties:
      backupManagementType:
        description: The backup management type associated with the backup policy.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
        type: string
        x-ms-enum:
          modelAsString: false
          name: BackupManagementType
    type: object
  ProtectionPolicyResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base class for backup policy. Workload-specific backup policies are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/ProtectionPolicy"
  ProtectionPolicyResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: The list of ProtectionPolicy resources.
    properties:
      value:
        description: The list of resources.
        items:
          $ref: "#/definitions/ProtectionPolicyResource"
        type: array
    type: object
  RecoveryPoint:
    description: The base class for backup copies. Workload-specific backup copies are derived from this class.
    discriminator: objectType
    properties:
      objectType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  RecoveryPointResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base class for backup copies. Workload-specific backup copies are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/RecoveryPoint"
  RecoveryPointResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: The list of RecoveryPoint resources.
    properties:
      value:
        description: The list of resources.
        items:
          $ref: "#/definitions/RecoveryPointResource"
        type: array
    type: object
  Resource:
    description: Base for all resources.
    properties:
      eTag:
        description: Optional ETag.
        type: string
      id:
        description: Resource ID represents the complete path to the resource.
        type: string
      location:
        description: Resource location.
        type: string
      name:
        description: Resource name associated with the resource.
        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/...
        type: string
    type: object
    x-ms-azure-resource: true
  ResourceList:
    description: Base for all lists of resources.
    properties:
      nextLink:
        description: The URI to GET the next page of resources. Call ListNext() gets the next page of resources.
        type: string
    type: object
  RestoreRequest:
    description: The base class for restore requests. Workload-specific restore requests are derived from this class.
    discriminator: objectType
    properties:
      objectType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  RestoreRequestResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base class for a restore request. Workload-specific restore requests are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/RestoreRequest"
  RetentionDuration:
    description: Retention duration.
    properties:
      count:
        description: "Count of the duration types. Retention duration is determined by the combining the Count times and durationType. \r

          \   For example, if Count = 3 and durationType = Weeks, then the retention duration is three weeks."
        format: int32
        type: integer
      durationType:
        description: The retention duration type of the retention policy.
        enum:
          - Invalid
          - Days
          - Weeks
          - Months
          - Years
        type: string
        x-ms-enum:
          modelAsString: false
          name: RetentionDurationType
    type: object
  RetentionPolicy:
    description: The base class for retention policy.
    discriminator: retentionPolicyType
    properties:
      retentionPolicyType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  SchedulePolicy:
    description: The base class for backup schedules.
    discriminator: schedulePolicyType
    properties:
      schedulePolicyType:
        description: This property is used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
    type: object
  SimpleRetentionPolicy:
    allOf:
      - $ref: "#/definitions/RetentionPolicy"
    description: Simple policy retention.
    properties:
      retentionDuration:
        $ref: "#/definitions/RetentionDuration"
        description: Retention duration of the protection policy.
    type: object
    x-ms-discriminator-value: SimpleRetentionPolicy
  SimpleSchedulePolicy:
    allOf:
      - $ref: "#/definitions/SchedulePolicy"
    description: Simple policy schedule.
    properties:
      scheduleRunDays:
        description: This list is the days of the week when the schedule runs.
        items:
          enum:
            - Sunday
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
          type: string
          x-ms-enum:
            modelAsString: false
            name: DayOfWeek
        type: array
      scheduleRunFrequency:
        description: Defines the frequency interval (daily or weekly) for the schedule policy.
        enum:
          - Invalid
          - Daily
          - Weekly
        type: string
        x-ms-enum:
          modelAsString: false
          name: ScheduleRunType
      scheduleRunTimes:
        description: List of times, during a day, when the schedule runs.
        items:
          format: date-time
          type: string
        type: array
      scheduleWeeklyFrequency:
        description: The number of times per week the schedule runs.
        format: int32
        type: integer
    type: object
    x-ms-discriminator-value: SimpleSchedulePolicy
  WeeklyRetentionFormat:
    description: Weekly retention format.
    properties:
      daysOfTheWeek:
        description: List of days of the week.
        items:
          enum:
            - Sunday
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
          type: string
          x-ms-enum:
            modelAsString: false
            name: DayOfWeek
        type: array
      weeksOfTheMonth:
        description: List of weeks of the month.
        items:
          enum:
            - First
            - Second
            - Third
            - Fourth
            - Last
          type: string
          x-ms-enum:
            modelAsString: false
            name: WeekOfMonth
        type: array
    type: object
  WeeklyRetentionSchedule:
    description: Weekly retention schedule.
    properties:
      daysOfTheWeek:
        description: List of the days of the week for the weekly retention policy.
        items:
          enum:
            - Sunday
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
          type: string
          x-ms-enum:
            modelAsString: false
            name: DayOfWeek
        type: array
      retentionDuration:
        $ref: "#/definitions/RetentionDuration"
        description: Retention duration of retention policy.
      retentionTimes:
        description: Retention times of the retention policy.
        items:
          format: date-time
          type: string
        type: array
    type: object
  WorkloadProtectableItem:
    description: The base class for backup item. Workload-specific backup items are derived from this class.
    discriminator: protectableItemType
    properties:
      backupManagementType:
        description: The backup management type.
        type: string
      friendlyName:
        description: The friendly name of the backup item.
        type: string
      protectableItemType:
        description: The type of the backup item.
        type: string
      protectionState:
        description: The state of the back up item.
        enum:
          - Invalid
          - NotProtected
          - Protecting
          - Protected
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProtectionStatus
    type: object
  WorkloadProtectableItemResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The base class for the backup item. Workload-specific backup items are derived from this class.
    properties:
      properties:
        $ref: "#/definitions/WorkloadProtectableItem"
  WorkloadProtectableItemResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: The list of WorkloadProtectableItem resources.
    properties:
      value:
        description: List of resources.
        items:
          $ref: "#/definitions/WorkloadProtectableItemResource"
        type: array
    type: object
  YearlyRetentionSchedule:
    description: Yearly retention schedule.
    properties:
      monthsOfYear:
        description: List of the months of year for the yearly retention policy.
        items:
          enum:
            - Invalid
            - January
            - February
            - March
            - April
            - May
            - June
            - July
            - August
            - September
            - October
            - November
            - December
          type: string
          x-ms-enum:
            modelAsString: false
            name: MonthOfYear
        type: array
      retentionDuration:
        $ref: "#/definitions/RetentionDuration"
        description: Retention duration for the retention policy.
      retentionScheduleDaily:
        $ref: "#/definitions/DailyRetentionFormat"
        description: Daily retention format for the yearly retention policy.
      retentionScheduleFormatType:
        description: Retention schedule format for the yearly retention policy.
        enum:
          - Invalid
          - Daily
          - Weekly
        type: string
        x-ms-enum:
          modelAsString: false
          name: RetentionScheduleFormat
      retentionScheduleWeekly:
        $ref: "#/definitions/WeeklyRetentionFormat"
        description: Weekly retention format for the yearly retention policy.
      retentionTimes:
        description: Retention times for the retention policy.
        items:
          format: date-time
          type: string
        type: array
    type: object
