swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  title: RecoveryServicesBackupClient
  version: 2017-07-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2017-07-01/bms.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: recoveryservicesbackup-bms
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account.
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersion:
    description: Client Api Version.
    in: query
    name: api-version
    required: true
    type: string
  AzureRegion:
    description: Azure region to hit Api
    in: path
    name: azureRegion
    required: true
    type: string
    x-ms-parameter-location: method
  ResourceGroupName:
    description: The name of the resource group where the recovery services vault is present.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionId:
    description: The subscription Id.
    in: path
    name: subscriptionId
    required: true
    type: string
  VaultName:
    description: The name of the recovery services vault.
    in: path
    name: vaultName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupPreValidateProtection":
    post:
      operationId: ProtectionIntent_Validate
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/AzureRegion"
        - $ref: "#/parameters/SubscriptionId"
        - description: Enable backup validation request on Virtual Machine
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PreValidateEnableBackupRequest"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/PreValidateEnableBackupResponse"
      summary: "It will validate followings\r

        1. Vault capacity\r

        2. VM is already protected\r

        3. Any VM related configuration passed in properties."
      tags:
        - ProtectionIntent
      x-ms-examples:
        Validate Enable Protection on Azure Vm:
          parameters:
            api-version: 2017-07-01
            azureRegion: southeastasia
            parameters:
              properties: ""
              resourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/arunaupgrade/providers/Microsoft.Compute/VirtualMachines/upgrade1
              resourceType: VM
              vaultId: /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/Vaults/myVault
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                containerName: iaasvmcontainer;iaasvmcontainerv2;arunaupgrade;upgrade1
                errorCode: VirtualMachineAlreadyProtected
                errorMessage: Virtual machine with same name and same resource group is already protected. Please select `Disable' choice above for backup and go to backup item corresponding to this VM in the vault
                protectedItemName: vm;iaasvmcontainerv2;arunaupgrade;upgrade1
                recommendation: Please do not enable protection again.
                status: Failed
  "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupStatus":
    post:
      operationId: BackupStatus_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/AzureRegion"
        - $ref: "#/parameters/SubscriptionId"
        - description: Container Backup Status Request
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BackupStatusRequest"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/BackupStatusResponse"
      summary: Get the container backup status
      tags:
        - BackupStatus
      x-ms-examples:
        Get Azure Virtual Machine Backup Status:
          parameters:
            api-version: 2017-07-01
            azureRegion: southeastasia
            parameters:
              resourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm
              resourceType: VM
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                containerName: iaasvmcontainer;iaasvmcontainerv2;testRg;testVm
                errorCode: Success
                errorMessage: ErrorMessage
                fabricName: Azure
                policyName: myPolicy
                protectedItemName: vm;iaasvmcontainerv2;testRg;testVm
                protectionStatus: Protected
                vaultId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/Vaults/testVault
  "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupValidateFeatures":
    post:
      operationId: FeatureSupport_Validate
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/AzureRegion"
        - $ref: "#/parameters/SubscriptionId"
        - description: Feature support request object
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/FeatureSupportRequest"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AzureVMResourceFeatureSupportResponse"
      summary: It will validate if given feature with resource properties is supported in service
      tags:
        - FeatureSupport
      x-ms-examples:
        Check Azure Vm Backup Feature Support:
          parameters:
            api-version: 2017-07-01
            azureRegion: southeastasia
            parameters:
              featureType: AzureVMResourceBackup
              vmSize: Basic_A0
              vmSku: Premium
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                supportStatus: DefaultOFF
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/backupProtectionIntent/{intentObjectName}":
    delete:
      description: Used to remove intent from an item
      operationId: ProtectionIntent_Delete
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Fabric name associated with the intent.
          in: path
          name: fabricName
          required: true
          type: string
        - description: Intent to be deleted.
          in: path
          name: intentObjectName
          required: true
          type: string
      responses:
        "204":
          description: NoContent
      tags:
        - ProtectionIntent
      x-ms-examples:
        Delete Protection intent from item:
          parameters:
            api-version: 2017-07-01
            fabricName: Azure
            intentObjectName: 249D9B07-D2EF-4202-AA64-65F35418564E
            parameters: {}
            resourceGroupName: myRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: myVault
          responses:
            "204": {}
    get:
      description: "Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of the operation,\r

        call the GetItemOperationResult API."
      operationId: ProtectionIntent_Get
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Fabric name associated with the backed up item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: Backed up item name whose details are to be fetched.
          in: path
          name: intentObjectName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProtectionIntentResource"
      tags:
        - ProtectionIntent
      x-ms-examples:
        Get ProtectionIntent for an item:
          parameters:
            api-version: 2017-07-01
            fabricName: Azure
            intentObjectName: 249D9B07-D2EF-4202-AA64-65F35418564E
            parameters: {}
            resourceGroupName: myRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: myVault
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E
                name: 249D9B07-D2EF-4202-AA64-65F35418564E
                properties:
                  backupManagementType: AzureWorkload
                  itemId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER
                  policyId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy
                type: Microsoft.RecoveryServices/vaults/backupProtectionIntent
    put:
      description: Create Intent for Enabling backup of an item. This is a synchronous operation.
      operationId: ProtectionIntent_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: Fabric name associated with the backup item.
          in: path
          name: fabricName
          required: true
          type: string
        - description: Intent object name.
          in: path
          name: intentObjectName
          required: true
          type: string
        - description: resource backed up item
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ProtectionIntentResource"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProtectionIntentResource"
      tags:
        - ProtectionIntent
      x-ms-examples:
        Create or Update Azure Vm Protection Intent:
          parameters:
            api-version: 2017-07-01
            fabricName: Azure
            intentObjectName: vm;iaasvmcontainerv2;chamsrgtest;chamscandel
            parameters:
              properties:
                policyId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy
                protectionIntentItemType: AzureResourceItem
                sourceResourceId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel
            resourceGroupName: myRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: myVault
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/vm;iaasvmcontainerv2;chamsrgtest;chamscandel
                name: vm;iaasvmcontainerv2;chamsrgtest;chamscandel
                properties:
                  backupManagementType: AzureIaasVM
                  policyId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy
                  protectionState: Protected
                type: Microsoft.RecoveryServices/vaults/backupProtectionIntent
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionIntents":
    get:
      description: Provides a pageable list of all intents that are present within a vault.
      operationId: BackupProtectionIntent_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: OData filter options.
          in: query
          name: $filter
          required: false
          type: string
        - description: skipToken Filter.
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProtectionIntentResourceList"
      tags:
        - BackupProtectionIntent
      x-ms-examples:
        List protection intent with backupManagementType filter:
          parameters:
            api-version: 2017-07-01
            parameters: {}
            resourceGroupName: myRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: myVault
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E
                    name: 249D9B07-D2EF-4202-AA64-65F35418564E
                    properties:
                      backupManagementType: AzureWorkload
                      itemId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER
                      policyId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy
                    type: Microsoft.RecoveryServices/vaults/backupProtectionIntent
      x-ms-odata: "#/definitions/ProtectionIntentQueryObject"
      x-ms-pageable:
        nextLinkName: nextLink
  "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupUsageSummaries":
    get:
      description: Fetches the backup management usage summaries of the vault.
      operationId: BackupUsageSummaries_List
      parameters:
        - $ref: "#/parameters/ApiVersion"
        - $ref: "#/parameters/VaultName"
        - $ref: "#/parameters/ResourceGroupName"
        - $ref: "#/parameters/SubscriptionId"
        - description: OData filter options.
          in: query
          name: $filter
          required: false
          type: string
        - description: skipToken Filter.
          in: query
          name: $skipToken
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/BackupManagementUsageList"
      tags:
        - BackupUsageSummaries
      x-ms-examples:
        Get Protected Containers Usages Summary:
          parameters:
            $filter: type eq 'BackupProtectionContainerCountSummary'
            api-version: 2017-07-01
            resourceGroupName: testRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: testVault
          responses:
            "200":
              body:
                value:
                  - currentValue: 2
                    limit: -1
                    name:
                      localizedValue: Azure Backup Server
                      value: AzureBackupServer
                    unit: Count
                  - currentValue: 3
                    limit: -1
                    name:
                      localizedValue: Azure Backup Agent
                      value: MAB
                    unit: Count
                  - currentValue: 1
                    limit: -1
                    name:
                      localizedValue: SQL in Azure VM
                      value: AzureWorkload
                    unit: Count
        Get Protected Items Usages Summary:
          parameters:
            $filter: type eq 'BackupProtectedItemCountSummary'
            api-version: 2017-07-01
            resourceGroupName: testRG
            subscriptionId: 00000000-0000-0000-0000-000000000000
            vaultName: testVault
          responses:
            "200":
              body:
                value:
                  - currentValue: 7
                    limit: -1
                    name:
                      localizedValue: Azure Virtual Machine
                      value: AzureIaasVM
                    unit: Count
                  - currentValue: 3
                    limit: -1
                    name:
                      localizedValue: Azure Backup Agent
                      value: MAB
                    unit: Count
                  - currentValue: 1
                    limit: -1
                    name:
                      localizedValue: Azure Backup Server
                      value: AzureBackupServer
                    unit: Count
                  - currentValue: 2
                    limit: -1
                    name:
                      localizedValue: Azure Storage (Azure Files)
                      value: AzureStorage
                    unit: Count
                  - currentValue: 2
                    limit: -1
                    name:
                      localizedValue: SQL in Azure VM
                      value: AzureWorkload
                    unit: Count
      x-ms-odata: "#/definitions/BMSBackupSummariesQueryObject"
      x-ms-pageable:
        nextLinkName: null
definitions:
  AzureBackupGoalFeatureSupportRequest:
    allOf:
      - $ref: "#/definitions/FeatureSupportRequest"
    description: Azure backup goal feature specific request.
    type: object
    x-ms-discriminator-value: AzureBackupGoals
  AzureIaaSVMErrorInfo:
    description: Azure IaaS VM workload-specific error information.
    properties:
      errorCode:
        description: Error code.
        format: int32
        readOnly: true
        type: integer
      errorString:
        description: Localized error string.
        readOnly: true
        type: string
      errorTitle:
        description: "Title: Typically, the entity that the error pertains to."
        readOnly: true
        type: string
      recommendations:
        description: List of localized recommendations for above error code.
        items:
          type: string
        readOnly: true
        type: array
    type: object
  AzureIaaSVMJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: Azure IaaS VM workload-specific job object.
    properties:
      actionsInfo:
        description: Gets or sets the state/actions applicable on this job like cancel/retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: Time elapsed during the execution of this job.
        format: duration
        type: string
      errorDetails:
        description: Error details on execution of this job.
        items:
          $ref: "#/definitions/AzureIaaSVMErrorInfo"
        type: array
      extendedInfo:
        $ref: "#/definitions/AzureIaaSVMJobExtendedInfo"
        description: Additional information for this job.
      virtualMachineVersion:
        description: Specifies whether the backup item is a Classic or an Azure Resource Manager VM.
        type: string
    type: object
    x-ms-discriminator-value: AzureIaaSVMJob
  AzureIaaSVMJobExtendedInfo:
    description: Azure IaaS VM workload-specific additional information for job.
    properties:
      dynamicErrorMessage:
        description: Non localized error message on job execution.
        type: string
      estimatedRemainingDuration:
        description: Time remaining for execution of this job.
        type: string
      internalPropertyBag:
        additionalProperties:
          type: string
        description: Job internal properties.
        type: object
      progressPercentage:
        description: Indicates progress of the job. Null if it has not started or completed.
        format: double
        type: number
      propertyBag:
        additionalProperties:
          type: string
        description: Job properties.
        type: object
      tasksList:
        description: List of tasks associated with this job.
        items:
          $ref: "#/definitions/AzureIaaSVMJobTaskDetails"
        type: array
    type: object
  AzureIaaSVMJobTaskDetails:
    description: Azure IaaS VM workload-specific job task details.
    properties:
      duration:
        description: Time elapsed for task.
        format: duration
        type: string
      endTime:
        description: The end time.
        format: date-time
        type: string
      instanceId:
        description: The instanceId.
        type: string
      progressPercentage:
        description: Progress of the task.
        format: double
        type: number
      startTime:
        description: The start time.
        format: date-time
        type: string
      status:
        description: The status.
        type: string
      taskExecutionDetails:
        description: "Details about execution of the task.\r

          eg: number of bytes transferred etc"
        type: string
      taskId:
        description: The task display name.
        type: string
    type: object
  AzureRecoveryServiceVaultProtectionIntent:
    allOf:
      - $ref: "#/definitions/ProtectionIntent"
    description: Azure Recovery Services Vault specific protection intent item.
    type: object
    x-ms-discriminator-value: RecoveryServiceVaultItem
  AzureResourceProtectionIntent:
    allOf:
      - $ref: "#/definitions/ProtectionIntent"
    description: IaaS VM specific backup protection intent item.
    properties:
      friendlyName:
        description: Friendly name of the VM represented by this backup item.
        type: string
    type: object
    x-ms-discriminator-value: AzureResourceItem
  AzureStorageErrorInfo:
    description: Azure storage specific error information
    properties:
      errorCode:
        description: Error code.
        format: int32
        type: integer
      errorString:
        description: Localized error string.
        type: string
      recommendations:
        description: List of localized recommendations for above error code.
        items:
          type: string
        type: array
    type: object
  AzureStorageJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: Azure storage specific job.
    properties:
      actionsInfo:
        description: Gets or sets the state/actions applicable on this job like cancel/retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: Time elapsed during the execution of this job.
        format: duration
        type: string
      errorDetails:
        description: Error details on execution of this job.
        items:
          $ref: "#/definitions/AzureStorageErrorInfo"
        type: array
      extendedInfo:
        $ref: "#/definitions/AzureStorageJobExtendedInfo"
        description: Additional information about the job.
      storageAccountName:
        description: Specifies friendly name of the storage account.
        type: string
      storageAccountVersion:
        description: Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.
        type: string
    type: object
    x-ms-discriminator-value: AzureStorageJob
  AzureStorageJobExtendedInfo:
    description: Azure Storage workload-specific additional information for job.
    properties:
      dynamicErrorMessage:
        description: Non localized error message on job execution.
        type: string
      propertyBag:
        additionalProperties:
          type: string
        description: Job properties.
        type: object
      tasksList:
        description: List of tasks for this job
        items:
          $ref: "#/definitions/AzureStorageJobTaskDetails"
        type: array
    type: object
  AzureStorageJobTaskDetails:
    description: Azure storage workload specific job task details.
    properties:
      status:
        description: The status.
        type: string
      taskId:
        description: The task display name.
        type: string
    type: object
  AzureVMResourceFeatureSupportRequest:
    allOf:
      - $ref: "#/definitions/FeatureSupportRequest"
    description: AzureResource(IaaS VM) Specific feature support request
    properties:
      vmSize:
        description: "Size of the resource: VM size(A/D series etc) in case of IaasVM"
        type: string
      vmSku:
        description: SKUs (Premium/Managed etc) in case of IaasVM
        type: string
    type: object
    x-ms-discriminator-value: AzureVMResourceBackup
  AzureVMResourceFeatureSupportResponse:
    description: Response for feature support requests for Azure IaasVm
    properties:
      supportStatus:
        description: Support status of feature
        enum:
          - Invalid
          - Supported
          - DefaultOFF
          - DefaultON
          - NotSupported
        type: string
        x-ms-enum:
          modelAsString: true
          name: SupportStatus
    type: object
  AzureWorkloadAutoProtectionIntent:
    allOf:
      - $ref: "#/definitions/AzureRecoveryServiceVaultProtectionIntent"
    description: Azure Recovery Services Vault specific protection intent item.
    type: object
    x-ms-discriminator-value: AzureWorkloadAutoProtectionIntent
  AzureWorkloadErrorInfo:
    description: Azure storage specific error information
    properties:
      additionalDetails:
        description: Additional details for above error code.
        type: string
      errorCode:
        description: Error code.
        format: int32
        type: integer
      errorString:
        description: Localized error string.
        type: string
      errorTitle:
        description: "Title: Typically, the entity that the error pertains to."
        type: string
      recommendations:
        description: List of localized recommendations for above error code.
        items:
          type: string
        type: array
    type: object
  AzureWorkloadJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: Azure storage specific job.
    properties:
      actionsInfo:
        description: Gets or sets the state/actions applicable on this job like cancel/retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: Time elapsed during the execution of this job.
        format: duration
        type: string
      errorDetails:
        description: Error details on execution of this job.
        items:
          $ref: "#/definitions/AzureWorkloadErrorInfo"
        type: array
      extendedInfo:
        $ref: "#/definitions/AzureWorkloadJobExtendedInfo"
        description: Additional information about the job.
      workloadType:
        description: Workload type of the job
        type: string
    type: object
    x-ms-discriminator-value: AzureWorkloadJob
  AzureWorkloadJobExtendedInfo:
    description: Azure VM workload-specific additional information for job.
    properties:
      dynamicErrorMessage:
        description: Non localized error message on job execution.
        type: string
      propertyBag:
        additionalProperties:
          type: string
        description: Job properties.
        type: object
      tasksList:
        description: List of tasks for this job
        items:
          $ref: "#/definitions/AzureWorkloadJobTaskDetails"
        type: array
    type: object
  AzureWorkloadJobTaskDetails:
    description: Azure VM workload specific job task details.
    properties:
      status:
        description: The status.
        type: string
      taskId:
        description: The task display name.
        type: string
    type: object
  AzureWorkloadSQLAutoProtectionIntent:
    allOf:
      - $ref: "#/definitions/AzureWorkloadAutoProtectionIntent"
    description: Azure Workload SQL Auto Protection intent item.
    properties:
      workloadItemType:
        description: Workload item type of the item for which intent is to be set
        enum:
          - Invalid
          - SQLInstance
          - SQLDataBase
          - SAPHanaSystem
          - SAPHanaDatabase
          - SAPAseSystem
          - SAPAseDatabase
        type: string
        x-ms-enum:
          modelAsString: true
          name: WorkloadItemType
    type: object
    x-ms-discriminator-value: AzureWorkloadSQLAutoProtectionIntent
  BMSBackupSummariesQueryObject:
    description: Query parameters to fetch backup summaries.
    properties:
      type:
        description: Backup management type for this container.
        enum:
          - Invalid
          - BackupProtectedItemCountSummary
          - BackupProtectionContainerCountSummary
        type: string
        x-ms-enum:
          modelAsString: true
          name: Type
    type: object
  BackupManagementUsage:
    description: Backup management usages of a vault.
    properties:
      currentValue:
        description: Current value of usage.
        format: int64
        type: integer
      limit:
        description: Limit of usage.
        format: int64
        type: integer
      name:
        $ref: "#/definitions/NameInfo"
        description: Name of usage.
      nextResetTime:
        description: Next reset time of usage.
        format: date-time
        type: string
      quotaPeriod:
        description: Quota period of usage.
        type: string
      unit:
        description: Unit of the usage.
        enum:
          - Count
          - Bytes
          - Seconds
          - Percent
          - CountPerSecond
          - BytesPerSecond
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagesUnit
    type: object
  BackupManagementUsageList:
    description: Backup management usage for vault.
    properties:
      value:
        description: The list of backup management usages for the given vault.
        items:
          $ref: "#/definitions/BackupManagementUsage"
        type: array
    type: object
  BackupStatusRequest:
    description: BackupStatus request.
    properties:
      poLogicalName:
        description: Protectable Item Logical Name
        type: string
      resourceId:
        description: Entire ARM resource id of the resource
        type: string
      resourceType:
        description: Container Type - VM, SQLPaaS, DPM, AzureFileShare...
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - VMwareVM
          - SystemState
          - Client
          - GenericDataSource
          - SQLDataBase
          - AzureFileShare
          - SAPHanaDatabase
          - SAPAseDatabase
        type: string
        x-ms-enum:
          modelAsString: true
          name: DataSourceType
    type: object
  BackupStatusResponse:
    description: BackupStatus response.
    properties:
      containerName:
        description: Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname.
        type: string
      errorCode:
        description: ErrorCode in case of intent failed
        type: string
      errorMessage:
        description: ErrorMessage in case of intent failed.
        type: string
      fabricName:
        description: Specifies the fabric name - Azure or AD
        enum:
          - Invalid
          - Azure
        type: string
        x-ms-enum:
          modelAsString: true
          name: FabricName
      policyName:
        description: Specifies the policy name which is used for protection
        type: string
      protectedItemName:
        description: Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname.
        type: string
      protectionStatus:
        description: Specifies whether the container is registered or not
        enum:
          - Invalid
          - NotProtected
          - Protecting
          - Protected
          - ProtectionFailed
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProtectionStatus
      registrationStatus:
        description: Container registration status
        type: string
      vaultId:
        description: Specifies the arm resource id of the vault
        type: string
    type: object
  DpmErrorInfo:
    description: DPM workload-specific error information.
    properties:
      errorString:
        description: Localized error string.
        type: string
      recommendations:
        description: List of localized recommendations for above error code.
        items:
          type: string
        type: array
    type: object
  DpmJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: DPM workload-specific job object.
    properties:
      actionsInfo:
        description: The state/actions applicable on this job like cancel/retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      containerName:
        description: Name of cluster/server protecting current backup item, if any.
        type: string
      containerType:
        description: Type of container.
        type: string
      dpmServerName:
        description: DPM server name managing the backup item or backup job.
        type: string
      duration:
        description: Time elapsed for job.
        format: duration
        type: string
      errorDetails:
        description: The errors.
        items:
          $ref: "#/definitions/DpmErrorInfo"
        type: array
      extendedInfo:
        $ref: "#/definitions/DpmJobExtendedInfo"
        description: Additional information for this job.
      workloadType:
        description: Type of backup item.
        type: string
    type: object
    x-ms-discriminator-value: DpmJob
  DpmJobExtendedInfo:
    description: Additional information on the DPM workload-specific job.
    properties:
      dynamicErrorMessage:
        description: Non localized error message on job execution.
        type: string
      propertyBag:
        additionalProperties:
          type: string
        description: The job properties.
        type: object
      tasksList:
        description: List of tasks associated with this job.
        items:
          $ref: "#/definitions/DpmJobTaskDetails"
        type: array
    type: object
  DpmJobTaskDetails:
    description: DPM workload-specific job task details.
    properties:
      duration:
        description: Time elapsed for task.
        format: duration
        type: string
      endTime:
        description: The end time.
        format: date-time
        type: string
      startTime:
        description: The start time.
        format: date-time
        type: string
      status:
        description: The status.
        type: string
      taskId:
        description: The task display name.
        type: string
    type: object
  FeatureSupportRequest:
    description: Base class for feature request
    discriminator: featureType
    properties:
      featureType:
        description: backup support feature type.
        type: string
    type: object
  InstantRPAdditionalDetails:
    properties:
      azureBackupRGNamePrefix:
        type: string
      azureBackupRGNameSuffix:
        type: string
    type: object
  Job:
    description: Defines workload agnostic properties for a job.
    discriminator: jobType
    properties:
      activityId:
        description: ActivityId of job.
        type: string
      backupManagementType:
        description: Backup management type to execute the current job.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
          - AzureStorage
          - AzureWorkload
          - DefaultBackup
        type: string
        x-ms-enum:
          modelAsString: true
          name: BackupManagementType
      endTime:
        description: The end time.
        format: date-time
        type: string
      entityFriendlyName:
        description: Friendly name of the entity on which the current job is executing.
        type: string
      jobType:
        description: This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.
        type: string
      operation:
        description: The operation name.
        type: string
      startTime:
        description: The start time.
        format: date-time
        type: string
      status:
        description: Job status.
        type: string
    required:
      - jobType
    type: object
  JobResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Defines workload agnostic properties for a job.
    properties:
      properties:
        $ref: "#/definitions/Job"
        description: JobResource properties
  MabErrorInfo:
    description: MAB workload-specific error information.
    properties:
      errorString:
        description: Localized error string.
        readOnly: true
        type: string
      recommendations:
        description: List of localized recommendations.
        items:
          type: string
        readOnly: true
        type: array
    type: object
  MabJob:
    allOf:
      - $ref: "#/definitions/Job"
    description: MAB workload-specific job.
    properties:
      actionsInfo:
        description: The state/actions applicable on jobs like cancel/retry.
        items:
          enum:
            - Invalid
            - Cancellable
            - Retriable
          type: string
          x-ms-enum:
            modelAsString: false
            name: JobSupportedAction
        type: array
      duration:
        description: Time taken by job to run.
        format: duration
        type: string
      errorDetails:
        description: The errors.
        items:
          $ref: "#/definitions/MabErrorInfo"
        type: array
      extendedInfo:
        $ref: "#/definitions/MabJobExtendedInfo"
        description: Additional information on the job.
      mabServerName:
        description: Name of server protecting the DS.
        type: string
      mabServerType:
        description: Server type of MAB container.
        enum:
          - Invalid
          - Unknown
          - IaasVMContainer
          - IaasVMServiceContainer
          - DPMContainer
          - AzureBackupServerContainer
          - MABContainer
          - Cluster
          - AzureSqlContainer
          - Windows
          - VCenter
          - VMAppContainer
          - SQLAGWorkLoadContainer
          - StorageContainer
          - GenericContainer
        type: string
        x-ms-enum:
          modelAsString: true
          name: MabServerType
      workloadType:
        description: Workload type of backup item.
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - VMwareVM
          - SystemState
          - Client
          - GenericDataSource
          - SQLDataBase
          - AzureFileShare
          - SAPHanaDatabase
          - SAPAseDatabase
        type: string
        x-ms-enum:
          modelAsString: true
          name: WorkloadType
    type: object
    x-ms-discriminator-value: MabJob
  MabJobExtendedInfo:
    description: Additional information for the MAB workload-specific job.
    properties:
      dynamicErrorMessage:
        description: Non localized error message specific to this job.
        type: string
      propertyBag:
        additionalProperties:
          type: string
        description: The job properties.
        type: object
      tasksList:
        description: List of tasks for this job.
        items:
          $ref: "#/definitions/MabJobTaskDetails"
        type: array
    type: object
  MabJobTaskDetails:
    description: MAB workload-specific job task details.
    properties:
      duration:
        description: Time elapsed for task.
        format: duration
        type: string
      endTime:
        description: The end time.
        format: date-time
        type: string
      startTime:
        description: The start time.
        format: date-time
        type: string
      status:
        description: The status.
        type: string
      taskId:
        description: The task display name.
        type: string
    type: object
  NameInfo:
    description: The name of usage.
    properties:
      localizedValue:
        description: Localized value of usage.
        type: string
      value:
        description: Value of usage.
        type: string
    type: object
  PreValidateEnableBackupRequest:
    description: "Contract to validate if backup can be enabled on the given resource in a given vault and given configuration.\r

      It will validate followings\r

      1. Vault capacity\r

      2. VM is already protected\r

      3. Any VM related configuration passed in properties."
    properties:
      properties:
        description: Configuration of VM if any needs to be validated like OS type etc
        type: string
      resourceId:
        description: ARM Virtual Machine Id
        type: string
      resourceType:
        description: ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc
        enum:
          - Invalid
          - VM
          - FileFolder
          - AzureSqlDb
          - SQLDB
          - Exchange
          - Sharepoint
          - VMwareVM
          - SystemState
          - Client
          - GenericDataSource
          - SQLDataBase
          - AzureFileShare
          - SAPHanaDatabase
          - SAPAseDatabase
        type: string
        x-ms-enum:
          modelAsString: true
          name: DataSourceType
      vaultId:
        description: ARM id of the Recovery Services Vault
        type: string
    type: object
  PreValidateEnableBackupResponse:
    description: Response contract for enable backup validation request
    properties:
      containerName:
        description: "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required\r

          for portal"
        type: string
      errorCode:
        description: Response error code
        type: string
      errorMessage:
        description: Response error message
        type: string
      protectedItemName:
        description: Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal
        type: string
      recommendation:
        description: Recommended action for user
        type: string
      status:
        description: Validation Status
        enum:
          - Invalid
          - Succeeded
          - Failed
        type: string
        x-ms-enum:
          modelAsString: true
          name: ValidationStatus
    type: object
  ProtectionIntent:
    description: Base class for backup ProtectionIntent.
    discriminator: protectionIntentItemType
    properties:
      backupManagementType:
        description: Type of backup management for the backed up item.
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
          - AzureStorage
          - AzureWorkload
          - DefaultBackup
        type: string
        x-ms-enum:
          modelAsString: true
          name: BackupManagementType
      itemId:
        description: ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId
        type: string
      policyId:
        description: ID of the backup policy with which this item is backed up.
        type: string
      protectionIntentItemType:
        description: backup protectionIntent type.
        type: string
      protectionState:
        description: Backup state of this backup item.
        enum:
          - Invalid
          - NotProtected
          - Protecting
          - Protected
          - ProtectionFailed
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProtectionStatus
      sourceResourceId:
        description: ARM ID of the resource to be backed up.
        type: string
    type: object
  ProtectionIntentQueryObject:
    description: Filters to list protection intent.
    properties:
      backupManagementType:
        description: Backup management type for the backed up item
        enum:
          - Invalid
          - AzureIaasVM
          - MAB
          - DPM
          - AzureBackupServer
          - AzureSql
          - AzureStorage
          - AzureWorkload
          - DefaultBackup
        type: string
        x-ms-enum:
          modelAsString: true
          name: BackupManagementType
      itemName:
        description: Item name of the intent
        type: string
      itemType:
        description: Type of workload this item represents
        enum:
          - Invalid
          - SQLInstance
          - SQLAvailabilityGroupContainer
        type: string
        x-ms-enum:
          modelAsString: true
          name: IntentItemType
      parentName:
        description: Parent name of the intent
        type: string
    type: object
  ProtectionIntentResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Base class for backup ProtectionIntent.
    properties:
      properties:
        $ref: "#/definitions/ProtectionIntent"
        description: ProtectionIntentResource properties
  ProtectionIntentResourceList:
    allOf:
      - $ref: "#/definitions/ResourceList"
    description: List of ProtectionIntent resources
    properties:
      value:
        description: List of resources.
        items:
          $ref: "#/definitions/ProtectionIntentResource"
        type: array
    type: object
  Resource:
    description: ARM Resource.
    properties:
      eTag:
        description: Optional ETag.
        type: string
      id:
        description: Resource Id represents the complete path to the resource.
        readOnly: true
        type: string
      location:
        description: Resource location.
        type: string
      name:
        description: Resource name associated with the resource.
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        type: object
      type:
        description: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  ResourceList:
    description: Base for all lists of resources.
    properties:
      nextLink:
        description: The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
        type: string
    type: object
