openapi: 3.1.0
info:
  description: Backup and Recovery API
  license:
    name: HPE End User License Agreement
    url: https://www.hpe.com/us/en/software/licensing.html
  title: Backup and Recovery API
  version: 1.1.0
servers:
  - url: https://us-west.api.greenlake.hpe.com
  - url: https://eu-west.api.greenlake.hpe.com
  - url: https://eu-central.api.greenlake.hpe.com
  - url: https://ap-northeast.api.greenlake.hpe.com
security:
  - bearer: []
tags:
  - description: Protection Store Gateway APIs
    name: Protection Store Gateway
  - description: StoreOnce APIs
    name: StoreOnce
  - description: >-
      The Application Hosts API allows the registration and management of
      Application Hosts.
    name: application-hosts
  - description: APIs for managing Data Orchestrator operations.
    name: data-orchestrators
  - description: The datastores API allows the data management operations on datastores.
    name: datastores
  - description: >-
      The MSSQL database backups API allows the creation and management of MSSQL
      database backups.
    name: mssql-database-backups
  - description: >-
      The MSSQL database Protection Groups API allows management of MSSQL
      database Protection Groups.
    name: mssql-database-protection-groups
  - description: >-
      The MSSQL database snapshots API allows the creation and management of
      MSSQL database snapshots.
    name: mssql-database-snapshots
  - description: The MSSQL Databases API allows management of MSSQL databases.
    name: mssql-databases
  - description: The MSSQL Instances API allows management of MSSQL instances.
    name: mssql-instances
  - description: >-
      The Protection Jobs API allows the creation and management of Protection
      Jobs.
    name: protection-jobs
  - description: >-
      The Protection Policies API allows the creation and management of
      Protection Policies.
    name: protection-policies
  - description: >-
      This API allows the creation and management of Protection Stores that
      represents the backup target for the copies.
    name: protection-stores
  - description: >-
      The virtual machine Protection Groups API allows the creation and
      management of  virtual machine Protection Groups (Group of Virtual
      Machines, Datastores or Folder for Protection).
    name: virtual-machine-protection-groups
  - description: >-
      The virtual machines API allows the data management operations on virtual
      machines.
    name: virtual-machines
  - description: >-
      The Volume Protection Groups API allows the creation and management of
      Volume Protection Groups (Group of Volumes for Protection).
    name: volume-protection-groups
paths:
  /backup-recovery/v1beta1/application-hosts:
    get:
      description: List all the registered Application Hosts.
      operationId: ApplicationHostList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET /backup-recovery/v1beta1/application-hosts?filter="osInfo/name
            eq Windows+Server+2012"

            * GET /backup-recovery/v1beta1/application-hosts?filter="osInfo/name
            eq Windows+Server+2012 and status eq Error"



            Filters are supported on the following attributes:

            * osInfo/name

            * state

            * status

            * osInfo/releaseVersion

            * createdAt

            * name

            * dataOrchestratorInfo/id
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationHostList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all registered Application Hosts.
      tags:
        - application-hosts
    post:
      description: Register the Application Host for data management.
      operationId: ApplicationHostCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationHostCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Register a new Application Host.
      tags:
        - application-hosts
  /backup-recovery/v1beta1/application-hosts/{host-id}:
    delete:
      description: Unregister an Application Host.
      operationId: UnregisterApplicationHost
      parameters:
        - in: path
          name: host-id
          required: true
          schema:
            $ref: '#/components/schemas/ApplicationHost/properties/id'
        - description: >-
            Force option to forcefully remove Application Host during unregister
            operation when underlying resources cannot be removed.
          in: query
          name: force
          required: false
          schema:
            type: boolean
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Unregister an Application Host.
      tags:
        - application-hosts
    get:
      description: >-
        Get detailed information for a registered Application Host qualified by
        host-id.
      operationId: ApplicationHost
      parameters:
        - in: path
          name: host-id
          required: true
          schema:
            $ref: '#/components/schemas/ApplicationHost/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationHost'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get an Application Host resource identified by {host-id}.
      tags:
        - application-hosts
    patch:
      description: Update attributes for an Application Host.
      operationId: ApplicationHostUpdate
      parameters:
        - in: path
          name: host-id
          required: true
          schema:
            $ref: '#/components/schemas/ApplicationHost/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ApplicationHostUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update an Application Host.
      tags:
        - application-hosts
  /backup-recovery/v1beta1/application-hosts/{host-id}/refresh:
    post:
      description: Refresh an Application Host and its sub-resources.
      operationId: RefreshApplicationHost
      parameters:
        - in: path
          name: host-id
          required: true
          schema:
            $ref: '#/components/schemas/ApplicationHost/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Refresh an Application Host and its sub-resources.
      tags:
        - application-hosts
  /backup-recovery/v1beta1/data-orchestrators:
    get:
      description: >
        This API returns a list of all the Data Orchestrators that are
        registered with the DSCC 

        customer account.
      operationId: DataOrchestratorList
      parameters:
        - description: >
            When listing a large number of Data Orchestrators, the offset query
            parameter defines

            the index of the first Data Orchestrator to include in the response.


            Example:

            * GET /backup-recovery/v1beta1/data-orchestrators?offset=10
          in: query
          name: offset
          schema:
            type: integer
        - description: >
            The limit query parameter defines the maximum number of Data
            Orchestrators to included

            in the response.


            Example:

            * GET /backup-recovery/v1beta1/data-orchestrators?limit=10
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The sort query is a comma separated list of properties defining the
            sort order.

            The direction indicator may only be either “asc” (ascending) or
            “desc” (descending). 

            If no direction indicator is specified, the default order is
            ascending.


            Sorting is supported on the following properties:

            * name

            * generation

            * connectionState

            * serialNumber

            * softwareVersion

            * status

            * state

            * stateReason

            * id

            * platform

            * vCpu

            * totalMemoryInGiB

            * poweredOnAt

            * createdAt

            * interfaces/network/defaultGateway

            * dateTime/methodDateTimeSet

            * dateTime/timezone

            * ntp/status

            * ntp/state

            * ntp/stateReason


            Example:

            * GET
            /backup-recovery/v1beta1/data-orchestrators?sort=name,generation
            desc
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to define a subset of properties
            to be included in the response.

            Each property to be included should be passed in a comma-separated
            list.


            Example:

            * GET
            /backup-recovery/v1beta1/data-orchestrators?select=id,name,serialNumber
          in: query
          name: select
          schema:
            type: string
        - description: >
            The filter query parameter is used to filter the list of on-prem
            engines returned in the response.

            The returned set of resources will match the criteria in the filter
            query parameter.


            A comparision compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET
            /backup-recovery/v1beta1/data-orchestrators?filter=connectionState
            eq 'CONNECTED'

            * GET
            /backup-recovery/v1beta1/data-orchestrators?filter=connectionState
            eq 'CONNECTED' and status eq 'ERROR'


            Filtering is supported with the following attributes:

            * id

            * name

            * interfaces/network/hostname

            * serialNumber

            * status

            * state

            * connectionState 

            * softwareVersion
          in: query
          name: filter
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataOrchestratorList'
          description: List of Data Orchestrators registered with DSCC
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Get a list of the Data Orchestrators that are registered with DSCC
      tags:
        - data-orchestrators
    post:
      description: >
        This API is used to register a new Data Orchestrator with the DSCC
        customer account.


        To register the Data Orchestrator, the unique Activation Code that 

        is displayed on the Data Orchestrator must be provided.
      operationId: DataOrchestratorCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createDataOrchestrator'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataOrchestratorDetails'
          description: Created
          headers:
            Location:
              description: >-
                Contains the URI of the Data Orchestrator that has been
                registered.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Register a new Data Orchestrator with DSCC
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}:
    delete:
      description: >
        This API will unregister the Data Orchestrator from the DSCC customer
        account.


        The unregistered Data Orchestrator will disable any scheduled jobs
        orchestrated by

        the Data Orchestrator.
      operationId: DataOrchestratorDelete
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: >-
            Force option to forcefully unregister the Data Orchestrator when
            dependent resources cannot first be removed.
          in: query
          name: force
          required: false
          schema:
            type: boolean
      responses:
        '204':
          description: Unregistered the Data Orchestrator Successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Data Orchestrator with the given id does not exist
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Method not supported
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Unregister the Data Orchestrator from DSCC
      tags:
        - data-orchestrators
    get:
      description: |
        This API returns details of the Data Orchestrator specified by id.
      operationId: DataOrchestratorListById
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: >
            The select query parameter is used to define a subset of properties
            to be included in the response.

            Each property to be included should be passed in a comma-separated
            list.


            Example:

            * GET
            /backup-recovery/v1beta1/data-orchestrators/4cf33ce9-3d8a-4c79-8dbb-3a145804bf7d?select=id,name,interfaces/network/hostname
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataOrchestratorDetails'
          description: Details of a Data Orchestrator
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Data Orchestrator not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Get details of a Data Orchestrator registered with DSCC
      tags:
        - data-orchestrators
    patch:
      description: >
        This API allows the configuration of the Data Orchestrator to be
        modified.


        This configuration options include:

        * Network

        * Date & Time
      operationId: DataOrchestratorModify
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/DataOrchestratorUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Modify the configuration of a Data Orchestrator
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/generate-support-bundle:
    post:
      description: Generate a new support-bundle.
      operationId: SupportBundleCreate
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/supportBundleCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Generate a new support-bundle
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/generate-totp:
    post:
      description: >-
        Generate a time-based one time passcode (TOTP) for Data Orchestrator
        access.
      operationId: OTPCreate
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TOTPResponse'
          description: TOTP Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: >-
        Generate a time-based one time passcode (TOTP) for Data Orchestrator
        access
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/recover:
    post:
      description: Recover a Data Orchestrator identified by id.
      operationId: DataOrchestratorRecover
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                sid:
                  description: activation uuid
                  format: uuid
                  type: string
              required:
                - sid
              type: object
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Recover a Data Orchestrator identified by id
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/restart-guest-os:
    post:
      description: |
        This API will stop and restart the Data Orchestrator.
      operationId: DataOrchestratorReboot
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataOrchestratorPowerUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Restart a Data Orchestrator
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/set-remote-support:
    post:
      description: Modify InfoSight Configuration for a Data Orchestrator.
      operationId: DataOrchestratorInfosightConfigModify
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataOrchestratorInfosightUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Modify InfoSight Configuration for a Data Orchestrator
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/data-orchestrators/{id}/shutdown-guest-os:
    post:
      description: >
        This API will power off the Data Orchestrator to allow for maintenance
        of the hypervisor.
      operationId: DataOrchestratorShutdown
      parameters:
        - description: id of the Data Orchestrator.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataOrchestratorPowerUpdate'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: IInternal server error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Shutdown a Data Orchestrator
      tags:
        - data-orchestrators
  /backup-recovery/v1beta1/datastores/{id}/backups:
    get:
      description: Get information about all datastore backups.
      operationId: DatastoreBackupList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - description: >-
            The number of items to omit from the beginning of the result set.
            The offset and limit query parameters are used in conjunction with
            pagination. For example "offset=30&limit=10" indicates the fourth
            page of 10 items.
          in: query
          name: offset
          schema:
            type: integer
        - description: >-
            The maximum number of items to include in the response. The offset
            and limit query parameters are used in conjunction with pagination.
            For example "offset=30&limit=10" indicates the fourth page of 10
            items.
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            An expression that enables you to filter the results.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).


            Filters are supported on the following attributes:

            * backupType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * sourceCopyInfo/id

            * pointInTime

            * verified

            * storageSystemInfo/id

            * storageSystemInfo/name

            * protectionStoreInfo/id

            * protectionStoreInfo/name

            * dataOrchestratorInfo/id

            * expiresAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >-
            Comma separated list of properties defining the sort order. Each
            item in the “sort” query parameter is a property name optionally
            followed by a direction indicator. The direction indicator may only
            be either “asc” (ascending) or “desc” (descending). If no direction
            indicator is specified, the default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client

            formatted as an exclusive comma separated list of properties. If not
            specified, all properties are returned.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatastoreBackupList'
          description: Datastore backup list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all datastore backups.
      tags:
        - datastore-backups
  /backup-recovery/v1beta1/datastores/{id}/backups/{backup-id}:
    delete:
      description: |
        Remove a datastore backup.
      operationId: DeleteDatastoreBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreBackup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Delete a datastore backup.
      tags:
        - datastore-backups
    get:
      description: |
        Get detailed information for a datastore backup qualified by backup-id.
      operationId: DatastoreBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreBackup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatastoreBackup'
          description: Detailed information of a datastore backup.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a datastore backup.
      tags:
        - datastore-backups
    patch:
      description: |
        Update attributes for a datastore backup.
      operationId: DatastoreBackupUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreBackup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/DatastoreBackupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Update a datastore backup.
      tags:
        - datastore-backups
  /backup-recovery/v1beta1/datastores/{id}/restore:
    post:
      description: Restores a datastore from selected snapshot or backup.
      operationId: DatastoreRestoreFromCopy
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatastoreRestoreFromCopy'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Restore a datastore from snapshot or a backup.
      tags:
        - datastores
  /backup-recovery/v1beta1/datastores/{id}/snapshots:
    get:
      description: |
        Get information about all datastore snapshots.
      operationId: DatastoreSnapshotList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - description: >-
            The number of items to omit from the beginning of the result set.
            The offset and limit query parameters are used in conjunction with
            pagination. For example "offset=30&limit=10" indicates the fourth
            page of 10 items.
          in: query
          name: offset
          schema:
            type: integer
        - description: >-
            The maximum number of items to include in the response. The offset
            and limit query parameters are used in conjunction with pagination.
            For example "offset=30&limit=10" indicates the fourth page of 10
            items.
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            An expression that enables you to filter the results.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).


            Filters are supported on the following attributes:

            * snapshotType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemsInfo/id

            * storageSystemsInfo/storageSystemType

            * storageSystemsInfo/name

            * consistency

            * pointInTime

            * dataOrchestratorInfo/id

            * expiresAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >-
            Comma separated list of properties defining the sort order. Each
            item in the “sort” query parameter is a property name optionally
            followed by a direction indicator. The direction indicator may only
            be either “asc” (ascending) or “desc” (descending). If no direction
            indicator is specified, the default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client

            formatted as an exclusive comma separated list of properties. If not
            specified, all properties are returned.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatastoreSnapshotList'
          description: datastore snapshots list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all datastore snapshots.
      tags:
        - datastore-snapshots
  /backup-recovery/v1beta1/datastores/{id}/snapshots/{snapshot-id}:
    delete:
      description: |
        Delete a datastore snapshot.
      operationId: DeleteDatastoreSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreSnapshot/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Delete a datastore snapshot.
      tags:
        - datastore-snapshots
    get:
      description: >
        Get detailed information for a datastore snapshot qualified by
        snapshot-id.
      operationId: DatastoreSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreSnapshot/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatastoreSnapshot'
          description: Detailed information of a datstore snapshot.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a datastore snapshot.
      tags:
        - datastore-snapshots
    patch:
      description: |
        Update attributes for a datastore snapshot.
      operationId: DatastoreSnapshotUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/DatastoreSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/DatastoreSnapshotUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Update a datastore snapshot.
      tags:
        - datastore-snapshots
  /backup-recovery/v1beta1/mssql-database-protection-groups:
    get:
      description: List all the MSSQL database protection groups.
      operationId: MSSQLDatabaseProtectionGroupList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET
            /backup-recovery/v1beta1/mssql-database-protection-groups?filter="name
            eq my-mssql-pg1"


            Filters are supported on the following attributes:

            * createdAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseProtectionGroupList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all MSSQL database protection groups.
      tags:
        - mssql-database-protection-groups
    post:
      description: Create an MSSQL Database Protection Group for data management.
      operationId: MSSQLDatabaseProtectionGroupCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MSSQLDatabaseProtectionGroupCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new MSSQL Database Protection Group.
      tags:
        - mssql-database-protection-groups
  /backup-recovery/v1beta1/mssql-database-protection-groups/{group-id}:
    delete:
      description: Remove an MSSQL database protection group.
      operationId: RemoveMSSQLDatabaseProtectionGroup
      parameters:
        - in: path
          name: group-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Remove an MSSQL database protection group.
      tags:
        - mssql-database-protection-groups
    get:
      description: >-
        Get detailed information for an MSSQL database protection group
        qualified by group-id.
      operationId: MSSQLDatabaseProtectionGroup
      parameters:
        - in: path
          name: group-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: >-
        Get an MSSQL database protection group resource identified by
        {group-id}.
      tags:
        - mssql-database-protection-groups
    patch:
      description: Update attributes for an MSSQL database protection group.
      operationId: MSSQLDatabaseProtectionGroupUpdate
      parameters:
        - in: path
          name: group-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/MSSQLDatabaseProtectionGroupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update an MSSQL database protection group.
      tags:
        - mssql-database-protection-groups
  /backup-recovery/v1beta1/mssql-databases:
    get:
      description: List all the discovered MSSQL databases.
      operationId: MSSQLDatabaseList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET /backup-recovery/v1beta1/mssql-databases?filter="name eq
            billing-db-1"

            * GET
            /backup-recovery/v1beta1/mssql-databases?filter="applicationHostInfo/name
            eq myhost1 and status eq Error"



            Filters are supported on the following attributes:

            * state

            * status

            * applicationHostInfo/id

            * applicationHostInfo/name

            * mssqlDatabaseProtectionGroupInfo/id

            * mssqlDatabaseProtectionGroupInfo/name

            * virtualizationInfo/hypervisorManagerInfo/id

            * createdAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all discovered MSSQL databases.
      tags:
        - mssql-databases
  /backup-recovery/v1beta1/mssql-databases/{db-id}:
    get:
      description: >-
        Get detailed information for a discovered MSSQL database qualified by
        db-id.
      operationId: MSSQLDatabase
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabase'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get an MSSQL database resource identified by {db-id}.
      tags:
        - mssql-databases
  /backup-recovery/v1beta1/mssql-databases/{db-id}/backups:
    get:
      description: |
        Get information about all MSSQL database backups.
      operationId: MSSQLDatabaseBackupList
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparision compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET
            /backup-recovery/v1beta1/mssql-databases/{db-id}/backups?filter="backupType
            eq CLOUD_BACKUP"


            Filters are supported on the following attributes:

            * backupType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemInfo/id

            * storageSystemInfo/type

            * storageSystemInfo/name

            * sourceCopyInfo/id

            * pointInTime

            * verified

            * protectionStoreInfo/id

            * protectionStoreInfo/name
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseBackupList'
          description: MSSQL database backup list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all MSSQL database backups.
      tags:
        - mssql-database-backups
  /backup-recovery/v1beta1/mssql-databases/{db-id}/backups/{backup-id}:
    delete:
      description: |
        Remove an MSSQL database backup.
      operationId: DeleteMSSQLDatabaseBackup
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseBackup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete an MSSQL database backup.
      tags:
        - mssql-database-backups
    get:
      description: >
        Get detailed information for a MSSQL database backup qualified by
        backup-id.
      operationId: MSSQLDatabaseBackup
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseBackup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseBackup'
          description: Detailed information of a MSSQL database backup
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a MSSQL database backup.
      tags:
        - mssql-database-backups
    patch:
      description: |
        Update attributes for a MSSQL database backup.
      operationId: MSSQLDatabaseBackupUpdate
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/MSSQLDatabaseBackupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a MSSQL database backup.
      tags:
        - mssql-database-backups
  /backup-recovery/v1beta1/mssql-databases/{db-id}/refresh:
    post:
      description: Refresh an MSSQL database and its sub-resources.
      operationId: RefreshMSSQLDatabase
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Refresh an MSSQL database and its sub-resources.
      tags:
        - mssql-databases
  /backup-recovery/v1beta1/mssql-databases/{db-id}/restore:
    post:
      description: |
        Restores a virtual machine from selected snapshot.
      operationId: MSSQLDatabaseRestore
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MSSQLDatabaseRestoreFromCopy'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Restore an MSSQL database from snapshot or backup.
      tags:
        - mssql-databases
  /backup-recovery/v1beta1/mssql-databases/{db-id}/snapshots:
    get:
      description: |
        Get information about all MSSQL database snapshots.
      operationId: MSSQLDatabaseSnapshotList
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparision compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET
            /backup-recovery/v1beta1/mssql-databases/{db-id}/snapshots?filter="consistency
            eq APPLICATION"


            Filters are supported on the following attributes:

            * snapshotType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemInfo/id

            * storageSystemInfo/type

            * storageSystemInfo/name

            * verified

            * consistency

            * pointInTime
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseSnapshotList'
          description: MSSQL database snapshots list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all MSSQL database snapshots.
      tags:
        - mssql-database-snapshots
  /backup-recovery/v1beta1/mssql-databases/{db-id}/snapshots/{snapshot-id}:
    delete:
      description: |
        Remove an MSSQL database snapshot.
      operationId: DeleteMSSQLDatabaseSnapshot
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete an MSSQL database snapshot.
      tags:
        - mssql-database-snapshots
    get:
      description: >
        Get detailed information for a MSSQL database snapshot qualified by
        snapshot-id.
      operationId: MSSQLDatabaseSnapshot
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLDatabaseSnapshot'
          description: Detailed information of a MSSQL database snapshot
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a MSSQL database snapshot.
      tags:
        - mssql-database-snapshots
    patch:
      description: |
        Update attributes for a MSSQL database snapshot.
      operationId: MSSQLDatabaseSnapshotUpdate
      parameters:
        - in: path
          name: db-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabase/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/MSSQLDatabaseSnapshotUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a MSSQL database snapshot.
      tags:
        - mssql-database-snapshots
  /backup-recovery/v1beta1/mssql-instances:
    get:
      description: List all the discovered MSSQL instances.
      operationId: MSSQLInstanceList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Examples:

            * GET /backup-recovery/v1beta1/mssql-instances?filter="productName
            eq Microsoft+SQL+Server+2012+R2"

            * GET
            /backup-recovery/v1beta1/mssql-instances?filter="applicationHostInfo/name
            eq my-host-1 and status eq Error"



            Filters are supported on the following attributes:

            * state

            * status

            * createdAt

            * name

            * productName

            * productVersion

            * applicationHostInfo/id

            * applicationHostInfo/name
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLInstanceList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all discovered MSSQL instances.
      tags:
        - mssql-instances
  /backup-recovery/v1beta1/mssql-instances/{instance-id}:
    get:
      description: >-
        Get detailed information for a discovered MSSQL instance qualified by
        instance-id.
      operationId: MSSQLInstance
      parameters:
        - in: path
          name: instance-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLInstance/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MSSQLInstance'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get an MSSQL instance resource identified by {instance-id}.
      tags:
        - mssql-instances
    patch:
      description: Update attributes of an MSSQL instance.
      operationId: MSSQLInstanceUpdate
      parameters:
        - in: path
          name: instance-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLInstance/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/MSSQLInstanceUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update an MSSQL instance.
      tags:
        - mssql-instances
  /backup-recovery/v1beta1/mssql-instances/{instance-id}/refresh:
    post:
      description: Refresh the specified mssql-instance.
      operationId: RefreshMSSQLInstance
      parameters:
        - in: path
          name: instance-id
          required: true
          schema:
            $ref: '#/components/schemas/MSSQLInstance/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Refresh an MSSQL Instance.
      tags:
        - mssql-instances
  /backup-recovery/v1beta1/protection-jobs:
    get:
      description: List all the Protection Jobs.
      operationId: DataManagementJobsList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            default: 0
            maximum: 1000
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 100
            maximum: 20000
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.
                        
            A comparison compares a property name to a literal. The following
            comparisons are supported:

            “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            “in” : Is a value in a property (that is an array of strings)


            Examples:

            GET /backup-recovery/v1beta1/protection-jobs?filter=assetInfo/type
            eq 'virtualization/virtual-machine'


            Filters are supported on following attributes:

            * assetInfo/name

            * assetInfo/type

            * assetInfo/id

            * assetInfo/resourceUri

            * operational

            * dataOrchestratorId

            * protectionPolicyInfo/id

            * protectionPolicyInfo/name
          in: query
          name: filter
          schema:
            type: string
        - description: comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementJobsList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all the Protection Jobs.
      tags:
        - protection-jobs
    post:
      description: Assign a Protection Policy to an asset.
      operationId: DataManagementJobCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementJobsCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new Protection Job.
      tags:
        - protection-jobs
  /backup-recovery/v1beta1/protection-jobs/{id}:
    delete:
      description: Delete the specified Protection Job.
      operationId: DeleteDataManagementJob
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementJobsDetail/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete a Protection Job.
      tags:
        - protection-jobs
    get:
      description: Get detailed information of a Protection Job qualified by id.
      operationId: DataManagementJobDetail
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementJobsDetail/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementJobsDetail'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a Protection Job identified by {id}.
      tags:
        - protection-jobs
  /backup-recovery/v1beta1/protection-jobs/{id}/resume:
    post:
      description: Resume a Protection Job.
      operationId: DataManagementJobResume
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementJobsDetail/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementJobsResume'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Resume a Protection Job.
      tags:
        - protection-jobs
  /backup-recovery/v1beta1/protection-jobs/{id}/run:
    post:
      description: Run a Protection Job now.
      operationId: DataManagementJobRun
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementJobsDetail/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementJobsRun'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Run a Protection Job now.
      tags:
        - protection-jobs
  /backup-recovery/v1beta1/protection-jobs/{id}/suspend:
    post:
      description: Suspend a Protection Job.
      operationId: DataManagementJobSuspend
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementJobsDetail/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementJobsSuspend'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Suspend a Protection Job.
      tags:
        - protection-jobs
  /backup-recovery/v1beta1/protection-policies:
    get:
      description: List all the protection policies.
      operationId: DataManagementTemplatesList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            default: 0
            maximum: 1000
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 100
            maximum: 20000
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.
                  
            A comparison compares a property name to a literal. The following
            comparisons are supported:

            “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            “in” : Is a value in a property (that is an array of strings)


            Examples:

            GET
            /backup-recovery/v1beta1/protection-policies?filter=protections/type
            eq CLOUD_BACKUP


            Filters are supported on following attributes:

            * assigned

            * name

            * protections/type

            * protections/applicationType

            * protections/protectionStoreInfo/name

            * protections/protectionStoreInfo/id
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementTemplatesList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all protection policies.
      tags:
        - protection-policies
    post:
      description: Create a new Protection Policy.
      operationId: DataManagementTemplateCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementTemplatesCreate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementTemplatesDetail'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new Protection Policy.
      tags:
        - protection-policies
  /backup-recovery/v1beta1/protection-policies/{id}:
    delete:
      description: Delete the Protection Policy.
      operationId: DeleteDataManagementTemplate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/id'
      responses:
        '204':
          description: No content
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete a Protection Policy.
      tags:
        - protection-policies
    get:
      description: Get detailed information of a Protection Policy qualified by id.
      operationId: DataManagementTemplateDetail
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementTemplatesDetail'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a Protection Policy identified by {id}.
      tags:
        - protection-policies
    patch:
      description: Update an assigned Protection Policy for data protection.
      operationId: DataManagementTemplateUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/DataManagementTemplatesUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementTemplatesDetail'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update an assigned Protection Policy.
      tags:
        - protection-policies
    put:
      description: Update a Protection Policy for data protection before assignment.
      operationId: DataManagementTemplateReplace
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataManagementTemplatesCreate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataManagementTemplatesDetail'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Replace a Protection Policy completely.
      tags:
        - protection-policies
  /backup-recovery/v1beta1/protection-store-gateway-sizer:
    post:
      description: >-
        Returns the resource requirements that would be needed for a Protection
        Store Gateway. This API doesn't create the Protection Store Gateway. To
        create the Protection Store Gateway a call to POST
        /protection-store-gateways should be made.
      operationId: ProtectionStoreGatewaySize
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SizeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizeResults'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizeErrorResults'
          description: The input values do not generate a valid result
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: >-
        Returns the resource requirements that would be needed for a Protection
        Store Gateway.
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways:
    get:
      description: Gets the list of available Protection Store Gateways
      operationId: ProtectionStoreGatewaysList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 10
            maximum: 2000
            type: integer
        - description: >
            The *filter* query parameter is used to filter the set of resources
            returned in the response.


            The returned set of resources will match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The comparisons
            supported are the following:


            - “eq” : Is a property equal to value. Valid for number, boolean and
            string properties

            - “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties

            - “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            - “in” : Is a value in a property (that is an array of strings)


            Filters are supported on following attributes:        

            - state

            - health/state

            - health/status


            Examples:


            - GET ./protection-store-gateways?filter=state
            eq'PSG_STATE_REGISTERING'

            - GET ./protection-store-gateways?filter=health/state eq
            'PSG_HEALTH_STATE_UNKNOWN'

            - GET ./protection-store-gateways?filter=health/status eq
            'PSG_HEALTH_STATUS_CONNECTED'
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The *select* query parameter is used to limit the properties
            returned in the GET response.


            Multiple properties can be specified to be returned. The server will
            only return the set of properties requested by the client.


            Example:


            GET ./protection-store-gateways?select=displayName,state'
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionStoreGatewayList'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway in maintenance mode
      summary: >-
        Get a list of the Protection Store Gateways that are registered with
        DSCC
      tags:
        - Protection Store Gateway
    post:
      description: Create a Protection Store Gateway
      operationId: ProtectionStoreGatewayCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreGatewayPostRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new Protection Store Gateway within DSCC
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}:
    delete:
      description: Delete the Protection Store Gateway
      operationId: ProtectionStoreGatewayDelete
      parameters:
        - $ref: '#/components/parameters/idUuid'
        - $ref: '#/components/parameters/ForceDeleteStore'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Configuration with the given Id does not exist
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Method not supported
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not availables
      summary: Deletes a Protection Store Gateway within DSCC
      tags:
        - Protection Store Gateway
    get:
      description: Get details of a Protection Store Gateway
      operationId: ProtectionStoreGatewayGetById
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionStoreGateway'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway in maintenance mode
      summary: Get details of a Protection Store Gateway within DSCC
      tags:
        - Protection Store Gateway
    patch:
      description: Update a Protection Store Gateway.
      operationId: ProtectionStoreGatewayUpdate
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreGatewayPatchRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Updated Protection Store Gateway.
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Modify the configuration of a Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/consoleUser:
    post:
      description: Get credentials of a Protection Store Gateway console user
      operationId: ProtectionStoreGatewayGetConsoleUser
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayConsoleCredentials'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway in maintenance mode
      summary: Gets the credentials of a Protection Store Gateway console user
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/createNic:
    post:
      description: Create network interface on the Protection Store Gateway
      operationId: ProtectionStoreGatewayNicCreate
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProtectionStoreGatewayNicRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Creates a network interface on the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/deleteNic:
    post:
      description: Delete the network interface on the Protection Store Gateway
      operationId: ProtectionStoreGatewayNicDelete
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteProtectionStoreGatewayNicRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Deletes a network interface on the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/generate-support-bundle:
    post:
      description: Generate a support bundle
      operationId: ProtectionStoreGatewayGenerateSupportBundle
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateProtectionStoreGatewaySupportBundle'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Generates a support bundle
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/ping:
    post:
      description: Ping from the Protection Store Gateway
      operationId: ProtectionStoreGatewayPing
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkDebugRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Ping from Protection Store Gateway accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Implemented
      summary: Ping from the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/power-on:
    post:
      description: Power on the Protection Store Gateway
      operationId: ProtectionStoreGatewayPowerOn
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Power on Protection Store Gateway accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Powers on the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/recover:
    post:
      description: Recover a Protection Store Gateway
      operationId: ProtectionStoreGatewayRecover
      parameters:
        - $ref: '#/components/parameters/idUuid'
        - $ref: '#/components/parameters/ForceRecover'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreGatewayPostRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Recover a Protection Store Gateway within DSCC
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/resize:
    post:
      description: >-
        Reconfigure the CPU, memory and storage requirements of the Protection
        Store Gateway.
      operationId: ProtectionStoreGatewayStorage
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResizeRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: >-
        Reconfigures the CPU, memory and storage requirements of the Protection
        Store Gateway.
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/restart-guest-os:
    post:
      description: Restart the Protection Store Gateway
      operationId: ProtectionStoreGatewayRestartGuestOS
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Restart Protection Store Gateway accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Implemented
      summary: Restarts the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/set-remote-support:
    post:
      description: Enable remote support on the Protection Store Gateway
      operationId: ProtectionStoreGatewaySetRemoteSupport
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetRemoteSupportRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Enables remote support on the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/shutdown-guest-os:
    post:
      description: Shutdown the Protection Store Gateway
      operationId: ProtectionStoreGatewayShutdownGuestOS
      parameters:
        - $ref: '#/components/parameters/idUuid'
        - description: Force option to forcefully shutdown
          in: query
          name: force
          required: false
          schema:
            type: boolean
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Shutdown Protection Store Gateway accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Shuts down the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/sizer:
    post:
      description: >-
        Returns the resource requirements that would be needed to resize an
        existing Protection Store Gateway. This API doesn't perform any
        modifications to the Protection Store Gateway. To implement the
        modifications a call to POST
        /backup-recovery/v1beta1/protection-store-gateways/{id}/resize should be
        made.
      operationId: ProtectionStoreGatewayPSGSize
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SizeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizeResults'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SizeErrorResults'
          description: The input values do not generate a valid result
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: >-
        Returns the resource requirements that would be needed to resize an
        existing Protection Store Gateway.
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/traceroute:
    post:
      description: Traceroute from the Protection Store Gateway
      operationId: ProtectionStoreGatewayTraceroute
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkDebugRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Traceroute from Protection Store Gateway accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Implemented
      summary: Traceroute from the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-store-gateways/{id}/updateNic:
    post:
      description: Modify the network interface on the Protection Store Gateway
      operationId: ProtectionStoreGatewayNicUpdate
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProtectionStoreGatewayNicRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Protection Store Gateway with the given Id does not exist
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Modifies a network interface on the Protection Store Gateway
      tags:
        - Protection Store Gateway
  /backup-recovery/v1beta1/protection-stores:
    get:
      description: List all the Protection Stores.
      operationId: ProtectionStoreList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 10
            maximum: 2000
            type: integer
        - description: >
            The *filter* query parameter is used to filter the set of resources
            returned in the response.


            The returned set of resources will match the criteria in the filter
            query parameter.


            A comparison compares a property name to a literal. The comparisons
            supported are the following:


            - “eq” : Is a property equal to value. Valid for number, boolean and
            string properties

            - “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties

            - “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            - “in” : Is a value in a property (that is an array of strings)


            Filters are supported on following attributes:


            - protectionStoreType

            - storageSystemInfo/id

            - storageSystemInfo/displayName


            Example:


            GET ./protection-stores?filter=storageSystemInfo/displayName eq
            'SOD5057LHR'
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The *select* query parameter is used to limit the properties
            returned in the GET response.


            Multiple properties can be specified to be returned. The server will
            only return the set of properties requested by the client.


            Example:


            GET ./protection-stores?select=storageSystemInfo/displayName,status'
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionStoreList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get details of all the Protection Stores
      tags:
        - protection-stores
    post:
      description: Create a Protection Store.
      operationId: ProtectionStoreCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a Protection Store
      tags:
        - protection-stores
  /backup-recovery/v1beta1/protection-stores/{id}:
    delete:
      description: Delete a Protection Store.
      operationId: ProtectionStoreDelete
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/ProtectionStoreDetail/properties/id'
        - description: >-
            The *force* query parameter can be used to forcefully delete a
            Protection Store that contains user data.
          in: query
          name: force
          required: false
          schema:
            default: false
            type: boolean
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete a Protection Store
      tags:
        - protection-stores
    get:
      description: Details of a Protection Store.
      operationId: ProtectionStoreById
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/ProtectionStoreDetail/properties/id'
        - description: >
            The *select* query parameter is used to limit the properties
            returned in the GET response.


            Multiple properties can be specified to be returned. The server will
            only return the set of properties requested by the client.


            Example:


            GET
            ./protection-stores/b09cba1d-0e9f-4b01-98c3-da621acd37cc?select=storageSystemInfo/displayName,status'
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionStoreDetail'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get the details of the Protection Store specified by id
      tags:
        - protection-stores
    patch:
      description: Modify a Protection Store.
      operationId: ProtectionStoreEdit
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/ProtectionStoreDetail/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreEdit'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectionStoreDetail'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Modify a Protection Store
      tags:
        - protection-stores
  /backup-recovery/v1beta1/protection-stores/{id}/reattach:
    post:
      description: Reattach a Cloud Protection Store.
      operationId: CloudProtectionStoreReattach
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/ProtectionStoreDetail/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectionStoreReattach'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Reattach a Cloud Protection Store
      tags:
        - protection-stores
  /backup-recovery/v1beta1/storeonces:
    get:
      description: Get the list of all available and registered StoreOnce machines.
      operationId: StoreOncesList
      parameters:
        - $ref: '#/components/parameters/StoreOnceGetAllLimit'
        - $ref: '#/components/parameters/StoreOnceGetAllOffset'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOnceList'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get the list of available StoreOnces.
      tags:
        - StoreOnce
    post:
      description: Register and create a new StoreOnce machine.
      operationId: StoreOnceCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreOncePostRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                description: |
                  The async-operation uri that can be used to monitor
                  progress of the operation
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce already registered with another customer
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a StoreOnce.
      tags:
        - StoreOnce
  /backup-recovery/v1beta1/storeonces/{id}:
    delete:
      description: Unregister and delete the StoreOnce.
      operationId: StoreOnceDelete
      parameters:
        - $ref: '#/components/parameters/idUuid'
        - $ref: '#/components/parameters/StoreOnceForceDelete'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                description: |
                  The async-operation uri that can be used to monitor
                  progress of the operation
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce with the given Id does not exist
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unregister already triggered
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Method not supported
          headers:
            X-RateLimit-Limit:
              schema:
                type: number
            X-RateLimit-Remaining:
              schema:
                type: number
            X-RateLimit-Reset:
              schema:
                type: number
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Delete the StoreOnce.
      tags:
        - StoreOnce
    get:
      description: Get all the details and information of registered StoreOnce.
      operationId: StoreOnceGetById
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOnce'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce with the given Id does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce in maintenance mode
      summary: Get details of a StoreOnce.
      tags:
        - StoreOnce
    patch:
      description: Update already registered StoreOnce.
      operationId: StoreOnceUpdate
      parameters:
        - $ref: '#/components/parameters/idUuid'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/StoreOncePatchRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                description: |
                  The async-operation uri that can be used to monitor
                  progress of the operation
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce update already running
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update the StoreOnce.
      tags:
        - StoreOnce
  /backup-recovery/v1beta1/storeonces/{id}/refresh:
    post:
      description: Retrieve and update the latest information about the StoreOnce.
      operationId: StoreOnceReferesh
      parameters:
        - $ref: '#/components/parameters/idUuid'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                description: |
                  The async-operation uri that can be used to monitor
                  progress of the operation
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Configuration with the given Id does not exist
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: StoreOnce refresh already running
        '424':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The StoreOnce was never correctly registered
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service not available
      summary: Refresh the StoreOnce.
      tags:
        - StoreOnce
  /backup-recovery/v1beta1/virtual-machine-protection-groups:
    get:
      description: List all virtual machine Protection Groups.
      operationId: VmProtectionGroupList
      parameters:
        - description: >-
            The number of items to omit from the beginning of the result set.
            The offset and limit query parameters are used in conjunction with
            pagination. For example "offset=30&limit=10" indicates the fourth
            page of 10 items.
          in: query
          name: offset
          schema:
            type: integer
        - description: >-
            The maximum number of items to include in the response. The offset
            and limit query parameters are used in conjunction for pagination,
            for example "offset=30&limit=10" indicates the fourth page of 10
            items.
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            An expression by which to filter the results.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).

            example: vmProtectionGroupType eq 'NATIVE'


            Filters are supported on the following attributes:

            * hypervisorManagerInfo/name

            * hypervisorManagerInfo/id

            * vmProtectionGroupType

            * dataOrchestratorInfo/id

            * createdAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >-
            Comma separated list of properties defining the sort order. Each
            item in the “sort” query parameter is a property name optionally
            followed by a direction indicator. The direction indicator may only
            be either “asc” (ascending) or “desc” (descending). If no direction
            indicator is specified, the default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client

            formatted as an exclusive comma separated list of properties. If not
            specified, all properties are returned.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmProtectionGroupList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all  virtual machine Protection Groups.
      tags:
        - virtual-machine-protection-groups
    post:
      description: Create the virtual machine Protection Group for data management.
      operationId: VmProtectionGroupCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmProtectionGroupCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new virtual machine Protection Group.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{id}:
    delete:
      description: Remove a virtual machine Protection Group.
      operationId: VmProtectionGroupDelete
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - $ref: '#/components/parameters/VMPGCascadeDelete'
        - $ref: '#/components/parameters/VMPGForceDelete'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            A delete action cannot be initiated in the current state of the
            virtual machine Protection Group.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Remove a virtual machine Protection Group.
      tags:
        - virtual-machine-protection-groups
    get:
      description: >-
        Get detailed information for a registered virtual machine Protection
        Group qualified by id.
      operationId: VmProtectionGroup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmProtectionGroup'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a virtual machine Protection Group resource.
      tags:
        - virtual-machine-protection-groups
    patch:
      description: Update attributes for a virtual machine Protection Group.
      operationId: VmProtectionGroupUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VmProtectionGroupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a virtual machine Protection Group.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{id}/refresh:
    post:
      description: Refresh a virtual machine Protection Group.
      operationId: VmProtectionGroupRefresh
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Refresh a virtual machine Protection Group.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{id}/restore:
    post:
      description: Restore a virtual machine Protection Group from recovery points.
      operationId: VmpgRestore
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmpgRestore'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Restore a virtual machine Protection Group from recovery points.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{id}/restore-pre-check:
    post:
      description: >-
        Validations and recovery point info of a virtual machine Protection
        Group.
      operationId: VmpgRestorePreCheckList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmpgRestorePreCheckList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: >-
        Restore pre-check of a virtual machine Protection Group from recovery
        points.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/backups:
    get:
      description: |
        Get information about all Virtual Machine protection group backups.
      operationId: VmpgBackupList
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set.
          in: query
          name: offset
          schema:
            type: integer
        - in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparision compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).


            Filters are supported on following attributes:

            * backupType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * sourceCopyInfo/id

            * pointInTime

            * verified

            * storageSystemInfo/id

            * storageSystemInfo/name

            * protectionStoreInfo/id

            * protectionStoreInfo/name

            * dataOrchestratorInfo/id

            * expiresAt

            * name

            Examples:

            * GET
            /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/backups?filter=backupType
            eq 'CLOUD_BACKUP'
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmpgBackupList'
          description: virtual-machine-protection-group backup list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all virtual machine protection groups backups.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/backups/{backup-id}:
    delete:
      description: |
        Remove a virtual machine protection group backup.
      operationId: DeleteVmpgBackup
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgBackup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete a virtual machine protection group backup.
      tags:
        - virtual-machine-protection-groups
    get:
      description: >
        Get detailed information for a virtual machine protection group backup
        qualified by backup-id.
      operationId: VmpgBackup
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgBackup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmpgBackup'
          description: Detailed information of a virtual-machine-protection-group backup
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a virtual machine protection group backup.
      tags:
        - virtual-machine-protection-groups
    patch:
      description: |
        Update attributes for a virtual machine protection groups backup.
      operationId: VmpgBackupUpdate
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgBackup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VmpgBackupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a virtual machine protection groups backup.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/snapshots:
    get:
      description: |
        Get information about all virtual machine protection groups snapshots.
      operationId: VmpgSnapshotList
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.


            A comparision compares a property name to a literal. The comparisons
            supported are the following:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            * “in” : Is a value in a property (that is an array of strings)


            Filters are supported on following attributes:

            * snapshotType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemsInfo/id

            * storageSystemsInfo/storageSystemType

            * storageSystemsInfo/name

            * consistency

            * pointInTime

            * dataOrchestratorInfo/id

            * expiresAt

            * name

            Examples:

            * GET
            /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/snapshots?filter=consistency
            eq 'APPLICATION'
          in: query
          name: filter
          schema:
            type: string
        - description: >
            A comma separated list of properties to sort by, followed by a
            direction

            indicator ("asc" or "desc"). If no direction indicator is specified,
            the

            default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmpgSnapshotList'
          description: virtual-machine-protection-group snapshots list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all virtual machine protection groups snapshots.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machine-protection-groups/{vmpg-id}/snapshots/{snapshot-id}:
    delete:
      description: |
        Delete a vm-protection-group snapshot.
      operationId: DeleteVmpgSnapshot
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgSnapshot/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Delete a virtual machine protection group snapshot.
      tags:
        - virtual-machine-protection-groups
    get:
      description: >
        Get detailed information for a virtual-machine-protection-group snapshot
        qualified by snapshot-id.
      operationId: VmpgSnapshot
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgSnapshot/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmpgSnapshot'
          description: Detailed information of a Virtual Machine protection group snapshot
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a virtual machine protection group snapshot.
      tags:
        - virtual-machine-protection-groups
    patch:
      description: |
        Update attributes of a virtual machine protection group snapshot.
      operationId: VmpgSnapshotUpdate
      parameters:
        - in: path
          name: vmpg-id
          required: true
          schema:
            $ref: '#/components/schemas/VmProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VmpgSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VmpgSnapshotUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: This contains the URI of the task used to monitor the request.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a virtual machine protection group snapshot.
      tags:
        - virtual-machine-protection-groups
  /backup-recovery/v1beta1/virtual-machines/{id}/backups:
    get:
      description: |
        Get information about all virtual machine backups.
      operationId: VirtualMachineBackupList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - description: >-
            The number of items to omit from the beginning of the result set.
            The offset and limit query parameters are used in conjunction with
            pagination. For example "offset=30&limit=10" indicates the fourth
            page of 10 items.
          in: query
          name: offset
          schema:
            type: integer
        - description: >-
            The maximum number of items to include in the response. The offset
            and limit query parameters are used in conjunction with pagination.
            For example "offset=30&limit=10" indicates the fourth page of 10
            items.
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            An expression that enables you to filter the results.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).


            Filters are supported on the following attributes:

            * backupType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemInfo/id

            * storageSystemInfo/type

            * storageSystemInfo/name

            * sourceCopyInfo/id

            * pointInTime

            * verified

            * protectionStoreInfo/id

            * protectionStoreInfo/name

            * dataOrchestratorInfo/id

            * expiresAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >-
            Comma separated list of properties defining the sort order. Each
            item in the “sort” query parameter is a property name optionally
            followed by a direction indicator. The direction indicator may only
            be either “asc” (ascending) or “desc” (descending). If no direction
            indicator is specified, the default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client

            formatted as an exclusive comma separated list of properties. If not
            specified, all properties are returned.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachineBackupList'
          description: virtual machine backup list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all virtual machine backups.
      tags:
        - virtual-machine-backups
  /backup-recovery/v1beta1/virtual-machines/{id}/backups/{backup-id}:
    delete:
      description: |
        Remove a virtual machine backup.
      operationId: DeleteVirtualMachineBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineBackup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Delete a virtual machine backup.
      tags:
        - virtual-machine-backups
    get:
      description: >
        Get detailed information for a virtual machine backup qualified by
        backup-id.
      operationId: VirtualMachineBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineBackup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachineBackup'
          description: Detailed information of a virtual machine backup.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a virtual machine backup.
      tags:
        - virtual-machine-backups
    patch:
      description: |
        Update attributes for a virtual machine backup.
      operationId: VirtualMachineBackupUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineBackup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VirtualMachineBackupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Update a virtual machine backup.
      tags:
        - virtual-machine-backups
  /backup-recovery/v1beta1/virtual-machines/{id}/restore:
    post:
      description: Restores a virtual machine from the selected snapshot or backup.
      operationId: VirtualMachineRestore
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualMachineRestoreFromCopy'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Restore a virtual machine from snapshot or backup.
      tags:
        - virtual-machines
  /backup-recovery/v1beta1/virtual-machines/{id}/restore-disks:
    post:
      description: Restore one or more disks of a virtual machine.
      operationId: VirtualMachineDisksRestore
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmDisksRestoreFromSnapshot'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Restore one or more disks of a virtual machine from snapshot or backup.
      tags:
        - virtual-machines
  /backup-recovery/v1beta1/virtual-machines/{id}/restore-files:
    post:
      description: >
        Restore one or more files and folders of a virtual machine from snapshot
        or backup.
      operationId: VirtualMachineFileRestore
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/VirtualMachineFileRestoreFromSnapshot'
                - $ref: '#/components/schemas/VirtualMachineFileRestoreFromBackup'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Restore files and folders of a virtual machine.
      tags:
        - virtual-machines
  /backup-recovery/v1beta1/virtual-machines/{id}/snapshots:
    get:
      description: |
        Get information about all virtual machine snapshots.
      operationId: VirtualMachineSnapshotList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - description: >-
            The number of items to omit from the beginning of the result set.
            The offset and limit query parameters are used in conjunction with
            pagination. For example "offset=30&limit=10" indicates the fourth
            page of 10 items.
          in: query
          name: offset
          schema:
            type: integer
        - description: >-
            The maximum number of items to include in the response. The offset
            and limit query parameters are used in conjunction with pagination.
            For example "offset=30&limit=10" indicates the fourth page of 10
            items.
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            An expression that enables you to filter the results.


            A comparison compares a property name to a literal. The following
            comparisons are supported:

            * “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            * “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            * “lt” : Is a property less than a value. Valid for number or string
            timestamp properties.

            * “in” : Is a value in a property (that is an array of strings).


            Filters are supported on the following attributes:

            * snapshotType

            * state

            * status

            * createdByInfo/id

            * createdByInfo/name

            * storageSystemsInfo/id

            * storageSystemsInfo/storageSystemType

            * storageSystemsInfo/name

            * consistency

            * pointInTime

            * dataOrchestratorInfo/id

            * expiresAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: >-
            Comma separated list of properties defining the sort order. Each
            item in the “sort” query parameter is a property name optionally
            followed by a direction indicator. The direction indicator may only
            be either “asc” (ascending) or “desc” (descending). If no direction
            indicator is specified, the default order is ascending.
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client

            formatted as an exclusive comma separated list of properties. If not
            specified, all properties are returned.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachineSnapshotList'
          description: virtual machine snapshots list
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad/Malformed request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get information about all virtual machine snapshots.
      tags:
        - virtual-machine-snapshots
  /backup-recovery/v1beta1/virtual-machines/{id}/snapshots/{snapshot-id}:
    delete:
      description: |
        Remove a virtual machine snapshot.
      operationId: DeleteVirtualMachineSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineSnapshot/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Delete a virtual machine snapshot.
      tags:
        - virtual-machine-snapshots
    get:
      description: >
        Get detailed information for a virtual machine snapshot qualified by
        snapshot-id.
      operationId: VirtualMachineSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineSnapshot/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachineSnapshot'
          description: Detailed information of a virtual machine snapshot.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server ErrorResponse.
      summary: Get details of a virtual machine snapshot.
      tags:
        - virtual-machine-snapshots
    patch:
      description: |
        Update attributes for a virtual machine snapshot.
      operationId: VirtualMachineSnapshotUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachineSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VirtualMachineSnapshotUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid).
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error.
      summary: Update a virtual machine snapshot.
      tags:
        - virtual-machine-snapshots
  /backup-recovery/v1beta1/volume-protection-groups:
    get:
      description: List all Volume Protection Groups.
      operationId: VolumeProtectionGroupList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            default: 0
            maximum: 1000
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 100
            maximum: 20000
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.
                      
            A comparison compares a property name to a literal. The following
            comparisons are supported:

            “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            “in” : Is a value in a property (that is an array of strings)

            Examples:

            GET
            /backup-recovery/v1beta1/volume-protection-groups?filter=volumeProtectionGroupType
            eq NATIVE
                      
            Filters are supported on following attributes:

            * volumeProtectionGroupType

            * createdAt

            * name
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeProtectionGroupList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all Volume Protection Groups.
      tags:
        - volume-protection-groups
    post:
      description: Create the Volume Protection Group for data management.
      operationId: VolumeProtectionGroupCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeProtectionGroupCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a new Volume Protection Group.
      tags:
        - volume-protection-groups
  /backup-recovery/v1beta1/volume-protection-groups/{id}:
    delete:
      description: Remove a Volume Protection Group.
      operationId: RemoveVolumeProtectionGroup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - $ref: '#/components/parameters/VPGCascadeDelete'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Remove a Volume Protection Group.
      tags:
        - volume-protection-groups
    get:
      description: >-
        Get detailed information for a registered Volume Protection Group
        qualified by id.
      operationId: VolumeProtectionGroup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeProtectionGroup'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a Volume Protection Group resource identified by {id}.
      tags:
        - volume-protection-groups
    patch:
      description: >-
        Update attributes for a Volume Protection Group. Edit is not available
        on a native group.
      operationId: VolumeProtectionGroupUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VolumeProtectionGroupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a Volume Protection Group.
      tags:
        - volume-protection-groups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/backups:
    get:
      description: List all Volume Protection Group backups.
      operationId: VpgBackupList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            default: 0
            maximum: 1000
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 100
            maximum: 20000
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.
                      
            A comparison compares a property name to a literal. The following
            comparisons are supported:

            “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            “in” : Is a value in a property (that is an array of strings)


            Examples:

            GET
            /backup-recovery/v1beta1/volume-protection-groups/{id}/backups?filter=backupType
            eq 'CLOUD_BACKUP'


            Filters are supported on following attributes:

            * backupType

            * state

            * status

            * sourceCopyInfo/id

            * pointInTime

            * storageSystemInfo/id

            * storageSystemInfo/name

            * protectionStoreInfo/id

            * protectionStoreInfo/name
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpgBackupList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all Volume Protection Group backups.
      tags:
        - volume-protection-group-backups
    post:
      description: Create a backup copy of a Volume Protection Group.
      operationId: VpgBackupCreate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VpgBackupCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a backup copy of a Volume Protection Group.
      tags:
        - volume-protection-group-backups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/backups/{backup-id}:
    delete:
      description: Remove a Volume Protection Group backup.
      operationId: RemoveVpgBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgBackup/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Remove a Volume Protection Group backup.
      tags:
        - volume-protection-group-backups
    get:
      description: >-
        Get detailed information for a registered Volume Protection Group backup
        qualified by id.
      operationId: VpgBackup
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgBackup/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpgBackup'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a Volume Protection Group backup identified by {id}.
      tags:
        - volume-protection-group-backups
    patch:
      description: >-
        Update attributes for a Volume Protection Group backup. Edit is not
        available on a native group.
      operationId: VpgBackupUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgBackup/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VpgBackupUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a Volume Protection Group backup.
      tags:
        - volume-protection-group-backups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/backups/{backup-id}/attach:
    post:
      description: Attach a Volume Protection Group backup.
      operationId: VpgBackupAttach
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgBackup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VpgBackupAttach'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Attach a Volume Protection Group backup.
      tags:
        - volume-protection-group-backups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/backups/{backup-id}/detach:
    post:
      description: Detach a Volume Protection Group backup.
      operationId: VpgBackupDetach
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: backup-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgBackup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VpgBackupDetach'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Detach a Volume Protection Group backup.
      tags:
        - volume-protection-group-backups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/refresh:
    post:
      description: >-
        Refreshes a Volume Protection Group and the corresponding snapshots and
        backups.
      operationId: VolumeProtectionGroupRefresh
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeProtectionGroupRefresh'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Refreshes a Volume Protection Group.
      tags:
        - volume-protection-groups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/restore:
    post:
      description: Restores a Volume Protection Group from selected snapshot or backup.
      operationId: VolumeProtectionGroupRestore
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeProtectionGroupRestore'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Restores a Volume Protection Group from snapshot or backup.
      tags:
        - volume-protection-groups
  /backup-recovery/v1beta1/volume-protection-groups/{id}/snapshots:
    get:
      description: List all Volume Protection Group snapshots.
      operationId: VpgSnapshotList
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            default: 0
            maximum: 1000
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 100
            maximum: 20000
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

            The returned set of resources must match the criteria in the filter
            query parameter.
                      
            A comparison compares a property name to a literal. The following
            comparisons are supported:

            “eq” : Is a property equal to value. Valid for number, boolean and
            string properties.

            “gt” : Is a property greater than a value. Valid for number or
            string timestamp properties.

            “lt” : Is a property less than a value. Valid for number or string
            timestamp properties

            “in” : Is a value in a property (that is an array of strings)


            Examples:

            GET
            /backup-recovery/v1beta1/volume-protection-groups/{id}/snapshots?filter=storageSystemInfo/name
            eq 'myStorageSystem'


            Filters are supported on following attributes:

            * state

            * status

            * storageSystemInfo/id

            * storageSystemInfo/name

            * pointInTime
          in: query
          name: filter
          schema:
            type: string
        - description: Comma separated list of properties defining the sort order
          in: query
          name: sort
          schema:
            type: string
        - description: >
            The select query parameter is used to limit the properties returned
            with a resource or collection-level GET.

            Multiple properties can be listed to be returned. The server must
            only return the set of properties requested by the client.

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpgSnapshotList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The filter attribute's value does not exist
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all Volume Protection Group snapshots.
      tags:
        - volume-protection-group-snapshots
    post:
      description: Create a snapshot copy of a Volume Protection Group.
      operationId: VpgSnapshotCreate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VpgSnapshotCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create a snapshot copy of a Volume Protection Group.
      tags:
        - volume-protection-group-snapshots
  /backup-recovery/v1beta1/volume-protection-groups/{id}/snapshots/{snapshot-id}:
    delete:
      description: Remove a Volume Protection Group snapshot.
      operationId: RemoveVpgSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgSnapshot/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Remove a Volume Protection Group snapshot.
      tags:
        - volume-protection-group-snapshots
    get:
      description: >-
        Get detailed information for a registered Volume Protection Group
        snapshot qualified by id.
      operationId: VpgSnapshot
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgSnapshot/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpgSnapshot'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a Volume Protection Group snapshot identified by {id}.
      tags:
        - volume-protection-group-snapshots
    patch:
      description: >-
        Update attributes for a Volume Protection Group snapshot. Edit is not
        available on a native group.
      operationId: VpgSnapshotUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            $ref: '#/components/schemas/VolumeProtectionGroup/properties/id'
        - in: path
          name: snapshot-id
          required: true
          schema:
            $ref: '#/components/schemas/VpgSnapshot/properties/id'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VpgSnapshotUpdate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Precondition failed (if the generation number is invalid)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Update a Volume Protection Group snapshot.
      tags:
        - volume-protection-group-snapshots
