openapi: 3.1.0
info:
  description: HPE GreenLake for Private Cloud Business Edition System APIs
  license:
    name: HPE End User License Agreement
    url: https://www.hpe.com/us/en/software/licensing.html
  title: HPE GreenLake for Private Cloud Business Edition System APIs
  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: |
      APIs to trigger and fetch configuration analysis rules execution
      results for system
    name: configuration-analysis-reports
  - description: >-
      APIs for HPE GreenLake for Private Cloud Business Edition system
      operations.
    name: systems
  - description: Virtual Machine Provisioning Policies operations
    name: vm-provisioning-policies
paths:
  /private-cloud-business/v1beta1/configuration-analysis-reports:
    get:
      description: >
        Returns the list of latest config analysis reports for all systems.

        It also accepts 'filter' query parameter where if 'systemId' is provided
        as 'filter',

        it returns the latest config analysis report for that system.
      operationId: ListLatestConfigAnalysisReport
      parameters:
        - description: >-
            Filter criteria - e.g. systemId eq
            c0930136-5317-5647-8d92-87ca3984c5f9
          in: query
          name: filter
          schema:
            type: string
        - description: >
            The resource property to sort by followed by the response order.

            Response order can be either “asc” (ascending) or “desc”
            (descending)
          example: totalFailed desc
          in: query
          name: sort
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigAnalyserResultsList'
          description: Config Analysis Report
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '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: Returns a list of config analysis rules execution results.
      tags:
        - configuration-analysis-reports
    post:
      description: |
        Initiates execution of config analysis rules execution for the System
        specified by 'systemId' in request body
      operationId: ExecuteConfigAnalysisRules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecuteConfigAnalysisRulesRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Software prechecks request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous operation.
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '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: Initiates config analysis rules execution.
      tags:
        - configuration-analysis-reports
  /private-cloud-business/v1beta1/configuration-analysis-reports/{reportId}:
    get:
      description: |
        Returns config analysis rules execution report identified by 'reportId'
        parameter.
      operationId: ListConfigAnalysisReportById
      parameters:
        - description: Unique identifier of a Config Analysis Report.
          in: path
          name: reportId
          required: true
          schema:
            description: An identifier for the config analysis report, usually a UUID.
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigAnalyserResults'
          description: Config Analysis Report
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '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: >-
        Returns a config analysis rules execution results for the provided
        reportId.
      tags:
        - configuration-analysis-reports
  /private-cloud-business/v1beta1/system-software-catalogs:
    get:
      description: >
        Returns a list of all system software catalogs.

        Use 'select' and 'filter' query parameters to customize the response
        returned by this API.

        For example, to get the End User License Agreement (EULA) for catalog
        version 1.2.3.4, use '?select=eula&filter=version eq 1.2.3.4'. 

        To get recommended systems for precheck to a given catalog version, use
        '?select=systemsWithUpdatePath&filter=version eq 1.2.3.4'.
      operationId: GetSystemSoftwareCatalogs
      parameters:
        - description: >-
            A list of properties in the items collection to include in the
            response.
          example: eula,systemsWithUpdatePath
          in: query
          name: select
          schema:
            type: string
        - description: >
            The expression to filter responses.

            The property names which are of type string should be passed in
            quotes('') and nested property names should be passed with "/" as
            the separator.

            Filtering is supported with following properties:
             * eula
             * createdAt
             * customerId
             * generation
             * id
             * name
             * resourceUri
             * type
             * updatedAt
             * hypervisor/name
             * hypervisor/releaseDate
             * hypervisor/releaseNotesUrl
             * hypervisor/version
             * releaseDate
             * serverFirmware/name
             * serverFirmware/releaseDate
             * serverFirmware/releaseNotesUrl
             * serverFirmware/version
             * storageConnectionManager/name
             * storageConnectionManager/releaseDate
             * storageConnectionManager/releaseNotesUrl
             * storageConnectionManager/version
             * storageSoftware/name
             * storageSoftware/releaseDate
             * storageSoftware/releaseNotesUrl
             * storageSoftware/version
             * version
          example: hypervisor/name eq 'ESXi'
          in: query
          name: filter
          schema:
            type: string
        - description: >
            Use limit in conjunction with offset for paging, e.g.:
            offset=30&&limit=10. Limit is the maximum number of items to include
            in the response.
          example: 10
          in: query
          name: limit
          schema:
            default: 10
            format: int32
            maximum: 100
            minimum: 10
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalogsList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get all System Software Catalogs.
      tags:
        - systems
  /private-cloud-business/v1beta1/system-software-catalogs/{id}:
    get:
      description: >
        Returns the system software catalog for the specified id.

        Includes versions of the catalog and all constituent software components
        along with the End User License Agreement

        and a list of systems with update path to the corresponding catalog
        version.
      operationId: GetSystemSoftwareCatalogById
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
        - description: >-
            A list of properties in the items collection to include in the
            response.
          example: eula,systemsWithUpdatePath
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalog'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get the System Software Catalog with specified id.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems:
    get:
      description: >
        Returns the systems and their properties defined by the query
        parameters. Retrieving all of the properties for 

        the system can take a long time because the amount of data is large. Use
        the ‘select’ query parameter to choose 

        only the properties you want to retrieve for a system. For example, to
        get details of the id, name and software 

        information for each system, use ‘?select=id,name,softwareInfo’
      operationId: ListSystemInfo
      parameters:
        - description: >
            Query parameter listing the properties of system information to
            fetch.

            Although Hypervisor Clusters collection (property
            hypervisorClusters) can be selected, selecting elements of the
            collection is not supported.

            Similarly, hypervisor clusters update status collection (property
            softwareInfo.hypervisorClusters) can be selected, but, selecting
            elements of the collection is not supported in the select query
            parameter.

            Although systemVms collection can be selected, selecting elements of
            the collection is not supported.
          example: id,name,softwareInfo
          in: query
          name: select
          required: false
          schema:
            type: string
        - description: >
            Use offset in conjunction with limit for paging, e.g.:
            offset=30&&limit=10. Offset is the number of items from the
            beginning of the result set to the first item included in the
            response.
          example: 30
          in: query
          name: offset
          required: false
          schema:
            type: integer
        - description: >
            Use limit in conjunction with offset for paging, e.g.:
            offset=30&&limit=10. Limit is the maximum number of items to include
            in the response.
          example: 10
          in: query
          name: limit
          required: false
          schema:
            default: 10
            format: int32
            maximum: 100
            minimum: 10
            type: integer
        - description: >
            The expression to filter responses.

            This API doesn't support filtering based on hypervisorClusters
            collection property, softwareInfo.hypervisorClusters and systemVms
            collection property.

            Request with filter based on the above mentioned properties will be
            treated as a Bad Request with 400 Error.
          example: health/overallHealth eq OK
          in: query
          name: filter
          required: false
          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.

            This API doesn't support sorting based on hypervisorClusters
            collection property, softwareInfo.hypervisorClusters collection
            property and systemVms collection property.

            Request with sort based on the above mentioned properties will be
            treated as a Bad Request with 400 Error.
          example: id desc,name asc
          in: query
          name: sort
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInfoList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get information about all systems subject to query parameters.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}:
    get:
      description: >
        Returns the system properties specified in the query parameters. 

        Retrieving all of the properties for the system can take a long time
        because the 

        amount of data is large. Use the  'select' query parameter to choose
        only the properties you want to retrieve.


        For example, to get details of the system's id, name and software
        information, use '?select=id,name,softwareInfo'
      operationId: GetSystemInfo
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: >
            Query parameter listing the properties of system information to
            fetch.

            Although Hypervisor Clusters collection (property
            hypervisorClusters) can be selected, selecting elements of the
            collection is not supported.

            Similarly, hypervisor clusters update status collection (property
            softwareInfo.hypervisorClusters) can be selected, but, selecting
            elements of the collection is not supported in the select query
            parameter.
          example: |
            select=id,name,softwareInfo,computeUsage,associatedResourceCount
          in: query
          name: select
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInfo'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get information about the specified system subject to query parameters.
      tags:
        - systems
    patch:
      description: |
        Modify specified system.
      operationId: PatchSystem
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PatchSystemRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInfo'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of System.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 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 Unavailable
      summary: Modifies the system specified by systemId.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}/add-hypervisor-cluster:
    post:
      description: >
        Adds the specified hypervisor cluster to the specified system. The user
        must have permissions to update this system. 

        Returns a task identifier to be used by clients to track the progress of
        the operation.
      operationId: AddHypervisorClusterToSystem
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddHypervisorClusterRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Add Hypervisor Cluster request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous 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: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of system.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A software precheck or update operation is already in progress.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Initiates addition of a hypervisor cluster to system with the given id.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}/servers:
    get:
      description: >
        Get server information by system id 


        Returns details about the servers for the specified system id.
        Retrieving all of the properties for all servers 

        in a system can take a long time because the amount of data is large.
        Use the  'select' query parameter to choose 

        only the properties you want to retrieve.


        For example, to get the server id, name, serial number and hypervisor
        host, use ?select=id,name,serialNumber,hypervisorHost
      operationId: GetSystemServersInfo
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: >-
            Query parameter listing the properties of Server information to
            fetch.
          example: id,name,serialNumber,hypervisorHost
          in: query
          name: select
          required: false
          schema:
            type: string
        - description: >
            Use offset in conjunction with limit for paging, e.g.:
            offset=30&&limit=10. Offset is the number of items from the
            beginning of the result set to the first item included in the
            response.
          example: 30
          in: query
          name: offset
          required: false
          schema:
            type: integer
        - description: >
            Use limit in conjunction with offset for paging, e.g.:
            offset=30&&limit=10. Limit is the maximum number of items to include
            in the response.
          example: 10
          in: query
          name: limit
          required: false
          schema:
            default: 10
            format: int32
            maximum: 100
            minimum: 10
            type: integer
        - description: The expression to filter responses.
          example: health/overallHealth eq OK
          in: query
          name: filter
          required: false
          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.
          example: id desc,name asc
          in: query
          name: sort
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerInfoList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get information about the specified system's servers.
      tags:
        - servers
  /private-cloud-business/v1beta1/systems/{id}/software-prechecks:
    post:
      description: >
        Initiate a set of software update prechecks on the specified system and
        hypervisor clusters in it using the specified software catalog version.

        This operation validates whether the software on system and its
        hypervisor clusters are ready to be updated to the target software
        catalog version.
      operationId: InitiateSoftwarePrechecks
      parameters:
        - description: Unique Identifier of the System, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrecheckRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Software prechecks request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous 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: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of System.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A software precheck or update operation is already in progress.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Initiate software update prechecks on the given System.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}/software-update:
    post:
      description: >
        Initiate a software update on the specified system and the hypervisor
        clusters in it using the specified software catalog version.

        Before invoking this API, ensure that software update prechecks on the
        same parameters successfully completed and is valid.
      operationId: InitiateSoftwareUpdate
      parameters:
        - description: Unique Identifier of the System, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Software update request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous 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: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of System.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A software precheck or update operation is already in progress.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Initiate software update on the given System.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}/software-update-resume:
    post:
      description: >
        Resume the failed and paused software update on the specified system.

        Invoke this API only after fixing the problems reported in software
        update.
      operationId: InitiateSoftwareUpdateResume
      parameters:
        - description: Unique Identifier of the System, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Software update resume request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous 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: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of system.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No failed and paused software update is found to resume.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A software precheck or update operation is already in progress.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Resume the failed and paused software update on the selected System.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{id}/software-version-refresh:
    post:
      description: >
        Refresh the software catalogs and software versions on the specified
        system.

        The current and available software catalog versions are recomputed based
        on the component versions running on the system and software catalogs
        available for update.
      operationId: PerformSoftwareVersionRefresh
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Software version refresh request is accepted.
          headers:
            Location:
              schema:
                description: >-
                  Asynchronous operation URI. Use this to track the progress of
                  the asynchronous 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: >-
            The current user is not authorized to perform the requested
            operation.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Requested operation is forbidden in the current state of system.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Cannot perform software version refresh as a software precheck or
            update operation is in progress.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: >-
        Refresh the Software Catalog versions available for the system
        identified by id.
      tags:
        - systems
  /private-cloud-business/v1beta1/systems/{systemId}/servers/{serverId}:
    get:
      description: >
        Get server details by system id and server id 


        Returns information about a specific server on a specific system.
        Retrieving all of the properties for a server 

        can take a long time because the amount of data is large. Use the select
        query parameter to choose only the 

        properties you want to retrieve. 


        For example, to get details of the server's id, name, serial number and
        hypervisor host, use ?select=id,name,serialNumber,hypervisorHost
      operationId: GetSystemServerInfo
      parameters:
        - description: Unique Identifier of the system, usually a UUID.
          in: path
          name: systemId
          required: true
          schema:
            format: uuid
            type: string
        - description: Unique Identifier of the Server, usually a UUID.
          in: path
          name: serverId
          required: true
          schema:
            format: uuid
            type: string
        - description: >-
            Query parameter listing the properties of Server information to
            fetch.
          example: id,name,serialNumber,hypervisorHost
          in: query
          name: select
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerInfo'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The current user is not authorized to perform the requested
            operation.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get information about a system's specific server.
      tags:
        - servers
  /private-cloud-business/v1beta1/vm-provisioning-policies:
    get:
      description: |
        Returns a list of VM provisioning policies according to the given query
        parameters for paging, filtering, and sorting.
      operationId: VMProvisioningPoliciesList
      parameters:
        - description: >
            The number of items to omit from the beginning of the result set.

            Use offset in conjunction with limit for pagination. 

            For example,  "offset=30&limit=10" indicates the fourth page of 10
            items.
          example: 30
          in: query
          name: offset
          schema:
            type: integer
        - description: >
            The maximum number of items to include in the response.

            Use offset in conjunction with limit for pagination. 

            For example, "offset=30&limit=10" indicates the fourth page of 10
            items.
          example: 10
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: |
            An expression to filter the results.
            Filtering is supported with following attributes:
             * name
             * id 
             * timestamp
             * clusterid
             * deduplication
             * allFlash
             * encryption.cipher
             * associatedvmid
             * associatedvmname
          example: name eq 'vmpp'
          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").
          example: name asc
          in: query
          name: sort
          schema:
            type: string
        - description: A list of properties to include in the response.
          example: id,name
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VMProvisioningPoliciesList'
          description: List of VM Provisioning Policies
        '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 Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Get a list of VM provisioning policies
      tags:
        - vm-provisioning-policies
    post:
      description: This API aids in creation of virtual machine provisioning policy
      operationId: VMProvisioningPolicyCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VMProvisioningPolicyCreate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VMProvisioningPolicy'
          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: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Create VM provisioning policy
      tags:
        - vm-provisioning-policies
  /private-cloud-business/v1beta1/vm-provisioning-policies/{id}:
    delete:
      description: Deletes the specified VM provisioning policy
      operationId: VMProvisioningPolicyDelete
      parameters:
        - description: Unique identifier of a VM provisioning policy
          in: path
          name: id
          required: true
          schema:
            description: The UUID of the object.
            format: uuid
            type: string
      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
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Delete VM provisioning policy by policy id
      tags:
        - vm-provisioning-policies
    get:
      description: Returns details for the specified VM provisioning policy.
      operationId: VMProvisioningPolicy
      parameters:
        - description: Unique identifier of a VM provisioning policy
          in: path
          name: id
          required: true
          schema:
            description: The UUID of the object.
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VMProvisioningPolicy'
          description: Details of a VM provisioning policy
        '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 Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Get VM provisioning policy by policy id
      tags:
        - vm-provisioning-policies
    patch:
      description: Update attributes of the specified VM provisioning policy
      operationId: VMProvisioningPolicyEdit
      parameters:
        - description: Unique identifier of a VM provisioning policy
          in: path
          name: id
          required: true
          schema:
            description: The UUID of the object.
            format: uuid
            type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/VMProvisioningPolicyEdit'
        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
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 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 Unavailable
      summary: Update VM provisioning policy by policy id
      tags:
        - vm-provisioning-policies