components:
  parameters:
    ForceDeleteStore:
      description: >-
        Forces deletion of the Protection Store Gateway regardless of store
        data.
      example: true
      in: query
      name: force
      required: false
      schema:
        type: boolean
    ForceRecover:
      description: >-
        Forces recovery to be initiated even if the Protection Store Gateway is
        in a Connected state.
      example: true
      in: query
      name: force
      required: false
      schema:
        type: boolean
    StoreOnceForceDelete:
      allowReserved: true
      description: Forceful delete option in case connectivity with StoreOnce is lost.
      example: true
      in: query
      name: force
      required: false
      schema:
        type: boolean
    StoreOnceGetAllLimit:
      description: Number of items to return at a time
      example: 10
      in: query
      name: limit
      schema:
        default: 20
        maximum: 1000
        minimum: 0
        type: integer
    StoreOnceGetAllOffset:
      description: The offset of the first item in the collection to return
      example: 5
      in: query
      name: offset
      schema:
        default: 0
        minimum: 0
        type: integer
    VMPGCascadeDelete:
      allowReserved: true
      description: >-
        Cascade delete option for Virtual Machine Protection Group of type
        Storage Replication.
      example: true
      in: query
      name: cascadedelete
      required: false
      schema:
        default: false
        type: boolean
    VMPGForceDelete:
      allowReserved: true
      description: >-
        Forceful delete option for Virtual Machine Protection Group of type
        Storage Replication.
      example: true
      in: query
      name: force
      required: false
      schema:
        default: false
        type: boolean
    VPGCascadeDelete:
      allowReserved: true
      description: Cascade delete option for Volume Protection Group.
      example: true
      in: query
      name: cascadedelete
      required: false
      schema:
        default: false
        type: boolean
    idUuid:
      description: The UUID of the object
      example: c1a0eb78-41a0-4151-93b2-f057ffeca3f3
      in: path
      name: id
      required: true
      schema:
        format: uuid
        type: string
  schemas:
    ActiveNic:
      description: Active network adapter information.
      properties:
        device:
          description: Device name of the network adapter.
          type: string
      type: object
    AlternateMSSQLDatabaseRestoreRequestParams:
      description: >-
        Provides the details about target VM location, compute, etc These inputs
        are required only if the restore type is 'ALTERNATE'.
      properties:
        databaseFilePaths:
          description: Details of source and target mappings for restoring database files.
          items:
            description: >-
              Details of mapping of source database files to paths on the target
              host
            properties:
              newPath:
                description: Path of the database file in the target host
                type: string
              originalPath:
                description: Path of the source database file
                type: string
            type: object
          type: array
        instanceId:
          description: >
            The target instance onto which the new mssql database is to be
            hosted.
          type: string
        name:
          $ref: '#/components/schemas/MSSQLDatabase/properties/name'
      type: object
    ApplicationHost:
      description: |
        Represents a host with an OS on which applications are hosted
      properties:
        clusterInfo:
          description: Information about the cluster that the host is part of.
          properties:
            clusterIp:
              description: IP address of the cluster
              example: 192.168.0.1
              maxLength: 255
              type: string
            members:
              description: Apllication host members of the cluster
              items:
                properties:
                  displayName:
                    $ref: >-
                      #/components/schemas/ApplicationHost/properties/displayName
                  name:
                    $ref: '#/components/schemas/ApplicationHost/properties/name'
                  resourceUri:
                    $ref: >-
                      #/components/schemas/ApplicationHost/properties/resourceUri
                  type:
                    $ref: '#/components/schemas/ApplicationHost/properties/type'
                type: object
              type: array
            name:
              description: Name of the cluster
              example: cluster-1
              type: string
          type: object
        computeInfo:
          description: Compute info about the host
          properties:
            memorySizeInMiB:
              description: Memory size in MiB
              example: 4096
              type: integer
            numCpuCores:
              description: Number of CPU cores
              example: 8
              type: integer
            numCpuThreads:
              description: Number of CPU threads
              example: 16
              type: integer
          type: object
        createdAt:
          description: Time in UTC at which the object was created
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        dataOrchestratorInfo:
          description: Data Orchestrator specific information.
          properties:
            id:
              description: Unique string identifying the data orchestrator.
              example: 8b4c14a6-3cd5-4907-97c4-cf44c5b642e5
              type: string
            resourceUri:
              description: The URI reference for this data orchestrator.
              type: string
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        description:
          description: >-
            A brief description of the application host as provided by the user
            during registration.
          maxLength: 255
          type: string
        displayName:
          description: A user-friendly name to identify the application host
          example: My-Test-WindowsHost
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the application host
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        manufacturer:
          description: The virtual or physical hardware manufacturer
          example: VMware, Inc.
          type: string
        name:
          description: The host name as reported by the host.
          example: host123.hpe.com
          format: hostname
          maxLength: 255
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address the host
          example: 192.168.0.1
          maxLength: 255
          type: string
        networkInterfaces:
          description: Information of all network interfaces of the application host
          items:
            properties:
              address:
                description: An IP address or hostname or FQDN to address the host
                example: 192.168.0.1
                maxLength: 255
                type: string
              name:
                description: Name of the network interface
                example: eth0
                type: string
            type: object
          type: array
        osInfo:
          description: Operating system info of the application host
          properties:
            buildVersion:
              description: Build version of the operating system
              example: 6.7.0 build-9030300 NT 6.3, 3.8.13-44.1.1.el6uek.x86_6
              type: string
            name:
              description: Name of the operating system
              example: Windows Server 2012, Oracle Enterprise Linux
              type: string
            releaseVersion:
              description: Version of the operating system
              example: 6.7.0 build-9030300, R2, 7.2
              type: string
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/application-hosts/{host-id}
          type: string
        state:
          description: The current state of the application host resource
          enum:
            - OK
            - ERROR
            - INITIALIZING
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the application host
          maxLength: 255
          type: string
        status:
          description: The current status of the application host resource.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageInitiators:
          description: Details of the application host's storage initiators
          properties:
            fcHba:
              description: Details for the FC HBAs
              items:
                properties:
                  portWwpn:
                    description: WWPN of the FC HBA
                    example: 2100000e1ec95100
                    type: string
                  vendor:
                    description: FC HBA vendor
                    example: QLogic
                    type: string
                type: object
              type: array
            iscsi:
              description: iSCSI initiator detials
              items:
                description: The iSCSI initiator idientifier
                example: iqn.290120.hpe.com:atlas-ui-kk:7838631cc2c
                type: string
              type: array
          type: object
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated
          format: date-time
          type: string
        username:
          description: The name of the user to be used to connect to the host
          example: Administrator
          type: string
        virtual:
          description: >-
            This is set to true for hosts on virtual machines and set to false
            for physical hosts
          example: true
          type: boolean
        virtualizationInfo:
          properties:
            hypervisorManagerInfo:
              $ref: >-
                #/components/schemas/VmProtectionGroup/properties/hypervisorManagerInfo
            virtualMachineInfo:
              properties:
                name:
                  description: Name of the parent virtual machine
                  example: mssql-vm
                  type: string
                resourceUri:
                  description: The resource uri of the parent virtual machine
                  example: /backup-recovery/v1beta1/virtual-machines/{vm-id}
                  type: string
                type:
                  $ref: >-
                    #/components/schemas/CommonResourceProperties/properties/type
              type: object
          type: object
      required:
        - id
        - type
      type: object
    ApplicationHostCreate:
      description: Registers an application host
      properties:
        credentials:
          description: Application host credentials.
          properties:
            password:
              description: Password used to access the application host
              type: string
            username:
              description: Name of the user used to access the application host
              type: string
          type: object
        description:
          $ref: '#/components/schemas/ApplicationHost/properties/description'
        name:
          $ref: '#/components/schemas/ApplicationHost/properties/name'
        networkAddress:
          $ref: '#/components/schemas/ApplicationHost/properties/networkAddress'
      required:
        - networkAddress
        - credentials
    ApplicationHostList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/ApplicationHost'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    ApplicationHostUpdate:
      properties:
        credentials:
          $ref: '#/components/schemas/ApplicationHostCreate/properties/credentials'
        description:
          $ref: '#/components/schemas/ApplicationHost/properties/description'
        name:
          $ref: '#/components/schemas/ApplicationHost/properties/name'
        networkAddress:
          $ref: '#/components/schemas/ApplicationHost/properties/networkAddress'
      type: object
    ApplicationType:
      description: >-
        Specifies type of application that the protection applies to. It is a
        mandatory field.
      enum:
        - VMWARE
        - AWS
        - HPE_ARRAY_VOLUME
        - MSSQL
      type: string
    AssetInfo:
      properties:
        displayName:
          description: A user-friendly name to identify the asset
          type: string
        id:
          description: The UUID of either the asset or asset group.
          example: d0e48314-730a-11ea-b496-48452098762c
          format: uuid
          type: string
        name:
          description: Name of the asset.
          example: VM-Finance
          type: string
        resourceUri:
          description: Reference to resource.
          type: string
        type:
          description: >-
            Type of asset. Supported types are virtualization/virtual-machine,
            virtualization/datastore,
            backup-recovery/virtual-machine-protection-group,
            virtualization/csp-machine-instance, virtualization/csp-volume,
            backup-recovery/csp-protection-group,
            backup-recovery/mssql-database-protection-group,
            backup-recovery/volume-protection-group,
            virtualization/csp-rds-instance, virtualization/csp-k8s-application
          example: virtualization/virtual-machine
          type: string
      type: object
    CommonListResponse:
      properties:
        count:
          description: Number of items in this response.
          type: integer
        offset:
          description: The offset query parameter from the request.
          type: integer
        total:
          description: Total number of items matching the filter parameter in the request.
          type: integer
      required:
        - count
        - offset
    CommonResourceProperties:
      description: Common properties included in all resource models.
      properties:
        createdAt:
          format: date-time
          type: string
        customerId:
          description: The customer application identifier
          readOnly: true
          type: string
        generation:
          description: >-
            A monotonically increasing value. This value updates when the
            resource is updated and can be used as a short way to determine if a
            resource has changed or which of two different copies of a resource
            is more up to date.
          format: int64
          readOnly: true
          type: integer
        id:
          description: An identifier for the resource, usually a UUID.
          format: uuid
          readOnly: true
          type: string
        name:
          description: A system specified name for the resource.
          type: string
        resourceUri:
          description: The self reference for this resource.
          readOnly: true
          type: string
        type:
          description: The type of resource.
          readOnly: true
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
        - resourceUri
        - customerId
      type: object
    Consistency:
      description: >
        Specifies whether to create crash consistent or application consistent
        snapshot.

        CrashConsistentOnFailure: If an application consistent snapshot fails
        for any reason,

        with this option it will then take a crash consistent snapshot and
        continue.
      enum:
        - CRASH
        - APPLICATION
        - CRASH_CONSISTENT_ON_FAILURE
      example: APPLICATION
      type: string
    ConsoleUri:
      description: The URI for console screen that displays this object.
      readOnly: true
      type: string
    CopyPoolInfo:
      description: Information about the protection store where the copy is created.
      properties:
        id:
          description: UUID string uniquely identifying the protection store.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          format: uuid
          type: string
        name:
          description: Name of the protection store.
          type: string
        protectionStoreType:
          description: Type of protection store.
          enum:
            - ON_PREMISES
            - CLOUD
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/protection-stores/6a38acc7-e470-4ed7-b141-ca9509672da
          format: uri
          readOnly: true
          type: string
        type:
          description: The type of resource
          example: backup-recovery/protection-store
          readOnly: true
          type: string
      type: object
    CpuInfo:
      description: CPU information.
      properties:
        hyperthreadingActive:
          description: Indicate whether hyperthreading is active or not.
          example: true
          type: boolean
        logicalProcessors:
          description: Number of logical processors.
          example: 2
          format: int32
          type: integer
        processorCores:
          description: Number of processor cores.
          example: 2
          format: int32
          type: integer
        processorSockets:
          description: Number of processor sockets.
          example: 2
          format: int32
          type: integer
        processorSpeedHz:
          description: Processor speed in Hz.
          example: 2299999000
          format: int64
          type: integer
      type: object
    CpuSocket:
      description: CPU socket information.
      properties:
        cpuBusSpeedHz:
          description: CPU bus speed in Hz.
          example: 91999960
          format: int64
          type: integer
        cpuCoreSpeedHz:
          description: CPU core speed in Hz.
          example: 2299999000
          format: int64
          type: integer
        description:
          description: Description of CPU socket.
          example: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
          type: string
        vendor:
          description: Vendor of CPU socket.
          example: intel
          type: string
      type: object
    CreateProtectionStoreGatewayNicRequest:
      properties:
        nic:
          properties:
            gateway:
              description: Gateway associated with the network interface.
              type: string
            networkAddress:
              description: IP address associated with the network interface.
              format: ipv4
              type: string
            networkName:
              $ref: '#/components/schemas/NetworkName'
            networkType:
              $ref: '#/components/schemas/NetworkType'
            subnetMask:
              description: Subnet mask.
              format: ipv4
              type: string
    CreateSnapshotOnFailure:
      description: >
        Specifies if the snapshot can be crash consistent in case of script
        execution failure.
      type: boolean
    DataManagementJobInfo:
      description: Information about the assigned Protection Policy and the Protection Job.
      properties:
        id:
          description: UUID string uniquely identifying the Protection Job.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          format: uuid
          type: string
        name:
          description: name of the Protection Job.
          type: string
        protectionPolicyInfo:
          $ref: '#/components/schemas/DataManagementTemplateInfo'
        resourceUri:
          description: Reference to resource.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    DataManagementJobsCreate:
      properties:
        assetInfo:
          properties:
            id:
              $ref: '#/components/schemas/AssetInfo/properties/id'
            type:
              $ref: '#/components/schemas/AssetInfo/properties/type'
          required:
            - id
          type: object
        effectiveFromDateTime:
          $ref: >-
            #/components/schemas/DataManagementJobsDetail/properties/effectiveFromDateTime
        overrides:
          properties:
            protections:
              description: An array of protection objectives.
              items:
                properties:
                  id:
                    $ref: >-
                      #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/id
                  protectionStoreId:
                    description: UUID string uniquely identifying the protection store.
                    example: 2a1172be-4281-44f9-848b-9c3f86378b13
                    format: uuid
                    type: string
                  schedules:
                    description: Array of schedules attributes.
                    items:
                      properties:
                        backupGranularity:
                          $ref: '#/components/schemas/backupGranularity'
                        consistency:
                          $ref: '#/components/schemas/Consistency'
                        createSnapshotOnFailure:
                          $ref: '#/components/schemas/CreateSnapshotOnFailure'
                        expireAfter:
                          $ref: '#/components/schemas/ExpireAfter'
                        lockFor:
                          $ref: '#/components/schemas/LockFor'
                        namePattern:
                          $ref: >-
                            #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/namePattern
                        postScriptInfo:
                          $ref: '#/components/schemas/PostScriptInfoOverrides'
                        preScriptInfo:
                          $ref: '#/components/schemas/PreScriptInfoOverrides'
                        scheduleId:
                          $ref: >-
                            #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/scheduleId
                        vmwareOptions:
                          $ref: '#/components/schemas/VmwareOptions'
                      required:
                        - scheduleId
                      type: object
                    type: array
                required:
                  - id
                type: object
              type: array
          type: object
        protectionPolicyId:
          $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/id'
      required:
        - protectionPolicyId
        - assetInfo
      type: object
    DataManagementJobsDetail:
      description: Describes a Protection Job.
      properties:
        applicationType:
          $ref: '#/components/schemas/ApplicationType'
        assetInfo:
          $ref: '#/components/schemas/AssetInfo'
        associatedAssetsInfo:
          description: An array of associated assets this job is indirectly protecting
          items:
            $ref: '#/components/schemas/AssetInfo'
          type: array
        dataOrchestratorId:
          description: UUID string uniquely identifying the Data Orchestrator.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          type: string
        effectiveFromDateTime:
          description: >-
            Time in UTC at which the Protection Policy assignment will be
            effective from.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the job.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        operational:
          enum:
            - ACTIVE
            - SUSPENDED
            - PARTIALLY_SUSPENDED
            - PERMANENTLY_SUSPENDED
          type: string
        protectionPolicyInfo:
          $ref: '#/components/schemas/DataManagementTemplateInfo'
        protections:
          description: An array of protection objectives
          items:
            properties:
              id:
                $ref: >-
                  #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/id
              protectionStoreInfo:
                $ref: '#/components/schemas/CopyPoolInfo'
              schedules:
                description: Array of schedules and attributes.
                items:
                  properties:
                    executionStatuses:
                      description: List of statuses of last 5 schedule triggers
                      items:
                        properties:
                          errorMessage:
                            description: >-
                              Captures the reason for failures in case of status
                              being warning or Error or Skipped.
                            type: string
                          status:
                            description: >-
                              The current job status. The set of possible values
                              are common across many of the different Atlas
                              resources.
                            enum:
                              - OK
                              - ERROR
                              - WARNING
                              - IN_PROGRESS
                              - SKIPPED
                            type: string
                          taskUri:
                            description: >-
                              The storage central task that corresponds to the
                              job
                            type: string
                          timestamp:
                            description: Time in UTC when schedule was triggered
                            example: '2020-03-03T05:03:08.902Z'
                            format: date-time
                            type: string
                        type: object
                      type: array
                    expireAfter:
                      $ref: '#/components/schemas/ExpireAfter'
                    lockFor:
                      $ref: '#/components/schemas/LockFor'
                    name:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/name
                    namePattern:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/namePattern
                    nextRunTime:
                      description: Time in UTC when the next schedule will trigger
                      example: '2020-03-05T05:03:08.902Z'
                      format: date-time
                      type: string
                    operational:
                      enum:
                        - ACTIVE
                        - SUSPENDED
                      type: string
                    overrides:
                      properties:
                        backupGranularity:
                          $ref: '#/components/schemas/backupGranularity'
                        consistency:
                          $ref: '#/components/schemas/Consistency'
                        createSnapshotOnFailure:
                          $ref: '#/components/schemas/CreateSnapshotOnFailure'
                        expireAfter:
                          $ref: '#/components/schemas/ExpireAfter'
                        lockFor:
                          $ref: '#/components/schemas/LockFor'
                        name:
                          $ref: >-
                            #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/name
                        postScriptInfo:
                          $ref: '#/components/schemas/PostScriptInfoOverrides'
                        preScriptInfo:
                          $ref: '#/components/schemas/PreScriptInfoOverrides'
                        schedule:
                          $ref: '#/components/schemas/Schedule'
                      type: object
                    prevRunTime:
                      description: Time in UTC when the last schedule was triggered
                      example: '2020-03-05T05:03:08.902Z'
                      format: date-time
                      type: string
                    prevSuccessfulRunTime:
                      description: >-
                        Time in UTC when the last successful schedule was
                        triggered
                      example: '2020-03-05T05:03:08.902Z'
                      format: date-time
                      type: string
                    schedule:
                      $ref: '#/components/schemas/Schedule'
                    scheduleId:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/scheduleId
                    sourceProtectionScheduleId:
                      description: >-
                        Id of the source protection schedule. If provided this
                        schedule becomes dependent.
                      type: integer
                    vmwareOptions:
                      $ref: '#/components/schemas/VmwareOptions'
                  type: object
                type: array
              type:
                $ref: >-
                  #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/type
            type: object
          type: array
        resourceUri:
          description: The 'self' reference resource URI for the Protection Policy.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    DataManagementJobsList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/DataManagementJobsDetail'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    DataManagementJobsResume:
      properties:
        scheduleIds:
          description: An array of protection schedule Ids to resume
          items:
            $ref: >-
              #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/scheduleId
          type: array
      type: object
    DataManagementJobsRun:
      properties:
        fullBackup:
          description: This option is to take explicit full backup.
          type: boolean
        includeResources:
          description: >-
            Applicable only for jobs associated with asset group resource. An
            array of asset group members for which the schedules should be run
          items:
            $ref: '#/components/schemas/AssetInfo/properties/id'
          type: array
        scheduleIds:
          description: An array of protection schedule Ids to run now.
          items:
            $ref: >-
              #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/scheduleId
          type: array
      type: object
    DataManagementJobsSuspend:
      properties:
        scheduleIds:
          description: An array of protection schedule Ids to suspend
          items:
            $ref: >-
              #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/scheduleId
          type: array
      type: object
    DataManagementTemplateInfo:
      description: |
        Information about the Protection Policy that was used to create the job.
      properties:
        id:
          description: UUID string uniquely identifying the Protection Policy.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          format: uuid
          type: string
        name:
          description: User defined name of the Protection Policy.
          example: Gold-Protection-Policy
          type: string
        resourceUri:
          description: Reference to resource
          readOnly: true
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    DataManagementTemplatesCreate:
      description: Describes a Protection Policy creation request.
      properties:
        applicationType:
          $ref: '#/components/schemas/ApplicationType'
        description:
          $ref: >-
            #/components/schemas/DataManagementTemplatesDetail/properties/description
        name:
          $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/name'
        protections:
          description: An array of protection objectives
          items:
            properties:
              protectionStoreId:
                description: UUID string uniquely identifying the protection store.
                example: 2a1172be-4281-44f9-848b-9c3f86378b13
                format: uuid
                type: string
              schedules:
                description: >-
                  An array of protection requirements specifying the frequency
                  of creation, targets, retention and expiry related attributes.
                items:
                  properties:
                    expireAfter:
                      $ref: '#/components/schemas/ExpireAfter'
                    lockFor:
                      $ref: '#/components/schemas/LockFor'
                    name:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/name
                    namePattern:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/namePattern
                    postScriptInfo:
                      $ref: '#/components/schemas/PostScriptInfo'
                    preScriptInfo:
                      $ref: '#/components/schemas/PreScriptInfo'
                    schedule:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/schedule
                    scheduleId:
                      $ref: '#/components/schemas/ScheduleInfo/properties/scheduleId'
                    sourceProtectionScheduleId:
                      description: >-
                        Id of the source protection schedule. If provided this
                        schedule becomes dependent.
                      type: integer
                  required:
                    - scheduleId
                    - schedule
                  type: object
                type: array
              type:
                $ref: '#/components/schemas/ProtectionType'
            required:
              - type
              - schedules
            type: object
          type: array
      required:
        - name
        - applicationType
        - protections
    DataManagementTemplatesDetail:
      description: Describes a Protection Policy.
      properties:
        applicationType:
          $ref: '#/components/schemas/ApplicationType'
        assigned:
          description: >-
            Boolean indicating if the Protection Policy has been used to create
            Protection Jobs
          type: boolean
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        createdAt:
          description: UTC time when the Protection Policy was created.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        createdBy:
          description: Information about the user who created the Protection Policy.
          properties:
            id:
              example: 2a1172be-4281-44f9-848b-9c3f86378b13
              format: uuid
              type: string
            name:
              example: Admin
              type: string
          type: object
        description:
          description: A brief description about the Protection Policy.
          example: >-
            Protection Policy protecting Finance department's Virtual Machines
            or datastores.
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the Protection Policy.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          format: uuid
          type: string
        name:
          description: User defined name of the Protection Policy.
          example: Gold-Protection-Policy
          type: string
        protectionJobsInfo:
          description: Details of the Protection Jobs using the Protection Policy
          items:
            properties:
              assetInfo:
                $ref: '#/components/schemas/AssetInfo'
              id:
                example: 2a1172be-4281-44f9-848b-9c3f86378b14
                format: uuid
                type: string
              resourceUri:
                description: Reference to resource.
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        protections:
          description: An array of protection objectives.
          items:
            properties:
              id:
                example: 2a1172be-4281-44f9-848b-9c3f86378b13
                format: uuid
                type: string
              protectionStoreInfo:
                $ref: '#/components/schemas/CopyPoolInfo'
              schedules:
                description: Array of schedules and attributes.
                items:
                  properties:
                    expireAfter:
                      $ref: '#/components/schemas/ExpireAfter'
                    lockFor:
                      $ref: '#/components/schemas/LockFor'
                    name:
                      description: User provided name for this schedule
                      example: Hourly snapshot schedule
                      maxLength: 255
                      minLength: 1
                      type: string
                    namePattern:
                      description: Format for the snapshot names
                      properties:
                        format:
                          description: >-
                            Format for the name with combination of the tokens
                            and alphabets and numbers.
                            "snapprefix-{SourceAssetName}-snapsuffix-{DateFormat}".
                            Total length will be 255 characters. Possible
                            tokens: {SourceAssetName} - Name of the source asset
                            (DB or VM) {DateFormat} - User friendly date and
                            time of artifact creation
                          example: Test_{SourceAssetName}_Copy_{DateFormat}
                          type: string
                      type: object
                    postScriptInfo:
                      $ref: '#/components/schemas/PostScriptInfo'
                    preScriptInfo:
                      $ref: '#/components/schemas/PreScriptInfo'
                    schedule:
                      $ref: '#/components/schemas/Schedule'
                    scheduleId:
                      $ref: '#/components/schemas/ScheduleInfo/properties/scheduleId'
                    sourceProtectionScheduleId:
                      description: >-
                        Id of the source protection schedule. If provided this
                        schedule becomes dependent.
                      type: integer
                  type: object
                type: array
              type:
                $ref: '#/components/schemas/ProtectionType'
            type: object
          type: array
        resourceUri:
          description: The 'self' reference resource URI for the Protection Policy.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: UTC time when the Protection Policy was last updated.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
      required:
        - id
        - type
      type: object
    DataManagementTemplatesList:
      properties:
        count:
          description: The numbers of items to return
          example: 1
          type: integer
        items:
          items:
            $ref: '#/components/schemas/DataManagementTemplatesDetail'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          example: 0
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    DataManagementTemplatesUpdate:
      description: Describes a Protection Policy update request.
      properties:
        description:
          $ref: >-
            #/components/schemas/DataManagementTemplatesDetail/properties/description
        name:
          $ref: '#/components/schemas/DataManagementTemplatesDetail/properties/name'
        protections:
          description: An array of protection objectives
          items:
            properties:
              id:
                example: 2a1172be-4281-44f9-848b-9c3f86378b13
                format: uuid
                type: string
              schedules:
                description: >-
                  An array of protection requirements specifying the frequency
                  of creation, targets, retention and expiry related attributes.
                items:
                  properties:
                    expireAfter:
                      $ref: '#/components/schemas/ExpireAfter'
                    lockFor:
                      $ref: '#/components/schemas/LockFor'
                    name:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/name
                    namePattern:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/namePattern
                    schedule:
                      $ref: >-
                        #/components/schemas/DataManagementTemplatesDetail/properties/protections/items/properties/schedules/items/properties/schedule
                    scheduleId:
                      $ref: '#/components/schemas/ScheduleInfo/properties/scheduleId'
                  required:
                    - scheduleId
                    - schedule
                  type: object
                type: array
            type: object
          type: array
    DataOrchestrator:
      description: Details of the Data Orchestrators
      properties:
        displayName:
          description: User-defined name of the Data Orchestrator.
          example: DO-1
          type: string
        id:
          description: UUID string uniquely identifying the Data Orchestrator.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f399
          type: string
        resourceUri:
          description: The 'self' reference resource URI to the Data Orchestrator
          type: string
      type: object
    DataOrchestratorBasicProperties:
      description: Basic properties of a Data Orchestrator.
      properties:
        connectionState:
          default: DISCONNECTED
          description: Connection state of Data Orchestrator to DSCC.
          enum:
            - CONNECTED
            - DISCONNECTED
          readOnly: true
          type: string
        consoleUri:
          description: The 'self' reference for this resource in the console.
          readOnly: true
          type: string
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        displayName:
          description: User-defined name given to Data Orchestrator.
          example: Data Orchestrator 1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID identifying a Data Orchestrator.
          readOnly: true
          type: string
        name:
          description: Name given to Data Orchestrator.
          example: Data Orchestrator 1
          readOnly: true
          type: string
        resourceUri:
          $ref: '#/components/schemas/CommonResourceProperties/properties/resourceUri'
        serialNumber:
          description: Data Orchestrator serial number.
          readOnly: true
          type: string
        softwareVersion:
          description: Data Orchestrator software version.
          readOnly: true
          type: string
        state:
          default: UNKNOWN
          enum:
            - OK
            - UPGRADING
            - UPDATING
            - RESTORING
            - RECOVERING
            - UNKNOWN
            - DEGRADED
          readOnly: true
          type: string
        stateReason:
          description: >-
            Reason for the Data Orchestrator being in the current state. This
            will be empty when the Data Orchestrator is in an OK state.
          readOnly: true
          type: string
        status:
          enum:
            - OK
            - WARNING
            - ERROR
          readOnly: true
          type: string
        type:
          description: backup-recovery/data-orchestrator
          readOnly: true
          type: string
        upTimeInSeconds:
          description: >-
            Returns the number of seconds since Data Orchestrator was powered
            on. Returns 0 if Data Orchestrator is DISCONNECTED from DSCC.
          readOnly: true
          type: integer
      required:
        - id
        - type
      type: object
    DataOrchestratorDateTimeDetail:
      description: >-
        This details the current date and time of the Data Orchestrator, how the
        current date and time is determined, as well as the user specified
        timezone. The date and time will have either been explicitly set by the
        user, determined from a configured NTP server or synchronized with the
        Data Orchestrator VM host.
      properties:
        methodDateTimeSet:
          description: Method for how data and time is set on the Data Orchestrator.
          enum:
            - NTP
            - VM_HOST
          type: string
        timezone:
          description: Time zone in which the Data Orchestrator is deployed.
          example: Europe/London, Australia/Sydney, Asia/Tokyo, America/NewYork
          type: string
      type: object
    DataOrchestratorDateTimeUpdate:
      description: >-
        These attributes are used to configure the Data Orchestrator date and
        time.
      properties:
        methodDateTimeSet:
          description: Method for how data and time is set on the Data Orchestrator.
          enum:
            - NTP
            - VM_HOST
          type: string
        timezone:
          description: Timezone
          example: Europe/London, Australia/Sydney, Asia/Tokyo, America/NewYork
          type: string
      type: object
    DataOrchestratorDetailedProperties:
      properties:
        createdAt:
          description: UTC time when the Data Orchestrator was activated.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        dateTime:
          $ref: '#/components/schemas/DataOrchestratorDateTimeDetail'
        interfaces:
          $ref: '#/components/schemas/DataOrchestratorInterfacesSummary'
        lastUpdateCheckTime:
          description: UTC time when a software update check was last performed.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        latestRecoveryPoint:
          description: UTC time when Data Orchestrator catalogue was last protected.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        ntp:
          $ref: '#/components/schemas/DataOrchestratorNtpDetail'
        platform:
          description: Hypervisor platform.
          enum:
            - VMWARE_ESXI
          readOnly: true
          type: string
        poweredOnAt:
          description: UTC time when Data Orchestrator was last powered on.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        totalMemoryInGiB:
          description: Total RAM configured for the Data Orchestrator in GiB.
          readOnly: true
          type: integer
        updatedAt:
          description: UTC time when the Data Orchestrator was last updated.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        vCpu:
          description: Number of virtual CPUs configured for the Data Orchestrator.
          readOnly: true
          type: integer
    DataOrchestratorDetails:
      allOf:
        - $ref: '#/components/schemas/DataOrchestratorBasicProperties'
        - $ref: '#/components/schemas/DataOrchestratorDetailedProperties'
        - $ref: '#/components/schemas/DataOrchestratorInfoSightBasicProperties'
      description: Detailed information of a Data Orchestrator.
    DataOrchestratorInfoSightBasicProperties:
      properties:
        adminUserCiphertext:
          description: >-
            Ciphertext to allow HPE Support to authenticate with the Data
            Orchestrator with unrestricted admin privileges.
          readOnly: true
          type: string
        infosightEnabled:
          description: The Data Orchestrator is sending telemetry to InfoSight.
          readOnly: true
          type: boolean
        remoteAccessEnabled:
          description: >-
            HPE Support can remotely access the Data Orchestrator for the
            purposes of debug. For HPE Support to authenticate, the ciphertext
            must be shared by the user.
          readOnly: true
          type: boolean
        remoteAccessStationId:
          description: >-
            An identifier that HPE Support can use to remotely access the Data
            Orchestrator.
          format: uuid
          readOnly: true
          type: string
        supportUserCiphertext:
          description: >-
            Ciphertext to allow HPE Support to authenticate with the Data
            Orchestrator with restricted support privileges.
          readOnly: true
          type: string
      type: object
    DataOrchestratorInfosightUpdate:
      properties:
        remoteAccessEnabled:
          type: boolean
      type: object
    DataOrchestratorInterfacesSummary:
      properties:
        network:
          $ref: '#/components/schemas/DataOrchestratorNetworkSummary'
      type: object
    DataOrchestratorList:
      properties:
        count:
          description: Number of items in the response (for paginated responses)
          type: integer
        items:
          items:
            $ref: '#/components/schemas/DataOrchestratorDetails'
          type: array
        offset:
          description: The offset query parameter specified in the request.
          type: integer
        total:
          description: Total items returned.
          type: integer
      required:
        - items
        - count
    DataOrchestratorNetworkSummary:
      properties:
        defaultGateway:
          description: IP address or FQDN of the default gateway.
          example: 172.29.233.254
          type: string
        hostname:
          description: IP address or FQDN of the Data Orchestrator.
          example: atlas.hpe.com
          type: string
        nameServers:
          description: List of configured DNS servers configured on the Data Orchestrator.
          items:
            properties:
              networkAddress:
                description: IP address or FQDN of DNS server.
                example: 172.29.232.103
                type: string
            type: object
          type: array
        nic:
          $ref: '#/components/schemas/DataOrchestratorNicSummary'
        proxy:
          $ref: '#/components/schemas/DataOrchestratorProxySummary'
        searchDomains:
          description: List of search domains.
          items:
            description: Search domain
            example: mydomain.com
            type: string
          type: array
      type: object
    DataOrchestratorNetworkUpdate:
      properties:
        defaultGateway:
          description: IP address or FQDN of default gateway.
          example: 172.29.233.254
          type: string
        hostname:
          description: IP address or FQDN of the Data Orchestrator.
          example: data-orchestrator.mydomain.com
          type: string
        nameServers:
          description: List of configured DNS servers configured on the Data Orchestrator.
          items:
            properties:
              networkAddress:
                description: IP address or FQDN of DNS server.
                example: 172.29.232.103
                type: string
            type: object
          type: array
        nic:
          items:
            $ref: '#/components/schemas/DataOrchestratorNicUpdate'
          type: array
        proxy:
          $ref: '#/components/schemas/DataOrchestratorProxyUpdate'
        searchDomains:
          description: List of search domains.
          items:
            description: Search domain
            example: mydomain.com
            type: string
          type: array
      type: object
    DataOrchestratorNicDetail:
      properties:
        addressType:
          description: Indicates whether the address is assigned statically or via DHCP.
          enum:
            - DHCP
            - STATIC
          type: string
        enabled:
          description: Indicates whether the interface is enabled or disabled.
          type: boolean
        name:
          description: Name of the network interface.
          example: ens160
          readOnly: true
          type: string
        networkAddress:
          description: IP address associated with the network interface.
          example: 172.29.232.100
          format: ipv4
          type: string
        state:
          description: Indicates whether the interface is up or down.
          enum:
            - UP
            - DOWN
          type: string
        staticRoutes:
          description: List of static routes.
          items:
            description: Details of static route.
            properties:
              gateway:
                description: IP address or FQDN of gateway.
                example: 172.29.233.254
                type: string
              networkAddress:
                description: IP address associated with the static route.
                example: 172.29.232.105
                format: ipv4
                type: string
              subnetMask:
                description: Subnet mask associated with the static route.
                example: 255.255.255.0
                format: ipv4
                type: string
            type: object
          type: array
        subnetMask:
          description: Subnet mask.
          example: 255.255.255.0
          format: ipv4
          type: string
      type: object
    DataOrchestratorNicSummary:
      description: >-
        List of network interfaces configured on the Data Orchestrator. Note
        that this information will not include any loopback interfaces.
      items:
        $ref: '#/components/schemas/DataOrchestratorNicDetail'
      type: array
    DataOrchestratorNicUpdate:
      properties:
        addressType:
          description: Indicates whether the address is assigned statically or via DHCP.
          enum:
            - DHCP
            - STATIC
          type: string
        enabled:
          description: Indicates whether the interface is enabled or disabled.
          type: boolean
        name:
          description: Name of the network interface.
          example: ens160
          type: string
        networkAddress:
          description: IP address associated with the network interface.
          example: 172.29.232.100
          format: ipv4
          type: string
        staticRoutes:
          description: List of static routes.
          items:
            description: Details of static route.
            properties:
              gateway:
                description: IP address or FQDN of gateway.
                example: 172.29.233.254
                type: string
              networkAddress:
                description: IP address associated with the static route.
                example: 172.29.232.105
                format: ipv4
                type: string
              subnetMask:
                description: Subnet mask associated with the static route.
                example: 255.255.255.0
                format: ipv4
                type: string
            type: object
          type: array
        subnetMask:
          description: Subnet mask.
          example: 255.255.255.0
          format: ipv4
          type: string
      type: object
    DataOrchestratorNtpDetail:
      properties:
        ntpServers:
          description: NTP servers against which the Data Orchestrator should synchronize.
          items:
            properties:
              networkAddress:
                description: An IP address or FQDN of the NTP server.
                example: pool.ntp.org
                format: string
                maxLength: 255
                type: string
            type: object
          type: array
        state:
          enum:
            - OK
            - DEGRADED
          readOnly: true
          type: string
        stateReason:
          description: Reason for the current state of the NTP configuration.
          readOnly: true
          type: string
        status:
          enum:
            - OK
            - WARNING
            - ERROR
          readOnly: true
          type: string
      type: object
    DataOrchestratorNtpUpdate:
      properties:
        ntpServers:
          description: NTP servers
          items:
            properties:
              networkAddress:
                description: An IP address or FQDN of the NTP server.
                example: pool.ntp.org
                format: string
                maxLength: 255
                type: string
            type: object
          type: array
      type: object
    DataOrchestratorPowerUpdate:
      properties:
        force:
          default: true
          description: Indicates whether the operation is to be forced.
          type: boolean
      type: object
    DataOrchestratorProxySummary:
      properties:
        credentials:
          properties:
            username:
              type: string
          type: object
        networkAddress:
          description: An IP address or FQDN to address the proxy server
          example: http://proxy.mydomain.com
          maxLength: 255
          type: string
        port:
          description: Port number of the proxy server
          type: integer
      type: object
    DataOrchestratorProxyUpdate:
      properties:
        credentials:
          description: Credentials for the proxy server if required.
          properties:
            password:
              type: string
            username:
              type: string
          type: object
        networkAddress:
          description: An IP address or FQDN to address the proxy server.
          example: http://proxy.mydomain.com
          maxLength: 255
          type: string
        port:
          description: Port number of the proxy server.
          type: integer
      type: object
    DataOrchestratorUpdate:
      properties:
        dateTime:
          $ref: '#/components/schemas/DataOrchestratorDateTimeUpdate'
        displayName:
          description: User-defined name given to the Data Orchestrator.
          example: Data Orchestrator 1
          type: string
        network:
          $ref: '#/components/schemas/DataOrchestratorNetworkUpdate'
        ntp:
          $ref: '#/components/schemas/DataOrchestratorNtpUpdate'
      type: object
    DatacenterInfo:
      description: References to the datacenter that house this virtual machine.
      properties:
        id:
          description: UUID string uniquely identifier of the datacenter.
          example: 16245bf7-2b35-5580-86a6-620faa5b5403
          type: string
        moref:
          description: VMware provided moref for the datacenter.
          example: datacenter-2
          type: string
        name:
          description: VMware provided name for the datacenter.
          example: core-team-dc
          type: string
      type: object
    Datastore:
      description: |
        Represents a single instance of a Datastore
      properties:
        allowedOperations:
          description: List of allowed operation on the datastore.
          example:
            - DATASTORE_CREATE
            - DATASTORE_DELETE
          items:
            enum:
              - DATASTORE_CREATE
              - DATASTORE_DELETE
              - DATASTORE_BACKUP_CREATE
              - DATASTORE_BACKUP_UPDATE
              - DATASTORE_BACKUP_DELETE
              - DATASTORE_SNAPSHOT_CREATE
              - DATASTORE_SNAPSHOT_UPDATE
              - DATASTORE_SNAPSHOT_DELETE
              - DATASTORE_RESTORE
            type: string
          type: array
        appType:
          description: Application type of this asset
          enum:
            - VMWARE
          example: VMWARE
          type: string
        capacityFree:
          description: Unused storage of the datastore in bytes.
          example: 76534
          format: int64
          type: integer
        capacityInBytes:
          description: Size of the datastore in bytes.
          example: 2407653459860
          format: int64
          type: integer
        capacityUncommitted:
          description: Uncommitted storage of the datastore in bytes.
          example: 653422
          format: int64
          type: integer
        clusterInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        datacentersInfo:
          description: List of datacenters to which the datastore is presented to.
          items:
            $ref: '#/components/schemas/DatacenterInfo'
          type: array
        datastoreClassification:
          description: >-
            Classification of datastore types for which protection will be
            disabled
          enum:
            - PROTECTION_STORE_GATEWAY
          type: string
        datastoreType:
          description: Type of the datastore.
          enum:
            - VMFS
            - VVOL
            - NFS
            - VSAN
          example: VMFS
          type: string
        displayName:
          description: A user-friendly name that identifies the datastore.
          example: Nimble-DS1
          type: string
        folderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          example: 754f63f7-1016-40ec-9b8f-610f978b9aec
          type: string
        hostsInfo:
          description: List of hypervisor hosts to which the datastore is presented to.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the datastore
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        moref:
          description: VMware provided moref of the data store
          example: datastore-1234
          type: string
        name:
          description: Name of the datastore as reported by the hypervisor manager.
          example: Nimble-DS2
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        protectionPolicyAppliedAtInfo:
          $ref: '#/components/schemas/ProtectionPolicyAppliedAtInfo'
        protectionStatus:
          $ref: '#/components/schemas/protectionStatus'
        provisioningPolicyInfo:
          $ref: '#/components/schemas/ProvisioningPolicyInfo'
        recoveryPointsExist:
          $ref: '#/components/schemas/recoveryPointsExist'
        replicationInfo:
          $ref: '#/components/schemas/ReplicationInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/datastores/{datastore-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the datastore
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - MOUNTED
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the datastore
          maxLength: 255
          type: string
        status:
          description: The current status of the datastore.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: VMware provided uuid of the datastore.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vmCount:
          description: Number of virtual machines associated with the datastore.
          example: 120
          format: int64
          type: integer
        vmProtectionGroupsInfo:
          description: List of virtual machine protection groups.
          items:
            $ref: '#/components/schemas/VmProtectionGroupInfo'
          type: array
        volumesInfo:
          description: Volumes associated with datastore.
          items:
            $ref: '#/components/schemas/VolumeInfo'
          type: array
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    DatastoreBackup:
      description: Represents a datastore backup.
      properties:
        appType:
          description: Type of the application to which the backup belongs.
          enum:
            - VMWARE
          type: string
        backupSetsInfo:
          description: >-
            Information about the associated backupSetInfo. This is an array to
            handle application backups spanning multiple objects in the device.
          items:
            properties:
              backups:
                description: Details of the individual backup objects.
                items:
                  properties:
                    id:
                      description: |
                        The UUID of backup object.
                      example: d0e48314-730a-11ea-b496-48452098762c
                      format: uuid
                      type: string
                    objectCount:
                      description: Number of objects on the backup.
                      type: integer
                    sizeInMib:
                      description: Size of the backup in mega bytes.
                      example: 614400
                      format: int64
                      type: integer
                    sourceCopyInfo:
                      items:
                        properties:
                          copyType:
                            description: >-
                              Specifies type of copy from where this copy was
                              created.
                            enum:
                              - SNAPSHOT
                              - BACKUP
                            type: string
                          id:
                            description: |
                              The UUID of backup object.
                            example: d0e48314-730a-11ea-b496-48452098762c
                            format: uuid
                            type: string
                          name:
                            description: Name of the copy.
                            example: SnapshotVM-1
                            type: string
                          resourceUri:
                            description: Reference to resource.
                            type: string
                          scsiIdentifier:
                            description: >-
                              SCSI identifier of the volumes. Applicable only
                              for snapshots.
                            type: string
                        type: object
                      type: array
                    sourceVolumeInfo:
                      properties:
                        id:
                          description: |
                            The UUID of the volume.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the volume.
                          example: volume-1
                          type: string
                        resourceUri:
                          description: The 'self' reference for this resource.
                          format: uri
                          readOnly: true
                          type: string
                        scsiIdentifier:
                          description: SCSI identifier of the volume.
                          type: string
                        type:
                          description: The type of resource.
                          example: storage-fleet/volume
                          readOnly: true
                          type: string
                      type: object
                  type: object
                type: array
              sourceStorageSystemInfo:
                description: Information about storage system where application was hosted.
                properties:
                  id:
                    description: UUID string uniquely identifying the storage system.
                    example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                    type: string
                  name:
                    description: Name of the storage system.
                    example: atlas-dev-3par1.ind.hpecorp.net
                    type: string
                  resourceUri:
                    description: Reference to resource.
                    type: string
                  storageSystemType:
                    description: Type of storage system.
                    enum:
                      - HPE_NIMBLE
                      - HPE_PRIMERA
                      - HPE_ALLETRA_STORAGE_MP
                    example: HPE_ALLETRA_STORAGE_MP
                    type: string
                  type:
                    description: Type of storage system.
                    type: string
                type: object
            type: object
          type: array
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          type: string
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not.
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this backup.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator.
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          description: Absolute value of time in UTC when the application snapshot expires.
          format: date-time
          type: string
        fullBackup:
          type: boolean
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the datastore backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          readOnly: true
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            remains locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: A user-friendly name to identify datastore backup.
          example: backup1
          maxLength: 255
          readOnly: true
          type: string
        pointInTime:
          description: |
            Time in UTC at which the application backup
            was created on the device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        protectionStoreInfo:
          $ref: '#/components/schemas/CopyPoolInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/datastores/{id}/backups/id/
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfoObj'
        sourceCopyInfo:
          properties:
            id:
              description: |
                A UUID string uniquely identifying the source copy
                from which the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            name:
              description: Name of the source copy from which backup will be performed.
              type: string
            resourceUri:
              description: The 'self' reference for this resource.
              format: uri
              type: string
            type:
              description: Type of the source copy (Snapshot or backup).
              enum:
                - SNAPSHOT
                - BACKUP
              type: string
          required:
            - id
            - type
          type: object
        state:
          description: The current state of the application backup.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - DELETE_PENDING
            - IN_USE_FOR_RESTORE
            - MOUNTED
            - IN_USE
            - PENDING_DELETE_APPROVAL
          type: string
        stateReason:
          description: Brief reason for the current state of the application backup.
          maxLength: 255
          type: string
        status:
          description: Current status of the application backup.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          description: Information about storage system where backup is created.
          properties:
            displayName:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              type: string
            name:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            resourceUri:
              description: The 'self' reference for this resource.
              example: /backup-recovery/v1beta1/protection-store-gateways/id
              format: uri
              readOnly: true
              type: string
            type:
              description: The type of resource.
              example: backup-recovery/protection-store-gateway
              readOnly: true
              type: string
          type: object
        type:
          description: The type of resource.
          example: backup-recovery/datastore-backup
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          readOnly: true
          type: string
        verificationInfo:
          description: >-
            Backup verification status details. Block level verification of
            backup with snapshot.
          properties:
            state:
              enum:
                - VERIFIED
                - NOT_VERIFIED
                - VERIFYING
                - VERIFY_ERROR
              maxLength: 36
              type: string
            stateReason:
              description: Brief reason for the verification state of backup.
              example: Successfully completed.
              maxLength: 255
              type: string
            status:
              description: Backup verification state.
              enum:
                - OK
                - ERROR
                - WARNING
              example: OK
              maxLength: 36
              type: string
            verifiedAt:
              description: Time in UTC at which the backup was verified.
              example: '2020-03-03T05:03:08.902Z'
              format: date-time
              type: string
          type: object
        verified:
          description: Flag indicating whether the backup-set was verified or not.
          type: boolean
      required:
        - id
        - type
      type: object
    DatastoreBackupList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/DatastoreBackup'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    DatastoreBackupUpdate:
      description: Update a Backup copy of a Datastore.
      properties:
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          $ref: '#/components/schemas/DatastoreBackup/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/DatastoreBackup/properties/lockedUntil'
        name:
          description: Name of the application backup.
          example: Nimble-dat1-backup
          type: string
    DatastoreRestoreFromCopy:
      description: >
        Definition for the request body for restoring the datastore from a

        snapshot or backup. It is mandatory to pass either a snapshot id or a
        backup id.
      properties:
        backupId:
          description: UUID string uniquely identifying the backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        restoreType:
          description: Specifies the type of restore that needs to be performed.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        snapshotId:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        targetDatastoreInfo:
          $ref: '#/components/schemas/alternateDSRestoreRequestParams'
      required:
        - restoreType
        - snapshotId
        - backupId
      type: object
    DatastoreSnapshot:
      properties:
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not.
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or protection policy.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator.
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          description: Absolute value of time in UTC when the application snapshot expires.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            remains locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: Name of the application snapshot.
          example: Nimble-DS1-snap
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application snapshot was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/datastores/id/snapshots/id/
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfoObj'
        snapshotType:
          enum:
            - SNAPSHOT
          type: string
        state:
          description: The current state of the application snapshot.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - DELETE_PENDING
            - IN_USE
            - PENDING_DELETE_APPROVAL
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application snapshot.
          maxLength: 255
          type: string
        status:
          description: Current status of the application snapshot.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemsInfo:
          $ref: '#/components/schemas/VolumeStorageSystemInfo'
        type:
          description: The type of resource.
          example: backup-recovery/datastore-snapshot
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        volumesSnapshotInfo:
          description: Details of the associated snapshot volumes.
          items:
            $ref: '#/components/schemas/VolumeSnapshotInfo'
          type: array
      required:
        - id
        - type
      type: object
    DatastoreSnapshotList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/DatastoreSnapshot'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    DatastoreSnapshotUpdate:
      description: Update a snapshot copy of a datastore.
      properties:
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          $ref: '#/components/schemas/DatastoreSnapshot/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/DatastoreSnapshot/properties/lockedUntil'
        name:
          description: Name of the application snapshot.
          example: Nimble-DS1-snap
          type: string
    DeleteProtectionStoreGatewayNicRequest:
      properties:
        nic:
          properties:
            id:
              description: ID of the nic
              format: uuid
              type: string
    DomainName:
      properties:
        networkAddress:
          description: DNS server configured on the appliance.
          type: string
    EmptyResponse:
      type: object
    ErrorResponse:
      properties:
        debugId:
          description: A unique identifier for the request
          example: f57dcca3345820eb579c9317ce36dd92
          type: string
        errorCode:
          description: A machine friendly identifier for the error response
          type: string
        httpStatusCode:
          description: The HTTP status code of the response
          type: integer
        message:
          description: A user-friendly error message
          example: An example error message
          type: string
      required:
        - httpStatusCode
        - message
        - errorCode
        - debugId
    ExpireAfter:
      description: >-
        Copy expiration attribute, which specifies the expiration for the
        artifacts created.
      properties:
        unit:
          $ref: '#/components/schemas/LockFor/properties/unit'
        value:
          description: Expiration value
          minimum: 1
          type: integer
      type: object
    GatewayConsoleCredentials:
      properties:
        password:
          description: Password for a console user
          type: string
        username:
          description: Username for a console user
          type: string
    GenerateProtectionStoreGatewaySupportBundle:
      properties:
        description:
          description: Description of the support bundle.
          type: string
        slim:
          default: false
          description: Set support bundle type to slim rather than comprehensive.
          type: boolean
    HealthStatus:
      properties:
        state:
          description: Current state of the Protection Store Gateway
          enum:
            - PSG_HEALTH_STATE_UNKNOWN
            - PSG_HEALTH_STATE_OK
            - PSG_HEALTH_STATE_OFF
            - PSG_HEALTH_STATE_WARNING
            - PSG_HEALTH_STATE_CRITICAL
            - PSG_HEALTH_STATE_DEPLOYING
            - PSG_HEALTH_STATE_REGISTERING
            - PSG_HEALTH_STATE_INITIALIZING
            - PSG_HEALTH_STATE_UPGRADING
            - PSG_HEALTH_STATE_UPDATING
            - PSG_HEALTH_STATE_ERROR
            - PSG_HEALTH_STATE_DELETING
          type: string
        stateReason:
          description: >-
            Reason why the Protection Store Gateway is in the current state. 
            This will not be populated if the state is HEALTH_STATE_OK
          type: string
        status:
          description: Current connection status of the Protection Store Gateway
          enum:
            - PSG_HEALTH_STATUS_CONNECTED
            - PSG_HEALTH_STATUS_DISCONNECTED
          type: string
        updatedAt:
          description: last updated timestamp
          format: date-time
          type: string
    HostNetworkSystem:
      description: Host network system information.
      properties:
        portGroups:
          description: List of port group information.
          items:
            $ref: '#/components/schemas/PortGroup'
          type: array
      type: object
    HypervisorCluster:
      description: >
        Represents a single instance of a hypervisor cluster (Vmware ESXi
        Cluster)
      properties:
        appInfo:
          description: Application specific information for this cluster.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this cluster.
                  example: domain-c8
                  type: string
              type: object
          type: object
        clusterPerfMetricInfo:
          description: Hypervisor cluster performance metrics.
          properties:
            cpuCapacityInMhz:
              description: CPU allocated in mega hertz.
              format: int64
              type: integer
            cpuUsageInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memorySizeInBytes:
              description: Memory allocated in bytes.
              format: int64
              type: integer
            memoryUsageInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            totalStorageInBytes:
              description: Storage allocated in bytes.
              format: int64
              type: integer
            usedStorageInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
          type: object
        clusterType:
          description: The type of the hypervisor cluster.
          enum:
            - ESX_CLUSTER
          type: string
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor cluster. This
            will always be same as name since adding or updating hypervisor
            clusters is not supported when managed from a manager, such as the
            vCenter.
          example: myesxcluster1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          type: string
        hypervisorHosts:
          description: >-
            Captures the list of all hosts of this cluster. In a VMWare cluster,
            this entity maps to ESXi hosts.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor cluster.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the cluster as reported by the hypervisor manager.
          example: myesxcluster1
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        networksInfo:
          description: All the network names associated with this cluster.
          example:
            - network-2053
            - network-1005
          items:
            description: Network name.
            type: string
          type: array
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-clusters/{cluster-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor cluster object.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor cluster.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor cluster. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorFolder:
      description: |
        Represents a hypervisor folder resource
      properties:
        appInfo:
          description: Application specific information for this folder.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this folder.
                  example: group-21
                  type: string
              type: object
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor folder. This
            will always be same as name since adding or updating hypervisor
            folders is not supported when managed from a manager, such as the
            vCenter.
          example: myVmFolder
          type: string
        folderType:
          description: The type of the hypervisor folder.
          enum:
            - DATASTORE
            - VM
            - HOST
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor folder.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the folder as reported by the hypervisor manager.
          example: myVmFolder
          maxLength: 255
          readOnly: true
          type: string
        parentFolderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/folders/{folder-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        subFolders:
          description: Captures the list of all sub folders of this folder
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorFolder/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorFolder/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorFolder/properties/type'
            type: object
          type: array
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorHost:
      description: |
        Represents a single instance of a hypervisor host (Vmware ESXi)
      properties:
        appInfo:
          description: Application specific information for this host.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this host.
                  example: host-21
                  type: string
              type: object
          type: object
        cpuInfo:
          $ref: '#/components/schemas/CpuInfo'
        cpuSockets:
          description: CPU sockets information.
          items:
            $ref: '#/components/schemas/CpuSocket'
          type: array
        createdAt:
          description: Time in UTC at which the object was created
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor host. This will
            always be same as name since adding or updating hypervisor hosts is
            not supported when managed from a manager, such as the vCenter.
          example: myESXi
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          type: string
        hciServerUuid:
          description: UUID string uniquely identifying the HCI server.
          type: string
        hostNetworkSystem:
          $ref: '#/components/schemas/HostNetworkSystem'
        hostPerfMetricInfo:
          description: Hypervisor host performance metrics.
          properties:
            cpuCapacityInHz:
              description: CPU allocated in hertz.
              format: int64
              type: integer
            cpuUsageInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memorySizeInBytes:
              description: Memory allocated in bytes.
              format: int64
              type: integer
            memoryUsageInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            totalStorageInBytes:
              description: Storage allocated in bytes.
              format: int64
              type: integer
            usedStorageInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
          type: object
        hostType:
          description: The type of the hypervisor host.
          enum:
            - ESXI
          type: string
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor host.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the host as reported by the hypervisor manager.
          example: myESXi
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address the hypervisor host.
          example: 192.168.0.1
          maxLength: 255
          type: string
        networksInfo:
          description: All the network names associated with this host.
          example:
            - network-2053
            - network-1005
          items:
            description: Network name.
            type: string
          type: array
        parentInfo:
          description: >-
            Parent of this host. It could be a cluster or folder in case of a
            VMware ESXi Host. For a Hyper-V host it will be cluster or host
            group.
          properties:
            displayName:
              description: A user-friendly name that identifies the parent of this host.
              type: string
            id:
              description: UUID uniquely identifying the parent of this host.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the parent of this host.
              example: xyz_cluster
              maxLength: 255
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              description: The type of the parent.
              enum:
                - CLUSTER
                - FOLDER
              type: string
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-hosts/{host-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor host object
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor host
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor host. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageAdaptersInfo:
          description: List of storage adapters associated with this host.
          items:
            properties:
              model:
                description: Model of the adapter
                example: QLogic FastLinQ QL41xxx Series 10/25 GbE Controller (FCoE)
                type: string
              name:
                description: Name of the adapter
                example: vmhba0
                type: string
              status:
                description: Status of the adapter
                enum:
                  - OFFLINE
                  - ONLINE
                  - UNKNOWN
                example: OFFLINE
                type: string
              type:
                description: Type of the adapter
                example: FC
                type: string
              wwn:
                description: WWN of the adapter
                example: 20009440c95b835c
                type: string
            type: object
          type: array
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: A hypervisor host provided durable UID.
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated
          format: date-time
          type: string
        version:
          description: The hypervisor host version.
          example: 6.7.0 build-9030300, R2, 7.2
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorManager:
      description: |
        Represents a single instance of a hypervisor manager (Vmware vCenter)
      properties:
        appInfo:
          description: Hypervisor specific information.
          properties:
            vmware:
              description: VMware specific app info.
              properties:
                datacenters:
                  description: >-
                    Captures all the data center details of the hypervisor
                    manager. VMware: A virtual data center is a container for
                    all the inventory objects required to complete a fully
                    functional environment for operating virtual machines.
                    Microsoft VMM: Datacenter components include virtualization
                    servers, networking components, and storage resources.
                  items:
                    $ref: '#/components/schemas/DatacenterInfo'
                  type: array
              type: object
          type: object
        buildVersion:
          description: The hypervisor manager build details
          example: 6.7.0 build-9030300, NT 6.3, 3.8.13-44.1.1.el6uek.x86_64
          type: string
        createdAt:
          description: Time in UTC at which the object was created
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        dataOrchestratorInfo:
          description: Data Orchestrator specific information.
          properties:
            id:
              description: Unique string identifying the data orchestrator.
              example: 8b4c14a6-3cd5-4907-97c4-cf44c5b642e5
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        dataServicesConnectorsInfo:
          description: Data Services Connectors specific information.
          items:
            properties:
              id:
                description: Unique string identifying the Data Services Connector.
                type: string
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        description:
          description: A brief description of the hypervisor manager.
          maxLength: 255
          type: string
        displayName:
          description: User defined name for the hypervisor manager.
          example: myvcenter1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerType:
          description: >-
            The type of the hypervisor manager. Currently only vCenter is
            supported.
          enum:
            - VMWARE_VCENTER
          type: string
        id:
          description: UUID string uniquely identifying the hypervisor manager.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lastRefreshed:
          description: Time in UTC at which the object was last refreshed.
          format: date-time
          type: string
        name:
          description: Name as reported by the hypervisor manager.
          example: vcenter123.hpe.com
          format: hostname
          maxLength: 255
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address the hypervisor manager
          example: 192.168.0.1
          maxLength: 255
          type: string
        releaseVersion:
          description: The hypervisor manager release version.
          example: 6.7.0 build-9030300, R2, 7.2
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor manager object
          enum:
            - OK
            - ERROR
            - INITIALIZING
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - CONFIGURED
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor manager
          maxLength: 255
          type: string
        status:
          description: The current status of the hypervisor manager resource.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: >-
            A hypervisor manager provided durable UID. In case of VMware it will
            be instanceUUID of the vCenter
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated
          format: date-time
          type: string
        username:
          description: >-
            Name of the user used to access the hypervisor server. Mutually
            exclusive with credentialInfo.
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorNetwork:
      description: |
        Represents a hypervisor network resource
      properties:
        appInfo:
          description: Application specific information for this network.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this network.
                  example: network-21
                  type: string
              type: object
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor network. This
            will always be same as name since adding or updating hypervisor
            networks is not supported when managed from a manager, such as the
            vCenter.
          example: vmNetwork
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hostsInfo:
          description: List of hypervisor hosts to which this network is presented to.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor network resource.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the network as reported by the hypervisor manager.
          example: vmNetwork
          maxLength: 255
          readOnly: true
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/networks/{network-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor network.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor network.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor network. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorResourcePool:
      description: |
        Represents a hypervisor resource pool.
      properties:
        appInfo:
          description: Application specific information for this resource pool.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this resource pool.
                  example: resgroup-21
                  type: string
              type: object
          type: object
        childResourcePools:
          description: Captures the list of all child resource pools.
          items:
            properties:
              displayName:
                $ref: >-
                  #/components/schemas/HypervisorResourcePool/properties/displayName
              id:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/type'
            type: object
          type: array
        clusterInfo:
          description: Hypervisor cluster information.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            moref:
              description: Moref of the hypervisor cluster.
              example: cluster-01
              type: string
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor resource pool.
            This will always be same as name since adding or updating hypervisor
            resource pools is not supported when managed from a manager, such as
            the vCenter.
          example: resourcePool1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: >-
            UUID string uniquely identifying the hypervisor resource pool
            resource.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the resource pool as reported by the hypervisor manager.
          example: resourcePool1
          maxLength: 255
          readOnly: true
          type: string
        ownerInfo:
          description: Owner of this resource pool.
          properties:
            id:
              description: UUID of the owner of this resource pool.
              example: 5ed25c1e-04b2-5636-82fa-61d080b76858
              type: string
            name:
              description: Name of the owner of this resource pool.
              example: Cluster1
              type: string
            type:
              description: Type of the owner of this resource pool.
              example: Cluster
              type: string
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/resource-pools/{pool-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor resource pool.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor resource pool.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor resource pool. Status is
            derived and abstracted to a 'standard status' based on the status
            reported by the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    LockFor:
      description: >-
        Retention attribute, which specifies the retention period for the
        artifacts created. Artifacts are locked for deletion for the specified
        period of time.
      properties:
        unit:
          description: Accepted units
          enum:
            - HOURS
            - DAYS
            - WEEKS
            - MONTHS
            - YEARS
          type: string
        value:
          description: Retention value
          minimum: 1
          type: integer
      type: object
    MSSQLAvailabilityGroup:
      description: Details of the availability group this resource is associated to.
      properties:
        name:
          description: Name of the mssql availability group.
          type: string
        replicas:
          description: The list of instances that are member of the availability group
          items:
            $ref: '#/components/schemas/MSSQLAvailabilityGroupReplica'
          type: array
        role:
          description: Role of the parent instance in this availability group
          enum:
            - PRIMARY
            - SECONDARY
            - UNAVAILABLE
          type: string
        uid:
          description: Unique identifier of the mssql availability group as reported by SQL
          example: 7D0563C3-8627-4B33-96C7
          type: string
      required:
        - id
        - type
      type: object
    MSSQLAvailabilityGroupInfo:
      description: Details of the availability group this resource is associated to.
      properties:
        name:
          description: Name of the mssql availability group.
          type: string
        role:
          description: Role of the parent instance in this availability group.
          enum:
            - PRIMARY
            - SECONDARY
            - UNAVAILABLE
          type: string
        uid:
          description: >-
            Unique identifier of the mssql availability group as reported by
            SQL.
          example: 7D0563C3-8627-4B33-96C7
          type: string
      type: object
    MSSQLAvailabilityGroupReplica:
      description: A member instance of the availability group
      properties:
        id:
          $ref: '#/components/schemas/MSSQLInstance/properties/id'
        name:
          $ref: '#/components/schemas/MSSQLInstance/properties/name'
        resourceUri:
          $ref: '#/components/schemas/MSSQLInstance/properties/resourceUri'
        role:
          description: Role of the replica instance in this availability group.
          enum:
            - PRIMARY
            - SECONDARY
            - UNAVAILABLE
          example: SECONDARY
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    MSSQLDatabase:
      description: |
        Represents a single instance of a MSSQL Database
      properties:
        applicationHostInfo:
          description: >-
            The application host on which the database exists. In case of
            cluster this will be the active host
          properties:
            displayName:
              $ref: '#/components/schemas/ApplicationHost/properties/displayName'
            id:
              $ref: '#/components/schemas/ApplicationHost/properties/id'
            name:
              $ref: '#/components/schemas/ApplicationHost/properties/name'
            resourceUri:
              $ref: '#/components/schemas/ApplicationHost/properties/resourceUri'
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        availabilityGroupInfo:
          $ref: '#/components/schemas/MSSQLAvailabilityGroupInfo'
        clusterInfo:
          description: Cluster related information for the database
          properties:
            clustered:
              description: Indicates if the mssql database is part of a cluster
              example: false
              type: boolean
            role:
              description: The role of the database
              enum:
                - PRIMARY
                - SECONDARY
                - UNKWOWN
              type: string
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the MSSQL Database
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        instanceInfo:
          description: The mssql instance under which the database exists
          properties:
            id:
              description: Unique identifier of the mssql instance
              example: 1b738651-da9f-4c85-88c1-70dbfe1976681
              type: string
            name:
              description: Name of the mssql instance.
              type: string
            resourceUri:
              description: The uri of the mssql instance.
              example: /backup-recovery/v1beta1/mssql-instances/{instance-id}
              type: string
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        mssqlDatabaseProtectionGroupInfo:
          description: Information of the mssql database protection group.
          properties:
            id:
              description: Unique identifier for the mssql database protection group.
              example: 1b738651-da9f-4c85-88c1-70dbfe1976681
              type: string
            name:
              description: Name of the mssql database protection group.
              example: my-protection-group
              type: string
            resourceUri:
              description: The uri of the mssql database protection group.
              example: >-
                /backup-recovery/v1beta1/mssql-database-protection-groups/{protection-group-id}
              type: string
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        name:
          description: Name of the MSSQL Database as configured in the application host
          example: billing-db1
          maxLength: 80
          readOnly: true
          type: string
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        protectionStatus:
          description: >-
            Provides the current protection status of this resource. -
            UNPROTECTED - No policy assigned, No recovery points exists -
            LAPSED      - No policy assigned, at least one recovery points
            exists - PENDING     - Policy assigned, No recovery points exists -
            PARTIAL     - Policy assigned, At least one recovery point exists -
            PROTECTED   - Policy assigned, most recent run of every configured
            schedule is successful - PAUSED      - Policy assigned, one or more
            of the schedules are paused - UNSUPPORTED - No policy can be
            assigned
          enum:
            - UNPROTECTED
            - LAPSED
            - PENDING
            - PARTIAL
            - PROTECTED
            - PAUSED
            - UNSUPPORTED
          example: PROTECTED
          type: string
        recoveryPointsExist:
          description: >-
            Indicates at least one valid recovery point exists for this
            resource.
          example: true
          type: boolean
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/mssql-databases/{db-id}
          type: string
        sizeInBytes:
          description: size of the database in bytes.
          example: 2407653459860
          type: integer
        state:
          description: The current state of the MSSQL Database
          enum:
            - OK
            - UNAVAILABLE
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the MSSQL Database
          maxLength: 255
          type: string
        status:
          description: The current status of the MSSQL Database.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        virtualizationInfo:
          $ref: '#/components/schemas/ApplicationHost/properties/virtualizationInfo'
      required:
        - id
        - type
      type: object
    MSSQLDatabaseBackup:
      properties:
        associatedDatabases:
          description: >-
            Details of the databases whose backup is also part of this backup
            object. On deleting this backup object the backed up data of the
            associated databases which is part of this backup is also deleted
          items:
            description: >-
              Details of a database whose backup is also part of this snapshot
              object.
            properties:
              id:
                $ref: '#/components/schemas/MSSQLDatabase/properties/id'
              name:
                $ref: '#/components/schemas/MSSQLDatabase/properties/name'
              resourceUri:
                $ref: '#/components/schemas/MSSQLDatabase/properties/resourceUri'
              type:
                $ref: '#/components/schemas/MSSQLDatabase/properties/type'
            type: object
          type: array
        backupGranularity:
          $ref: '#/components/schemas/backupGranularity'
        backupSetsInfo:
          description: >-
            Information about the associated backupSetInfo. This is an array to
            handle application backups spanning multiple objects in the device.
          items:
            properties:
              backups:
                description: Details of the individual backup objects
                items:
                  properties:
                    id:
                      description: |
                        The UUID of backup object.
                      example: d0e48314-730a-11ea-b496-48452098762c
                      format: uuid
                      type: string
                    objectCount:
                      description: Number of objects on the backup.
                      type: integer
                    sizeInBytes:
                      description: Size of the backup object.
                      format: int64
                      type: integer
                    sourceCopyInfo:
                      items:
                        properties:
                          copyType:
                            description: >-
                              Specifies type of copy from where this copy was
                              created
                            enum:
                              - SNAPSHOT
                              - BACKUP
                            type: string
                          id:
                            description: |
                              The UUID of backup object.
                            example: d0e48314-730a-11ea-b496-48452098762c
                            format: uuid
                            type: string
                          name:
                            description: Name of the copy.
                            example: SnapshotDB-1
                            type: string
                          resourceUri:
                            description: Reference to resource.
                            type: string
                          scsiIdentifier:
                            description: >-
                              SCSI identifier of the volumes. Applicable only
                              for snapshots
                            type: string
                        type: object
                      type: array
                    sourceVolumeInfo:
                      properties:
                        id:
                          description: |
                            The UUID of the volume.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the volume.
                          example: volume-1
                          type: string
                        resourceUri:
                          description: Reference to resource.
                          type: string
                        scsiIdentifier:
                          description: SCSI identifier of the volume
                          type: string
                      type: object
                  type: object
                type: array
              sourceStorageSystemInfo:
                description: Information about storage system where application was hosted.
                properties:
                  id:
                    description: UUID string uniquely identifying the storage system.
                    example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                    type: string
                  name:
                    description: Name of the storage system.
                    example: atlas-dev-3par1.ind.hpecorp.net
                    type: string
                  resourceUri:
                    description: Reference to resource.
                    type: string
                  type:
                    description: Type of storage system.
                    enum:
                      - NIMBLE
                      - 3PAR
                      - PRIMERA
                      - PROTECTION_STORE_GATEWAY
                      - STOREONCE
                    example: PRIMERA
                    type: string
                type: object
            type: object
          type: array
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this backup.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          description: The customer application identifier.
          type: string
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          description: >-
            Absolute value of time in UTC at which the application backup
            expires.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application backup is
            locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        logBackupInfo:
          properties:
            lastLogBackupTime:
              description: >-
                Time in UTC at which the last log backup was created before the
                next full backup.
              example: '2020-03-03T06:03:08.902Z'
              format: date-time
              type: string
            protectionStoreInfo:
              $ref: >-
                #/components/schemas/MSSQLDatabaseBackup/properties/protectionStoreInfo
            storageSystemInfo:
              $ref: >-
                #/components/schemas/MSSQLDatabaseBackup/properties/storageSystemInfo
          type: object
        name:
          description: Name of the application backup.
          example: Nimble-DB1-snap
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application backup was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        protectionStoreInfo:
          $ref: '#/components/schemas/CopyPoolInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/mssql-databases/{db-id}/backups/{backup-id}
          type: string
        scheduleInfo:
          description: Details about the schedule which created this snapshot.
          properties:
            id:
              description: Client provided id for this schedule.
              format: ^[1-9]+$
              type: string
            name:
              description: User provided name for this schedule
              example: Hourly snapshot schedule
              maxLength: 255
              minLength: 1
              type: string
            recurrence:
              $ref: '#/components/schemas/Schedule/properties/recurrence'
          type: object
        sourceCopyInfo:
          properties:
            id:
              description: >-
                A UUID string uniquely identifying the source copy from which
                the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: Type of the source copy (Snapshot or backup).
              enum:
                - SNAPSHOT
                - BACKUP
              example: SNAPSHOT
              type: string
          required:
            - id
            - type
          type: object
        state:
          description: The current state of the application backup.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - DELETE_PENDING
            - IN_USE_FOR_RESTORE
            - MOUNTED
            - IN_USE
            - PENDING_DELETE_APPROVAL
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application backup.
          maxLength: 255
          type: string
        status:
          description: Current status of the application backup.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          description: Information about storage system where backup is created.
          properties:
            displayName:
              description: Name of the storage system.
              example: atlas-dev-psg1.ind.hpecorp.net
              type: string
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: Type of storage system.
              enum:
                - PROTECTION_STORE_GATEWAY
                - STOREONCE
              example: PROTECTION_STORE_GATEWAY
              type: string
          type: object
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
      type: object
    MSSQLDatabaseBackupList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/MSSQLDatabaseBackup'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    MSSQLDatabaseBackupUpdate:
      description: Update a Backup copy of a MSSQL Database.
      properties:
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          $ref: '#/components/schemas/MSSQLDatabaseBackup/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/MSSQLDatabaseBackup/properties/lockedUntil'
    MSSQLDatabaseList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/MSSQLDatabase'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    MSSQLDatabaseProtectionGroup:
      description: |
        Represents a single instance of an MSSQL databse protection group
      properties:
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        description:
          description: A brief description of the MSSQL database protection group.
          maxLength: 255
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the MSSQL databse protection group
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        members:
          description: >-
            Captures the list of databases that are part of the protection
            group.
          items:
            properties:
              id:
                description: The id of member database
                type: string
              instanceInfo:
                $ref: '#/components/schemas/MSSQLDatabase/properties/instanceInfo'
              name:
                description: Name of the member database
                type: string
              resourceUri:
                description: The uri of member database
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        name:
          description: >-
            A user-friendly name to identify the MSSQL database protection
            group.
          example: My-Test-PG
          type: string
        nativeAppInfo:
          properties:
            availabilityGroupReplicas:
              description: The list of instances that are member of the availability group
              items:
                $ref: '#/components/schemas/MSSQLAvailabilityGroupReplica'
              type: array
            excludeSystemDatabases:
              $ref: >-
                #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/nativeAppInfo/properties/excludeSystemDatabases
            id:
              description: >-
                Unique identifier of the mssql native group when type is
                MSSQL_INSTANCE
              example: 9ce540e3-b552-4ca6-a407-eb0dd3d263b1
              type: string
            instanceInfo:
              $ref: '#/components/schemas/MSSQLDatabase/properties/instanceInfo'
            name:
              description: Name of the mssql native group.
              type: string
            type:
              $ref: >-
                #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/nativeAppInfo/properties/type
            uid:
              description: >-
                Unique identifier of the mssql native group when type is
                AVAILABILITY_GROUP
              example: 7D0563C3-8627-4B33-96C7
              type: string
        protectionGroupType:
          $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/protectionGroupType
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/mssql-database-protection-groups/{protection-group-id}
          type: string
        state:
          description: The current state of the MSSQL databse protection group
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - DELETED
          example: OK
          type: string
        stateReason:
          description: >-
            Brief reason for the current state of the MSSQL databse protection
            group
          maxLength: 255
          type: string
        status:
          description: The current status of the MSSQL databse protection group.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        virtualizationInfo:
          properties:
            hypervisorManagerInfo:
              $ref: >-
                #/components/schemas/VmProtectionGroup/properties/hypervisorManagerInfo
          type: object
      required:
        - id
        - type
      type: object
    MSSQLDatabaseProtectionGroupCreate:
      description: Creates an MSSQL database protection group
      oneOf:
        - $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/members
        - $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/nativeAppInfo
      properties:
        description:
          $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroup/properties/description
        members:
          description: >-
            Captures the list of databases that will be part of the protection
            group.
          items:
            properties:
              resourceUri:
                description: The uri of member database
                type: string
            type: object
          type: array
        name:
          $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup/properties/name'
        nativeAppInfo:
          description: Native group information for creating a native protection group
          properties:
            excludeSystemDatabases:
              description: >-
                True if system databases are to be excluded from native
                protection group of type instance
              example: true
              type: boolean
            id:
              description: >-
                Unique identifier of the mssql native group when type is
                MSSQL_INSTANCE.
              type: string
            type:
              description: Type of the native protection group.
              enum:
                - AVAILABILITY_GROUP
                - MSSQL_INSTANCE
              example: MSSQL_INSTANCE
              type: string
            uid:
              description: >-
                Unique identifier of the mssql native group when type is
                AVAILABILITY_GROUP.
              type: string
          type: object
        protectionGroupType:
          description: >-
            The type of the protection group. This can be 'NATIVE' for MSSQL
            application specific constructs such as an Availability Group, or
            'CUSTOM' if its just a user provided collection of databases.
          enum:
            - NATIVE
            - CUSTOM
          type: string
      required:
        - name
        - protectionGroupType
      type: object
    MSSQLDatabaseProtectionGroupList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/MSSQLDatabaseProtectionGroup'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    MSSQLDatabaseProtectionGroupUpdate:
      description: >
        The members list is the absolute list of member databses and not the
        difference.
      properties:
        description:
          $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/description
        members:
          $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/members
        name:
          $ref: >-
            #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/name
        nativeAppInfo:
          properties:
            excludeSystemDatabases:
              $ref: >-
                #/components/schemas/MSSQLDatabaseProtectionGroupCreate/properties/nativeAppInfo/properties/excludeSystemDatabases
      type: object
    MSSQLDatabaseRestoreFromCopy:
      description: |
        Definition for the request body for restoring the mssql database from a
        snapshot or backup.
        It is mandatory to pass either a snapshot ID or a backup ID.
      properties:
        backupId:
          description: UUID string uniquely identifying the backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        recoveryMode:
          description: >-
            The recovery mode the database will be in at the end of restore
            operation
          enum:
            - WITH_RECOVERY
            - NO_RECOVERY
          type: string
        restoreType:
          description: Specifies the type of restore needs to be performed.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        restoreUntil:
          description: >-
            Time in UTC upto which the recovery needs to be done. This attribute
            is required only if restore from log backup is intended.
          example: '2020-03-03T06:03:08.902Z'
          format: date-time
          type: string
        restoreWithTailLog:
          description: Flag to indicate if the backup operation should backup the tail log
          example: false
          type: boolean
        snapshotId:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        targetDatabaseInfo:
          $ref: '#/components/schemas/AlternateMSSQLDatabaseRestoreRequestParams'
      required:
        - restoreType
      type: object
    MSSQLDatabaseSnapshot:
      properties:
        associatedDatabases:
          description: >-
            Details of the databases whose backup is also part of this snapshot
            object. On deleting this snapshot object the backed up data of the
            associated databases which is part of this snapshot is also deleted
          items:
            description: >-
              Details of a database whose backup is also part of this snapshot
              object.
            properties:
              id:
                $ref: '#/components/schemas/MSSQLDatabase/properties/id'
              name:
                $ref: '#/components/schemas/MSSQLDatabase/properties/name'
              resourceUri:
                $ref: '#/components/schemas/MSSQLDatabase/properties/resourceUri'
              type:
                $ref: '#/components/schemas/MSSQLDatabase/properties/type'
            type: object
          type: array
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or template.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          description: The customer application identifier.
          type: string
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          description: Absolute value of time in UTC at which the snapshot expires.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            is locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        logBackupInfo:
          $ref: '#/components/schemas/MSSQLDatabaseBackup/properties/logBackupInfo'
        name:
          description: Name of the application snapshot.
          example: Nimble-DB1-snap
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application snapshot was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/mssql-databases/{db-id}/snapshots/{snapshot-id}
          type: string
        scheduleInfo:
          description: Details about the schedule which created this snapshot.
          properties:
            id:
              description: Client provided id for this schedule.
              format: ^[1-9]+$
              type: string
            name:
              description: User provided name for this schedule
              example: Hourly snapshot schedule
              maxLength: 255
              minLength: 1
              type: string
            recurrence:
              $ref: '#/components/schemas/Schedule/properties/recurrence'
          type: object
        snapshotType:
          enum:
            - SNAPSHOT
          type: string
        state:
          description: The current state of the application snapshot.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - DELETE_PENDING
            - IN_USE
            - PENDING_DELETE_APPROVAL
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application snapshot.
          maxLength: 255
          type: string
        status:
          description: Current status of the application snapshot.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemsInfo:
          description: Storage info details of this MSSQL Database
          items:
            $ref: '#/components/schemas/StorageSysInfo'
          type: array
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        volumesSnapshotInfo:
          description: Details of the associated snapshot volumes
          items:
            $ref: '#/components/schemas/VolumeSnapshotInfo'
          type: array
      required:
        - id
        - type
      type: object
    MSSQLDatabaseSnapshotList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/MSSQLDatabaseSnapshot'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    MSSQLDatabaseSnapshotUpdate:
      description: Update a snapshot copy of a MSSQL Database.
      properties:
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/MSSQLDatabaseSnapshot/properties/lockedUntil'
    MSSQLInstance:
      description: |
        Represents a single instance of a MSSQL Instance
      properties:
        applicationHostInfo:
          description: The application host on which the instance exists.
          properties:
            displayName:
              $ref: '#/components/schemas/ApplicationHost/properties/displayName'
            id:
              $ref: '#/components/schemas/ApplicationHost/properties/id'
            name:
              $ref: '#/components/schemas/ApplicationHost/properties/name'
            resourceUri:
              $ref: '#/components/schemas/ApplicationHost/properties/resourceUri'
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        availabilityGroupsInfo:
          description: The list of availability groups that are part of the instance.
          items:
            $ref: '#/components/schemas/MSSQLAvailabilityGroup'
          type: array
        clustered:
          description: Indicates if the mssql instance is part of a cluster
          example: false
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        credentials:
          description: MSSQL instance credentials info
          properties:
            mode:
              description: Mode of accessing MSSQL Instance
              enum:
                - WINDOWS
                - SQL
              type: string
            username:
              description: Name of the user used to access the MSSQL Instance
              type: string
          type: object
        customerId:
          description: The customer application identifier.
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the MSSQL Instance
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the MSSQL instance as configured in the application host
          example: mssql-instance-1
          maxLength: 80
          readOnly: true
          type: string
        productName:
          description: A name identifying the MSSQL database software product.
          example: Microsoft SQL Server 2012 R2
          type: string
        productVersion:
          description: Version of the MSSQL databse software.
          example: 10.3.2
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/mssql-instances/{instance-id}
          type: string
        state:
          description: The current state of the MSSQL instance
          enum:
            - OK
            - UNAVAILABLE
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the MSSQL instance
          maxLength: 255
          type: string
        status:
          description: The current status of the MSSQL instance.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        virtualizationInfo:
          $ref: '#/components/schemas/ApplicationHost/properties/virtualizationInfo'
      required:
        - id
        - type
      type: object
    MSSQLInstanceList:
      properties:
        count:
          $ref: '#/components/schemas/CommonListResponse/properties/count'
        items:
          items:
            $ref: '#/components/schemas/MSSQLInstance'
          type: array
        pageLimit:
          description: The numbers of items to return
          type: integer
        pageOffset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - items
        - count
      type: object
    MSSQLInstanceUpdate:
      properties:
        credentials:
          description: MSSQL instance credentials.
          properties:
            mode:
              description: Mode of accessing MSSQL Instance
              enum:
                - WINDOWS
                - SQL
              type: string
            password:
              description: Password used to be used to access the mssql instance
              type: string
            username:
              description: Name of the user to be used to access the mssql instance
              type: string
          type: object
      type: object
    Network:
      properties:
        dns:
          items:
            $ref: '#/components/schemas/DomainName'
          type: array
        hostname:
          description: IP address or FQDN of the appliance
          type: string
        nics:
          items:
            $ref: '#/components/schemas/Nic'
          type: array
        ntp:
          items:
            $ref: '#/components/schemas/Ntp'
          type: array
        proxy:
          $ref: '#/components/schemas/PSGProxy'
    NetworkDebugRequest:
      properties:
        address:
          description: IP address or FQDN of the target device
          type: string
    NetworkName:
      description: Name of the hypervisor network.
      type: string
    NetworkType:
      description: Type of the network
      enum:
        - DHCP
        - STATIC
      type: string
    Nic:
      properties:
        gateway:
          description: Gateway associated with the network interface.
          type: string
        id:
          description: id of the nic
          format: uuid
          type: string
        networkAddress:
          description: IP address associated with the network interface.
          format: ipv4
          type: string
        networkIndex:
          description: >-
            Index associated with the network interface for the Protection Store
            Gateway.
          format: int64
          type: integer
        networkName:
          $ref: '#/components/schemas/NetworkName'
        networkType:
          $ref: '#/components/schemas/NetworkType'
        subnetMask:
          description: Subnet mask.
          format: ipv4
          type: string
    NicTeamingPolicy:
      description: The network adapter teaming policy information.
      properties:
        activeNics:
          description: List of active network adapter information.
          items:
            $ref: '#/components/schemas/ActiveNic'
          type: array
        notifySwitches:
          description: Flag to specify whether or not to notify the switch if a link fails.
          type: boolean
        policyName:
          description: Name of the network adapter teaming policy.
          type: string
        rollingOrder:
          description: >-
            Flag to specify whether or not to use a rolling policy when
            restoring links.
          type: boolean
        useBeaconProbing:
          description: Flag to specify whether or not to use beacon probing.
          type: boolean
      type: object
    Ntp:
      properties:
        networkAddress:
          description: An IP address or FQDN of the NTP server.
          type: string
    PSGDatastoreInfo:
      properties:
        id:
          description: UUID string uniquely identifying the datastore.
          format: uuid
          type: string
        resourceUri:
          description: Reference to resource.
          type: string
        totalProvisionedDiskInTiB:
          description: The total size of the PSG provisioned disk(s) on the datastore.
          type: number
        type:
          description: The type of resource.
          type: string
    PSGDateTime:
      properties:
        methodDateTimeSet:
          description: >-
            Allowed:Ntp, VmHost. Method for how data and time is set on the
            appliance.
          enum:
            - NTP
            - VM_HOST
          type: string
        timezone:
          description: Timezone set on the appliance.
          type: string
        utcDateTime:
          description: UTC date and time set on the appliance.
          format: date-time
          type: string
    PSGProxy:
      properties:
        credentials:
          $ref: '#/components/schemas/ProxyCredentials'
        networkAddress:
          description: An IP address or FQDN to address the proxy server
          type: string
        port:
          description: Port number of the proxy server
          type: integer
    PortGroup:
      description: Port group information.
      properties:
        key:
          description: The linkable identifier for the port group.
          type: string
        name:
          description: Name of the port group.
          type: string
        nicTeamingPolicy:
          $ref: '#/components/schemas/NicTeamingPolicy'
        vlanId:
          description: VLAN ID associated with the port group.
          format: int32
          type: integer
        vswitch:
          description: Virtual switch that contains the port group.
          type: string
        vswitchName:
          description: Virtual switch name.
          type: string
      type: object
    PostScriptInfo:
      description: Details required to run the post-script.
      properties:
        hostId:
          description: Id of the host
          type: string
        params:
          description: Parameters required to run the post-script file.
          type: string
        path:
          description: Specifies the absolute path of the post-script file.
          type: string
        timeoutInSeconds:
          description: Timeout period while running the post-script.
          type: integer
      required:
        - path
        - hostID
      type: object
    PostScriptInfoOverrides:
      properties:
        params:
          description: Parameters required to run the post-script file.
          type: string
      required:
        - params
      type: object
    PreScriptInfo:
      description: Details required to run the pre-script.
      properties:
        hostId:
          description: Id of the host
          type: string
        params:
          description: Parameters required to run the pre-script file.
          type: string
        path:
          description: Specifies the absolute path of the pre-script file.
          type: string
        timeoutInSeconds:
          description: Timeout period while running the pre-script.
          type: integer
      required:
        - path
        - hostID
      type: object
    PreScriptInfoOverrides:
      properties:
        params:
          description: Parameters required to run the pre-script file.
          type: string
      required:
        - params
      type: object
    ProtectionPolicyAppliedAtInfo:
      description: Describes applied protection policy information.
      properties:
        id:
          description: UUID string uniquely identifying the protection policy.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the protection policy.
          example: ProtectionPolicy1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of the protection policy.
          enum:
            - DATASTORE
            - VIRTUAL_MACHINE
            - VM_PROTECTION_GROUP
          example: DATASTORE
          type: string
      type: object
    ProtectionStoreCreate:
      description: Describes a Protection Store creation request.
      properties:
        displayName:
          description: The user-defined name for the Protection Store.
          type: string
        protectionStoreType:
          description: Type of the Protection Store.
          enum:
            - ON_PREMISES
            - CLOUD
          type: string
        region:
          deprecated: true
          description: >-
            The region in which the cloud protection store should be created.
            Deprecated - use storageLocationId instead
          type: string
        storageLocationId:
          description: >-
            The storage location identifier for creating the cloud protection
            store.
          type: string
        storageSystemId:
          description: id of the Storage System (Protection Store Gateway or StoreOnce).
          example: 2a1172be-4281-44f9-848b-9c3f86378b13
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        storageSystemType:
          description: Type of the Storage System
          enum:
            - PROTECTION_STORE_GATEWAY
            - STOREONCE
          type: string
    ProtectionStoreDetail:
      description: >-
        Describes a Protection Store that represents the target on which
        recovery points would reside.
      properties:
        cloudStoreAddress:
          description: >-
            List of URLs for the storage provisioned for the Cloud Protection
            Store.
          example:
            - >-
              https://cosm-9d7ab727-38c2-43ac-938d-99b9bf6d2e08.s3.us-east-1.amazonaws.com
          items:
            type: string
          type: array
        connectedState:
          description: >-
            The connected state of the Protection Store. The store is
            DISCONNECTED if its no longer associated with a Storage System.
          enum:
            - CONNECTED
            - DISCONNECTED
          type: string
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        createdAt:
          description: UTC time when the Protection Store was created.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          example: 9b4c14a63cd5490797c4cf44c5b641e4
          format: uuid
          type: string
        dataOrchestratorInfo:
          items:
            $ref: '#/components/schemas/DataOrchestrator'
          type: array
        displayName:
          description: The user-defined name for the Protection Store.
          example: cloud_store_SOD5057LHR
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the Protection Store.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          type: string
        maxCapacityInBytes:
          description: >-
            Maximum capacity of the Protection Store in bytes. This is
            applicable only for On-premises Protection Stores.
          example: 2407653459860
          format: int64
          type: integer
        name:
          description: >-
            The system-defined name for the Protection Store. This will be the
            name of the Catalyst store on the Storage System.
          type: string
        protectionStoreType:
          description: Type of the Protection Store.
          enum:
            - ON_PREMISES
            - CLOUD
          type: string
        region:
          deprecated: true
          description: The region in which the Cloud Protection Store is created.
          type: string
        resourceUri:
          description: The 'self' reference resource URI for the Protection Store.
          example: /backup-recovery/v1beta1/protection-stores/{id}
          type: string
        sizeOnDiskInBytes:
          description: >-
            Consumed capacity in bytes of the recovery points in Protection
            Store.
          example: 2407653459860
          format: int64
          type: integer
        state:
          description: The current state of the Protection Store.
          enum:
            - OFFLINE
            - ONLINE
            - READ_ONLY
            - NOT_READY
            - STORE_FAILURE
          type: string
        stateReason:
          description: Summary reason for the current state of the Protection Store.
          maxLength: 255
          type: string
        status:
          description: The current status of the Protection Store.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageLocationInfo:
          $ref: '#/components/schemas/StorageLocation'
          type: object
        storageSystemInfo:
          description: Describes the Storage System hosting the Protection Store.
          properties:
            displayName:
              description: The user-defined name of the Storage System.
              example: SOD5057LHR
              type: string
            id:
              description: UUID string uniquely identifying the Storage System.
              example: 19Z1HYVZD5057LHR
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: Type of Storage System.
              enum:
                - PROTECTION_STORE_GATEWAY
                - STOREONCE
              example: PROTECTION_STORE_GATEWAY
              type: string
          type: object
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: UTC time when the Protection Store was last updated.
          example: '2019-07-21T17:32:28Z'
          format: date-time
          type: string
        userDataStoredInBytes:
          description: >-
            Total size of the recovery points in bytes stored in the Protection
            Store.
          example: 2407653459860
          format: int64
          type: integer
      required:
        - id
        - type
        - createdAt
        - updatedAt
      type: object
    ProtectionStoreEdit:
      description: Describes a Protection Store modify request.
      properties:
        displayName:
          description: The user-defined name for the Protection Store.
          type: string
    ProtectionStoreGateway:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
        - $ref: '#/components/schemas/ProtectionStoreGatewayProperties'
    ProtectionStoreGatewayList:
      properties:
        count:
          description: Number of items in the response (for paginated responses)
          type: integer
        items:
          items:
            $ref: '#/components/schemas/ProtectionStoreGateway'
          type: array
        limit:
          description: The limit specified in the query parameter.
          example: 1
          type: integer
        offset:
          description: The offset specified in the query parameter.
          example: 0
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - items
        - count
    ProtectionStoreGatewayPatchRequest:
      properties:
        dateTime:
          $ref: '#/components/schemas/PSGDateTime'
        dns:
          description: DNS servers of the appliance
          items:
            $ref: '#/components/schemas/DomainName'
          type: array
        ntp:
          description: NTP servers of the appliance
          items:
            $ref: '#/components/schemas/Ntp'
          type: array
        proxy:
          $ref: '#/components/schemas/PSGProxy'
    ProtectionStoreGatewayPostRequest:
      example:
        hypervisorManagerId: aa1974ec-3b28-406f-8d84-85528d590a6b
        name: EG-172.31.57.71
        vmConfig:
          datastoreIds:
            - 70968004-886c-582e-b09a-c98396d0db68
            - 098c18ff-ae3d-55a7-8967-00869c1ac71c
          hostId: 234f54ab-e93c-5bc7-9daa-3dcd93fc0ae0
          maxInCloudDailyProtectedDataInTiB: 90
          maxInCloudRetentionDays: 90
          maxOnPremDailyProtectedDataInTiB: 5
          maxOnPremRetentionDays: 5
          network:
            dns:
              - networkAddress: 172.31.56.9
              - networkAddress: 172.31.56.10
              - networkAddress: 172.31.35.101
            gateway: 172.31.63.254
            name: dvportgroup-30
            networkAddress: 172.31.57.71
            networkType: STATIC
            subnetMask: 255.255.248.0
      properties:
        hypervisorManagerId:
          description: Unique identifier, UUID.
          type: string
        name:
          description: The name of the Protection Store Gateway
          type: string
        vmConfig:
          $ref: '#/components/schemas/VMConfig'
      required:
        - hypervisorManagerId
        - name
        - vmConfig
    ProtectionStoreGatewayProperties:
      properties:
        adminUserCiphertext:
          type: string
        consoleUri:
          description: URI for the console screen that displays this resource
          type: string
        dataOrchestratorId:
          description: >-
            The id of the Data Orchestrator this Protection Store Gateway is
            associated with
          type: string
        datastoresInfo:
          items:
            $ref: '#/components/schemas/PSGDatastoreInfo'
          type: array
        displayName:
          description: The display name of this Protection Store Gateway
          type: string
        health:
          allOf:
            - $ref: '#/components/schemas/HealthStatus'
          description: Health of Protection Store Gateway.
        network:
          allOf:
            - $ref: '#/components/schemas/Network'
          description: Network of Protection Store Gateway.
        override:
          allOf:
            - $ref: '#/components/schemas/SizeOverrideRequest'
          description: >
            User supplied parameters used to override automatic VM resource
            configuration with a fixed configuration.

            If 0 is returned for the values then no override has been
            configured.
        remoteAccessEnabled:
          type: boolean
        remoteAccessStationId:
          description: The station ID (SID) that is required for remote desktop access
          type: string
        serialNumber:
          description: The serial number of this Protection Store Gateway
          type: string
        size:
          allOf:
            - $ref: '#/components/schemas/SizeRequest'
          description: User supplied parameters used to size the Protection Store Gateway.
        softwareVersion:
          description: Software version of the Protection Store Gateway
          type: string
        state:
          description: State of Protection Store Gateway.
          enum:
            - PSG_STATE_QUERYING_CATALOGUE
            - PSG_STATE_DEPLOYING
            - PSG_STATE_DEPLOYED
            - PSG_STATE_DEPLOYED_ERROR
            - PSG_STATE_REGISTERING
            - PSG_STATE_REGISTERED
            - PSG_STATE_REGISTERED_ERROR
            - PSG_STATE_OK
            - PSG_STATE_DELETING
            - PSG_STATE_ERROR
            - PSG_STATE_POWERING_ON
            - PSG_STATE_DELETING_STORES
            - PSG_STATE_DELETING_UNREGISTERING
            - PSG_STATE_DELETING_VM_SHUTTING_DOWN
            - PSG_STATE_DELETING_VM_DELETING
            - PSG_STATE_DEPLOYING_STORAGE
            - PSG_STATE_UPDATING_STORAGE_MOD
            - PSG_STATE_UPDATING_STORAGE_DEL
            - PSG_STATE_UPDATING_STORAGE_ADD
            - PSG_STATE_UPDATING
            - PSG_STATE_VM_POWERING_ON
            - PSG_STATE_VM_SHUTTING_DOWN
            - PSG_STATE_VM_RESTARTING
            - PSG_STATE_OK_OFF
            - PSG_STATE_UNKNOWN
            - PSG_STATE_VM_CREATING_NIC
            - PSG_STATE_VM_UPDATING_RESOURCES
            - PSG_STATE_CONFIGURING_RESOURCES
            - PSG_STATE_REBOOTING_AFTER_RESTORE
            - PSG_STATE_REBOOTED_AFTER_RESTORE
          type: string
        supportUserCiphertext:
          type: string
        vmId:
          description: Id of the VM
          type: string
    ProtectionStoreList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/ProtectionStoreDetail'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          example: 0
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
      type: object
    ProtectionStoreReattach:
      description: Reattach a Cloud Protection Store to a Storage System.
      properties:
        storageSystemId:
          description: id of the Storage System (Protection Store Gateway or StoreOnce).
          example: 2a1172be-4281-44f9-848b-9c3f86378b13
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        storageSystemType:
          description: Type of the Storage System
          enum:
            - PROTECTION_STORE_GATEWAY
            - STOREONCE
          type: string
    ProtectionType:
      description: >-
        Specifies type of protection. It is a mandatory field. 'SNAPSHOT' and
        'REPLICATED_SNAPSHOT' types are array level snapshots.
      enum:
        - SNAPSHOT
        - BACKUP
        - CLOUD_BACKUP
        - REPLICATED_SNAPSHOT
        - DATABASE_LOG_BACKUP
      type: string
    ProvisioningPolicyInfo:
      description: Describes provisioning policy information.
      properties:
        id:
          description: UUID string uniquely identifying the provisioning policy.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the provisioning policy.
          example: ProvisioningPolicy1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: The type of the resource
          type: string
      type: object
    ProxyCredentials:
      properties:
        password:
          description: Password of proxy server
          format: password
          type: string
        username:
          description: Username of proxy server
          type: string
    ReplicationInfo:
      description: >-
        Replication groups information containing details of all replication
        partners. Applicable only for Protection Group type
        'STORAGE_REPLICATION_GROUP'
      properties:
        id:
          description: Id of the replication group.
          type: string
        name:
          description: Name of the replication group.
          type: string
        partnerDetails:
          description: List of Volumes associated with vm protection group.
          items:
            $ref: '#/components/schemas/ReplicationPartnerInfo'
          type: array
        resourceUri:
          description: Uri representing replication group in Storage Fleet
          example: /storage-fleet/v1/storage-systems/{uuid}/volume-sets
          format: Uri
          readOnly: true
          type: string
        type:
          description: type representing volume-set in Storage Fleet
          example: storage-fleet/volume-set
          readOnly: true
          type: string
      type: object
    ReplicationPartnerInfo:
      description: 'Details of the replication partnerDetails:'
      properties:
        id:
          description: Id of the storage system, applicable only for Nimble storage systems
          type: string
        mode:
          description: Replication Mode
          enum:
            - SYNCHRONOUS
            - PERIODIC
          type: string
        name:
          description: Name of the replication partner Array
          type: string
        systemWwn:
          description: storage system wwn in case of Primera
          type: string
        vendorName:
          description: Vendor name
          enum:
            - NIMBLE
            - PRIMERA
          type: string
      type: object
    ResizeRequest:
      allOf:
        - $ref: '#/components/schemas/SizeRequest'
      example:
        datastoreIds:
          - aaaaaaa8-aaa4-aaa4-aaa4-aaaaaaaaaa12
          - aaaaaaa8-aaa4-bbb4-aaa4-aaaaaaaaaa12
        maxInCloudDailyProtectedDataInTiB: 3
        maxInCloudRetentionDays: 5
        maxOnPremDailyProtectedDataInTiB: 5
        maxOnPremRetentionDays: 5
      properties:
        datastoreIds:
          description: IDs of datastores PSG should use. Including existing ones
          items:
            $ref: '#/components/schemas/PSGDatastoreInfo/properties/id'
          type: array
        override:
          allOf:
            - $ref: '#/components/schemas/SizeOverrideRequest'
          description: >-
            Override automatic VM resource configuration with a fixed
            configuration.
    Schedule:
      description: This schema defines a schedule.
      properties:
        activeTime:
          description: >-
            Active time for the schedule. If specified then the schedule will be
            executed only in this period. Applicable only for 'BY_MINUTES' and
            'HOURLY' schedules only.
          properties:
            activeFromTime:
              description: UTC time of day when schedule is active from.
              example: '16:15'
              format: HH:MM
              type: string
            activeUntilTime:
              description: UTC time of day when schedule is active until.
              example: '20:15'
              format: HH:MM
              type: string
          required:
            - activeFromTime
            - activeUntilTime
          type: object
        recurrence:
          description: Specifies the recurrence.
          enum:
            - BY_MINUTES
            - HOURLY
            - DAILY
            - WEEKLY
            - MONTHLY
          type: string
        repeatInterval:
          description: >-
            Specifies the repeat interval. The interpretation varies with
            recurrence type. Examples: - 'BY_MINUTES' every '15' -> Every 15
            minutes - 'HOURLY' every '6' on '30' -> Every 6 hours on half past
            of that hour - 'DAILY' every '1', startTime '06:00' -> Every day at
            06:00 - 'WEEKLY' every '2' on '0' -> Every two weeks on the Monday
            of that week. - 'MONTHLY' every '3' on '7' -> Every three months on
            the 7th day of the month.
          properties:
            every:
              description: >-
                Specifies the recurrence interval. 'BY_MINUTES' [1...60],
                'HOURLY' [1...24], 'DAILY' [1...n], 'WEEKLY' [1...n], 'MONTHLY'
                [1...n]
              type: integer
            'on':
              description: >-
                'BY_MINUTES' N/A. 'HOURLY' specific minute [0...59]. 'DAILY'
                N/A, startTime can be used to specify exact hour and minute of
                schedule run. 'WEEKLY' specific day of the week [0...6]. This is
                [mon-sun]. 'MONTHLY' specific day of the month [0...31]. '0' is
                used to specify last day of the month.
              items:
                type: integer
              type: array
          required:
            - every
          type: object
        startTime:
          description: >-
            Time when schedule is to be executed. Applicable for 'DAILY',
            'WEEKLY' and 'MONTHLY' schedules only.
          example: '16:35'
          format: HH:MM
          type: string
      required:
        - recurrence
        - repeatInterval
      type: object
    ScheduleInfo:
      description: |
        Details about the schedule which created this snapshot.
      properties:
        name:
          description: |
            User provided name for this schedule
          example: Hourly snapshot schedule
          maxLength: 255
          minLength: 1
          type: string
        recurrence:
          $ref: '#/components/schemas/Schedule/properties/recurrence'
        scheduleId:
          description: Client provided id for this schedule.
          format: ^[1-9]+$
          type: integer
      type: object
    ScheduleInfoObj:
      description: |
        Details about the schedule that created this snapshot.
      properties:
        name:
          description: |
            User provided name for this schedule
          example: Hourly snapshot schedule
          maxLength: 255
          minLength: 1
          type: string
        recurrence:
          description: Specifies the recurrence.
          enum:
            - BY_MINUTES
            - HOURLY
            - DAILY
            - WEEKLY
            - MONTHLY
          type: string
        scheduleId:
          description: Client provided id for this schedule.
          format: ^[1-9]+$
          type: integer
      type: object
    Services:
      description: >-
        List of services this object belongs to.  This list can be used to
        filter specific services in the UI.
      example:
        - hci-manager
        - backup-and-recovery
      items:
        description: External name of the service.
        type: string
      type: array
    SetRemoteSupportRequest:
      properties:
        enabled:
          type: boolean
      type: object
    SizeErrorResults:
      allOf:
        - $ref: '#/components/schemas/ErrorResponse'
        - properties:
            invalidReasons:
              description: Reasons why the input values are invalid.
              items:
                type: string
              type: array
    SizeOverrideRequest:
      properties:
        cpu:
          description: Number of vCPU cores.
          example: 8
          type: number
        ramInGiB:
          description: Amount of RAM in GiB.
          example: 24
          type: number
        storageInTiB:
          description: Total storage capacity (TiB) of the Protection Store Gateway.
          example: 2
          type: number
    SizeRequest:
      properties:
        maxInCloudDailyProtectedDataInTiB:
          description: >-
            The maximum total size of the assets that is expected to be
            protected each day in the Cloud Protection Stores.
          example: 2
          type: number
        maxInCloudRetentionDays:
          description: The maximum retention period for cloud backups in days.
          example: 2
          type: number
        maxOnPremDailyProtectedDataInTiB:
          description: >-
            The maximum total size of the assets that is expected to be
            protected each day in the On-Prem Protection Store.
          example: 2
          type: number
        maxOnPremRetentionDays:
          description: The maximum retention period for local backups in days.
          example: 2
          type: number
    SizeResults:
      properties:
        iops:
          description: >-
            IOPs that the underlying storage system must support to achieve the
            desired throughput.
          example: 2
          type: number
        ramInGiB:
          description: Amount of RAM in GiB required.
          example: 2
          type: number
        storageInTiB:
          description: >-
            Total size (TiB) of datastores that the Protection Store Gateway
            requires.
          example: 2
          type: number
        vCpu:
          description: Number of vCPU cores required.
          example: 2
          type: number
    StorageFolderInfo:
      description: Information of storage folder.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage folder.
          type: string
        id:
          description: UUID string uniquely identifying the storage folder.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the storage folder.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of storage folder.
          type: string
      type: object
    StorageLocation:
      description: Details of the Storage Location for Cloud Protection Store
      properties:
        id:
          description: String uniquely identifying the Storage Location.
          example: aws:ap-southeast-3
          type: string
        name:
          description: A system specified name for the resource.
          example: Jakarta - AWS
          type: string
        resourceUri:
          description: The 'self' reference resource URI to the Storage Location.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    StoragePoolInfo:
      description: Describes a storage pool.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage pool.
          type: string
        id:
          description: UUID string uniquely identifying the storage pool.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the storage pool.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of storage pool.
          type: string
      type: object
    StorageSysInfo:
      description: Describes a storage system.
      properties:
        id:
          description: UUID string uniquely identifying the storage system.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          format: uuid
          type: string
        name:
          description: Name of the storage system.
          example: alletra9000.domain.net
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
      type: object
    StorageSystemInfo:
      description: Describes a storage system.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage system.
          example: my-dev-3par1.ind.hpecorp.net
          type: string
        id:
          description: UUID string uniquely identifying the storage system.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        managed:
          description: Specify if the storage system is registered.
          type: boolean
        name:
          description: Name of the storage system.
          example: atlas-dev-3par1.ind.hpecorp.net
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        serialNumber:
          description: Serial number of the storage system.
          example: AF-10122
          type: string
        type:
          description: Type of storage system.
          enum:
            - NIMBLE
            - THREEPAR
            - PRIMERA
            - ALLETRA_6000
            - ALLETRA_9000
          example: ALLETRA_9000
          type: string
        vendorName:
          description: Storage system provider name.
          example: hpe
          maxLength: 255
          type: string
      type: object
    StoreOnce:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
        - $ref: '#/components/schemas/StoreOnceProperties'
    StoreOnceDataOrchestrator:
      properties:
        id:
          description: ID of the Data Orchestrator
          type: string
        name:
          description: Name of the Data Orchestrator
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          type: string
        serialNumber:
          description: Serial number of the Data Orchestrator
          type: string
        type:
          description: Type of the resource
          type: string
    StoreOnceDateTime:
      properties:
        methodDateTimeSet:
          description: >-
            Allowed:Ntp, Manual. Method for how data and time is set on the
            appliance.
          enum:
            - NTP
            - MANUAL
          type: string
        timezone:
          description: timezone set on the appliance.
          type: string
        utcDateTime:
          description: UTC date and time set on the appliance.
          format: date-time
          type: string
    StoreOnceDomainName:
      properties:
        networkAddress:
          description: DNS server configured on the appliance.
          type: string
    StoreOnceFibreChannel:
      properties:
        initiators:
          items:
            $ref: '#/components/schemas/StoreOnceInitiator'
          type: array
    StoreOnceHealthStatus:
      properties:
        state:
          description: current state of the StoreOnce
          enum:
            - SO_HEALTH_STATE_UNKNOWN
            - SO_HEALTH_STATE_OK
            - SO_HEALTH_STATE_WARNING
            - SO_HEALTH_STATE_CRITICAL
            - SO_HEALTH_STATE_REGISTERING
            - SO_HEALTH_STATE_ERROR
            - SO_HEALTH_STATE_DELETING
          type: string
        stateReason:
          description: Reason for states other than SO_HEALTH_STATE_OK.
          oneOf:
            - type: 'null'
            - type: string
        status:
          description: current connection status of the StoreOnce
          enum:
            - SO_HEALTH_STATUS_CONNECTED
            - SO_HEALTH_STATUS_DISCONNECTED
          type: string
        updatedAt:
          description: last updated timestamp
          format: date-time
          type: string
    StoreOnceInitiator:
      properties:
        fcid:
          description: This is the FC identifier as identified by the FC initiator.
          type: string
        id:
          description: >-
            This is the identifier of the FC initiator as defined by the
            physical StoreOnce.
          type: string
        online:
          description: Indicates if online.
          type: string
        wwnn:
          description: WW Node Name
          type: string
        wwpn:
          description: WW Port Name
          type: string
    StoreOnceList:
      properties:
        count:
          description: Number of items in the response
          example: 1
          format: int64
          type: integer
        items:
          items:
            $ref: '#/components/schemas/StoreOnce'
          type: array
        offset:
          description: Offset of the current result set
          example: 1
          format: int64
          type: integer
        total:
          description: Total number of StoreOnces
          example: 1
          format: int64
          type: integer
      required:
        - items
        - total
        - count
        - offset
    StoreOnceNetwork:
      properties:
        dns:
          items:
            $ref: '#/components/schemas/StoreOnceDomainName'
          type: array
        hostname:
          description: IP address or FQDN of the appliance
          type: string
        nics:
          items:
            $ref: '#/components/schemas/StoreOnceNic'
          type: array
        ntp:
          items:
            $ref: '#/components/schemas/StoreOnceNtp'
          type: array
    StoreOnceNetworkName:
      description: Name of the hypervisor network.
      type: string
    StoreOnceNetworkType:
      description: Type of the network
      enum:
        - DHCP
        - STATIC
      type: string
    StoreOnceNic:
      properties:
        gateway:
          description: Gateway associated with the network interface.
          type: string
        id:
          description: id of the nic
          type: string
        networkAddress:
          description: IP address associated with the network interface.
          format: ipv4
          type: string
        networkIndex:
          description: >-
            Index associated with the network interface for the catalyst
            gateway.
          format: int64
          type: integer
        networkName:
          $ref: '#/components/schemas/StoreOnceNetworkName'
        networkType:
          $ref: '#/components/schemas/StoreOnceNetworkType'
    StoreOnceNtp:
      properties:
        networkAddress:
          description: An IP address or FQDN of the NTP server.
          type: string
    StoreOncePatchRequest:
      properties:
        description:
          description: More detailed description of the appliance
          maxLength: 255
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address StoreOnce
          maxLength: 255
          type: string
      required:
        - networkAddress
    StoreOncePostRequest:
      properties:
        credentials:
          description: Credentials for connecting StoreOnce
          properties:
            password:
              type: string
            username:
              type: string
          type: object
        description:
          description: More detailed description of the appliance
          maxLength: 255
          type: string
        name:
          description: Friendly human-readable name
          maxLength: 255
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address StoreOnce
          type: string
        serialNumber:
          description: Unique identifier
          type: string
      required:
        - serialNumber
        - username
        - password
        - networkAddress
    StoreOnceProperties:
      properties:
        dataOrchestrators:
          items:
            $ref: '#/components/schemas/StoreOnceDataOrchestrator'
          type: array
        dateTime:
          allOf:
            - $ref: '#/components/schemas/StoreOnceDateTime'
          description: Datetime of StoreOnce.
        description:
          description: More detailed description of the appliance
          maxLength: 255
          type: string
        fibreChannel:
          allOf:
            - $ref: '#/components/schemas/StoreOnceFibreChannel'
          description: Fibre Channel of StoreOnce
        health:
          allOf:
            - $ref: '#/components/schemas/StoreOnceHealthStatus'
          description: Health of StoreOnce.
        iscsiInitiatorName:
          description: The IQN of the iSCSI initiator
          type: string
        network:
          allOf:
            - $ref: '#/components/schemas/StoreOnceNetwork'
          description: Network of StoreOnce.
        serialNumber:
          description: The serial number of this StoreOnce
          type: string
        softwareVersion:
          description: softwareVersion of StoreOnce
          type: string
        storage:
          allOf:
            - $ref: '#/components/schemas/StoreOnceStorage'
          description: Storage of StoreOnce.
        type:
          description: Type of the resource
          type: string
    StoreOnceStorage:
      description: >-
        Only configured, licensed capacity is available for local copy-pool(s)
        consumption.
      properties:
        capacityLicensedBytes:
          description: Amount of licensed storage capacity.
          format: int64
          type: integer
        capacityUnlicensedBytes:
          description: Amount of configured capacity which has not yet been licensed.
          format: int64
          type: integer
        configuredStorageBytes:
          description: >-
            Physical storage which has been added to the StoreOnce and
            configured.
          format: int64
          type: integer
        freeBytes:
          description: Free bytes left in storage
          format: int64
          type: integer
        state:
          description: Current state of the storage.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        unconfiguredStorageBytes:
          description: >-
            Physical storage which has been added to the StoreOnce but not
            configured.
          format: int64
          type: integer
        usedBytes:
          description: Bytes being used in storage
          format: int64
          type: integer
    TOTPResponse:
      properties:
        expiresInSeconds:
          description: Expiry time before the TOTP will be invalid.
          readOnly: true
          type: string
        totp:
          description: >-
            A time-based one-time passcode (TOTP) that can be used to
            authenticate with  a Data Orchestrator local management interface if
            the Data Orchestrator  cannot be managed through DSCC.
          readOnly: true
          type: string
      required:
        - totp
        - expiresInSeconds
      type: object
    UpdateProtectionStoreGatewayNicRequest:
      properties:
        force:
          description: >-
            Optional. Defaults to 'true' if not specified. If specified and
            'false' ,  the network changes will not be applied to Protection
            Store Gateway instance but will be applied to DSCC.  If specified
            and 'true' the network changes will be applied to both Catalyst
            Store Gateway instance and DSCC.
          example: true
          type: boolean
        nic:
          properties:
            gateway:
              description: Gateway associated with the network interface.
              type: string
            id:
              description: id of the nic
              format: uuid
              type: string
            networkAddress:
              description: IP address associated with the network interface.
              format: ipv4
              type: string
            networkName:
              $ref: '#/components/schemas/NetworkName'
            networkType:
              $ref: '#/components/schemas/NetworkType'
            subnetMask:
              description: Subnet mask.
              format: ipv4
              type: string
    VMConfig:
      allOf:
        - $ref: '#/components/schemas/SizeRequest'
      properties:
        clusterId:
          description: >-
            Id of the cluster. Only required if host or resource pool is not
            given
          type: string
        contentLibraryId:
          description: Id of the datastore for the content library
          type: string
        datastoreIds:
          items:
            $ref: '#/components/schemas/PSGDatastoreInfo/properties/id'
          type: array
        folderId:
          description: Id of the folder
          type: string
        hostId:
          description: >-
            Id of the Host. Only required if cluster or resource pool is not
            given
          type: string
        network:
          properties:
            dns:
              description: DNS servers of the appliance
              items:
                $ref: '#/components/schemas/DomainName'
              type: array
            gateway:
              description: Gateway associated with the network interface.
              type: string
            name:
              description: Name of Network
              type: string
            networkAddress:
              description: An IP address or FQDN address when static
              type: string
            networkType:
              $ref: '#/components/schemas/NetworkType'
            subnetMask:
              description: Subnet mask.
              format: ipv4
              type: string
        override:
          allOf:
            - $ref: '#/components/schemas/SizeOverrideRequest'
          description: >-
            Override automatic VM resource configuration with a fixed
            configuration.
        resourcePoolId:
          description: >-
            Id of the resource pool. Only required if cluster or host is not
            given
          type: string
    VirtualMachine:
      description: |
        Represents a single instance of a Virtual Machine
      properties:
        allowedOperations:
          description: List of allowed operation on the virtual machine.
          example:
            - VIRTUAL_MACHINE_POWER_ON
            - VIRTUAL_MACHINE_POWER_OFF
          items:
            enum:
              - VIRTUAL_MACHINE_POWER_ON
              - VIRTUAL_MACHINE_POWER_OFF
              - VIRTUAL_MACHINE_RESET
              - VIRTUAL_MACHINE_SHUTDOWN_GUEST_OS
              - VIRTUAL_MACHINE_RESTART_GUEST_OS
              - VIRTUAL_MACHINE_DELETE
              - VIRTUAL_MACHINE_BACKUP_CREATE
              - VIRTUAL_MACHINE_BACKUP_UPDATE
              - VIRTUAL_MACHINE_BACKUP_DELETE
              - VIRTUAL_MACHINE_SNAPSHOT_CREATE
              - VIRTUAL_MACHINE_SNAPSHOT_UPDATE
              - VIRTUAL_MACHINE_SNAPSHOT_DELETE
              - VIRTUAL_MACHINE_RESTORE
              - VIRTUAL_MACHINE_DISKS_RESTORE
            type: string
          type: array
        appInfo:
          description: Application specific information for this virtual machine.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                datastoresInfo:
                  description: >-
                    References to all datastores that house virtual disks of
                    this virtual machine.
                  items:
                    properties:
                      displayName:
                        $ref: '#/components/schemas/Datastore/properties/displayName'
                      id:
                        $ref: '#/components/schemas/Datastore/properties/id'
                      name:
                        $ref: '#/components/schemas/Datastore/properties/name'
                      resourceUri:
                        description: The URI reference for this resource.
                        type: string
                      type:
                        $ref: '#/components/schemas/Datastore/properties/type'
                    type: object
                  type: array
                moref:
                  description: VMware provided moref for this virtual machine.
                  example: vm-21
                  type: string
                resourcePoolInfo:
                  description: >-
                    Information about the VMware's resource pool to which the VM
                    belongs to.
                  properties:
                    displayName:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/displayName
                    id:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/id
                    moref:
                      description: VMware provided moref for this resource pool.
                      example: resourcepool-1
                      type: string
                    name:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/name
                    resourceUri:
                      description: The URI reference for this resource.
                      type: string
                    type:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/type
                  type: object
                toolsInfo:
                  description: >-
                    Information about the VMware tools installed in this virtual
                    machine.
                  properties:
                    status:
                      description: >-
                        Status of VMware Tools running in the guest operating
                        system. Values are inline with the vCenter provided
                        values
                      enum:
                        - NOT_INSTALLED
                        - NOT_RUNNING
                        - OK
                        - OLD
                      type: string
                    type:
                      description: >-
                        Type of the VMware tool installed in this virtual
                        machine.
                      example: guestToolsTypeMSI
                      type: string
                    version:
                      description: >-
                        Version of the VMware tool installed in this virtual
                        machine.
                      example: '9349'
                      type: string
                  type: object
                type:
                  description: >-
                    Type of the virtual machine. - VMFS - virtual machine which
                    is created from one or more VMFS datastores. - VVOL -
                    virtual machine which is created from a VVOL datastores. -
                    NFS  - virtual machine which is created from a NFS
                    datastores. - VSAN - virtual machine which is created from a
                    VSAN datastores.
                  enum:
                    - VMFS
                    - VVOL
                    - NFS
                    - VSAN
                  type: string
              type: object
          type: object
        appType:
          description: Type of the application to which the VM belongs.
          enum:
            - VMWARE
          type: string
        capacityInBytes:
          description: Size of the virtual machine in bytes.
          example: 2407653459860
          format: int64
          type: integer
        clusterInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        computeInfo:
          description: Compute information of the virtual machine.
          properties:
            memorySizeInMib:
              description: Total memory provisioned.
              example: '4096'
              type: string
            numCpuCores:
              description: Number of CPU cores provisioned.
              example: 8
              type: integer
            numCpuThreads:
              description: Number of CPU threads provisioned.
              example: 16
              type: integer
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: A user-friendly name that identifies the virtual machine.
          example: My-Test-VM
          type: string
        folderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        guestInfo:
          description: Information of this guest OS running on the virtual machine.
          properties:
            buildVersion:
              description: >-
                Build version of the guest operating system on this virtual
                machine.
              example: 6.7.0 build-9030300, NT 6.3, 3.8.13-44.1.1.el6uek.x86_64
              type: string
            name:
              description: Name of the guest operating system on this virtual machine.
              example: Microsoft Windows Server 2008 R2 (64-bit)
              type: string
            releaseVersion:
              description: >-
                Release version of the guest operating system on this virtual
                machine.
              example: 6.7.0 build-9030300, R2, 7.2
              type: string
            type:
              description: Operating system on this virtual machine.
              enum:
                - WINDOWS
                - LINUX
                - OTHERS
              type: string
          type: object
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          example: 754f63f7-1016-40ec-9b8f-610f978b9aec
          type: string
        hostInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorHost/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorHost/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorHost/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorHost/properties/type'
          type: object
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the virtual machine
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the virtual machine as configured in the hypervisor manager.
          example: vm-1-windows
          maxLength: 80
          readOnly: true
          type: string
        networkAdapters:
          items:
            properties:
              macAddress:
                description: MAC address of the network adapter.
                type: string
              macAddressType:
                description: Specifies how the MAC address is provided for the adapter.
                enum:
                  - MANUAL
                  - AUTOMATIC
                type: string
              name:
                description: Name of the network adapter.
                type: string
              networkDetails:
                properties:
                  connectAtPowerOn:
                    description: Specifies if the network has to be connected at power on.
                    type: boolean
                  displayName:
                    $ref: >-
                      #/components/schemas/HypervisorNetwork/properties/displayName
                  id:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/id'
                  name:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/name'
                  resourceUri:
                    description: The URI reference for this resource.
                    type: string
                  state:
                    description: Reflects if network is available or deleted from vCenter.
                    enum:
                      - AVAILABLE
                      - DELETED
                    type: string
                  type:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/type'
                type: object
            type: object
          type: array
        networkAddress:
          description: IP address of the virtual machine.
          type: string
        powerState:
          description: This provides the information power state of the virtual machine.
          enum:
            - POWERED_ON
            - POWERED_OFF
            - SUSPENDED
            - UNKNOWN
          type: string
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        protectionPolicyAppliedAtInfo:
          $ref: '#/components/schemas/ProtectionPolicyAppliedAtInfo'
        protectionStatus:
          $ref: '#/components/schemas/protectionStatus'
        recoveryPointsExist:
          $ref: '#/components/schemas/recoveryPointsExist'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/virtual-machines/{vm-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the virtual machine
          enum:
            - OK
            - UNAVAILABLE
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - RESTORE_FAILED
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the virtual machine
          maxLength: 255
          type: string
        status:
          description: The current status of the virtual machine.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: >-
            Unique identifier of the virtual machine as reported by the
            hypervisor.
          format: uuid
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vclsVm:
          description: Indicates it is a vCLS virtual machine or not.
          example: false
          type: boolean
        virtualDisks:
          description: >-
            A list of objects encapsulating information about the storage disks
            provisioned to a virtual machine
          items:
            properties:
              appInfo:
                description: Hypervisor specific information.
                properties:
                  vmware:
                    description: VMware specific app info.
                    properties:
                      datastoreInfo:
                        description: >-
                          Information of the datastore where the virtual disk is
                          residing.
                        properties:
                          displayName:
                            $ref: >-
                              #/components/schemas/Datastore/properties/displayName
                          id:
                            $ref: '#/components/schemas/Datastore/properties/id'
                          name:
                            $ref: '#/components/schemas/Datastore/properties/name'
                          resourceUri:
                            description: The URI reference for this resource.
                            type: string
                          type:
                            $ref: '#/components/schemas/Datastore/properties/type'
                        type: object
                      diskUuidEnabled:
                        description: >-
                          True if the disk UUID is enabled for the virtual
                          machine.
                        example: true
                        type: boolean
                      type:
                        description: >-
                          This gives information this virtual disk type. - VMFS
                          - virtual machine flat disks. - VVOL - virtual volume
                          - PRDM - physical raw disk mapping - VRDM - virtual
                          raw disk mapping
                        enum:
                          - VMFS
                          - VVOL
                          - PRDM
                          - VRDM
                        type: string
                    type: object
                type: object
              capacityInBytes:
                description: >-
                  Last known size of the virtual disk File path of the virtual
                  disk
                format: int64
                type: integer
              filePath:
                description: File path of the virtual disk
                example: NEW_VCSA6.7/NEW_VCSA6.7.vmdk
                type: string
              id:
                description: UUID for the virtual disk.
                format: uuid
                type: string
              name:
                description: Name of the virtual disk.
                example: NEW_VM_20200605155010/NEW_VM_20200605155010.vmdk
                type: string
              uid:
                description: >-
                  Unique identifier of the virtual disk as reported by the
                  hypervisor.
                format: uuid
                type: string
            type: object
          type: array
        vmClassification:
          description: Classification of different system/control VM types
          enum:
            - DATA_ORCHESTRATOR
            - PROTECTION_STORE_GATEWAY
            - VCLS_VM
            - TEMPLATE_VM
            - OMNICUBE_VM
            - DSC_VM
          type: string
        vmConfigPath:
          description: VM configuration path of the virtual machine.
          example: NEW_VCSA6.7/NEW_VCSA6.7.vmx
          type: string
        vmPerfMetricInfo:
          description: Virtual machine performance metrics.
          properties:
            averageReadLatency:
              description: Average read latency.
              format: int64
              type: integer
            averageWriteLatency:
              description: Average write latency.
              format: int64
              type: integer
            cpuAllocatedInMhz:
              description: CPU allocated in mega hertz.
              format: int64
              type: integer
            cpuUsedInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memoryAllocatedInMb:
              description: Memory allocated in mega bytes.
              format: int64
              type: integer
            memoryUsedInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            storageAllocatedInKb:
              description: Storage allocated in kilo bytes.
              format: int64
              type: integer
            storageUsedInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
            totalReadIops:
              description: Total read IOPS.
              format: int64
              type: integer
            totalWriteIops:
              description: Total write IOPS.
              format: int64
              type: integer
          type: object
        vmProtectionGroupsInfo:
          description: Protection groups related to the virtual machine.
          items:
            $ref: '#/components/schemas/VmProtectionGroupInfo'
          type: array
        volumesInfo:
          description: Volumes associated with this virtual machine.
          items:
            $ref: '#/components/schemas/VolumeInfo'
          type: array
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    VirtualMachineBackup:
      properties:
        appType:
          description: Type of the application to which the backup belongs.
          enum:
            - VMWARE
          type: string
        backupGranularity:
          $ref: '#/components/schemas/backupGranularity'
        backupSetsInfo:
          description: >-
            Information about the associated backupSetInfo. This is an array to
            handle application backups spanning multiple objects in the device.
          items:
            properties:
              backups:
                description: Details of the individual backup objects.
                items:
                  properties:
                    id:
                      description: |
                        The UUID of backup object.
                      example: d0e48314-730a-11ea-b496-48452098762c
                      format: uuid
                      type: string
                    objectCount:
                      description: Number of objects on the backup.
                      type: integer
                    sizeInMib:
                      description: Size of the backup in mega bytes.
                      example: 614400
                      format: int64
                      type: integer
                    sourceCopyInfo:
                      items:
                        properties:
                          copyType:
                            description: >-
                              Specifies type of copy from where this copy was
                              created.
                            enum:
                              - SNAPSHOT
                              - BACKUP
                            type: string
                          id:
                            description: |
                              The UUID of backup object.
                            example: d0e48314-730a-11ea-b496-48452098762c
                            format: uuid
                            type: string
                          name:
                            description: Name of the copy.
                            example: SnapshotVM-1
                            type: string
                          resourceUri:
                            description: Reference to resource.
                            type: string
                          scsiIdentifier:
                            description: >-
                              SCSI identifier of the volumes. Applicable only
                              for snapshots.
                            type: string
                          type:
                            description: The type of resource.
                            readOnly: true
                            type: string
                        type: object
                      type: array
                    sourceVolumeInfo:
                      properties:
                        id:
                          description: |
                            The UUID of the volume.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the volume.
                          example: volume-1
                          type: string
                        resourceUri:
                          description: The 'self' reference for this resource.
                          format: uri
                          readOnly: true
                          type: string
                        scsiIdentifier:
                          description: SCSI identifier of the volume
                          type: string
                        type:
                          description: The type of resource.
                          example: storage-fleet/volume
                          readOnly: true
                          type: string
                      type: object
                  type: object
                type: array
              sourceStorageSystemInfo:
                description: Information about storage system where application was hosted.
                properties:
                  id:
                    description: UUID string uniquely identifying the storage system.
                    example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                    type: string
                  name:
                    description: Name of the storage system.
                    example: atlas-dev-3par1.ind.hpecorp.net
                    type: string
                  resourceUri:
                    description: Reference to resource.
                    type: string
                  storageSystemType:
                    description: Type of storage system.
                    enum:
                      - HPE_NIMBLE
                      - HPE_PRIMERA
                      - HPE_ALLETRA_STORAGE_MP
                    example: HPE_ALLETRA_STORAGE_MP
                    type: string
                  type:
                    description: Type of storage system.
                    type: string
                type: object
            type: object
          type: array
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          type: string
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not.
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this backup.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator.
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          description: Absolute value of time in UTC when the application backup expires.
          format: date-time
          type: string
        fullBackup:
          type: boolean
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        indexed:
          description: The index state of the backup.
          enum:
            - INDEXED
            - PARTIALLY_INDEXED
            - NOT_INDEXED
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application backup
            remains locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: Name of the application backup.
          example: Nimble-VM1-snap
          type: string
        partialBackup:
          description: Indicates if the backup contains specific disk backup only.
          type: boolean
        pointInTime:
          description: >-
            Time in UTC at which the application backup was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        protectionStoreInfo:
          $ref: '#/components/schemas/CopyPoolInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/virtual-machines/id/backups/id/
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfoObj'
        sourceCopyInfo:
          properties:
            id:
              description: >-
                A UUID string uniquely identifying the source copy from which
                the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            name:
              description: Name of the source copy from which backup will be performed.
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: Type of the source copy (Snapshot or backup).
              type: string
          required:
            - id
            - type
          type: object
        state:
          description: The current state of the application backup.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - DELETE_PENDING
            - IN_USE_FOR_RESTORE
            - MOUNTED
            - IN_USE
            - PENDING_DELETE_APPROVAL
            - INDEXING
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application backup.
          maxLength: 255
          type: string
        status:
          description: Current status of the application backup.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          description: Information about storage system where backup is created.
          properties:
            displayName:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              type: string
            name:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            resourceUri:
              description: The 'self' reference for this resource.
              example: /backup-recovery/v1beta1/protection-store-gateways/id
              format: uri
              readOnly: true
              type: string
            type:
              description: The type of resource.
              example: backup-recovery/protection-store-gateway
              readOnly: true
              type: string
          type: object
        type:
          description: The type of resource.
          example: backup-recovery/virtual-machine-backup
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        verificationInfo:
          description: >-
            Backup verification status details. Block level verification of
            backup with snapshot.
          properties:
            state:
              enum:
                - VERIFIED
                - NOT_VERIFIED
                - VERIFYING
                - VERIFY_ERROR
              maxLength: 36
              type: string
            stateReason:
              description: Brief reason for the verification state of backup.
              example: Successfully completed.
              maxLength: 255
              type: string
            status:
              description: Backup verification state.
              enum:
                - OK
                - ERROR
                - WARNING
              example: OK
              maxLength: 36
              type: string
            verifiedAt:
              description: Time in UTC at which the backup was verified.
              example: '2020-03-03T05:03:08.902Z'
              format: date-time
              type: string
          type: object
        verified:
          description: Flag indicating whether the backup-set was verified or not.
          type: boolean
        virtualDisks:
          description: >-
            A list of objects encapsulating information about the storage disks
            provisioned to a virtual machine.
          items:
            properties:
              capacityInBytes:
                description: >-
                  Last known size of the virtual disk File path of the virtual
                  disk.
                format: int64
                type: integer
              consistency:
                $ref: '#/components/schemas/Consistency'
              datastoreId:
                $ref: '#/components/schemas/Datastore/properties/id'
              filePath:
                description: File path of the virtual disk.
                example: NEW_VCSA6.7/NEW_VCSA6.7.vmdk
                type: string
              id:
                description: UUID for the virtual disk.
                format: uuid
                type: string
              name:
                description: Name of the virtual disk.
                example: NEW_VM_20200605155010/NEW_VM_20200605155010.vmdk
                type: string
              type:
                description: >-
                  This gives information this virtual disk type. - VMFS -
                  virtual machine flat disks. - VVOL - virtual volume - PRDM -
                  physical raw disk mapping - VRDM - virtual raw disk mapping
                enum:
                  - VMFS
                  - VVOL
                  - PRDM
                  - VRDM
                type: string
              vmId:
                description: UUID string uniquely identifying the virtual machine.
                example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                type: string
          type: array
        vmConfigInfo:
          description: >-
            Information about the virtual machine configuration at the time
            snapshot was created.
          properties:
            computeInfo:
              $ref: '#/components/schemas/VirtualMachine/properties/computeInfo'
            networkAdapters:
              $ref: '#/components/schemas/VirtualMachine/properties/networkAdapters'
          type: object
      required:
        - id
        - type
      type: object
    VirtualMachineBackupList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VirtualMachineBackup'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VirtualMachineBackupUpdate:
      description: Update a Backup copy of a Virtual Machine.
      properties:
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          description: Absolute value of time in UTC when the application backup expires.
          format: date-time
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application backup
            remains locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: Name of the application backup.
          example: Nimble-VM1-backup
          type: string
    VirtualMachineFileRestoreFromBackup:
      description: >
        Definition for the request body for restoring virtual machine files and
        folders from a

        backup.
      properties:
        backupId:
          description: >-
            UUID string uniquely identifying the backup. Mandatory if the
            restore is from a backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        filePathInfo:
          description: >-
            Specifies absolute path of selected files or folders and target
            destination.
          items:
            properties:
              absoluteSourcePath:
                description: Absolute path of source files and folders to be restored.
                type: string
              absoluteTargetPath:
                description: Absolute path of the target destination.
                type: string
            type: object
          type: array
        fileRestoreMethod:
          description: >-
            Specifies the action if the destination already contains a file or
            folder with the same name.<br> OVERWRITE - Existing files/folders
            will be replaced with the restored files/folders  from the copy.<br>
            KEEPASBACKUP - The restored files/folders will be maintained as a
            copy on the destination  with timestamp appended to their names.<br>
            SKIP - The files/folders will be skipped during restore.
          enum:
            - OVERWRITE
            - KEEPASBACKUP
            - SKIP
          type: string
        retainOrignalDirectoryStructure:
          description: >-
            Specifies if restore preserves the source directory structure at the
            destination when restoring a file or folder.
          type: boolean
        targetInfo:
          description: >-
            Target system information onto which the files and folders are
            restored to.
          properties:
            credentialsInfo:
              description: >-
                User credentials to the target VM.  Given credentials must have
                write permissions on the given target path.
              properties:
                password:
                  type: string
                username:
                  type: string
              type: object
            virtualMachineId:
              description: UUID string uniquely identifying the virtual machine.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e5
              type: string
          type: object
      required:
        - backupId
        - fileRestoreMethod
        - filePathInfo
        - targetInfo
      type: object
    VirtualMachineFileRestoreFromSnapshot:
      description: >
        Definition for the request body for restoring virtual machine files and
        folders from a

        snapshot.
      properties:
        filePathInfo:
          description: >-
            Specifies absolute path of selected files or folders and target
            destination.
          items:
            properties:
              absoluteSourcePath:
                description: Absolute path of source files and folders to be restored.
                type: string
              absoluteTargetPath:
                description: Absolute path of the target destination.
                type: string
            type: object
          type: array
        fileRestoreMethod:
          description: >-
            Specifies the action if the destination already contains a file or
            folder with the same name.<br> OVERWRITE - Existing files/folders
            will be replaced with the restored files/folders  from the copy.<br>
            KEEPASBACKUP - The restored files/folders will be maintained as a
            copy on the destination  with timestamp appended to their names.<br>
            SKIP - The files/folders will be skipped during restore.
          enum:
            - OVERWRITE
            - KEEPASBACKUP
            - SKIP
          type: string
        retainOriginalDirectoryStructure:
          description: >-
            Specifies if restore preserves the source directory structure at the
            destination when restoring a file or folder.
          type: boolean
        snapshotId:
          description: >-
            UUID string uniquely identifying the snapshot. Mandatory if the
            restore is from a snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        targetInfo:
          description: >-
            Target system information onto which the files and folders are
            restored to.
          properties:
            credentialsInfo:
              description: >-
                User credentials to the target VM.  Given credentials must have
                write permissions on the given target path.
              properties:
                password:
                  type: string
                username:
                  type: string
              type: object
            virtualMachineId:
              description: UUID string uniquely identifying the virtual machine.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e5
              type: string
          type: object
      required:
        - snapshotId
        - fileRestoreMethod
        - filePathInfo
        - targetInfo
      type: object
    VirtualMachineRestoreFromCopy:
      description: |
        Definition for the request body for restoring the virtual machine from a
        snapshot or backup.
        It is mandatory to pass either a snapshot id or a backup id.
      properties:
        backupId:
          description: >-
            UUID string uniquely identifying the backup. Mandatory if the
            restore is from a backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        restoreType:
          description: Specifies the type of restore that needs to be performed.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        snapshotId:
          description: >-
            UUID string uniquely identifying the snapshot. Mandatory if the
            restore is from a snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        targetVmInfo:
          description: >-
            Provides the details about the target VM location, compute, etc
            These inputs are required only if the restore type is 'ALTERNATE'.
          properties:
            appInfo:
              description: Hypervisor specific information.
              properties:
                vmware:
                  description: VMware specific app info.
                  properties:
                    datastoreId:
                      description: |
                        Specifies the destination datastore in case of
                        alternate restore.
                      type: string
                    resourcePoolId:
                      description: To specify a destination resource pool.
                      type: string
                  type: object
              type: object
            clusterId:
              description: >
                The target hypervisor cluster onto which the new virtual machine
                is hosted.

                Either hostId or clusterId has to be provided as input.

                Both can not be specified at the same time.
              type: string
            description:
              description: A brief description about the new VM.
              type: string
            folderId:
              description: >-
                The identifier of the folder into which the virtual machine
                needs to be placed.
              type: string
            hostId:
              description: >
                The target hypervisor host onto which the new virtual machine is
                hosted.

                Either hostId or clusterId has to be provided as input.

                Both can not be specified at the same time.
              type: string
            hypervisorManagerId:
              description: Specifies the destination hypervisor manager.
              type: string
            name:
              description: >-
                Name of the virtual machine as configured in the hypervisor
                manager.
              example: vm-1-windows
              maxLength: 80
              type: string
            powerOn:
              description: True if the new VM to be powered on after successful creation.
              type: boolean
            storageInfo:
              description: >
                Target storage information required to provision the new
                storage,

                required only in case of alternate datastore restore.
              properties:
                storageSystemId:
                  description: >
                    Target storage system where the new volumes will be
                    provisioned in case of alternate restore.
                  type: string
              type: object
            vmHardwareCustomization:
              properties:
                networkAdapters:
                  items:
                    properties:
                      name:
                        description: Name of the network adapter.
                        type: string
                      networkDetails:
                        properties:
                          connectAtPowerOn:
                            description: >-
                              Specifies if the network has to be connected at
                              power on.
                            type: boolean
                          id:
                            description: >-
                              UUID string uniquely identifying the hypervisor
                              network resource.
                            example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                            type: string
                        type: object
                    type: object
                  type: array
              type: object
          type: object
      required:
        - restoreType
        - snapshotId
        - backupId
      type: object
    VirtualMachineSnapshot:
      properties:
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not.
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or template.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator.
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          description: Absolute value of time in UTC when the application snapshot expires.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        indexed:
          description: The index state of the snapshot.
          enum:
            - INDEXED
            - PARTIALLY_INDEXED
            - NOT_INDEXED
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            remains locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: Name of the application snapshot.
          example: Nimble-VM1-snap
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application snapshot was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/virtual-machines/id/snapshots/id
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfoObj'
        snapshotType:
          enum:
            - SNAPSHOT
          type: string
        state:
          description: The current state of the application snapshot.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - DELETE_PENDING
            - IN_USE
            - PENDING_DELETE_APPROVAL
            - INDEXING
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application snapshot.
          maxLength: 255
          type: string
        status:
          description: Current status of the application snapshot.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemsInfo:
          description: Storage info details of this virtual machine.
          items:
            $ref: '#/components/schemas/VolumeStorageSystemInfo'
          type: array
        type:
          description: The type of resource.
          example: backup-recovery/virtual-machine-snapshot
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        virtualDisks:
          description: >-
            A list of objects encapsulating information about the storage disks
            provisioned to a virtual machine.
          items:
            properties:
              capacityInBytes:
                description: >-
                  Last known size of the virtual disk File path of the virtual
                  disk.
                format: int64
                type: integer
              consistency:
                $ref: '#/components/schemas/Consistency'
              datastoreId:
                $ref: '#/components/schemas/Datastore/properties/id'
              filePath:
                description: File path of the virtual disk.
                example: NEW_VCSA6.7/NEW_VCSA6.7.vmdk
                type: string
              id:
                description: UUID for the virtual disk.
                format: uuid
                type: string
              name:
                description: Name of the virtual disk.
                example: NEW_VM_20200605155010/NEW_VM_20200605155010.vmdk
                type: string
              type:
                description: >-
                  This gives information this virtual disk type. - VMFS -
                  virtual machine flat disks. - VVOL - virtual volume - PRDM -
                  physical raw disk mapping - VRDM - virtual raw disk mapping
                enum:
                  - VMFS
                  - VVOL
                  - PRDM
                  - VRDM
                type: string
              vmId:
                description: UUID string uniquely identifying the virtual machine.
                example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                type: string
          type: array
        vmConfigInfo:
          description: >-
            Information about the virtual machine configuration at the time
            snapshot was created.
          properties:
            computeInfo:
              $ref: '#/components/schemas/VirtualMachine/properties/computeInfo'
            networkAdapters:
              $ref: '#/components/schemas/VirtualMachine/properties/networkAdapters'
          type: object
        volumesSnapshotInfo:
          description: Details of the associated snapshot volumes.
          items:
            $ref: '#/components/schemas/VolumeSnapshotInfo'
          type: array
      required:
        - id
        - type
      type: object
    VirtualMachineSnapshotList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VirtualMachineSnapshot'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VirtualMachineSnapshotUpdate:
      description: Update a snapshot copy of a Virtual Machine.
      properties:
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          $ref: '#/components/schemas/VirtualMachineSnapshot/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/VirtualMachineSnapshot/properties/lockedUntil'
        name:
          description: Name of the application snapshot.
          example: Nimble-VM1-snap
          type: string
    VmDisksRestoreFromSnapshot:
      description: >
        Definition for the request body for restoring the virtual machine from a

        snapshot or backup.

        Restore disks cannot be performed on a deleted VM. If parent VM is in

        deleted state, restore can be performed to different VM using
        targetVmId.
      properties:
        backupId:
          description: >-
            UUID string uniquely identifying the backup. Mandatory if the
            restore is from a backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        restoreDiskDetails:
          items:
            properties:
              recoveryPointDiskDetails:
                properties:
                  diskLabel:
                    description: Label of the disk in the recovery point.
                    example: Hard disk 1
                    type: string
                type: object
              vmDiskDetails:
                properties:
                  diskLabel:
                    description: Label of the source disk.
                    example: Hard disk 1
                    type: string
                type: object
            type: object
          type: array
        restoreType:
          description: Specifies the type of restore that needs to be performed.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        snapshotId:
          description: >-
            UUID string uniquely identifying the snapshot. Mandatory if the
            restore if from snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        targetVmId:
          description: >
            Identifier of the target VM where disks needs to be restored to.

            This is optional. By default restores are performed to the original
            VM.

            This provides an option to the user to restore disks to a different
            VM.

            This identifier can not be a id of deleted VM.
          type: string
      required:
        - snapshotId
        - restoreType
        - diskIds
        - backupId
      type: object
    VmProtectionGroup:
      description: |
        Represents a Virtual Machine Protection Group.
      properties:
        appType:
          description: Type of the application to which the vm-protection-group belongs.
          enum:
            - VMWARE
          type: string
        assets:
          description: >-
            Captures the list of assets that would be part of the protection
            group.
          items:
            properties:
              displayName:
                description: Name provided for the asset.
                type: string
              id:
                description: Asset identifier
                type: string
              name:
                description: Name provided for the asset.
                type: string
              resourceUri:
                description: self reference to resource.
                example: /backup-recovery/v1beta1/datastores/id
                format: Uri
                readOnly: true
                type: string
              type:
                description: type of the asset.
                example: virtualization/datastore
                readOnly: true
                type: string
            type: object
          type: array
        assetsCategory:
          description: The type of the protected assets.
          enum:
            - VVOL_VMS
            - VMFS_DATASTORES
            - VMFS_VMS
          type: string
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator.
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: A brief description of the Protection Group.
          maxLength: 255
          type: string
        displayName:
          description: User-defined name given to the Protection Group.
          example: myProtectionGroup
          type: string
        dynamicMemberFilter:
          properties:
            members:
              description: Tags associated with the Protection Group.
              items:
                properties:
                  categoryName:
                    description: >-
                      The category name is unique to the currently selected
                      hypervisor manager.
                    type: string
                  name:
                    description: Name of the Tag.
                    example: Tag name
                    type: string
                  resourceUri:
                    description: Resource uri of the Tag.
                    example: >-
                      /virtualization/v1beta1/hypervisor-managers/17f83a4d-bfac-4a92-a009-ac3167fdd83b/tags/651de0d6-9b15-5dd0-b466-1fd4da410200
                    type: string
                  state:
                    enum:
                      - OK
                      - DELETED
                    type: string
                  type:
                    description: Type of the Tag.
                    example: virtualization/hypervisor-tag
                    type: string
                type: object
              type: array
            type:
              description: Type of the Tag.
              example: virtualization/hypervisor-tag
              type: string
          type: object
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            id:
              description: UUID string uniquely identifying the hypervisor manager.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            name:
              description: User defined name for the hypervisor manager.
              example: vcenter123.hpe.com
              type: string
            resourceUri:
              description: The 'self' reference for this resource.
              example: /virtualization/v1beta1/hypervisor-managers/id/
              format: uri
              type: string
            type:
              description: Type of the resource.
              example: virtualization/hypervisor-manager
              type: string
          type: object
        id:
          description: >-
            UUID string uniquely identifying the Virtual Machine Protection
            Group.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          readOnly: true
          type: string
        name:
          description: A user-friendly name to identify Virtual Machine protection group.
          example: myProtectionGroup
          maxLength: 255
          type: string
        nativeAppInfo:
          properties:
            id:
              description: >-
                UUID string uniquely identifying the native group. For example
                in case of VMware folder it will be id of the folder.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            name:
              description: >-
                If the protection group is a folder or vVol Container then name
                as reported by the hypervisor manager.
              example: myVmFolder
              maxLength: 255
              readOnly: true
              type: string
            type:
              description: type of the native protection group.
              enum:
                - VMWARE_FOLDER
                - VMWARE_VVOL_CONTAINER
                - STORAGE_REPLICATION_GROUP
              type: string
          type: object
        protectedResourcesInfo:
          properties:
            virtualMachinesCount:
              description: >
                Count of virtual machines which are protected with this group.

                VM protection is considered incomplete when it has disks from

                multiple datastores or has RDM and it is protected as part of a
                custom

                group. This count gets updated after every snapshot creation.
              example: 5
              type: integer
          type: object
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        replicationInfo:
          $ref: '#/components/schemas/ReplicationInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /backup-recovery/v1beta1/virtual-machine-protection-groups/id/
          format: uri
          readOnly: true
          type: string
        state:
          description: Current state of the group.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
          type: string
        stateReason:
          description: Brief reason for the current state of the group.
          maxLength: 255
          type: string
        status:
          description: Current status of the group.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          description: The type of resource.
          example: backup-recovery/virtual-machine-protection-group
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          readOnly: true
          type: string
        vmProtectionGroupType:
          description: >-
            The type of the Protection Group. This can be Native for storage
            system specific constructs like StorageReplicationGroup or
            application specific constructs such as VMware Folder or vVol
            container.  Custom if its just a collection of assets (Virtual
            Machine, Datastores etc).
          enum:
            - NATIVE
            - CUSTOM
            - DYNAMIC
          type: string
        volumesInfo:
          description: List of Volumes associated with vm protection group.
          items:
            $ref: '#/components/schemas/VolumeInfo'
          type: array
      required:
        - id
        - type
      type: object
    VmProtectionGroupCreate:
      description: >-
        Either a list of assets or a native group should be specified in the
        request.
      properties:
        assets:
          description: >-
            Captures the list of assets that would be part of the protection
            group.
          items:
            properties:
              id:
                description: Asset identifier.
                type: string
              type:
                description: type of the asset.
                example: virtualization/datastore
                type: string
            type: object
          type: array
        assetsCategory:
          $ref: '#/components/schemas/VmProtectionGroup/properties/assetsCategory'
        description:
          $ref: '#/components/schemas/VmProtectionGroup/properties/description'
        dynamicMemberFilter:
          properties:
            members:
              description: Tags associated with the Protection Group.
              items:
                properties:
                  name:
                    description: Name of the Tag.
                    example: Tag name
                    type: string
                  resourceUri:
                    description: Resource uri of the Tag.
                    example: >-
                      /virtualization/v1beta1/hypervisor-managers/17f83a4d-bfac-4a92-a009-ac3167fdd83b/tags/651de0d6-9b15-5dd0-b466-1fd4da410200
                    type: string
                  type:
                    description: Type of the Tag.
                    type: string
                type: object
              type: array
            type:
              description: Type of the Tag.
              example: virtualization/hypervisor-tag
              type: string
          type: object
        name:
          $ref: '#/components/schemas/VmProtectionGroup/properties/name'
        nativeAppInfo:
          properties:
            id:
              description: >-
                UUID string uniquely identifying the native group. For example
                in case of VMware folder it will be id of the folder.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            type:
              description: type of the native protection group.
              enum:
                - VMWARE_FOLDER
                - VMWARE_VVOL_CONTAINER
                - STORAGE_REPLICATION_GROUP
              type: string
          type: object
        vmProtectionGroupType:
          $ref: >-
            #/components/schemas/VmProtectionGroup/properties/vmProtectionGroupType
      required:
        - name
        - vmProtectionGroupType
        - assetsCategory
    VmProtectionGroupInfo:
      description: Information of the Virtual Machine Protection Group.
      properties:
        id:
          description: Unique identifier for the Protection Group.
          example: 1b738651-da9f-4c85-88c1-70dbfe1976681
          type: string
        name:
          description: Name of the Protection Group.
          example: myProtectionGroup
          type: string
        resourceUri:
          description: Reference to resource.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    VmProtectionGroupList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VmProtectionGroup'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VmProtectionGroupUpdate:
      description: >-
        Note that the asset list is the absolute list of assets and not the
        difference.
      properties:
        assets:
          description: >-
            Captures the list of assets that would be part of the protection
            group.
          items:
            properties:
              displayName:
                description: Name provided for the asset.
                type: string
              id:
                description: Asset identifier.
                type: string
              name:
                description: Name provided for the asset.
                type: string
              type:
                description: type of the asset.
                type: string
            type: object
          type: array
        description:
          $ref: '#/components/schemas/VmProtectionGroup/properties/description'
        dynamicMemberFilter:
          properties:
            members:
              description: Tags associated with the Protection Group.
              items:
                properties:
                  name:
                    description: Name of the Tag.
                    example: Tag name
                    type: string
                  resourceUri:
                    description: Resource uri of the Tag.
                    example: >-
                      /virtualization/v1beta1/hypervisor-managers/17f83a4d-bfac-4a92-a009-ac3167fdd83b/tags/651de0d6-9b15-5dd0-b466-1fd4da410200
                    type: string
                  type:
                    description: Type of the Tag.
                    type: string
                type: object
              type: array
            type:
              description: Type of the Tag.
              example: virtualization/hypervisor-tag
              type: string
          type: object
        name:
          $ref: '#/components/schemas/VmProtectionGroup/properties/name'
      type: object
    VmpgBackup:
      description: Represents a Virtual Machine Protection Group backup
      properties:
        appType:
          description: Type of the application to which the backup belongs.
          enum:
            - VMWARE
          type: string
        backupSetsInfo:
          description: >-
            Information about the associated backupSetInfo. This is an array to
            handle application backups spanning multiple objects in the device.
          items:
            properties:
              backups:
                description: Details of the individual backup objects
                items:
                  properties:
                    id:
                      description: |
                        The UUID of backup object.
                      example: d0e48314-730a-11ea-b496-48452098762c
                      format: uuid
                      type: string
                    objectCount:
                      description: Number of objects on the backup.
                      type: integer
                    sizeInBytes:
                      description: Size of the backup object.
                      format: int64
                      type: integer
                    sourceCopyInfo:
                      items:
                        properties:
                          copyType:
                            description: >-
                              Specifies type of copy from where this copy was
                              created
                            enum:
                              - SNAPSHOT
                              - BACKUP
                            type: string
                          id:
                            description: |
                              The UUID of backup object.
                            example: d0e48314-730a-11ea-b496-48452098762c
                            format: uuid
                            type: string
                          name:
                            description: Name of the copy.
                            example: SnapshotVM-1
                            type: string
                          resourceUri:
                            description: Reference to resource.
                            type: string
                          scsiIdentifier:
                            description: >-
                              SCSI identifier of the volumes. Applicable only
                              for snapshots.
                            type: string
                        type: object
                      type: array
                    sourceVolumeInfo:
                      properties:
                        id:
                          description: |
                            The UUID of the volume.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the volume.
                          example: volume-1
                          type: string
                        resourceUri:
                          description: Reference to resource.
                          type: string
                        scsiIdentifier:
                          description: SCSI identifier of the volume
                          type: string
                      type: object
                  type: object
                type: array
              sourceStorageSystemInfo:
                description: Information about storage system where application was hosted.
                properties:
                  id:
                    description: UUID string uniquely identifying the storage system.
                    example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                    type: string
                  name:
                    description: Name of the storage system.
                    example: atlas-dev-3par1.ind.hpecorp.net
                    type: string
                  resourceUri:
                    description: Reference to resource.
                    type: string
                  type:
                    description: Type of storage system.
                    type: string
                type: object
            type: object
          type: array
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          type: string
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this backup.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          description: Absolute value of time in UTC at which the application.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: >-
            UUID string uniquely identifying the Virtual Machine Protection
            Group backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          readOnly: true
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application backup is
            locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: >-
            A user-friendly name to identify Virtual Machine Protection Group
            backup.
          example: backup1
          maxLength: 255
          readOnly: true
          type: string
        pointInTime:
          description: |
            Time in UTC at which the application backup
            was created on the device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        protectionStoreInfo:
          $ref: '#/components/schemas/CopyPoolInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/virtual-machine-protection-groups/{id}/backups/id/
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          description: Details about the schedule which created this snapshot.
          properties:
            id:
              $ref: '#/components/schemas/scheduleInfo/properties/id'
            name:
              description: User provided name for this schedule
              example: Hourly snapshot schedule
              maxLength: 255
              minLength: 1
              type: string
            recurrence:
              $ref: '#/components/schemas/Schedule/properties/recurrence'
          type: object
        sourceCopyInfo:
          properties:
            id:
              description: |
                A UUID string uniquely identifying the source copy
                from which the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            name:
              description: Name of the source copy from which backup will be performed.
              type: string
            resourceUri:
              description: The 'self' reference for this resource.
              format: uri
              type: string
            type:
              description: Type of the source copy (Snapshot or backup).
              enum:
                - SNAPSHOT
                - BACKUP
              type: string
          required:
            - id
            - type
          type: object
        state:
          description: The current state of the application backup.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - DELETE_PENDING
            - IN_USE_FOR_RESTORE
            - MOUNTED
            - IN_USE
            - PENDING_DELETE_APPROVAL
          type: string
        stateReason:
          description: Brief reason for the current state of the application backup.
          maxLength: 255
          type: string
        status:
          description: Current status of the application backup.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          description: Information about storage system where backup is created.
          properties:
            displayName:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              type: string
            name:
              description: Name of the storage system.
              example: atlas-dev-3par1.ind.hpecorp.net
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: Type of storage system.
              type: string
          type: object
        type:
          description: The type of resource
          example: backup-recovery/virtual-machine-protection-group-backup
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          readOnly: true
          type: string
        verificationInfo:
          description: >-
            Backup verification status details. Block level verification of
            backup with snapshot.
          properties:
            state:
              enum:
                - VERIFIED
                - NOT_VERIFIED
                - VERIFYING
                - VERIFY_ERROR
              maxLength: 36
              type: string
            stateReason:
              description: Brief reason for the verification state of backup
              example: Successfully completed.
              maxLength: 255
              type: string
            status:
              description: Backup verification state
              enum:
                - OK
                - ERROR
                - WARNING
              example: OK
              maxLength: 36
              type: string
            verifiedAt:
              description: Time in UTC at which the backup was verified
              example: '2020-03-03T05:03:08.902Z'
              format: date-time
              type: string
          type: object
        verified:
          description: Flag indicating whether backup-set was verified or not
          type: boolean
      required:
        - id
        - type
      type: object
    VmpgBackupList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VmpgBackup'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VmpgBackupUpdate:
      description: Update a Backup copy of a Virtual Machine Protection Group.
      properties:
        description:
          description: Brief description about the application backup.
          type: string
        expiresAt:
          $ref: '#/components/schemas/VmpgBackup/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/VmpgBackup/properties/lockedUntil'
        name:
          description: Name of the application backup.
          example: Nimble-dat1-backup
          type: string
    VmpgRestore:
      description: Restores a Virtual Machine Protection Group.
      properties:
        description:
          description: A brief description about the new VM.
          type: string
        namePostfix:
          description: A postfix name given by user for the new VM.
          type: string
        namePrefix:
          description: A prefix name for the new VM.
          type: string
        powerOnVmsAfterRestore:
          description: >
            True if all the resources in the Virtual Machine Protection Group
            needs to be poweredon after restore.

            Required only in case of alternate datastore restore.
          type: boolean
        recoveryInfo:
          description: Recovery point information.
          items:
            properties:
              recoveryPointId:
                description: UUID string uniquely identifying the recovery point.
                example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641yd
                type: string
              recoveryPointType:
                description: The type of the recovery point.
                enum:
                  - SNAPSHOT
                  - BACKUP
                  - CLOUDBACKUP
                type: string
              resourceId:
                description: >-
                  UUID string uniquely identifying the individual asset in the
                  protection group.
                example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                type: string
              targetInfoOverrides:
                description: >-
                  Provides the details about target VM location, compute, etc. 
                  These inputs are required only if the restore type is
                  'ALTERNATE' and if any properties provided in the targetInfo
                  needs to be overwritten.
                properties:
                  appInfo:
                    description: Hypervisor specific information.
                    properties:
                      vmware:
                        description: VMware specific app info.
                        properties:
                          datastoreId:
                            description: |
                              Specifies the destination datastore in case of
                              alternate restore.
                            example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                            type: string
                          resourcePoolId:
                            description: To specify a destination resource pool.
                            example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                            type: string
                        type: object
                    type: object
                  clusterId:
                    description: >
                      The target hypervisor cluster onto which the new virtual
                      machine is hosted.

                      Either hostId or clusterId has to be provided as input.

                      Both can not be specified at the same time.
                    type: string
                  folderId:
                    description: UUID string uniquely identifying the hypervisor folder.
                    example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                    type: string
                  hostId:
                    description: UUID string uniquely identifying the hypervisor host.
                    example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                    type: string
                  powerOn:
                    description: >-
                      True if the new VM to be powered on after successful
                      creation.
                    type: boolean
                  storageInfo:
                    description: >
                      Target storage information required to provision the new
                      storage,

                      required only in case of alternate datastore restore.
                    properties:
                      storageSystemId:
                        description: >
                          Target storage system where the new volumes will be
                          provisioned in case of alternate restore.
                        type: string
                    type: object
                type: object
            type: object
          type: array
        restoreAllResources:
          description: >-
            True if all the resources in the Virtual Machine Protection Group
            needs to be restored.
          type: boolean
        restoreType:
          description: Specifies the type of restore needs to be performed.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        targetInfo:
          description: >-
            Provides the details about target VM location, compute, etc. These
            inputs are required only if the restore type is 'ALTERNATE'.
          properties:
            appInfo:
              description: Hypervisor specific information.
              properties:
                vmware:
                  description: VMware specific app info.
                  properties:
                    datastoreId:
                      description: |
                        Specifies the destination datastore in case of
                        alternate restore.
                      example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                      type: string
                    resourcePoolId:
                      description: To specify a destination resource pool.
                      example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                      type: string
                  type: object
              type: object
            clusterId:
              description: >
                The target hypervisor cluster onto which the new virtual machine
                is hosted.

                Either hostId or clusterId has to be provided as input.

                Both can not be specified at the same time.
              type: string
            folderId:
              description: UUID string uniquely identifying the hypervisor folder.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            hostId:
              description: UUID string uniquely identifying the hypervisor host.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            hypervisorManagerId:
              description: UUID string uniquely identifying the hypervisor manager.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              type: string
            powerOn:
              description: True if the new VM to be powered on after successful creation.
              type: boolean
            storageInfo:
              description: >
                Target storage information required to provision the new
                storage,

                required only in case of alternate datastore restore.
              properties:
                storageSystemId:
                  description: >
                    Target storage system where the new volumes will be
                    provisioned in case of alternate restore.
                  type: string
              type: object
          type: object
    VmpgRestorePreCheckList:
      description: Dry run result for the restore on a Protection Group.
      properties:
        resourceSummary:
          description: Summary for dry run at individual resource level.
          properties:
            resourceInfo:
              description: Summary for dry run at individual resource level.
              items:
                properties:
                  appType:
                    description: Type of the application to which the resource belongs.
                    enum:
                      - VMWARE
                    type: string
                  clusterInfo:
                    properties:
                      displayName:
                        description: >-
                          A user-friendly name to identify the hypervisor
                          cluster. This will always be same as name since add or
                          update of hypervisor clusters are not supported when
                          it is managed from a manager like vCenter.
                        example: myesxcluster1
                        type: string
                      id:
                        description: >-
                          UUID string uniquely identifying the hypervisor
                          cluster.
                        example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                        type: string
                      name:
                        description: >-
                          Name of the cluster as reported by the hypervisor
                          manager.
                        example: myesxcluster1
                        format: hostname
                        maxLength: 255
                        readOnly: true
                        type: string
                      resourceUri:
                        description: The URI reference for this resource.
                        type: string
                      type:
                        description: The type of resource.
                        type: string
                    type: object
                  datastoresInfo:
                    description: References to all datastores that hosts this resource.
                    items:
                      properties:
                        displayName:
                          description: A user friendly name to identify the datastore.
                          example: Nimble-DS1
                          type: string
                        id:
                          description: UUID string uniquely identifying the datastore
                          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                          type: string
                        name:
                          description: >-
                            Name of the datastore as reported by the hypervisor
                            manager.
                          example: Nimble-DS2
                          maxLength: 255
                          type: string
                        resourceUri:
                          description: The URI reference for this resource.
                          type: string
                        type:
                          description: The type of resource.
                          type: string
                      type: object
                    type: array
                  errorMessage:
                    description: Error message if the VM or DS state is in Error state.
                    type: string
                  hostInfo:
                    properties:
                      displayName:
                        description: >-
                          A user-friendly name to identify the hypervisor host.
                          This will always be same as name since add or update
                          of hypervisor hosts is not supported when it is
                          managed from a manager like vCenter.
                        example: myESXi
                        type: string
                      id:
                        description: UUID string uniquely identifying the hypervisor host.
                        example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                        type: string
                      name:
                        description: >-
                          Name of the host as reported by the hypervisor
                          manager.
                        example: myESXi
                        format: hostname
                        maxLength: 255
                        type: string
                      resourceUri:
                        description: The URI reference for this resource.
                        type: string
                      type:
                        description: The type of resource.
                        type: string
                    type: object
                  recoveryPointInfo:
                    description: Recovery point information.
                    items:
                      properties:
                        appType:
                          description: >-
                            Type of the application to which the resource
                            belongs.
                          enum:
                            - VMWARE
                          type: string
                        backupGranularity:
                          description: >-
                            Applicable only to backup copies. Specifies
                            granularity at which the backup is created. The user
                            can specify whether to create volume based backups
                            or application Change Block Tracking (CBT) based
                            backups.
                          enum:
                            - VOLUME
                            - VMWARE_CBT
                          example: VOLUME
                          type: string
                        consistency:
                          description: >-
                            Specifies whether this is crash consistent or
                            application consistent recovery point.
                          enum:
                            - CRASH
                            - APPLICATION
                          type: string
                        dataOrchestratorInfo:
                          items:
                            properties:
                              id:
                                description: The id of the Data Orchestrator.
                                format: uuid
                                type: string
                              resourceUri:
                                example: >-
                                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                                type: string
                              type:
                                example: backup-recovery/data-orchestrator
                                type: string
                            type: object
                          type: array
                        errorMessage:
                          description: >-
                            Error message if the VM or DS state is in Error
                            state.
                          type: string
                        pointInTime:
                          description: |
                            Time in UTC at which the application backup
                            was created on the device.
                          example: '2020-03-03T05:03:08.902Z'
                          format: date-time
                          type: string
                        recoveryPointId:
                          description: UUID string uniquely identifying the recovery point.
                          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641yd
                          type: string
                        recoveryPointType:
                          description: The type of the recovery point.
                          enum:
                            - SNAPSHOT
                            - BACKUP
                            - CLOUD_BACKUP
                          type: string
                        state:
                          description: The current state of the resource.
                          enum:
                            - OK
                            - ERROR
                            - CREATING
                            - DELETING
                            - UPDATING
                            - REFRESHING
                            - RESTORING
                            - IN_USE
                          example: OK
                          type: string
                        status:
                          description: status of the VM or DS.
                          enum:
                            - OK
                            - ERROR
                          type: string
                        storageSystemInfo:
                          description: Information about storage system.
                          items:
                            properties:
                              id:
                                description: >-
                                  UUID string uniquely identifying the storage
                                  system.
                                example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                                type: string
                              name:
                                description: Name of the storage system.
                                example: atlas-dev-3par1.ind.hpecorp.net
                                type: string
                              type:
                                description: Type of storage system.
                                type: string
                            type: object
                          type: array
                      type: object
                    type: array
                  resourceId:
                    description: >-
                      UUID string uniquely identifying the individual asset in
                      the protection group.
                    example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
                    type: string
                  resourceName:
                    description: Name of the VM or DS.
                    type: string
                  status:
                    description: status of the VM or DS.
                    enum:
                      - OK
                      - ERROR
                    type: string
                  storageSystemInfo:
                    description: >-
                      Information about storage system where resource is
                      created.
                    properties:
                      displayName:
                        description: Name of the storage system.
                        example: atlas-dev-3par1.ind.hpecorp.net
                        type: string
                      id:
                        description: UUID string uniquely identifying the storage system.
                        example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                        type: string
                      name:
                        description: Name of the storage system.
                        example: atlas-dev-3par1.ind.hpecorp.net
                        type: string
                      resourceUri:
                        description: Reference to resource.
                        type: string
                      type:
                        description: Type of storage system.
                        type: string
                    type: object
                type: object
              type: array
          type: object
        summary:
          description: Summary of the dry run at Protection Group level.
          properties:
            error:
              description: Any Protection Group level error.
              type: string
            status:
              description: status of the Protection Group.
              enum:
                - OK
                - ERROR
              type: string
          type: object
    VmpgSnapshot:
      properties:
        consistency:
          $ref: '#/components/schemas/Consistency'
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        containsRdmDisks:
          description: Indicates if the recovery point has RDM disk or not
          type: boolean
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          readOnly: true
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or protection policy.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        dataOrchestratorInfo:
          items:
            properties:
              id:
                description: The id of the Data Orchestrator
                format: uuid
                type: string
              resourceUri:
                example: >-
                  /backup-recovery/v1beta1/data-orchestrators/613a8115-00f4-4785-831f-f3b2183cdcb7
                type: string
              type:
                example: backup-recovery/data-orchestrator
                type: string
            type: object
          type: array
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          description: Absolute value of time in UTC at which the application.
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            is locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: Name of the application snapshot.
          example: Nimble-DS1-snap
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application snapshot was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/virtual-machine-protection-groups/id/snapshots/id/
          format: uri
          readOnly: true
          type: string
        scheduleInfo:
          description: Details about the schedule which created this snapshot.
          properties:
            id:
              $ref: '#/components/schemas/scheduleInfo/properties/id'
            name:
              description: User provided name for this schedule
              example: Hourly snapshot schedule
              maxLength: 255
              minLength: 1
              type: string
            recurrence:
              $ref: '#/components/schemas/Schedule/properties/recurrence'
          type: object
        snapshotType:
          enum:
            - SNAPSHOT
          type: string
        state:
          description: The current state of the application snapshot.
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - DELETE_PENDING
            - IN_USE
            - PENDING_DELETE_APPROVAL
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the application snapshot.
          maxLength: 255
          type: string
        status:
          description: Current status of the application snapshot.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemsInfo:
          $ref: '#/components/schemas/VolumeStorageSystemInfo'
        type:
          description: The type of resource
          example: backup-recovery/virtual-machine-protection-group-snapshot
          readOnly: true
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        volumesSnapshotInfo:
          description: Details of the associated snapshot volumes
          items:
            $ref: '#/components/schemas/VolumeSnapshotInfo'
          type: array
      required:
        - id
        - type
      type: object
    VmpgSnapshotList:
      properties:
        count:
          description: The number of resources in the items array.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VmpgSnapshot'
          type: array
        offset:
          description: The offset specified in the offset query parameter.
          type: integer
        total:
          description: The total count of objects in the result set.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VmpgSnapshotUpdate:
      description: Update a snapshot copy of a Virtual Machine Protection Group.
      properties:
        description:
          description: Brief description about the application snapshot.
          type: string
        expiresAt:
          $ref: '#/components/schemas/VmpgSnapshot/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/VmpgSnapshot/properties/lockedUntil'
        name:
          description: Name of the application snapshot.
          example: Nimble-DS1-snap
          type: string
    VmwareOptions:
      properties:
        includeRdmDisks:
          description: |
            Option to include RDM disks of VMs for protection.
            Option needed only for datastore protection.
            By default RDM disks of VMs are not included for protection
            when protection is applied at datastore level.
            Only RDM disks of VMs completely residing in the datastore
            disks are included protection.
          example: true
          type: boolean
      type: object
    VolumeInfo:
      description: Information of volume or snapshot.
      properties:
        displayName:
          description: A user-friendly name that identifies the volume.
          type: string
        id:
          description: UUID string uniquely identifying the volume.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the volume.
          example: Volume1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        scsiIdentifier:
          description: SCSI identifier of the volume or snapshot .
          example: 1b738651-da9f-4c85-88c1-70dbfe1976681
          type: string
        sizeInBytes:
          description: Size of the volume or snapshot in bytes.
          example: 2407653459860
          format: int64
          type: integer
        storageFolderInfo:
          $ref: '#/components/schemas/StorageFolderInfo'
        storagePoolInfo:
          $ref: '#/components/schemas/StoragePoolInfo'
        storageSystemInfo:
          $ref: '#/components/schemas/StorageSystemInfo'
        type:
          description: Type of volume.
          type: string
        volumeSetInfo:
          $ref: '#/components/schemas/VolumeSetInfo'
      type: object
    VolumeProtectionGroup:
      description: |
        Represents a Volume Protection Group
      properties:
        assets:
          description: >-
            Captures the list of volumes that would be part of the Protection
            Group.
          items:
            properties:
              displayName:
                description: Name provided for the asset
                type: string
              id:
                description: Volume identifier
                format: uuid
                type: string
              protectionStatus:
                description: >-
                  Provides the current protection status of this resource. -
                  UNPROTECTED - No policy assigned, No recovery points exists -
                  LAPSED      - No policy assigned, at least one recovery points
                  exists - PENDING     - Policy assigned, No recovery points
                  exists - PARTIAL     - Policy assigned, At least one recovery
                  point exists - PROTECTED   - Policy assigned, most recent run
                  of every configured schedule is successful - PAUSED      -
                  Policy assigned, one or more of the schedules are paused
                enum:
                  - UNPROTECTED
                  - LAPSED
                  - PENDING
                  - PARTIAL
                  - PROTECTED
                  - PAUSED
                example: PROTECTED
                type: string
              resourceUri:
                description: Reference to resource.
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        consoleUri:
          $ref: '#/components/schemas/ConsoleUri'
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        description:
          description: A brief description of the Protection Group.
          maxLength: 255
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the Volume Protection Group.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        name:
          description: A user-friendly name to identify Volume Protection Group.
          example: myProtectionGroup
          maxLength: 255
          readOnly: true
          type: string
        nativeGroupInfo:
          properties:
            id:
              description: UUID string uniquely identifying the native group.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              format: uuid
              type: string
            name:
              description: Name of the native group.
              example: volume protection native group.
              type: string
            resourceUri:
              description: Reference to resource.
              type: string
            type:
              description: type of the native Protection Group.
              enum:
                - VOLUME_COLLECTION
                - APPLICATION_SET
              type: string
          type: object
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/volume-protection-groups/9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uri
          type: string
        state:
          description: Current state of the group
          enum:
            - OK
            - ERROR
            - CREATING
            - ATTACHED
            - DETACHING
            - DETACHED
            - DISCOVERING
            - DISCOVERED
            - CLEANING_UP
            - CLEANED_UP
            - RESTORING_BACKUP
            - RESTORING_SNAPSHOT
            - RESTORE_FAILED
            - DELETED
            - DELETING
            - PARTIAL_RESTORE
            - UPDATING
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the group
          maxLength: 255
          type: string
        status:
          description: Current status of the group
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          description: Describes a storage system.
          properties:
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              format: uuid
              type: string
            name:
              description: Name of the storage system.
              example: alletra9000.domain.net
              type: string
            productFamily:
              description: Product Family
              example: deviceType1
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              description: Type of storage system.
              type: string
          type: object
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        volumeProtectionGroupType:
          description: >-
            The type of the Protection Group. This can be Native for storage
            system specific constructs and Custom if its just a collection of
            assets (Volume).
          enum:
            - NATIVE
            - CUSTOM
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    VolumeProtectionGroupCreate:
      description: >-
        Either a list of assets or a native group should be specified in the
        request.
      properties:
        assets:
          description: List of asset's. Required in case of custom vpg type.
          items:
            description: Information about the assets.
            properties:
              id:
                description: UUID string uniquely identifying the asset.
                type: string
            type: object
          type: array
        description:
          $ref: '#/components/schemas/VolumeProtectionGroup/properties/description'
        name:
          $ref: '#/components/schemas/VolumeProtectionGroup/properties/name'
        nativeGroupInfo:
          properties:
            id:
              description: UUID string uniquely identifying the native group.
              example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
              format: uuid
              type: string
            name:
              description: Name of the native group.
              example: volume protection native group.
              type: string
          type: object
        storageSystemInfo:
          description: Information about storage system of the volumes.
          properties:
            id:
              description: UUID string uniquely identifying the storage system.
              example: 6a38acc7-e470-4ed7-b141-ca9509672dac
              format: uuid
              type: string
          type: object
        volumeProtectionGroupType:
          $ref: >-
            #/components/schemas/VolumeProtectionGroup/properties/volumeProtectionGroupType
      required:
        - name
        - VolumeProtectionGroupType
    VolumeProtectionGroupList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VolumeProtectionGroup'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VolumeProtectionGroupRefresh:
      properties:
        fullRefresh:
          example: true
          type: boolean
      type: object
    VolumeProtectionGroupRestore:
      properties:
        individualBackupIds:
          description: >-
            UUIDs of the individual backups on volumes. Required in case of
            granular restore from backup.
          items:
            description: UUID of the individual volume backup.
            type: string
          type: array
        individualSnapshotIds:
          description: >-
            UUIDs of the individual snapshots on volumes. Required in case of
            granular restore from snapshot.
          items:
            description: UUID of the individual volume snapshot.
            type: string
          type: array
        restoreType:
          description: >-
            Specifies the type of restore to be performed. Alternate restore is
            only supported from backups.
          enum:
            - PARENT
            - ALTERNATE
          type: string
        targetStorageSystemId:
          description: >-
            UUID string uniquely identifying the storage system. Applicable only
            in case of alternate restore.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          format: uuid
          type: string
        vpgBackupId:
          $ref: '#/components/schemas/VpgBackup/properties/id'
        vpgSnapshotId:
          $ref: '#/components/schemas/VpgSnapshot/properties/id'
      type: object
    VolumeProtectionGroupUpdate:
      description: >-
        Note that the asset list is the absolute list of assets and not the
        difference.
      properties:
        assets:
          description: List of asset's. Applicable in case of custom vpg type.
          items:
            description: Information about the assets.
            properties:
              id:
                description: UUID string uniquely identifying the asset.
                type: string
            type: object
          type: array
        description:
          $ref: '#/components/schemas/VolumeProtectionGroup/properties/description'
        name:
          $ref: '#/components/schemas/VolumeProtectionGroup/properties/name'
      type: object
    VolumeSetInfo:
      description: Describes a volume set.
      properties:
        displayName:
          description: A user-friendly name that identifies the volume set.
          type: string
        id:
          description: UUID string uniquely identifying the volume set.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the volume set.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of the volume set.
          type: string
      type: object
    VolumeSnapshotInfo:
      description: Describes snapshot volume information.
      properties:
        id:
          description: UUID string uniquely identifying the snapshot volume.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the snapshot volume.
          example: ATL-0106052-ro-210503202357032
          type: string
        resourceUri:
          description: Reference to resource.
          type: string
        scsiIdentifier:
          description: SCSI identifier of the volume or snapshot .
          example: 1b738651-da9f-4c85-88c1-70dbfe1976681
          type: string
        sizeInMib:
          description: Size of the volume or snapshot in mega bytes.
          example: 614400
          format: int64
          type: integer
        storageSystemInfo:
          $ref: '#/components/schemas/VolumeStorageSystemInfo'
      type: object
    VolumeStorageSystemInfo:
      description: Describes a storage system.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage system.
          example: my-dev-3par1.ind.hpecorp.net
          type: string
        id:
          description: UUID string uniquely identifying the storage system.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        managed:
          description: Specify if the storage system is registered.
          type: boolean
        name:
          description: Name of the storage system.
          example: atlas-dev-3par1.ind.hpecorp.net
          type: string
        resourceUri:
          description: The URI reference for this resource.
          example: /storage-fleet/v1/storage-systems/{uuid}
          format: uri
          readOnly: true
          type: string
        serialNumber:
          description: Serial number of the storage system.
          example: AF-10122
          type: string
        storageSystemType:
          description: Type of storage system.
          enum:
            - HPE_NIMBLE
            - HPE_PRIMERA
            - HPE_ALLETRA_STORAGE_MP
          example: HPE_ALLETRA_STORAGE_MP
          type: string
        type:
          description: The type of resource.
          example: storage-fleet/storage-system
          readOnly: true
          type: string
        vendorName:
          description: Storage system provider name.
          example: hpe
          maxLength: 255
          type: string
      type: object
    VpgBackup:
      description: |
        Represents a Volume Protection Group backup.
      properties:
        backupSetsInfo:
          description: >-
            Information about the associated backupSetInfo. This is an array to
            handle application backups spanning multiple objects in the device.
          items:
            properties:
              backups:
                description: Details of the individual backup objects
                items:
                  properties:
                    id:
                      description: |
                        The UUID of backup object.
                      example: d0e48314-730a-11ea-b496-48452098762c
                      format: uuid
                      type: string
                    mountState:
                      description: Mount state of the backup
                      enum:
                        - UNATTACHED
                        - ATTACHING
                        - ATTACHED
                        - DETACHING
                      example: ATTACHED
                      type: string
                    mountedHostsIqn:
                      description: list of IQN of mounted hosts
                      items:
                        type: string
                      type: array
                    objectCount:
                      description: Number of objects on the backup.
                      type: integer
                    sizeInBytes:
                      description: Size of the backup object.
                      format: int64
                      type: integer
                    sourceCopyInfo:
                      properties:
                        copyType:
                          description: >-
                            Specifies type of copy from where this copy was
                            created
                          enum:
                            - SNAPSHOT
                            - BACKUP
                          type: string
                        id:
                          description: |
                            The UUID of backup object.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the copy.
                          example: SnapshotVM-1
                          type: string
                        scsiIdentifier:
                          description: >-
                            SCSI identifier of the volumes. Applicable only for
                            snapshots.
                          type: string
                      type: object
                    sourceVolumeInfo:
                      properties:
                        id:
                          description: |
                            The UUID of the volume.
                          example: d0e48314-730a-11ea-b496-48452098762c
                          format: uuid
                          type: string
                        name:
                          description: Name of the volume.
                          example: volume-1
                          type: string
                        resourceUri:
                          description: The URI reference for this resource.
                          type: string
                        scsiIdentifier:
                          description: SCSI identifier of the volume
                          type: string
                      type: object
                  type: object
                type: array
              sourceStorageSystemInfo:
                description: Describes a storage system.
                properties:
                  id:
                    description: UUID string uniquely identifying the storage system.
                    example: 6a38acc7-e470-4ed7-b141-ca9509672dac
                    type: string
                  name:
                    description: Name of the storage system.
                    example: alletra9000.domain.net
                    type: string
                  resourceUri:
                    description: Reference to resource.
                    type: string
                  type:
                    description: Type of storage system.
                    type: string
                type: object
            type: object
          type: array
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          type: string
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or Protection Policy.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          description: The customer application identifier.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        description:
          description: A brief description of the Volume Protection Group backup.
          maxLength: 255
          type: string
        expiresAt:
          description: Absolute value of time in UTC at which the application expires.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the Volume Protection Group backup.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application backup is
            locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        mountState:
          description: Mount state of the backup
          enum:
            - UNATTACHED
            - ATTACHING
            - ATTACHED
            - DETACHING
            - PARTIALLY_ATTACHED
          example: ATTACHED
          type: string
        mountedHostsIqn:
          description: list of IQN of mounted hosts
          items:
            type: string
          type: array
        name:
          description: A user-friendly name to identify Volume Protection Group backup.
          example: myVpgBackup
          maxLength: 255
          readOnly: true
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application backup was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        protectionStoreInfo:
          $ref: '#/components/schemas/CopyPoolInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/volume-protection-groups/34786368-f92d-4f88-8b17-734a713538fd/backups/9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uri
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfo'
        sourceCopyInfo:
          properties:
            copyType:
              description: Type of the source copy (Snapshot or backup).
              enum:
                - SNAPSHOT
                - BACKUP
              example: SNAPSHOT
              type: string
            id:
              description: >-
                A UUID string uniquely identifying the source copy from which
                the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            type:
              description: Type of the source copy (Snapshot or backup).
              type: string
          required:
            - id
            - type
          type: object
        state:
          description: Current state of the backup
          enum:
            - OK
            - ERROR
            - CREATING
            - RESTORING
            - PARTIAL
            - DELETING
            - DELETED
            - UPDATING
            - REFRESHING
            - PENDING_DELETE_APPROVAL
            - IN_USE_FOR_MOUNT
          type: string
        stateReason:
          description: Brief reason for the current state of the backup
          maxLength: 255
          type: string
        status:
          description: Current status of the backup
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          $ref: >-
            #/components/schemas/VolumeProtectionGroup/properties/storageSystemInfo
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vpgInfo:
          description: Information about the Volume Protection Group.
          properties:
            id:
              description: UUID string uniquely identifying the Volume Protection Group.
              format: uuid
              type: string
            name:
              description: Name of the Volume Protection Group.
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              description: The type of resource.
              type: string
          type: object
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    VpgBackupAttach:
      description: Attach a backup copy of a Volume Protection Group.
      properties:
        hostIqn:
          description: The IQN of the iSCSI initiator
          type: string
        individualBackupIds:
          description: >-
            UUIDs of the individual backups on volumes. Required in case of
            granular attach from backup.
          items:
            description: UUID of the individual volume backup.
            format: UUID
            type: string
          type: array
      required:
        - hostIqn
    VpgBackupCreate:
      description: Create a backup copy of a Volume Protection Group.
      properties:
        backupType:
          enum:
            - BACKUP
            - CLOUD_BACKUP
          example: BACKUP
          type: string
        description:
          description: Brief description about the application backup.
          type: string
        expireAfter:
          $ref: '#/components/schemas/ExpireAfter'
        lockFor:
          $ref: '#/components/schemas/LockFor'
        name:
          description: Name of the application backup.
          example: vpg-backup
          maxLength: 255
          type: string
        protectionStoreId:
          description: UUID string uniquely identifying the protection store object.
          example: 2a1172be-4281-44f9-848b-9c3f86378b13
          format: uuid
          type: string
        sourceCopyInfo:
          properties:
            id:
              description: |
                A UUID string uniquely identifying the source copy
                from which the backup will be performed.
              example: d0e48314-730a-11ea-b496-48452098762c
              format: uuid
              type: string
            type:
              description: The type of resource
              enum:
                - SNAPSHOT
                - BACKUP
              example: SNAPSHOT
              type: string
          required:
            - id
            - type
          type: object
      required:
        - name
        - backupType
        - sourceCopyInfo
        - protectionStoreId
    VpgBackupDetach:
      description: Detach a backup copy of a Volume Protection Group.
      properties:
        hostIqn:
          description: The IQN of the host iSCSI initiator
          type: string
      required:
        - hostIqn
    VpgBackupList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VpgBackup'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VpgBackupUpdate:
      description: Update a backup copy of a Volume Protection Group.
      properties:
        description:
          $ref: '#/components/schemas/VpgBackup/properties/description'
        expiresAt:
          $ref: '#/components/schemas/VpgBackup/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/VpgBackup/properties/lockedUntil'
        name:
          $ref: '#/components/schemas/VpgBackup/properties/name'
    VpgSnapshot:
      description: |
        Represents a Volume Protection Group snapshot.
      properties:
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        createdByInfo:
          description: |
            Information about the user who initiated the workflow that
            created this snapshot or Protection Policy.
          properties:
            id:
              description: UUID of the user.
              format: uuid
              type: string
            name:
              description: Name of the user.
              maxLength: 255
              type: string
          type: object
        customerId:
          description: The customer application identifier.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        description:
          description: A brief description of the Volume Protection Group snapshot.
          maxLength: 255
          type: string
        expiresAt:
          description: Absolute value of time in UTC at which the application.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: >-
            UUID string uniquely identifying the Volume Protection Group
            snapshot.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        individualSnapshotsInfo:
          description: Information about the individual snapshots on volumes.
          items:
            properties:
              id:
                description: UUID of the resource.
                format: uuid
                type: string
              name:
                description: User provided name for this snapshot.
                example: mySnapshot
                maxLength: 255
                minLength: 1
                type: string
              resourceUri:
                description: The URI reference for this resource.
                type: string
              sizeInMiB:
                description: Size of the snapshot object.
                format: int64
                type: integer
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
              volumeId:
                description: UUID of the volume.
                format: uuid
                type: string
              volumeName:
                description: Name of the volume.
                type: string
            type: object
          type: array
        lockedUntil:
          description: >-
            Absolute value of time in UTC until which the application snapshot
            is locked.
          example: '2020-04-03T05:03:08.900Z'
          format: date-time
          type: string
        name:
          description: A user-friendly name to identify Volume Protection Group snapshot.
          example: myVpgSnapshot
          maxLength: 255
          readOnly: true
          type: string
        pointInTime:
          description: >-
            Time in UTC at which the application snapshot was created on the
            device.
          example: '2020-03-03T05:03:08.902Z'
          format: date-time
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /backup-recovery/v1beta1/volume-protection-groups/8740e4f8-9f68-4b36-8f89-6bdf0808e111/snapshots/9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uri
          type: string
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfo'
        state:
          description: Current state of the snapshot
          enum:
            - OK
            - ERROR
            - ATTACHING
            - ATTACHED
            - DETACHING
            - DETACHED
            - DISCOVERING
            - DISCOVERED
            - CLEANING_UP
            - CLEANED_UP
            - RESTORING
            - CREATING
            - DELETING
            - DELETED
            - UPDATING
            - REFRESHING
            - BACKUP_INITIALIZING
            - PENDING_DELETE_APPROVAL
          type: string
        stateReason:
          description: Brief reason for the current state of the snapshot
          maxLength: 255
          type: string
        status:
          description: Current status of the snapshot
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageSystemInfo:
          $ref: >-
            #/components/schemas/VolumeProtectionGroup/properties/storageSystemInfo
        storageSystemSnapshotId:
          description: Reference to the group snapshot
          format: uuid
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vpgInfo:
          description: Information about the Volume Protection Group.
          properties:
            id:
              description: UUID string uniquely identifying the Volume Protection Group.
              format: uuid
              type: string
            name:
              description: Name of the Volume Protection Group.
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              description: The type of resource.
              type: string
          type: object
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    VpgSnapshotCreate:
      description: Create a snapshot copy of a Volume Protection Group.
      properties:
        description:
          description: Brief description about the application snapshot.
          type: string
        expireAfter:
          $ref: '#/components/schemas/ExpireAfter'
        lockFor:
          $ref: '#/components/schemas/LockFor'
        name:
          description: Name of the application snapshot.
          example: vpg-snapshot
          maxLength: 255
          type: string
      required:
        - name
        - snapshotType
    VpgSnapshotList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VpgSnapshot'
          type: array
        offset:
          description: >-
            The number of items to skip before starting to collect the result
            set
          type: integer
        total:
          description: Total number of documents matching filter criteria.
          type: integer
      required:
        - count
        - items
        - offset
      type: object
    VpgSnapshotUpdate:
      description: Update a snapshot copy of a Volume Protection Group.
      properties:
        description:
          $ref: '#/components/schemas/VpgSnapshot/properties/description'
        expiresAt:
          $ref: '#/components/schemas/VpgSnapshot/properties/expiresAt'
        lockedUntil:
          $ref: '#/components/schemas/VpgSnapshot/properties/lockedUntil'
        name:
          $ref: '#/components/schemas/VpgSnapshot/properties/name'
    alternateDSRestoreRequestParams:
      description: >-
        Provides the details about the target datastore location and other
        inputs to create a new datastore in case of an alternate restore. These
        inputs are required only if the restore type is 'ALTERNATE'. Parameters
        are optional and values default to parent datastore details.
      properties:
        clusterId:
          description: >
            The target hypervisor cluster onto which the new datastore is
            hosted.

            Either hostId or clusterId has to be provided as input.

            Both can not be specified at the same time.
          type: string
        description:
          description: Description for the new datastore.
          maxLength: 255
          type: string
        folderId:
          description: >-
            The identifier of the folder into which the datastore needs to be
            placed.
          type: string
        hostId:
          description: The target hypervisor host onto which the new datastore is hosted.
          type: string
        hypervisorManagerId:
          description: Specifies the destination hypervisor manager.
          type: string
        name:
          description: |
            The name of the new datastore. If this is no specific
            name given a default unique name would be assigned.
          example: snap-ae36
          maxLength: 255
          type: string
        powerOnVmsAfterRestore:
          description: Specifies whether to power on VMs after restore.
          type: boolean
        storageInfo:
          description: |
            Target storage information required to provision the new storage,
            required only in case of alternate datastore restore.
          properties:
            storageSystemId:
              description: |
                Target storage system where the new volumes will be provisioned
                in case of alternate restore.
              type: string
          required:
            - storageSystemId
          type: object
      type: object
    backupGranularity:
      description: >-
        Applicable only to backup copies. Specifies granularity at which the
        backup is created. The user can specify whether to create volume based
        backups or application Change Block Tracking (CBT) based backups.
      enum:
        - VOLUME
        - VMWARE_CBT
      example: VOLUME
      type: string
    createDataOrchestrator:
      properties:
        activationCode:
          description: Enter the Activation Code displayed on the Data Orchestrator.
          format: uuid
          type: string
        displayName:
          description: User-defined name given to the Data Orchestrator by the customer.
          type: string
      required:
        - activationCode
    protectionStatus:
      description: >-
        Provides the current protection status of this resource. - UNPROTECTED -
        No policy assigned, No recovery points exists - LAPSED      - No policy
        assigned, at least one recovery points exists - PENDING     - Policy
        assigned, No recovery points exists - PARTIAL     - Policy assigned, At
        least one recovery point exists - PROTECTED   - Policy assigned, most
        recent run of every configured schedule is successful - PAUSED      -
        Policy assigned, one or more of the schedules are paused - UNSUPPORTED -
        No policy can be assigned
      enum:
        - UNPROTECTED
        - LAPSED
        - PENDING
        - PARTIAL
        - PROTECTED
        - PAUSED
        - UNSUPPORTED
      example: PROTECTED
      type: string
    recoveryPointsExist:
      description: Indicates at least one valid recovery point exists for this resource.
      example: true
      type: boolean
    scheduleInfo:
      description: |
        Represents a single instance of a schedule
      properties:
        id:
          description: UUID string uniquely identifying the schedule
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
      type: object
    supportBundleCreate:
      description: Create a new support-bundle
      properties:
        description:
          description: A brief description about the support-bundle.
          example: This is a support-bundle generated to help investigate a failure.
          maxLength: 255
          type: string
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: >
        The Data Service Cloud Console API uses a JWT bearer token for
        authentication.

        An authentication token can be obtained from the HPE GreenLake console.
      scheme: bearer
      type: http