components:
  schemas:
    AddHypervisorClusterRequest:
      description: Add Hypervisor Cluster Request
      properties:
        configureVds:
          description: >
            Specifies if vSphere Distributed Switch (VDS) should be configured
            for the hypervisor cluster

            being added.
          type: boolean
        hypervisorClusterName:
          description: Name of the hypervisor cluster to be added.
          type: string
        vsphereDatacenterName:
          description: >-
            vSphere datacenter name where this hypervisor cluster is to be
            added.
          type: string
      type: object
    AssociatedDS:
      description: Associated datastore with VM provisioning policy
      properties:
        id:
          description: Identifier of the Associated datastore
          format: uuid
          type: string
        name:
          description: Name of the Associated datastore
          type: string
        type:
          description: Type of the Associated datastore
          type: string
      type: object
    AssociatedObj:
      allOf:
        - $ref: '#/components/schemas/StorageProfileClusterBasic'
      description: On-prem engine
      properties:
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    AssociatedResourceCounts:
      description: Associated Resource Information of system.
      properties:
        datastoreCount:
          description: Total Datastore Count of the system
          type: number
        hypervisorClusterCount:
          description: Total Hypervisor Cluster Count of the system
          type: number
        serversCount:
          description: Total Servers Count of the system
          type: number
        storageArrayCount:
          description: Total Storage Array Count of the system
          type: number
        switchesCount:
          description: Total Switches Count of the system
          type: number
        vmCount:
          description: Total Virtual Machine Count of the system
          type: number
      type: object
    AssociatedVM:
      description: Associated VM with VM provisioning policy
      properties:
        id:
          description: Identifier of the Associated VM
          format: uuid
          type: string
        name:
          description: Name of the Associated VM
          type: string
      type: object
    AvailableSoftwareCatalog:
      allOf:
        - $ref: '#/components/schemas/CommonSoftwareCatalogProperties'
      description: >-
        Software Catalog with detailed versions of the HPE Storage Software,
        hypervisor software, HPE Storage Connection Manager and Firmware
      properties:
        isLatest:
          description: >-
            Boolean flag indicating whether this is the latest version available
            for software update.
          type: boolean
      type: object
    ClusterBasic:
      description: On-prem engine
      properties:
        clusterId:
          description: Identifier of the system cluster.
          type: string
        clusterName:
          description: Name of the system cluster.
          type: string
      required:
        - clusterId
        - clusterName
      type: object
    CommonComponents:
      description: Common reusable system properties.
      properties:
        hypervisorClusterId:
          description: Unique Identifier of the Hypervisor Cluster, usually a UUID.
          format: uuid
          type: string
        hypervisorClusterName:
          description: Name of the Hypervisor Cluster.
          type: string
        systemId:
          description: Unique Identifier of the system, usually a UUID.
          format: uuid
          type: string
        systemName:
          description: Name of the system.
          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
    CommonSoftwareCatalogProperties:
      description: Version of the software catalog and its constituent software components.
      properties:
        hypervisor:
          allOf:
            - $ref: '#/components/schemas/SoftwareComponentCommonProperties'
          description: Details of the hypervisor software.
          type: object
        hypervisorManager:
          allOf:
            - $ref: '#/components/schemas/SoftwareComponentCommonProperties'
          description: Details of the hypervisor manager software.
          type: object
        releaseDate:
          description: Release date of the software catalog
          type: string
        serverFirmware:
          allOf:
            - $ref: '#/components/schemas/SoftwareComponentCommonProperties'
          description: Details of the HPE Server Firmware.
          type: object
        storageConnectionManager:
          allOf:
            - $ref: '#/components/schemas/SoftwareComponentCommonProperties'
          description: Details of the HPE Storage Connection Manager software.
          type: object
        storageSoftware:
          allOf:
            - $ref: '#/components/schemas/SoftwareComponentCommonProperties'
          description: Details of the HPE Storage software.
          type: object
        version:
          description: Catalog version
          type: string
      type: object
    ComponentStatusSeverity:
      enum:
        - OK
        - WARNING
        - CRITICAL
        - MISSING
      type: string
    ConfigAnalyserResults:
      description: Results of config analysis rules execution
      properties:
        createdAt:
          description: Timestamp when the config analysis rules execution result is created
          type: string
        createdBy:
          description: Source type of config analysis rules execution
          type: string
        id:
          description: CA report id
          format: uuid
          type: string
        nextScheduledRunAt:
          description: Timestamp when the config analysis rules execution is next scheduled
          type: string
        results:
          description: Execution results data in json format
          type: object
        runStartedAt:
          description: Timestamp when the config analysis rules execution is started
          type: string
        runType:
          description: run type of config analysis rules execution (Manual/Scheduled)
          type: string
        systemId:
          description: UUID of System
          type: string
        systemName:
          description: Name of System
          type: string
        totalFailed:
          description: Number of failed rules in config analysis execution
          type: integer
        totalPassed:
          description: Number of rules passed in config analysis execution
          type: integer
        totalWarning:
          description: Number of warnings in config analysis execution
          type: integer
        type:
          description: The type of resource.
          type: string
      required:
        - id
        - type
    ConfigAnalyserResultsList:
      properties:
        count:
          type: integer
        items:
          items:
            $ref: '#/components/schemas/ConfigAnalyserResults'
          type: array
        offset:
          type: number
        total:
          type: integer
      required:
        - items
        - count
    ConfigAnalysisStatus:
      description: Status of last run of configuration analysis job.
      properties:
        createdAt:
          description: Time when configuration analysis job was created.
          type: string
        createdBy:
          description: Configuration analysis job was created by.
          type: string
        nextScheduledRunTime:
          description: Time when configuration analysis job was next scheduled.
          type: string
        ruleRunStartTime:
          description: Time when configuration analysis job was started.
          type: string
        totalFailed:
          description: Count of failed checks.
          type: number
        totalPassed:
          description: Count of passed checks.
          type: number
        totalWarning:
          description: Count of warning checks.
          type: number
      type: object
    CurrentSoftwareCatalog:
      allOf:
        - $ref: '#/components/schemas/CommonSoftwareCatalogProperties'
      description: >
        Software Catalog with detailed versions of various software components
        like HPE Storage Software, hypervisor software, HPE Storage Connection
        Manager and Server firmware. If the version of this catalog is set to
        'Unavailable', it means one or more software component versions are not
        available. If the version of this catalog is set to 'Non-Compliant', it
        means the current set of software component versions does not match any
        of the supported software catalog versions.
      properties:
        reasons:
          description: >-
            Reasons if any as to why the current software catalog version cannot
            be determined
          items:
            type: string
          type: array
      type: object
    EmptyResponse:
      type: object
    Encryption:
      description: Encryption for the volumes.
      properties:
        cipher:
          description: Encryption cipher for the volumes.
          enum:
            - AES_256_XTS
            - None
          type: string
        provider:
          description: Library that provides the ability to encrypt sensitive data.
          type: string
        scope:
          description: >-
            Enables one to manage encryption at the level of an individual blob
            or container.
          enum:
            - Volume
            - Pool
            - Group
            - None
          type: string
      required:
        - cipher
      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
    ExecuteConfigAnalysisRulesRequest:
      properties:
        systemId:
          description: An identifier for the System, usually a UUID.
          format: uuid
          type: string
    HealthComponentStatus:
      description: >
        Resource Component Health Status. Indicated as ENUM with following
        mapping
      enum:
        - OK
        - WARNING
        - CRITICAL
        - MISSING
        - UNKNOWN
      type: string
    HypervisorCluster:
      description: Hypervisor Cluster Information of the system.
      properties:
        hypervisorManagerAddress:
          description: Address of Hypervisor Cluster Manager.
          type: string
        hypervisorManagerId:
          description: Unique Identifier of Hypervisor Cluster Manager.
          type: string
        hypervisorManagerName:
          description: Name of Hypervisor Cluster Manager.
          type: string
        id:
          description: Unique Identifier of the Hypervisor Cluster, usually a UUID.
          format: uuid
          type: string
        name:
          description: Name of the Hypervisor Cluster
          type: string
        resourceUri:
          description: Resource URI of the Hypervisor Cluster.
          type: string
      type: object
    HypervisorClusterForUpdate:
      description: Hypervisor Cluster id and Name
      properties:
        hypervisorClusterId:
          $ref: '#/components/schemas/CommonComponents/properties/hypervisorClusterId'
        hypervisorClusterName:
          $ref: >-
            #/components/schemas/CommonComponents/properties/hypervisorClusterName
      type: object
    HypervisorClusterSoftwareInfo:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
      description: Hypervisor cluster with details of each software component.
      properties:
        availableSoftwareCatalogs:
          description: >-
            List of software catalogs available for update on the hypervisor
            cluster.
          items:
            $ref: '#/components/schemas/AvailableSoftwareCatalog'
          type: array
        currentSoftwareCatalog:
          $ref: '#/components/schemas/CurrentSoftwareCatalog'
          description: >-
            Current Software Catalog with detailed information about all the
            software components.
          type: object
        currentUpdateStatus:
          $ref: '#/components/schemas/UpdateStatus'
        lastPrecheckRunOn:
          description: Date on which the last software precheck was run.
          format: date-time
          type: string
        lastPrecheckRunVersion:
          description: >-
            Version of the software catalog to which last software precheck was
            run.
          type: string
        lastUpdatedOn:
          description: >-
            Date on which the last software update was performed on this
            hypervisor cluster.
          format: date-time
          type: string
        unavailableSoftwareCatalogs:
          description: >-
            List of software catalogs that are unavailable for update on the
            hypervisor cluster.
          items:
            $ref: '#/components/schemas/UnavailableSoftwareCatalog'
          type: array
      type: object
    HypervisorHost:
      description: id, URI to reference the hypervisor host.
      properties:
        hypervisorClusterId:
          format: uuid
          type: string
        hypervisorClusterName:
          type: string
        hypervisorHostIp:
          type: string
        id:
          description: Hypervisor Host details of the Server.
          format: uuid
          type: string
        name:
          description: Hypervisor Host Name of the Server.
          example: hypervisor-host-name
          type: string
        resourceUri:
          type: string
        type:
          example: hypervisor-host
          type: string
      type: object
    PatchSystemLocationProperties:
      properties:
        city:
          description: City
          type: string
        countryCode:
          description: Country Code
          type: string
        stateCode:
          description: State Code
          type: string
        zipCode:
          description: Zip Code
          type: string
      type: object
    PatchSystemRequest:
      description: Request parameter for patch operation on the system.
      properties:
        location:
          allOf:
            - $ref: '#/components/schemas/PatchSystemLocationProperties'
          description: Location details to be updated on the system
          type: object
    PerformancePolicyPropertiesId:
      properties:
        id:
          description: An identifier for the performance policy.
          format: uuid
          type: string
    PerformancePolicyWithId:
      allOf:
        - $ref: '#/components/schemas/PerformancePolicyPropertiesId'
      description: Performance policy with identifier.
      type: object
    PrecheckRequest:
      description: >-
        Request parameters for software update prechecks operation on the
        system.
      properties:
        catalogVersion:
          description: >-
            Version of the target software catalog for the software
            precheck/update request.
          type: string
        hypervisorClusterIds:
          description: >-
            List of Unique Identifiers (usually UUIDs) of Hypervisor Clusters in
            the system for which software update prechecks operation is to be
            initiated. If omitted, software update prechecks operation will be
            initiated on all Hypervisor Clusters available in the system.
          items:
            $ref: >-
              #/components/schemas/CommonComponents/properties/hypervisorClusterId
          type: array
      required:
        - catalogVersion
    ProtectionPolicy:
      description: Protection policy.
      properties:
        description:
          description: The description of the vm provisioning policy.
          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
        id:
          description: An identifier for the protection policy.
          format: uuid
          type: string
        name:
          description: Name of the protection policy.
          type: string
        overrides:
          $ref: '#/components/schemas/ProtectionPolicyAdvanceOverrides'
      required:
        - id
        - name
      type: object
    ProtectionPolicyAdvanceOverrides:
      description: Protection policy advance settings.
      properties:
        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
          type: string
        consistency:
          description: >-
            Specifies whether to create crash consistent or application
            consistent snapshot. CRASH_CONSISTENT_ON_FAILURE: 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
      required:
        - consistency
        - backupGranularity
      type: object
    QoS:
      description: Quality of service.
      properties:
        perfIopsLimit:
          description: >-
            IOPS limit for this volume. If limit_iops is not specified when a
            volume is created, or if limit_iops is set to -1, then the volume
            has no IOPS limit. If limit_iops is not specified while creating a
            clone, IOPS limit of parent volume will be used as limit. IOPS limit
            should be in range [256, 4294967294] or -1 for unlimited. If both
            limit_iops and limit_mbps are specified, limit_mbps must not be hit
            before limit_iops. In other words, IOPS and MBPS limits should honor
            limit_iops &lt;= ((limit_mbps MB/s * 2^20 B/MB) / block_size B).
            Signed 64-bit integer.
          example: 1200
          type: number
        perfMbpsLimit:
          description: >-
            Throughput limit for this volume in MB/s. If limit_mbps is not
            specified when a volume is created, or if limit_mbps is set to -1,
            then the volume has no MBPS limit. MBPS limit should be in range [1,
            4294967294] or -1 for unlimited. If both limit_iops and limit_mbps
            are specified, limit_mbps must not be hit before limit_iops. In
            other words, IOPS and MBPS limits should honor limit_iops &lt;=
            ((limit_mbps MB/s * 2^20 B/MB) / block_size B). Signed 64-bit
            integer.
          example: 1200
          type: number
      required:
        - perfMbpsLimit
        - perfIopsLimit
      type: object
    RedundancyComponentStatus:
      description: >
        Resource Component Redundancy Status. Indicated as ENUM with following
        mapping
      enum:
        - REDUNDANT
        - NONREDUNDANT
        - FAILEDREDUNDANT
        - ABSENT
        - DISABLED
        - OFFLINE
        - UNAVAILABLEOFFLINE
        - STANDBYOFFLINE
        - UNKNOWN
      type: string
    ServerHealth:
      description: Server Health information
      properties:
        agentlessManagementService:
          type: string
        biosOrHardwareHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        fanHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        fanRedundancy:
          $ref: '#/components/schemas/RedundancyComponentStatus'
        hbLastUpdateTimestamp:
          type: string
        memoryHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        networkHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        overallServerHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        powerState:
          type: string
        powerSuppliesHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        powerSuppliesRedundancy:
          $ref: '#/components/schemas/RedundancyComponentStatus'
        processorHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        smartStorageBatteryHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        storageHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
        temperaturesHealth:
          $ref: '#/components/schemas/HealthComponentStatus'
      type: object
    ServerInfo:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
      description: Details of the Server with select information.
      properties:
        health:
          $ref: '#/components/schemas/ServerHealth'
        hypervisorHost:
          $ref: '#/components/schemas/HypervisorHost'
        iloFirmwareVersion:
          description: firmware version of iLO in the server.
          example: iLO 5 v2.14
          type: string
        iloNetworkInfo:
          description: ILO Network Information.
          properties:
            gateway:
              type: string
            iloHostname:
              description: iLO Hostname
              type: string
            iloIp:
              description: iLO Management IP address
              type: string
            network:
              type: string
            subnetMask:
              type: string
          type: object
        iloState:
          description: state of the iLO in the server.
          example: ENABLED
          type: string
        iloStatus:
          description: status of the iLO in the server.
          example: 'ON'
          type: string
        indicatorLedStatus:
          description: iLO LED indication.
          example: 'OFF'
          type: string
        maintenanceMode:
          description: Is the server in maintenance mode?
          type: boolean
        memoryGib:
          description: Memory of the server.
          type: string
        model:
          description: The model of the server.
          example: ProLiant DL325 Gen10
          type: string
        ncmVersion:
          description: Version of NCM installed on the server.
          example: 7.0.2-650014
          type: string
        powerState:
          description: Server Power state.
          enum:
            - 'ON'
            - RESET
            - UNKNOWN
          type: string
        processorCount:
          description: Number of processors in the server.
          type: string
        processorModel:
          description: Model of the processors in the server.
          example: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
          type: string
        serialNumber:
          description: Server's serial number.
          example: MXQ02203VM
          type: string
        systemId:
          description: Unique Identifier of the system, usually a UUID.
          format: uuid
          type: string
      type: object
    ServerInfoList:
      allOf:
        - $ref: '#/components/schemas/CommonListResponse'
      properties:
        items:
          items:
            $ref: '#/components/schemas/ServerInfo'
          type: array
      required:
        - items
    SoftwareCatalog:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
        - $ref: '#/components/schemas/CommonSoftwareCatalogProperties'
      description: >-
        System Software Catalog with all the detailed information of software
        components, end user license agreement and a list of systems that have
        an update path to the catalog.
      properties:
        eula:
          description: End User License Agreement for this software catalog
          type: string
        systemsWithUpdatePath:
          description: List of systems having update path to this software catalog
          items:
            $ref: '#/components/schemas/SystemForUpdate'
          type: array
      type: object
    SoftwareCatalogsList:
      allOf:
        - $ref: '#/components/schemas/CommonListResponse'
      properties:
        items:
          items:
            $ref: '#/components/schemas/SoftwareCatalog'
          type: array
      required:
        - items
    SoftwareComponentCommonProperties:
      properties:
        name:
          description: Specific name of the software component
          type: string
        releaseDate:
          description: Release date of the software component
          type: string
        releaseNotesUrl:
          description: >-
            Uniform Resource Locator (URL) of Release Notes for the version of
            software component
          type: string
        version:
          description: Version number of the software component
          type: string
      type: object
    StorageProfileClusterBasic:
      allOf:
        - $ref: '#/components/schemas/ClusterBasic'
      description: Storage profile with associated cluster details.
      properties:
        associatedDatastores:
          description: >-
            datastores that the VM provisioning policy should be associated
            with.
          items:
            $ref: '#/components/schemas/AssociatedDS'
          type: array
        associatedVmCount:
          description: number of associated VMs
          type: integer
        associatedVms:
          description: Objects that the VM provisioning policy should be associated with.
          items:
            $ref: '#/components/schemas/AssociatedVM'
          type: array
        storageProfileId:
          description: An identifier for the storage profile.
          type: string
      type: object
    StorageSystem:
      description: Storage Information of system.
      properties:
        compressionRatio:
          description: Compression ratio of the storage system.
          type: number
        dedupeRatio:
          description: Deduplication ratio of the storage system.
          type: number
        groupLeaderName:
          description: Name of the storage system array group leader.
          type: string
        groupLeaderSerialNumber:
          description: Serial number of the storage system array group leader.
          type: string
        groupName:
          description: Name of the storage system array group.
          type: string
        groupState:
          description: State of the storage system array group.
          type: string
        id:
          description: Storage system array Identifier, usually a UUID.
          format: uuid
          type: string
        name:
          description: Name of the Storage system Array
          type: string
        resourceUri:
          description: Resource URI of the Storage system Array
          type: string
      type: object
    StorageUsage:
      description: Storage Usage Information of system.
      properties:
        sizeInBytes:
          description: Storage Capacity of the system
          type: number
        usageInBytes:
          description: Storage Usage of the system
          type: number
      type: object
    SystemComputeUsage:
      description: System Compute Usage Information.
      properties:
        cpuCapacityMhz:
          description: CPU Capacity in Mhz of system
          type: number
        cpuUsedMhz:
          description: CPU Usage in Mhz by system
          type: number
        memoryCapacityBytes:
          description: Memory Capacity in Bytes of system
          type: number
        memoryUsedBytes:
          description: Memory Usage in Bytes by system
          type: number
      type: object
    SystemForUpdate:
      description: System id and Name with a list of hypervisor clusters
      properties:
        hypervisorClusters:
          items:
            $ref: '#/components/schemas/HypervisorClusterForUpdate'
          type: array
        id:
          $ref: '#/components/schemas/CommonComponents/properties/systemId'
        name:
          $ref: '#/components/schemas/CommonComponents/properties/systemName'
      type: object
    SystemHealth:
      description: >
        Aspects of system health.


        Deduced health of storage subsystem based on associated arrays,
        controllers, disks,

        shelves, power supply, network interfaces, fan and temperature sensors.


        Aggregated health of servers based on health statuses of multiple
        servers in the system.


        Aggregated health of network based on health statues of multiple
        switches used in the system.


        Deduced/Aggregated overall health of the system based on storage,
        servers and networking health.
      properties:
        network:
          $ref: '#/components/schemas/ComponentStatusSeverity'
        overallHealth:
          $ref: '#/components/schemas/ComponentStatusSeverity'
        servers:
          $ref: '#/components/schemas/ComponentStatusSeverity'
        storage:
          $ref: '#/components/schemas/ComponentStatusSeverity'
      type: object
    SystemInfo:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
      description: Details of the system with select information.
      properties:
        associatedResourceCounts:
          $ref: '#/components/schemas/AssociatedResourceCounts'
        computeUsage:
          $ref: '#/components/schemas/SystemComputeUsage'
        configAnalysisStatus:
          $ref: '#/components/schemas/ConfigAnalysisStatus'
        health:
          $ref: '#/components/schemas/SystemHealth'
        hypervisorClusters:
          description: >-
            List of hypervisor clusters in the system with their software
            details.
          items:
            $ref: '#/components/schemas/HypervisorCluster'
          type: array
        location:
          $ref: '#/components/schemas/SystemLocation'
        softwareInfo:
          description: system software information.
          properties:
            currentUpdateStatus:
              $ref: '#/components/schemas/UpdateStatus'
            hypervisorClusters:
              description: >-
                List of hypervisor clusters in the system with their software
                details.
              items:
                $ref: '#/components/schemas/HypervisorClusterSoftwareInfo'
              type: array
            lastUpdatedOn:
              description: >-
                Date on which the last software update was performed on this
                system.
              format: date-time
              type: string
            precheckValidUntil:
              description: >-
                If a software update precheck is completed recently, time until
                which that precheck is valid for software update to be
                initiated.
              format: date-time
              type: string
          type: object
        stackType:
          description: Stack Type of the system
          enum:
            - DHCI
            - SIMPLIVITY
          type: string
        state:
          description: Current state of the system
          enum:
            - OFFLINE
            - ONLINE
            - INITIALIZED
            - UNINITIALIZED
          type: string
        storageSystem:
          $ref: '#/components/schemas/StorageSystem'
        storageUsage:
          $ref: '#/components/schemas/StorageUsage'
        systemVms:
          description: List of system virtual machine information.
          items:
            $ref: '#/components/schemas/SystemVm'
          type: array
      type: object
    SystemInfoList:
      allOf:
        - $ref: '#/components/schemas/CommonListResponse'
      properties:
        items:
          items:
            $ref: '#/components/schemas/SystemInfo'
          type: array
      required:
        - items
    SystemLocation:
      description: System Location Information.
      properties:
        city:
          description: City
          type: string
        countryCode:
          description: Country Code
          type: string
        latitude:
          description: Latitude coordinate of the system location
          type: string
        longitude:
          description: Longitude coordinate of the system location
          type: string
        stateCode:
          description: State Code
          type: string
        zipCode:
          description: Zip Code
          type: string
      type: object
    SystemVm:
      description: >-
        System Virtual Machines Information.  These are not workload virtual
        machines. These virtual machines are part of the system itself - e.g.
        the Omnicube virtual machines in a system with stackType SIMPLIVITY.
      properties:
        name:
          description: Name of the system Virtual Machine.
          type: string
        uuid:
          description: Unique Identifier of the system virtual machine, usually a UUID.
          format: uuid
          type: string
      type: object
    UnavailableSoftwareCatalog:
      allOf:
        - $ref: '#/components/schemas/CommonSoftwareCatalogProperties'
      description: >-
        Software Catalog with detailed versions of the HPE Storage Software,
        hypervisor software, HPE Storage Connection Manager and Firmware
      properties:
        reasons:
          description: Reasons why this catalog is unavailable for update
          items:
            type: string
          type: array
      type: object
    UpdateRequest:
      description: Request parameters for software update operation on the system.
      properties:
        catalogVersion:
          description: >-
            Version of the target software catalog for the software
            precheck/update request.
          type: string
        hypervisorClusterIds:
          description: >-
            List of Unique Identifiers (usually UUIDs) of Hypervisor Clusters in
            the system for which software update operation is to be initiated.
            If omitted, software update operation will be initiated on all
            Hypervisor Clusters available in the system.
          items:
            $ref: >-
              #/components/schemas/CommonComponents/properties/hypervisorClusterId
          type: array
      required:
        - catalogVersion
    UpdateStatus:
      description: Details of the current software update status
      properties:
        catalogVersion:
          description: >-
            Software Catalog version to which the update operation is in
            progress, if any.
          type: string
        parentTaskUri:
          description: >-
            Uniform Resource Identifier (URI) of the parent software update task
            (asynchronous operation).
          type: string
        percentage:
          description: Percentage of the software update progress.
          type: integer
        state:
          description: |
            Status of the software update:
              * `UP_TO_DATE` - Already up to date
              * `UPDATE_AVAILABLE` - One or more updates are available
              * `PENDING` - Waiting for update operation (precheck or update) to begin
              * `PRECHECK_IN_PROGRESS` - A software update precheck operation is in progress
              * `PRECHECK_FAILED` - The previous software update precheck operation has failed
              * `PRECHECK_COMPLETE` - The previous software update precheck operation has completed successfully
              * `UPDATE_IN_PROGRESS` - A software update operation is in progress
              * `UPDATE_COMPLETE` - The previous software update operation has completed successfully
              * `UPDATE_FAILED` - The previous software update operation has failed
              * `NOT_READY` - Not ready for update (e.g. when current version is not available, so no update paths exist)
          enum:
            - UP_TO_DATE
            - UPDATE_AVAILABLE
            - PENDING
            - PRECHECK_IN_PROGRESS
            - PRECHECK_FAILED
            - PRECHECK_COMPLETE
            - UPDATE_IN_PROGRESS
            - UPDATE_COMPLETE
            - UPDATE_FAILED
            - NOT_READY
          type: string
        taskUri:
          description: >-
            Uniform Resource Identifier (URI) of the software update task
            (asynchronous operation).
          type: string
      type: object
    VMProvisioningPoliciesList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VMProvisioningPolicy'
          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
    VMProvisioningPolicy:
      description: |
        Represents a Virtual Machine Provisioning Policy
      properties:
        associatedObjects:
          description: Objects that the VM provisioning policy should be associated with.
          items:
            $ref: '#/components/schemas/AssociatedObj'
          type: array
        createdAt:
          $ref: '#/components/schemas/CommonResourceProperties/properties/createdAt'
        customerId:
          $ref: '#/components/schemas/CommonResourceProperties/properties/customerId'
        description:
          description: A brief description of the VM provisioning policy.
          maxLength: 255
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        id:
          description: UUID string uniquely identifying the VM provisioning policy.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          type: string
        name:
          description: A user friendly name to identify the VM provisioning policy.
          example: myProvisioningPolicy
          maxLength: 80
          type: string
        performancePolicy:
          $ref: '#/components/schemas/PerformancePolicyWithId'
        protectionPolicy:
          $ref: '#/components/schemas/ProtectionPolicy'
        resourceUri:
          $ref: '#/components/schemas/CommonResourceProperties/properties/resourceUri'
        storageType:
          default: Alletra dHCI
          description: Storage Type of the system.
          enum:
            - Alletra dHCI
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          $ref: '#/components/schemas/CommonResourceProperties/properties/updatedAt'
        volumeInfo:
          $ref: '#/components/schemas/VolumeInfo'
      required:
        - id
        - type
        - name
        - storageType
        - associatedObjects
      type: object
    VMProvisioningPolicyCreate:
      description: Input to create a VM provisioning policy.
      properties:
        description:
          $ref: '#/components/schemas/VMProvisioningPolicy/properties/description'
        name:
          $ref: '#/components/schemas/VMProvisioningPolicy/properties/name'
        protectionPolicy:
          $ref: >-
            #/components/schemas/VMProvisioningPolicy/properties/protectionPolicy
        storageType:
          default: Alletra dHCI
          description: Storage Type of the system.
          enum:
            - Alletra dHCI
          type: string
        volumeInfo:
          $ref: '#/components/schemas/VolumeInfo'
      required:
        - name
        - storageType
    VMProvisioningPolicyEdit:
      description: Input to edit a VM provisioning policy.
      properties:
        description:
          $ref: '#/components/schemas/VMProvisioningPolicy/properties/description'
        protectionPolicy:
          $ref: >-
            #/components/schemas/VMProvisioningPolicy/properties/protectionPolicy
        storageType:
          default: Alletra dHCI
          description: Storage Type of the system.
          enum:
            - Alletra dHCI
          type: string
        volumeInfo:
          $ref: '#/components/schemas/VolumeInfo'
    VolumeInfo:
      description: |
        DHCI volume attributes
      properties:
        allFlash:
          description: This indicates whether all flash is enabled or not.
          type: boolean
        conversionType:
          default: CONVERSIONTYPE_THIN
          description: Conversion type of the volume
          enum:
            - CONVERSIONTYPE_THIN
            - CONVERSIONTYPE_V1
            - CONVERSIONTYPE_V2
          type: string
        dataReduction:
          description: >-
            Specifies if data reduction capability is enabled. Data reduction is
            a combination of both deduplication and compression.
          type: boolean
        deduplication:
          description: >-
            Specifies if dedupe is enabled for volumes created. Deduplication is
            a process that eliminates excessive copies of data and significantly
            decreases storage capacity requirements. 
          type: boolean
        encryption:
          $ref: '#/components/schemas/Encryption'
        qos:
          $ref: '#/components/schemas/QoS'
        snapshotAllocWarning:
          description: >-
            Sets a snapshot space allocation limit. The snapshot space of the
            virtual volume is prevented from growing beyond the indicated
            percentage of the virtual volume size. A warning alert is generated
            when the reserved snapshot space of the virtual volume exceeds the
            indicated percentage of the virtual volume size.
          type: integer
        userAllocWarning:
          description: >-
            Sets a user space allocation limit. The user space of the TPVV(thin
            provisioned virtual volume) is prevented from growing beyond the
            indicated percentage of the virtual volume size. A warning alert is
            generated when the user data space of the TPVV exceeds the specified
            percentage of the virtual volume size.
          type: integer
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: >
        The HPE GreenLake for Private Cloud Business Edition 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
