openapi: 3.1.0
info:
  description: Virtualization API
  license:
    name: HPE End User License Agreement
    url: https://www.hpe.com/us/en/software/licensing.html
  title: Virtualization API
  version: 1.2.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: Operations on cloud service provider (CSP) machine images.
    name: csp-machine-images
  - description: Operations on cloud service provider (CSP) machine instance types.
    name: csp-machine-instance-types
  - description: Operations on cloud service provider (CSP) machine instances.
    name: csp-machine-instances
  - description: The datastores API allows the registration and management of datastores.
    name: datastores
  - description: >-
      The hypervisor clusters API enables you to get the details of the
      hypervisor clusters in a hypervisor manager.
    name: hypervisor-clusters
  - description: >-
      The hypervisor folders API enables you to get the details of the
      hypervisor folders in a hypervisor manager.
    name: hypervisor-folders
  - description: >-
      The hypervisor hosts API enables you to get the details of the hypervisor
      hosts in a hypervisor manager.
    name: hypervisor-hosts
  - description: >-
      The hypervisor managers API allows the registration and management of
      hypervisor managers.
    name: hypervisor-managers
  - description: >-
      The hypervisor networks API enables you to get the details of the
      hypervisor networks in a hypervisor manager.
    name: hypervisor-networks
  - description: >-
      The hypervisor tags API enables you to get the details of the hypervisor
      tags in a hypervisor manager.
    name: hypervisor-tags
  - description: >-
      The resource pool API enables you to get the details of the hypervisor
      resource pools in a hypervisor manager.
    name: resource-pools
  - description: >-
      The virtual machines API allows the registration and management of virtual
      machines.
    name: virtual-machines
paths:
  /virtualization/v1beta1/csp-machine-images:
    get:
      description: >
        Returns a list of cloud service provider (CSP) machine images based on
        the query

        parameters for paging, filtering, and sorting.
      operationId: CSPMachineImageList
      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:
            default: 0
            minimum: 0
            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: 0
            type: integer
        - description: |
            An expression to filter the results.

            Filtering is supported with following attributes:
             * name
             * cspInfo.id 
             * cspInfo.region
             * cspInfo.architecture
             * cspInfo.state
             * cspInfo.hypervisor
             * cspInfo.rootDeviceType
             * cspInfo.rootDeviceName
             * cspInfo.virtualizationType
             * cspType
             * cspInfo.location
             * cspInfo.ownerId
          example: filter=hypervisor eq 'hvm' and region eq 'eu-west-3'
          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:
            default: name asc
            type: string
        - description: A list of properties to include in the response.
          example: id,name,state
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CSPMachineImageList'
          description: List of CSP machine images
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: An unexpected error occurred.
      summary: Get a list of CSP machine images
      tags:
        - csp-machine-images
  /virtualization/v1beta1/csp-machine-images/{id}:
    get:
      description: >-
        Returns details of a specified cloud service provider (CSP) machine
        image.
      operationId: CSPMachineImageGet
      parameters:
        - description: Unique identifier of a CSP machine image
          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/CSPMachineImage'
          description: Details of a CSP machine image
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get details of a CSP machine image
      tags:
        - csp-machine-images
  /virtualization/v1beta1/csp-machine-instance-types:
    get:
      description: >
        Returns a list of cloud service provider (CSP) machine instance types
        based on the query

        parameters for paging, filtering, and sorting.
      operationId: CSPMachineInstanceTypeList
      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:
             * cspInfo.region
             * cspInfo.freeTierEligible
             * cspInfo.processorInfo.supportedArchitectures
             * cspInfo.supportedVirtualizationTypes
             * cspInfo.cspInfo.supportedRootDeviceTypes
             * cspInfo.hypervisor
             * cspInfo.ebsInfo.encryptionSupport
             * cspInfo.networkInfo.enaSupport
             * cspType
          example: filter=hypervisor eq 'hvm' and region eq 'eu-west-3'
          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:
            default: asc
            type: string
        - description: A list of properties to include in the response.
          example: id,name,state
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CSPMachineInstanceTypeList'
          description: List of CSP machine instance types
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: An unexpected error occurred.
      summary: Get a list of CSP machine instance types
      tags:
        - csp-machine-instance-types
  /virtualization/v1beta1/csp-machine-instance-types/{id}:
    get:
      description: >-
        Returns details of a specified cloud service provider (CSP) machine
        instance type.
      operationId: CSPMachineInstanceTypeGet
      parameters:
        - description: Unique identifier of a CSP machine instance type
          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/CSPMachineInstanceType'
          description: Details of a CSP machine instance type
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
      summary: Get details of a CSP machine instance type
      tags:
        - csp-machine-instance-types
  /virtualization/v1beta1/csp-machine-instances:
    post:
      description: Create CSP Machine Instance
      operationId: CreateCSPMachineInstance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCSPMachineInstanceRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: State Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create CSP Machine Instance
      tags:
        - csp-machine-instances
  /virtualization/v1beta1/csp-machine-instances/{id}:
    delete:
      description: Deletes the cloud service provider (CSP) machine instance.
      operationId: TerminateCSPVMInstance
      parameters:
        - description: Unique identifier of a CSP machine instance
          example: fad49630-2a7d-4705-956d-67abdbe8a70b
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: State Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Terminate a CSP Machine Instance
      tags:
        - csp-machine-instances
  /virtualization/v1beta1/csp-machine-instances/{id}/power-off:
    post:
      description: Powers off the cloud service provider (CSP) machine instance.
      operationId: PowerOffCSPVMInstance
      parameters:
        - description: Unique identifier of a CSP machine instance
          example: fad49630-2a7d-4705-956d-67abdbe8a70b
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: State Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Power Off CSP Machine Instance
      tags:
        - csp-machine-instances
  /virtualization/v1beta1/csp-machine-instances/{id}/power-on:
    post:
      description: Powers on cloud service provider (CSP) machine instance.
      operationId: PowerOnCSPVMInstance
      parameters:
        - description: Unique identifier of a CSP machine instance
          example: fad49630-2a7d-4705-956d-67abdbe8a70b
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: State Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Power On CSP Machine Instance
      tags:
        - csp-machine-instances
  /virtualization/v1beta1/datastores:
    get:
      description: List all the datastores across registered hypervisor managers.
      operationId: DatastoresList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET /virtualization/v1beta1/datastores?filter="datastoreType eq
            VMFS"

            * GET /virtualization/v1beta1/datastores?filter="datastoreType eq
            VMFS and status eq ERROR"


            Filters are supported on the following attributes:

            * status

            * state

            * appType

            * hypervisorManagerInfo/name

            * hypervisorManagerInfo/displayName

            * hypervisorManagerInfo/id

            * hostsInfo/id

            * hostsInfo/name

            * hostsInfo/displayName

            * clusterInfo/id

            * clusterInfo/name

            * clusterInfo/displayName

            * protectionJobInfo/protectionPolicyInfo/id

            * protectionJobInfo/protectionPolicyInfo/name

            * vmProtectionGroupsInfo/id

            * vmProtectionGroupsInfo/name

            * volumesInfo/id

            * volumesInfo/storageSystemInfo/id

            * volumesInfo/storageSystemInfo/serialNumber

            * volumesInfo/storageSystemInfo/name

            * volumesInfo/storageSystemInfo/vendorName

            * volumesInfo/storageFolderInfo/id

            * volumesInfo/storageFolderInfo/name

            * volumesInfo/storagePoolInfo/id

            * volumesInfo/storagePoolInfo/name

            * datastoreType

            * createdAt

            * name

            * services

            * allowedOperations

            * capacityInBytes

            * capacityFree

            * displayName

            * replicationInfo/name

            * replicationInfo/id

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatastoreList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all datastores across registered hypervisor managers.
      tags:
        - datastores
    post:
      description: |
        Create datastore
      operationId: CreateDS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDS'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Create datastore
      tags:
        - datastores
  /virtualization/v1beta1/datastores/{datastore-id}:
    get:
      description: Details of a datastore
      operationId: Datastore
      parameters:
        - in: path
          name: datastore-id
          required: true
          schema:
            $ref: '#/components/schemas/Datastore/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datastore'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a datastore identified by {datastore-id}
      tags:
        - datastores
  /virtualization/v1beta1/hypervisor-clusters:
    get:
      description: List all the hypervisors clusters across registered hypervisor managers.
      operationId: HypervisorClusterList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-clusters?filter="clusterType eq
            ESX_CLUSTER"

            * GET
            /virtualization/v1beta1/hypervisor-clusters?filter="clusterType eq
            ESX_CLUSTER and status eq ERROR"


            Filters are supported on the following attributes:

            * clusterType

            * id

            * state

            * hypervisorManagerInfo/name

            * hypervisorManagerInfo/displayName

            * hypervisorManagerInfo/id

            * status

            * createdAt

            * hciClusterUuid

            * name

            * services

            * displayName

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorClusterList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all clusters across registered hypervisor managers.
      tags:
        - hypervisor-clusters
  /virtualization/v1beta1/hypervisor-clusters/{cluster-id}:
    get:
      description: Details of a hypervisors cluster.
      operationId: HypervisorCluster
      parameters:
        - in: path
          name: cluster-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorCluster/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorCluster'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor cluster resource identified by {cluster-id}
      tags:
        - hypervisor-clusters
  /virtualization/v1beta1/hypervisor-hosts:
    get:
      description: List all the hosts across registered hypervisor managers.
      operationId: HypervisorHostList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET /virtualization/v1beta1/hypervisor-hosts?filter="hostType eq
            ESXI"

            * GET /virtualization/v1beta1/hypervisor-hosts?filter="hostType eq
            ESXI and status eq ERROR"


            Filters are supported on the following attributes:

            * hostType

            * state

            * status

            * hypervisorManagerInfo/name

            * hypervisorManagerInfo/displayName

            * hypervisorManagerInfo/id

            * version

            * createdAt

            * hciClusterUuid

            * hciServerUuid

            * name

            * services

            * displayName

            * cpuInfo/processorSpeedHz

            * cpuInfo/processorSockets

            * cpuInfo/processorCores

            * cpuInfo/logicalProcessors

            * cpuInfo/hyperthreadingActive

            * cpuSockets/vendor

            * cpuSockets/cpuBusSpeedHz

            * cpuSockets/cpuCoreSpeedHz

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorHostList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all hosts across registered hypervisor managers.
      tags:
        - hypervisor-hosts
  /virtualization/v1beta1/hypervisor-hosts/{host-id}:
    get:
      description: Details of a hypervisors host.
      operationId: HypervisorHost
      parameters:
        - in: path
          name: host-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorHost/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorHost'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor host resource identified by {host-id}
      tags:
        - hypervisor-hosts
  /virtualization/v1beta1/hypervisor-managers:
    get:
      description: List all the registered hypervisor managers.
      operationId: HypervisorManagerList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-managers?filter="hypervisorManagerType
            eq VMWARE_VCENTER"

            * GET
            /virtualization/v1beta1/hypervisor-managers?filter="hypervisorManagerType
            eq VMWARE_VCENTER and status eq ERROR"


            Filters are supported on the following attributes:

            * hypervisorManagerType

            * state

            * status

            * releaseVersion

            * createdAt

            * name

            * services

            * dataOrchestratorInfo/id

            * username

            * networkAddress

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorManagerList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Get all registered hypervisor managers.
      tags:
        - hypervisor-managers
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}:
    get:
      description: >-
        Get detailed information for a registered hypervisor manager qualified
        by hypervisor-id.
      operationId: HypervisorManager
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorManager'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
      summary: Get a hypervisor manager resource identified by {hypervisor-id}.
      tags:
        - hypervisor-managers
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/folders/{folder-id}:
    get:
      description: Details of a hypervisors folder.
      operationId: HypervisorFolder
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - in: path
          name: folder-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorFolder/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorFolder'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor folder resource identified by {folder-id}
      tags:
        - hypervisor-folders
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/hypervisor-library-images:
    get:
      description: List all virtual machine images from the hypervisor library.
      operationId: ListVirtualMachineImages
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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


            Examples:

            * GET
            /api/v1/hypervisor-managers/{hypervisor-id}/hypervisor-library-images?filter="filetype
            eq OVF"


            Filters are supported on the following attributes:

            * fileType

            * name

            * services

            * sizeInBytes

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorLibraryImageList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all virtual machine images from the hypervisor library.
      tags:
        - hypervisor-managers
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/hypervisor-library-images/{hypervisor-library-image-id}:
    get:
      description: Details of a virtual machine image
      operationId: GetVirtualMachineImage
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - in: path
          name: hypervisor-library-image-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorLibraryImage/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorLibraryImage'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: >-
        Get a hypervisor library image identified by
        {hypervisor-library-image-id}
      tags:
        - hypervisor-managers
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/networks/{network-id}:
    get:
      description: Details of a hypervisors network resource.
      operationId: HypervisorNetwork
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - in: path
          name: network-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorNetwork/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorNetwork'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor network resource identified by {network-id}
      tags:
        - hypervisor-networks
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/refresh:
    post:
      description: Updates the properties of the specified hypervisor manager
      operationId: HypervisorRefresh
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Request accepted
          headers:
            Location:
              schema:
                type: string
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A hypervisor manager with the given ID was not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            A refresh action cannot be initiated in the current state of the
            cloud account.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: An unexpected error occurred.
      summary: Refresh the specified hypervisor manager
      tags:
        - hypervisor-managers
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/resource-pools/{pool-id}:
    get:
      description: Details of a hypervisors resource pool.
      operationId: HypervisorResourcePool
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - in: path
          name: pool-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorResourcePool/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorResourcePool'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor resource pool identified by {pool-id}.
      tags:
        - resource-pools
  /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/tags/{tag-id}:
    get:
      description: Details of a hypervisors tag resource.
      operationId: HypervisorTag
      parameters:
        - in: path
          name: hypervisor-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - in: path
          name: tag-id
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorTag/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorTag'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a hypervisor tag resource identified by {tag-id}
      tags:
        - hypervisor-tags
  /virtualization/v1beta1/hypervisor-managers/{uuid}/folders:
    get:
      description: List all the hypervisors folders in a registered hypervisor manager.
      operationId: HypervisorFolderList
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-managers/{uuid}/folders?filter="folderType
            eq DATASTORE"


            Filters are supported on the following attributes:

            * folderType

            * createdAt

            * name

            * services

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorFolderList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all folders in a registered hypervisor manager.
      tags:
        - hypervisor-folders
  /virtualization/v1beta1/hypervisor-managers/{uuid}/networks:
    get:
      description: List all the network resources in a registered hypervisor manager.
      operationId: HypervisorNetworkList
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-managers/{uuid}/networks?filter="status
            eq ERROR"


            Filters are supported on the following attributes:

            * state

            * status

            * createdAt

            * name

            * services

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorNetworkList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all network resources in a registered hypervisor manager.
      tags:
        - hypervisor-networks
  /virtualization/v1beta1/hypervisor-managers/{uuid}/resource-pools:
    get:
      description: >-
        List all the hypervisors resource pools in a registered hypervisor
        manager (vCenter).
      operationId: HypervisorResourcePoolList
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-managers/{uuid}/resource-pools?filter="status
            eq ERROR"


            Filters are supported on the following attributes:

            * state

            * status

            * createdAt

            * name

            * services

            * displayName

            * clusterInfo/id

            * clusterInfo/name

            * clusterInfo/displayName

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorResourcePoolList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all resource pools in a registered hypervisor manager (vCenter).
      tags:
        - resource-pools
  /virtualization/v1beta1/hypervisor-managers/{uuid}/tags:
    get:
      description: List all the tag resources in a registered hypervisor manager.
      operationId: HypervisorTagList
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            $ref: '#/components/schemas/HypervisorManager/properties/id'
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET
            /virtualization/v1beta1/hypervisor-managers/{uuid}/tags?filter="state
            eq OK"


            Filters are supported on the following attributes:

            * state

            * createdAt

            * name

            * services

            * displayName

            * associatedResources/id

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HypervisorTagList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all tag resources in a registered hypervisor manager.
      tags:
        - hypervisor-tags
  /virtualization/v1beta1/virtual-machines:
    get:
      description: List all the virtual machines across registered hypervisor managers.
      operationId: VirtualMachinesList
      parameters:
        - description: >-
            The number of items to skip before starting to collect the result
            set
          in: query
          name: offset
          schema:
            type: integer
        - description: The numbers of items to return
          in: query
          name: limit
          schema:
            default: 20
            format: int32
            maximum: 1000
            minimum: 1
            type: integer
        - description: >
            The filter query parameter is used to filter the set of resources
            returned in the response.

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


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

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

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

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

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

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


            Examples:

            * GET /virtualization/v1beta1/virtual-machines?filter="appType eq
            VMWARE"

            * GET /virtualization/v1beta1/virtual-machines?filter="appType eq
            VMWARE and status eq ERROR"


            Filters are supported on the following attributes:

            * status

            * state

            * appType

            * hypervisorManagerInfo/name

            * hypervisorManagerInfo/displayName

            * hypervisorManagerInfo/id

            * hostInfo/id

            * hostInfo/name

            * hostInfo/displayName

            * clusterInfo/id

            * clusterInfo/name

            * clusterInfo/displayName

            * protectionJobInfo/protectionPolicyInfo/id

            * protectionJobInfo/protectionPolicyInfo/name

            * vmProtectionGroupsInfo/id

            * vmProtectionGroupsInfo/name

            * appInfo/vmware/type

            * appInfo/vmware/moref

            * appInfo/vmware/datastoresInfo/id

            * appInfo/vmware/datastoresInfo/name

            * appInfo/vmware/datastoresInfo/displayName

            * volumesInfo/id

            * volumesInfo/storageSystemInfo/id

            * volumesInfo/storageSystemInfo/serialNumber

            * volumesInfo/storageSystemInfo/name

            * volumesInfo/storageSystemInfo/vendorName

            * volumesInfo/storageFolderInfo/id

            * volumesInfo/storageFolderInfo/name

            * volumesInfo/storagePoolInfo/id

            * volumesInfo/storagePoolInfo/name

            * powerState

            * createdAt

            * name

            * services

            * allowedOperations

            * hciClusterUuid

            * id

            * type

            * capacityInBytes

            * computeInfo/numCpuCores

            * computeInfo/memorySizeInMib

            * vmPerfMetricInfo/cpuAllocatedInMhz

            * vmPerfMetricInfo/cpuUsedInMhz

            * vmPerfMetricInfo/storageAllocatedInKb

            * vmPerfMetricInfo/storageUsedInBytes

            * vmPerfMetricInfo/memoryAllocatedInMb

            * vmPerfMetricInfo/memoryUsedInMb

            * vmPerfMetricInfo/totalReadIops

            * vmPerfMetricInfo/totalWriteIops

            * vmPerfMetricInfo/averageReadLatency

            * vmPerfMetricInfo/averageWriteLatency

            * displayName

            * protectionStatus

            * recoveryPointsExist

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

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

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

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

            The property “select” is the name of the select query parameter; its
            value is the list of properties to return separated by commas.
          in: query
          name: select
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachineList'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get all virtual machines across registered hypervisor managers.
      tags:
        - virtual-machines
    post:
      description: >
        Deploys one or more virtual machines in HCI environment with specified
        template and storage provisioning policy.
      operationId: HCIDeployVM
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HCIDeployVM'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Deploy virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}:
    delete:
      description: Delete a virtual machine
      operationId: VMDelete
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Delete a virtual machine
      tags:
        - virtual-machines
    get:
      description: Details of a virtual machine
      operationId: VirtualMachine
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualMachine'
          description: Success
        '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: Resource not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Get a virtual machine identified by {vm-id}
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/power-off:
    post:
      description: Power off a virtual machine
      operationId: VMPowerOff
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Power off a virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/power-on:
    post:
      description: Power on a virtual machine
      operationId: VMPowerOn
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Power on a virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/refresh:
    post:
      description: Updates the properties of the specified virtual machine instance
      operationId: VMRefresh
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/EmptyResponse'
          description: Request accepted
          headers:
            Location:
              schema:
                type: string
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthenticated request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A virtual machine instance with the given ID was not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            A refresh action cannot be initiated in the current state of the
            cloud account.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: An unexpected error occurred.
      summary: Refresh the specified virtual machine instance
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/reset:
    post:
      description: Reset a virtual machine
      operationId: VMPowerReset
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Reset a virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/restart-guest-os:
    post:
      description: Restart guest OS of a virtual machine
      operationId: VMRestartGuestOS
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Restart guest OS of a virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/shutdown-guest-os:
    post:
      description: Shutdown guest OS of a virtual machine
      operationId: VMShutdownGuestOS
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Appliance in maintenance mode
      summary: Shutdown guest OS of a virtual machine
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/{vm-id}/update-hardware:
    post:
      description: >-
        Updates CPU, memory, network adapters, and disks of a virtual machine.
        This operation can be performed when the virtual machine is powered off.
      operationId: EditVM
      parameters:
        - in: path
          name: vm-id
          required: true
          schema:
            $ref: '#/components/schemas/VirtualMachine/properties/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditVM'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              description: >-
                Async-operations URI that can be used to monitor the progress of
                the operation.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service unavailable
      summary: Reconfigure virtual machine hardware configurations
      tags:
        - virtual-machines
  /virtualization/v1beta1/virtual-machines/migrate:
    post:
      description: Migrate virtual machines to another cluster or datastore
      operationId: MigrateVM
      parameters:
        - description: Type of the query parameter (vms or sourceDataStoreIDs)
          in: query
          name: parameter-type
          schema:
            pattern: ^(vms|sourceDataStoreIDs)$
            type: string
        - description: >-
            A list of VM IDs to migrate or a list of SourceDatastoreIDs. If you
            specify the list of SourceDatastoreIDs, all VMs within the specified
            datastores are migrated. If you specify a list of VM IDs, only those
            VMs are migrated.
          in: query
          name: vms
          schema:
            items:
              type: string
            type: array
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrateVM'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
          description: Accepted
          headers:
            Location:
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal / unexpected error
      summary: Migrate virtual machines
      tags:
        - virtual-machines
components:
  schemas:
    ActiveNic:
      description: Active network adapter information.
      properties:
        device:
          description: Device name of the network adapter.
          type: string
      type: object
    AdditionalCommonResourceProperties:
      description: >-
        Additional property definitions that are generally applicable to all
        resources.
      properties:
        consoleUri:
          description: URI for the console screen that displays this resource
          readOnly: true
          type: string
      type: object
    AutomaticOsUpgradePropertiesInfo:
      description: Automatic Os Upgrade Properties.
      properties:
        automaticOsUpgradeSupported:
          description: Is automatic OS upgrade supported.
          example: true
          type: boolean
      type: object
    BlockDeviceMapping:
      description: Block device mapping
      properties:
        deviceName:
          description: The device name (for example, /dev/sdh or xvdh ).
          type: string
        ebs:
          $ref: '#/components/schemas/Ebs'
      type: object
    CSPMachineImage:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
        - $ref: '#/components/schemas/AdditionalCommonResourceProperties'
        - $ref: '#/components/schemas/CSPMachineImageProperties'
      description: |
        Details of a CSP machine image
    CSPMachineImageAWSCSPInfo:
      properties:
        architecture:
          description: The cloud machine image architecture (i386 | x86_64 | arm64 ).
          example: x86_64
          type: string
        blockDeviceMappings:
          description: >-
            Any block device mapping entries. Describes a block device mapping,
            which defines the EBS volumes  and instance store volumes to attach
            to an instance at launch.
          items:
            $ref: '#/components/schemas/BlockDeviceMapping'
          type: array
        description:
          description: The description of the cloud machine image.
          type: string
        enaSupport:
          description: Specifies whether enhanced networking with ENA is enabled.
          example: true
          type: boolean
        hypervisor:
          description: The hypervisor type of the image.
          example: xen
          type: string
        id:
          description: Resource identifier assigned by the cloud provider
          example: ami-0000025f7c02a13b2
          type: string
        imageType:
          description: The type of image.
          example: machine
          type: string
        location:
          description: The location of the AMI.
          example: amazon/amzn-ami-hvm-2018.03.0.20200716.0-x86_64-ebs
          type: string
        ownerAlias:
          description: >-
            The Amazon Web Services account alias (for example, amazon , self )
            or  the Amazon Web Services account ID of the AMI owner.
          example: amazon
          type: string
        ownerId:
          description: The ID of the Amazon Web Services account that owns the image.
          example: '137112412989'
          type: string
        platformDetails:
          description: The platform details associated with the billing code of the AMI.
          example: Linux/UNIX
          type: string
        public:
          description: >-
            Indicates whether the image has public launch permissions. The value
            is true if this image has  public launch permissions or false if it
            has only implicit and explicit launch permissions.
          example: true
          type: boolean
        region:
          description: Cloud provider region.
          example: eu-west-3
          type: string
        rootDeviceName:
          description: The device name of the root device volume.
          example: /dev/sda1
          type: string
        rootDeviceType:
          description: >-
            The type of root device used by the AMI. The AMI can use an Amazon
            EBS volume  or an instance store volume.
          example: ebs
          type: string
        sriovNetSupport:
          description: >-
            Specifies whether enhanced networking with the Intel 82599 Virtual
            Function  interface is enabled.
          example: simple
          type: string
        state:
          description: >-
            The current state of the AMI. If the state is available, the image
            is  successfully registered and can be used to launch an instance.
          example: available
          type: string
        usageOperation:
          description: >-
            The operation of the Amazon EC2 instance and the billing code that
            is associated with the AMI.  usageOperation corresponds to the
            lineitem/Operation column on your Amazon Web Services Cost and 
            Usage Report and in the Amazon Web Services Price List API .
          example: RunInstances
          type: string
        virtualizationType:
          description: The type of virtualization of the AMI.
          example: hvm
          type: string
    CSPMachineImageAzureCSPInfo:
      properties:
        architecture:
          description: The cloud machine image architecture (i386 | x86_64 | arm64 ).
          example: x86_64
          type: string
        automaticOsUpgradeProperties:
          $ref: '#/components/schemas/AutomaticOsUpgradePropertiesInfo'
        aztags:
          example: 2023.05.06
          type: string
        dataDiskImages:
          description: Images of data disk.
          items:
            type: string
          type: array
        description:
          description: The description of the cloud machine image.
          type: string
        disallowed:
          $ref: '#/components/schemas/DisallowedInfo'
        extendedLocation:
          description: The extended location of the Virtual Machine.
          example: ''
          type: string
        features:
          items:
            $ref: '#/components/schemas/Feature'
          type: array
        hypervGeneration:
          description: The hypervisor generation of the Virtual Machine.
          example: V2
          type: string
        id:
          description: Azure VM image identifier.
          example: >-
            /Subscriptions/137d8710-1baf-415e-af24-d316066159c6/Providers/Microsoft.Compute/Locations/northcentralus/Publishers/MicrosoftWindowsDesktop/ArtifactTypes/VMImage/Offers/Windows-10/Skus/win10-22h2-pro/Versions/19045.3324.230728
          type: string
        imageDeprecationStatusInfo:
          $ref: '#/components/schemas/ImageDeprecationStatus'
        location:
          description: Image location.
          example: westus
          type: string
        name:
          description: Name of the image.
          example: 2023.05.06
          type: string
        osDiskImage:
          $ref: '#/components/schemas/OsDiskImageInfo'
        plan:
          example: 2023.05.06
          type: string
        versionInfo:
          $ref: '#/components/schemas/VersionInfo'
    CSPMachineImageList:
      allOf:
        - $ref: '#/components/schemas/CommonListResponse'
        - properties:
            items:
              items:
                $ref: '#/components/schemas/CSPMachineImage'
              type: array
          required:
            - items
          type: object
    CSPMachineImageProperties:
      properties:
        cspInfo:
          oneOf:
            - $ref: '#/components/schemas/CSPMachineImageAWSCSPInfo'
            - $ref: '#/components/schemas/CSPMachineImageAzureCSPInfo'
        cspType:
          default: AWS
          description: The cloud service provider type
          enum:
            - AWS
            - AZURE
          example: AWS
          type: string
    CSPMachineInstanceType:
      allOf:
        - $ref: '#/components/schemas/CommonResourceProperties'
        - $ref: '#/components/schemas/AdditionalCommonResourceProperties'
        - $ref: '#/components/schemas/CSPMachineInstanceTypeProperties'
      description: |
        Details of a CSP machine instance type
    CSPMachineInstanceTypeAWSCSPInfo:
      properties:
        autoRecoverySupported:
          description: Indicates whether auto recovery is supported.
          example: true
          type: boolean
        bareMetal:
          description: Indicates whether the instance is a bare metal instance type.
          example: true
          type: boolean
        burstablePerformanceSupported:
          description: >-
            Indicates whether the instance type is a burstable performance
            instance type.
          example: false
          type: boolean
        currentGeneration:
          description: Indicates whether the instance type is current generation.
          example: true
          type: boolean
        dedicatedHostsSupported:
          description: >-
            Indicates whether Dedicated Hosts are supported on the instance
            type.
          example: true
          type: boolean
        ebsInfo:
          $ref: '#/components/schemas/EbsInfo'
        freeTierEligible:
          description: Indicates whether the instance type is eligible for the free tier.
          example: true
          type: boolean
        hibernationSupported:
          description: Indicates whether On-Demand hibernation is supported.
          example: false
          type: boolean
        hypervisor:
          description: The hypervisor type of the image.
          example: xen
          type: string
        instanceStorageSupported:
          description: Indicates whether instance storage is supported.
          example: false
          type: boolean
        instanceType:
          description: The instance type.
          example: t2.2xlarge
          type: string
        memoryInfo:
          $ref: '#/components/schemas/MemoryInfo'
        networkInfo:
          $ref: '#/components/schemas/NetworkInfo'
        placementGroupInfo:
          $ref: '#/components/schemas/PlacementGroupInfo'
        processorInfo:
          $ref: '#/components/schemas/ProcessorInfo'
        region:
          description: Cloud provider region.
          example: eu-west-3
          type: string
        supportedRootDeviceTypes:
          description: The supported root device types.
          example:
            - ebs
            - instance-store
          items:
            enum:
              - ebs
              - instance-store
            type: string
          type: array
        supportedUsageClasses:
          description: >-
            Indicates whether the instance type is offered for spot or
            On-Demand.
          example:
            - on-demand
            - spot
          items:
            enum:
              - on-demand
              - spot
            type: string
          type: array
        supportedVirtualizationTypes:
          description: The supported virtualization types.
          example:
            - hvm
          items:
            enum:
              - hvm
            type: string
          type: array
        vCpuInfo:
          $ref: '#/components/schemas/VCpuInfo'
    CSPMachineInstanceTypeAzureCSPInfo:
      properties:
        capabilities:
          description: Capabilities that are enabled one the VM.
          items:
            $ref: '#/components/schemas/Capability'
          type: array
        family:
          description: ''
          example: standardEv4Family
          type: string
        locationInfo:
          description: ''
          items:
            $ref: '#/components/schemas/Location'
          type: array
        locations:
          description: A region in which the Azure VM size is deployed.
          example:
            - KoreaSouth
          items:
            type: string
          type: array
        name:
          description: Name of the Azure VM size.
          example: Standard_E2_v4
          type: string
        resourceType:
          description: Type of resource.
          example: virtualMachines
          type: string
        restrictions:
          description: The restrictions because of which Vm size cannot be used.
          items:
            $ref: '#/components/schemas/Restriction'
          type: array
        size:
          description: VM size name.
          example: E2_v4
          type: string
        tier:
          description: Tier of the disk
          example: Standard
          type: string
    CSPMachineInstanceTypeList:
      allOf:
        - $ref: '#/components/schemas/CommonListResponse'
        - properties:
            items:
              items:
                $ref: '#/components/schemas/CSPMachineInstanceType'
              type: array
          required:
            - items
          type: object
    CSPMachineInstanceTypeProperties:
      properties:
        cspInfo:
          oneOf:
            - $ref: '#/components/schemas/CSPMachineInstanceTypeAWSCSPInfo'
            - $ref: '#/components/schemas/CSPMachineInstanceTypeAzureCSPInfo'
        cspType:
          default: AWS
          description: The cloud service provider type
          enum:
            - AWS
            - AZURE
          example: AWS
          type: string
    Capability:
      properties:
        name:
          description: Name of the capability.
          type: string
        value:
          description: Value of the capability.
          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
    CpuInfo:
      description: CPU information.
      properties:
        hyperthreadingActive:
          description: Indicate whether hyperthreading is active or not.
          example: true
          type: boolean
        logicalProcessors:
          description: Number of logical processors.
          example: 2
          format: int32
          type: integer
        processorCores:
          description: Number of processor cores.
          example: 2
          format: int32
          type: integer
        processorSockets:
          description: Number of processor sockets.
          example: 2
          format: int32
          type: integer
        processorSpeedHz:
          description: Processor speed in Hz.
          example: 2299999000
          format: int64
          type: integer
      type: object
    CpuSocket:
      description: CPU socket information.
      properties:
        cpuBusSpeedHz:
          description: CPU bus speed in Hz.
          example: 91999960
          format: int64
          type: integer
        cpuCoreSpeedHz:
          description: CPU core speed in Hz.
          example: 2299999000
          format: int64
          type: integer
        description:
          description: Description of CPU socket.
          example: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
          type: string
        vendor:
          description: Vendor of CPU socket.
          example: intel
          type: string
      type: object
    CreateAWSMachineInstanceRequest:
      properties:
        imageId:
          description: >-
            ID of the csp machine image resource representing the cloud provider
            machine image
          example: a0f63b61-ef7b-5326-bf18-74d1f937102a
          format: uuid
          type: string
        instanceType:
          description: Instance Type chosen by user
          example: t2.micro
          type: string
        region:
          description: Region on which CSP machine instance will be created
          example: us-west-2
          type: string
    CreateAzureMachineInstanceRequest:
      properties:
        imageId:
          description: >-
            ID of the csp machine image resource representing the cloud provider
            machine image
          example: a0f63b61-ef7b-5326-bf18-74d1f937102a
          format: uuid
          type: string
        password:
          description: >-
            Password to login to the virtual machine. This is needed for windows
            based virtual machines.
          example: pass
          type: string
        region:
          description: Region on which CSP machine instance will be created
          example: East US
          type: string
        resourceGroupId:
          description: An identifier for the resource group, usually a UUID.
          format: uuid
          type: string
        subscriptionId:
          description: An identifier for the subscription, usually a UUID.
          format: uuid
          type: string
        username:
          description: >-
            Username to login to the virtual machine. This is needed for windows
            based virtual machines.
          example: user1
          type: string
        vmSize:
          description: virtual machine size
          example: Storage optimized
          type: string
    CreateCSPMachineInstanceRequest:
      properties:
        accountId:
          description: >-
            ID of the csp-account resource representing the cloud provider
            account.
          example: a652f894-1cc6-52c2-9540-490671081fd6
          format: uuid
          type: string
        cspMachineInstanceInfo:
          oneOf:
            - $ref: '#/components/schemas/CreateAWSMachineInstanceRequest'
            - $ref: '#/components/schemas/CreateAzureMachineInstanceRequest'
        cspType:
          default: AWS
          description: The cloud service provider type
          enum:
            - AWS
            - AZURE
          example: AWS
          type: string
        keyPairName:
          description: Name of User's KeyPair, required for CSP Machine Instance login
          example: HPE_DSCC_KeyPair
          type: string
        name:
          description: Name of CSP machine instance provided by user
          example: HPE_CSP_VM
          type: string
    CreateDS:
      description: Request body for Create Datastore API
      properties:
        datastoreType:
          description: Supported datastore types are VMFS or vVOL
          enum:
            - VMFS
            - VVOL
          type: string
        name:
          description: Name of datastore to be created
          type: string
        provisioningPolicyId:
          description: Unique identifier of a provisioning policy.
          format: uuid
          type: string
        sizeInBytes:
          description: Size of the datastore in bytes
          format: int64
          type: integer
        storageSystemId:
          description: Storage System ID
          format: uuid
          type: string
        targetHypervisorClusterId:
          description: Target Hypervisor Cluster ID
          format: uuid
          type: string
      required:
        - name
        - datastoreType
        - sizeInBytes
        - targetHypervisorClusterId
        - storageSystemId
      type: object
    DataManagementJobInfo:
      description: Information about the assigned Protection Policy and the Protection Job.
      properties:
        id:
          description: UUID string uniquely identifying the Protection Job.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          format: uuid
          type: string
        name:
          description: name of the Protection Job.
          type: string
        protectionPolicyInfo:
          $ref: '#/components/schemas/DataManagementTemplateInfo'
        resourceUri:
          description: Reference to resource.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    DataManagementTemplateInfo:
      description: |
        Information about the Protection Policy that was used to create the job.
      properties:
        id:
          description: UUID string uniquely identifying the Protection Policy.
          example: c9cdeb6b-24cb-43c1-828a-e8b1b050f3f4
          format: uuid
          type: string
        name:
          description: User defined name of the Protection Policy.
          example: Gold-Protection-Policy
          type: string
        resourceUri:
          description: Reference to resource
          readOnly: true
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    DatacenterInfo:
      description: References to the datacenter that house this virtual machine.
      properties:
        id:
          description: UUID string uniquely identifier of the datacenter.
          example: 16245bf7-2b35-5580-86a6-620faa5b5403
          type: string
        moref:
          description: VMware provided moref for the datacenter.
          example: datacenter-2
          type: string
        name:
          description: VMware provided name for the datacenter.
          example: core-team-dc
          type: string
      type: object
    Datastore:
      description: |
        Represents a single instance of a Datastore
      properties:
        allowedOperations:
          description: List of allowed operation on the datastore.
          example:
            - DATASTORE_CREATE
            - DATASTORE_DELETE
          items:
            enum:
              - DATASTORE_CREATE
              - DATASTORE_DELETE
              - DATASTORE_BACKUP_CREATE
              - DATASTORE_BACKUP_UPDATE
              - DATASTORE_BACKUP_DELETE
              - DATASTORE_SNAPSHOT_CREATE
              - DATASTORE_SNAPSHOT_UPDATE
              - DATASTORE_SNAPSHOT_DELETE
              - DATASTORE_RESTORE
            type: string
          type: array
        appType:
          description: Application type of this asset
          enum:
            - VMWARE
          example: VMWARE
          type: string
        capacityFree:
          description: Unused storage of the datastore in bytes.
          example: 76534
          format: int64
          type: integer
        capacityInBytes:
          description: Size of the datastore in bytes.
          example: 2407653459860
          format: int64
          type: integer
        capacityUncommitted:
          description: Uncommitted storage of the datastore in bytes.
          example: 653422
          format: int64
          type: integer
        clusterInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        datacentersInfo:
          description: List of datacenters to which the datastore is presented to.
          items:
            $ref: '#/components/schemas/DatacenterInfo'
          type: array
        datastoreClassification:
          description: >-
            Classification of datastore types for which protection will be
            disabled
          enum:
            - PROTECTION_STORE_GATEWAY
          type: string
        datastoreType:
          description: Type of the datastore.
          enum:
            - VMFS
            - VVOL
            - NFS
            - VSAN
          example: VMFS
          type: string
        displayName:
          description: A user-friendly name that identifies the datastore.
          example: Nimble-DS1
          type: string
        folderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          example: 754f63f7-1016-40ec-9b8f-610f978b9aec
          type: string
        hostsInfo:
          description: List of hypervisor hosts to which the datastore is presented to.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the datastore
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        moref:
          description: VMware provided moref of the data store
          example: datastore-1234
          type: string
        name:
          description: Name of the datastore as reported by the hypervisor manager.
          example: Nimble-DS2
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        protectionPolicyAppliedAtInfo:
          $ref: '#/components/schemas/ProtectionPolicyAppliedAtInfo'
        protectionStatus:
          $ref: '#/components/schemas/protectionStatus'
        provisioningPolicyInfo:
          $ref: '#/components/schemas/ProvisioningPolicyInfo'
        recoveryPointsExist:
          $ref: '#/components/schemas/recoveryPointsExist'
        replicationInfo:
          $ref: '#/components/schemas/ReplicationInfo'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/datastores/{datastore-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the datastore
          enum:
            - OK
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - MOUNTED
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the datastore
          maxLength: 255
          type: string
        status:
          description: The current status of the datastore.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: VMware provided uuid of the datastore.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vmCount:
          description: Number of virtual machines associated with the datastore.
          example: 120
          format: int64
          type: integer
        vmProtectionGroupsInfo:
          description: List of virtual machine protection groups.
          items:
            $ref: '#/components/schemas/VmProtectionGroupInfo'
          type: array
        volumesInfo:
          description: Volumes associated with datastore.
          items:
            $ref: '#/components/schemas/VolumeInfo'
          type: array
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    DatastoreList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/Datastore'
          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
    DisallowedInfo:
      properties:
        vmDiskType:
          description: Type of the VM disk.
          example: Unmanaged
          type: string
      type: object
    Ebs:
      description: >-
        Parameters used to automatically set up EBS volumes when the instance is
        launched.
      properties:
        deleteOnTermination:
          description: Indicates whether the EBS volume is deleted on instance termination.
          example: true
          type: boolean
        encrypted:
          description: >-
            Indicates whether the encryption state of an EBS volume is changed
            while being restored from a backing snapshot.
          example: false
          type: boolean
        snapshotId:
          description: The identifier of the snapshot.
          example: snap-0ed3f0f331ab4cbc7
          type: string
        volumeSize:
          description: The size of the volume, in GiBs.
          example: 8
          type: integer
        volumeType:
          description: The volume type.
          example: standard
          type: string
      type: object
    EbsInfo:
      description: The Amazon EBS settings for the instance type.
      properties:
        ebsOptimizedInfo:
          $ref: '#/components/schemas/EbsOptimizedInfo'
        ebsOptimizedSupport:
          description: Indicates whether the instance type is Amazon EBS-optimized.
          example: default
          type: string
        encryptionSupport:
          description: Indicates whether Amazon EBS encryption is supported.
          example: supported
          type: string
        nvmeSupport:
          description: Indicates whether non-volatile memory express (NVMe) is supported.
          example: required
          type: string
      type: object
    EbsOptimizedInfo:
      description: The optimized EBS performance for the instance type.
      properties:
        baselineBandwidthInMbps:
          description: >-
            The baseline bandwidth performance for an EBS-optimized instance
            type, in Mbps.
          example: 19000
          type: integer
        baselineIops:
          description: >-
            The baseline input/output storage operations per seconds for an
            EBS-optimized instance type.
          example: 80000
          type: integer
        baselineThroughputInMbps:
          description: >-
            The baseline throughput performance for an EBS-optimized instance
            type, in MB/s.
          example: 2375
          type: number
        maximumBandwidthInMbps:
          description: >-
            The maximum bandwidth performance for an EBS-optimized instance
            type, in Mbps.
          example: 19000
          type: integer
        maximumIops:
          description: >-
            The maximum input/output storage operations per second for an
            EBS-optimized instance type.
          example: 80000
          type: integer
        maximumThroughputInMbps:
          description: >-
            The maximum throughput performance for an EBS-optimized instance
            type, in MB/s.
          example: 2375
          type: number
      type: object
    EditVM:
      description: >-
        Reconfigure virtual machine hardware settings - CPU, memory, network
        adapters, and disks
      properties:
        cpuMemConfig:
          description: Reconfigure CPU and memory values for a virtual machine
          properties:
            cpu:
              description: Reconfigure CPU values for a virtual machine
              properties:
                numOfCoresPerSocket:
                  description: >-
                    The number of CPU cores per socket in the virtual machine.
                    The number of CPU cores in the virtual machine must be a
                    multiple of the number of cores per socket.
                  example: 7
                  type: integer
                numOfCpus:
                  description: >-
                    The number of CPU cores in the virtual machine. The
                    supported range of CPU depends on guest operating system and
                    virtual hardware version of the virtual machine.
                  example: 35
                  type: integer
              type: object
            memory:
              description: >-
                Reconfigure memory for a virtual machine. The supported range of
                memory depends on guest operating system and virtual hardware
                version of the virtual machine.
              properties:
                memoryInMb:
                  description: New memory size in mebibytes.
                  example: 2048
                  type: integer
              type: object
        networkAdapters:
          description: >-
            Reconfigure network adapter(s) for a virtual machine.
            ADD/EDIT/DELETE list of network adapters.
          items:
            properties:
              connectAtPowerOn:
                default: true
                description: >-
                  Specifies if the network adapter has to be connected to
                  virtual machine on power on.
                example: 'true'
                type: boolean
              name:
                description: >-
                  Name of the network adapter. Mandatory parameter for EDIT and
                  DELETE operation. Name for the network adapter will be
                  auto-generated by hypervisor-manager during ADD operation.
                type: string
              networkDetails:
                description: >-
                  Backing network information. Mandatory parameter for ADD and
                  EDIT operation.
                properties:
                  name:
                    description: >-
                      Name of the backing network. Mandatory parameter for ADD
                      and EDIT operation.
                    example: VM Network
                    type: string
                  type:
                    default: STANDARD_PORT_GROUP
                    description: Type of the backing network.
                    enum:
                      - STANDARD_PORT_GROUP
                    example: STANDARD_PORT_GROUP
                    type: string
                type: object
              operation:
                description: Operation to be performed on a network adapter.
                enum:
                  - ADD
                  - EDIT
                  - DELETE
                example: ADD
                type: string
              type:
                description: >-
                  Type of the network adapter. Mandatory parameter for ADD
                  operation.
                enum:
                  - E1000
                  - E1000E
                  - PCNET32
                  - VMXNET
                  - VMXNET2
                  - VMXNET3
                example: VMXNET2
                type: string
            type: object
          type: array
        virtualDisks:
          description: >-
            Reconfigure disk(s) for a virtual machine. ADD/EDIT/DELETE list of
            disks.
          items:
            properties:
              diskConfig:
                description: Configurations for a disk
                properties:
                  capacityInMb:
                    description: >-
                      Size of the disk in mebibytes. Mandatory parameter for ADD
                      and EDIT operation.
                    example: 2048
                    type: integer
                  id:
                    description: >-
                      The UUID of the disk. Mandatory parameter for EDIT and
                      DELETE operation.
                    example: 26863c35-916e-5d00-8673-b81c48c07783
                    type: string
                  retainFiles:
                    description: >-
                      Specifies if the backing files of the disk need to be
                      retained after disk deletion. Mandatory parameter for
                      DELETE operation.
                    example: true
                    type: boolean
                  type:
                    description: The type of the disk.
                    enum:
                      - IDE
                      - SCSI
                      - SATA
                      - NVME
                    example: SATA
                    type: string
                type: object
              operation:
                description: >-
                  Operation to be performed on a disk. Minimum size required to 
                  add a disk is 1MB. Maximum capacity for a disk depends on the
                  backing storage.
                enum:
                  - ADD
                  - EDIT
                  - DELETE
                example: ADD
                type: string
            type: object
          type: array
      type: object
    EmptyResponse:
      type: object
    ErrorResponse:
      properties:
        debugId:
          description: A unique identifier for the request
          example: f57dcca3345820eb579c9317ce36dd92
          type: string
        errorCode:
          description: A machine friendly identifier for the error response
          type: string
        httpStatusCode:
          description: The HTTP status code of the response
          type: integer
        message:
          description: A user-friendly error message
          example: An example error message
          type: string
      required:
        - httpStatusCode
        - message
        - errorCode
        - debugId
    Feature:
      description: Key/value pair of attributes.
      properties:
        name:
          description: ''
          example: SecurityType
          type: string
        value:
          description: ''
          example: TrustedLaunchSupported
          type: string
      type: object
    HCIDeployVM:
      description: >-
        Deploys one or more virtual machines using specified template and
        storage provisioning policy.
      properties:
        destination:
          description: Specifies where to deploy the virtual machine
          properties:
            clusterId:
              description: >-
                The UUID of the hypervisor cluster where the virtual machine can
                be deployed
              type: string
            folderId:
              description: >-
                The UUID of the hypervisor folder where the virtual machine can
                be deployed
              type: string
            hostId:
              description: >-
                The UUID of the hypervisor host where the virtual machine can be
                deployed
              type: string
            resourcePoolId:
              description: >-
                The UUID of the hypervisor resource pool where the virtual
                machine can be deployed
              type: string
          type: object
        imageSource:
          description: >-
            Specifies the hypervisor image information using which the virtual
            machine is deployed
          properties:
            imageId:
              description: >-
                The UUID of the hypervisor image using which a virtual machine
                is deployed
              type: string
            imageName:
              description: >-
                The name of the hypervisor image using which a virtual machine
                is deployed
              type: string
            imageSourceType:
              default: HYPERVISOR_IMAGE_LIBRARY
              description: The source of the image where it was hosted
              enum:
                - HYPERVISOR_IMAGE_LIBRARY
              example: HYPERVISOR_IMAGE_LIBRARY
              type: string
          type: object
        networkConfig:
          description: Specifies name and the target network to use for deployment
          properties:
            ipAllocationPolicy:
              description: >-
                Specifies whether IP addresses are allocated by DHCP or static
                address
              enum:
                - DHCP_POLICY
                - FIXED_POLICY
              type: string
            networkMapping:
              description: Specifies name and the target network to be used for deployment
              items:
                properties:
                  name:
                    description: Identifier for the network mapping
                    type: string
                  network:
                    description: Target network to be used for deployment
                    type: string
                type: object
              type: array
          type: object
        storageConfig:
          description: Specifies the storage configurations for a virtual machine
          properties:
            defaultDatastoreId:
              description: >-
                The UUID of the hypervisor datastore where the virtual machine
                is to be deployed
              type: string
            provisioningType:
              description: >-
                Specifies whether datastore is THIN or THICK to provision the
                virtual machine
              enum:
                - THIN
                - THICK
              type: string
          required:
            - defaultDatastoreId
          type: object
        vmConfig:
          description: Defines the virtual machine configurations
          properties:
            acceptEula:
              description: Accept EULA by default or not
              type: boolean
            annotation:
              description: The description of the image
              type: string
            locale:
              description: Locale to use for parsing OVF descriptor
              type: string
            name:
              description: Name of the virtual machine to be deployed
              type: string
            numberOfVms:
              default: 1
              description: Number of virtual machines to be created.
              type: integer
            powerOn:
              description: Power on/off the virtual machine
              type: boolean
            propertyConfig:
              description: >-
                Properties which can be set to a virtual machine during
                deployment
              items:
                properties:
                  key:
                    description: Name of the property to be set to the virtual machine
                    type: string
                  value:
                    description: Value of the property to be set to the virtual machine
                    type: string
                type: object
              type: array
          required:
            - name
            - acceptEula
          type: object
        vmPolicy:
          description: Specifies the policies which can be attached to the virtual machine
          items:
            properties:
              id:
                description: The UUID of the policy
                type: string
              type:
                description: >-
                  Type of the policy which needs to be attached to the virtual
                  machine
                enum:
                  - VM_PROTECTION_POLICY
                  - VM_PROVISIONING_POLICY
                type: string
            type: object
          type: array
      required:
        - vmConfig
        - storageConfig
      type: object
    HostNetworkSystem:
      description: Host network system information.
      properties:
        portGroups:
          description: List of port group information.
          items:
            $ref: '#/components/schemas/PortGroup'
          type: array
      type: object
    HypervisorCluster:
      description: >
        Represents a single instance of a hypervisor cluster (Vmware ESXi
        Cluster)
      properties:
        appInfo:
          description: Application specific information for this cluster.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this cluster.
                  example: domain-c8
                  type: string
              type: object
          type: object
        clusterPerfMetricInfo:
          description: Hypervisor cluster performance metrics.
          properties:
            cpuCapacityInMhz:
              description: CPU allocated in mega hertz.
              format: int64
              type: integer
            cpuUsageInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memorySizeInBytes:
              description: Memory allocated in bytes.
              format: int64
              type: integer
            memoryUsageInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            totalStorageInBytes:
              description: Storage allocated in bytes.
              format: int64
              type: integer
            usedStorageInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
          type: object
        clusterType:
          description: The type of the hypervisor cluster.
          enum:
            - ESX_CLUSTER
          type: string
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor cluster. This
            will always be same as name since adding or updating hypervisor
            clusters is not supported when managed from a manager, such as the
            vCenter.
          example: myesxcluster1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          type: string
        hypervisorHosts:
          description: >-
            Captures the list of all hosts of this cluster. In a VMWare cluster,
            this entity maps to ESXi hosts.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor cluster.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the cluster as reported by the hypervisor manager.
          example: myesxcluster1
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        networksInfo:
          description: All the network names associated with this cluster.
          example:
            - network-2053
            - network-1005
          items:
            description: Network name.
            type: string
          type: array
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-clusters/{cluster-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor cluster object.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor cluster.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor cluster. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorClusterList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorCluster'
          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
    HypervisorFolder:
      description: |
        Represents a hypervisor folder resource
      properties:
        appInfo:
          description: Application specific information for this folder.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this folder.
                  example: group-21
                  type: string
              type: object
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor folder. This
            will always be same as name since adding or updating hypervisor
            folders is not supported when managed from a manager, such as the
            vCenter.
          example: myVmFolder
          type: string
        folderType:
          description: The type of the hypervisor folder.
          enum:
            - DATASTORE
            - VM
            - HOST
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor folder.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the folder as reported by the hypervisor manager.
          example: myVmFolder
          maxLength: 255
          readOnly: true
          type: string
        parentFolderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/folders/{folder-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        subFolders:
          description: Captures the list of all sub folders of this folder
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorFolder/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorFolder/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorFolder/properties/type'
            type: object
          type: array
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorFolderList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorFolder'
          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
    HypervisorHost:
      description: |
        Represents a single instance of a hypervisor host (Vmware ESXi)
      properties:
        appInfo:
          description: Application specific information for this host.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this host.
                  example: host-21
                  type: string
              type: object
          type: object
        cpuInfo:
          $ref: '#/components/schemas/CpuInfo'
        cpuSockets:
          description: CPU sockets information.
          items:
            $ref: '#/components/schemas/CpuSocket'
          type: array
        createdAt:
          description: Time in UTC at which the object was created
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor host. This will
            always be same as name since adding or updating hypervisor hosts is
            not supported when managed from a manager, such as the vCenter.
          example: myESXi
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          type: string
        hciServerUuid:
          description: UUID string uniquely identifying the HCI server.
          type: string
        hostNetworkSystem:
          $ref: '#/components/schemas/HostNetworkSystem'
        hostPerfMetricInfo:
          description: Hypervisor host performance metrics.
          properties:
            cpuCapacityInHz:
              description: CPU allocated in hertz.
              format: int64
              type: integer
            cpuUsageInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memorySizeInBytes:
              description: Memory allocated in bytes.
              format: int64
              type: integer
            memoryUsageInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            totalStorageInBytes:
              description: Storage allocated in bytes.
              format: int64
              type: integer
            usedStorageInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
          type: object
        hostType:
          description: The type of the hypervisor host.
          enum:
            - ESXI
          type: string
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor host.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the host as reported by the hypervisor manager.
          example: myESXi
          format: hostname
          maxLength: 255
          readOnly: true
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address the hypervisor host.
          example: 192.168.0.1
          maxLength: 255
          type: string
        networksInfo:
          description: All the network names associated with this host.
          example:
            - network-2053
            - network-1005
          items:
            description: Network name.
            type: string
          type: array
        parentInfo:
          description: >-
            Parent of this host. It could be a cluster or folder in case of a
            VMware ESXi Host. For a Hyper-V host it will be cluster or host
            group.
          properties:
            displayName:
              description: A user-friendly name that identifies the parent of this host.
              type: string
            id:
              description: UUID uniquely identifying the parent of this host.
              format: uuid
              maxLength: 36
              minLength: 36
              type: string
            name:
              description: Name of the parent of this host.
              example: xyz_cluster
              maxLength: 255
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              description: The type of the parent.
              enum:
                - CLUSTER
                - FOLDER
              type: string
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-hosts/{host-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor host object
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor host
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor host. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        storageAdaptersInfo:
          description: List of storage adapters associated with this host.
          items:
            properties:
              model:
                description: Model of the adapter
                example: QLogic FastLinQ QL41xxx Series 10/25 GbE Controller (FCoE)
                type: string
              name:
                description: Name of the adapter
                example: vmhba0
                type: string
              status:
                description: Status of the adapter
                enum:
                  - OFFLINE
                  - ONLINE
                  - UNKNOWN
                example: OFFLINE
                type: string
              type:
                description: Type of the adapter
                example: FC
                type: string
              wwn:
                description: WWN of the adapter
                example: 20009440c95b835c
                type: string
            type: object
          type: array
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: A hypervisor host provided durable UID.
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated
          format: date-time
          type: string
        version:
          description: The hypervisor host version.
          example: 6.7.0 build-9030300, R2, 7.2
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorHostList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorHost'
          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
    HypervisorLibraryImage:
      description: |
        Represents a single instance of a hypervisor library image
      properties:
        createdAt:
          description: Time at which the virtual machine image was created
          example: '2022-02-04T07:43:27Z'
          type: string
        customerId:
          description: The customer application identifier.
          example: 90299b6c06aa283091cd4a89298b5471
          type: string
        description:
          description: >-
            Description given for the virtual machine image from the hypervisor
            image library
          example: This is a sample virtual machine image description
          type: string
        displayName:
          description: Name of the virtual machine image
          example: CentOS.ova
          type: string
        fileType:
          description: >-
            The type of the virtual machine image from the hypervisor manager
            image library
          enum:
            - OVF
          example: OVF
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: >-
            UUID string uniquely identifying the virtual machine image from the
            hypervisor image library
          example: 9476c228-d128-519c-a2ac-a4932ff2109b
          type: string
        libraryName:
          description: Name of the hypervisor library
          example: LibraryImages
          type: string
        name:
          description: Virtual machine image name
          example: Centos.ova
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: The URI reference for this resource.
          type: string
        size:
          description: >-
            Size of the virtual machine image from the hypervisor manager image
            library in bytes
          example: 15344
          type: integer
        subscribed:
          description: >-
            True if the image will be pulled from a remote hypervisor image
            library (ex. vCenter subscribed content library).
          example: false
          type: boolean
        type:
          description: Hypervisor object type
          example: HypervisorLibraryImages
          type: string
        uid:
          description: >-
            Hypervisor provided identifier of the virtual machine image from the
            hypervisor image library
          example: 9476c228-d128-519c-a2ac-a4932ff2109b
          type: string
        updatedAt:
          description: Time at which the virtual machine image was updated
          example: '2022-02-04T08:43:27Z'
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorLibraryImageList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorLibraryImage'
          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
    HypervisorManager:
      description: |
        Represents a single instance of a hypervisor manager (Vmware vCenter)
      properties:
        appInfo:
          description: Hypervisor specific information.
          properties:
            vmware:
              description: VMware specific app info.
              properties:
                datacenters:
                  description: >-
                    Captures all the data center details of the hypervisor
                    manager. VMware: A virtual data center is a container for
                    all the inventory objects required to complete a fully
                    functional environment for operating virtual machines.
                    Microsoft VMM: Datacenter components include virtualization
                    servers, networking components, and storage resources.
                  items:
                    $ref: '#/components/schemas/DatacenterInfo'
                  type: array
              type: object
          type: object
        buildVersion:
          description: The hypervisor manager build details
          example: 6.7.0 build-9030300, NT 6.3, 3.8.13-44.1.1.el6uek.x86_64
          type: string
        createdAt:
          description: Time in UTC at which the object was created
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        dataOrchestratorInfo:
          description: Data Orchestrator specific information.
          properties:
            id:
              description: Unique string identifying the data orchestrator.
              example: 8b4c14a6-3cd5-4907-97c4-cf44c5b642e5
              type: string
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/CommonResourceProperties/properties/type'
          type: object
        dataServicesConnectorsInfo:
          description: Data Services Connectors specific information.
          items:
            properties:
              id:
                description: Unique string identifying the Data Services Connector.
                type: string
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        description:
          description: A brief description of the hypervisor manager.
          maxLength: 255
          type: string
        displayName:
          description: User defined name for the hypervisor manager.
          example: myvcenter1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerType:
          description: >-
            The type of the hypervisor manager. Currently only vCenter is
            supported.
          enum:
            - VMWARE_VCENTER
          type: string
        id:
          description: UUID string uniquely identifying the hypervisor manager.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        lastRefreshed:
          description: Time in UTC at which the object was last refreshed.
          format: date-time
          type: string
        name:
          description: Name as reported by the hypervisor manager.
          example: vcenter123.hpe.com
          format: hostname
          maxLength: 255
          type: string
        networkAddress:
          description: An IP address or hostname or FQDN to address the hypervisor manager
          example: 192.168.0.1
          maxLength: 255
          type: string
        releaseVersion:
          description: The hypervisor manager release version.
          example: 6.7.0 build-9030300, R2, 7.2
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor manager object
          enum:
            - OK
            - ERROR
            - INITIALIZING
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - CONFIGURED
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor manager
          maxLength: 255
          type: string
        status:
          description: The current status of the hypervisor manager resource.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: >-
            A hypervisor manager provided durable UID. In case of VMware it will
            be instanceUUID of the vCenter
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated
          format: date-time
          type: string
        username:
          description: >-
            Name of the user used to access the hypervisor server. Mutually
            exclusive with credentialInfo.
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorManagerList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorManager'
          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
    HypervisorNetwork:
      description: |
        Represents a hypervisor network resource
      properties:
        appInfo:
          description: Application specific information for this network.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this network.
                  example: network-21
                  type: string
              type: object
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor network. This
            will always be same as name since adding or updating hypervisor
            networks is not supported when managed from a manager, such as the
            vCenter.
          example: vmNetwork
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hostsInfo:
          description: List of hypervisor hosts to which this network is presented to.
          items:
            properties:
              displayName:
                $ref: '#/components/schemas/HypervisorHost/properties/displayName'
              id:
                $ref: '#/components/schemas/HypervisorHost/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorHost/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorHost/properties/type'
            type: object
          type: array
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor network resource.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the network as reported by the hypervisor manager.
          example: vmNetwork
          maxLength: 255
          readOnly: true
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/networks/{network-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor network.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor network.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor network. Status is derived and
            abstracted to a 'standard status' based on the status reported by
            the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorNetworkList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorNetwork'
          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
    HypervisorResourcePool:
      description: |
        Represents a hypervisor resource pool.
      properties:
        appInfo:
          description: Application specific information for this resource pool.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                moref:
                  description: VMware provided moref for this resource pool.
                  example: resgroup-21
                  type: string
              type: object
          type: object
        childResourcePools:
          description: Captures the list of all child resource pools.
          items:
            properties:
              displayName:
                $ref: >-
                  #/components/schemas/HypervisorResourcePool/properties/displayName
              id:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/id'
              name:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/name'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/HypervisorResourcePool/properties/type'
            type: object
          type: array
        clusterInfo:
          description: Hypervisor cluster information.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            moref:
              description: Moref of the hypervisor cluster.
              example: cluster-01
              type: string
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            A user-friendly name that identifies the hypervisor resource pool.
            This will always be same as name since adding or updating hypervisor
            resource pools is not supported when managed from a manager, such as
            the vCenter.
          example: resourcePool1
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: >-
            UUID string uniquely identifying the hypervisor resource pool
            resource.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the resource pool as reported by the hypervisor manager.
          example: resourcePool1
          maxLength: 255
          readOnly: true
          type: string
        ownerInfo:
          description: Owner of this resource pool.
          properties:
            id:
              description: UUID of the owner of this resource pool.
              example: 5ed25c1e-04b2-5636-82fa-61d080b76858
              type: string
            name:
              description: Name of the owner of this resource pool.
              example: Cluster1
              type: string
            type:
              description: Type of the owner of this resource pool.
              example: Cluster
              type: string
          type: object
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/resource-pools/{pool-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor resource pool.
          enum:
            - OK
            - ERROR
            - REFRESHING
          type: string
        stateReason:
          description: Brief reason for the current state of the hypervisor resource pool.
          maxLength: 255
          type: string
        status:
          description: >-
            The current status of the hypervisor resource pool. Status is
            derived and abstracted to a 'standard status' based on the status
            reported by the hypervisor manager.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorResourcePoolList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorResourcePool'
          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
    HypervisorTag:
      description: |
        Represents a hypervisor tag resource
      properties:
        associatedResources:
          description: List of resources to which this tag is associated.
          items:
            properties:
              id:
                $ref: '#/components/schemas/CommonResourceProperties/properties/id'
              resourceUri:
                description: The URI reference for this resource.
                type: string
              type:
                $ref: '#/components/schemas/CommonResourceProperties/properties/type'
            type: object
          type: array
        categoryName:
          description: >-
            The category name is unique to the currently selected hypervisor
            manager.
          type: string
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: >-
            This will always be same as name since add or update of hypervisor
            tags are not supported when it is managed from a manager like
            vCenter.
          example: T-5
          readOnly: true
          type: string
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the hypervisor tag resource.
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the tag as reported by the hypervisor manager.
          example: T-5
          maxLength: 255
          readOnly: true
          type: string
        resourceUri:
          description: The 'self' reference for this resource.
          example: >-
            /virtualization/v1beta1/hypervisor-managers/{hypervisor-id}/tags/{tag-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the hypervisor tag.
          enum:
            - OK
            - DELETED
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: Hypervisor provided identifier of the hypervisor tag.
          example: 8476c228-d128-519c-a2ac-a4932ff2109b
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vmProtectionGroupsInfo:
          description: Protection groups related to the hypervisor-tag.
          items:
            $ref: '#/components/schemas/VmProtectionGroupInfo'
          type: array
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    HypervisorTagList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/HypervisorTag'
          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
    ImageDeprecationStatus:
      description: Image deprecation status properties on the image.
      properties:
        alternativeOption:
          description: >-
            The alternative option specified by the Publisher for this image
            when this image is deprecated.
          example: ''
          type: string
        imageState:
          description: The state of the image.
          example: Active
          type: string
        scheduledDeprecationTime:
          description: Time when the image will be deprecated.
          example: ''
          type: string
      type: object
    Location:
      description: Regions in which the Azure VM size is deployed.
      properties:
        location:
          description: A region in which the Azure VM size is deployed.
          type: string
        zoneDetails:
          description: Details of the zone.
          example:
            - ''
          items:
            type: string
          type: array
        zones:
          description: >-
            A list of availability zones denoting where the resource needs to
            come from.
          example:
            - KoreaSouth
          items:
            type: string
          type: array
      type: object
    MemoryInfo:
      description: The memory for the instance type.
      properties:
        sizeInMiB:
          description: The size of the memory, in MiB.
          example: 393216
          type: integer
      type: object
    MigrateVM:
      description: Request body for Migrate API
      properties:
        hypervisorManagerId:
          description: An identifier for the Hypervisor Manager.
          type: string
        targetDatastoreId:
          description: Target Datastore ID to which VMs will be migrated.
          type: string
        targetHypervisorClusterId:
          description: An identifier for the target Hypervisor cluster.
          type: string
      required:
        - targetDatastoreId
        - hypervisorManagerId
        - targetHypervisorClusterId
      type: object
    NetworkCards:
      description: The network cards for the instance type.
      properties:
        maximumNetworkInterfaces:
          description: The maximum number of network interfaces for the network card.
          example: 15
          type: integer
        networkCardIndex:
          description: The index of the network card.
          example: 0
          type: integer
        networkPerformance:
          description: The network performance of the network card.
          example: 25 Gigabit
          type: string
      type: object
    NetworkInfo:
      description: The network settings for the instance type.
      properties:
        defaultNetworkCardIndex:
          description: The index of the default network card, starting at 0.
          example: 0
          type: integer
        efaSupported:
          description: Indicates whether Elastic Fabric Adapter (EFA) is supported.
          example: false
          type: boolean
        enaSupport:
          description: Indicates whether Elastic Network Adapter (ENA) is supported.
          example: required
          type: string
        ipv4AddressesPerInterface:
          description: The maximum number of IPv4 addresses per network interface.
          example: 50
          type: integer
        ipv6AddressesPerInterface:
          description: The maximum number of IPv6 addresses per network interface.
          example: 50
          type: integer
        ipv6Supported:
          description: Indicates whether IPv6 is supported.
          example: true
          type: boolean
        maximumNetworkCards:
          description: >-
            The maximum number of physical network cards that can be allocated
            to the instance.
          example: 1
          type: integer
        maximumNetworkInterfaces:
          description: The maximum number of network interfaces for the instance type.
          example: 15
          type: integer
        networkCards:
          $ref: '#/components/schemas/NetworkCards'
        networkPerformance:
          description: The network performance.
          example: 25 Gigabit
          type: string
      type: object
    NicTeamingPolicy:
      description: The network adapter teaming policy information.
      properties:
        activeNics:
          description: List of active network adapter information.
          items:
            $ref: '#/components/schemas/ActiveNic'
          type: array
        notifySwitches:
          description: Flag to specify whether or not to notify the switch if a link fails.
          type: boolean
        policyName:
          description: Name of the network adapter teaming policy.
          type: string
        rollingOrder:
          description: >-
            Flag to specify whether or not to use a rolling policy when
            restoring links.
          type: boolean
        useBeaconProbing:
          description: Flag to specify whether or not to use beacon probing.
          type: boolean
      type: object
    OsDiskImageInfo:
      description: The os disk image information.
      properties:
        operatingSystem:
          description: The operating system of the osDiskImage.
          example: Windows
          type: string
        sizeInGb:
          description: Size of the operating system of the osDiskImage.
          example: 32
          type: integer
      type: object
    PlacementGroupInfo:
      description: The placement group settings for the instance type.
      properties:
        supportedStrategies:
          description: The supported placement group types.
          example:
            - cluster
            - partition
            - spread
          items:
            enum:
              - cluster
              - partition
              - spread
            type: string
          type: array
      type: object
    PortGroup:
      description: Port group information.
      properties:
        key:
          description: The linkable identifier for the port group.
          type: string
        name:
          description: Name of the port group.
          type: string
        nicTeamingPolicy:
          $ref: '#/components/schemas/NicTeamingPolicy'
        vlanId:
          description: VLAN ID associated with the port group.
          format: int32
          type: integer
        vswitch:
          description: Virtual switch that contains the port group.
          type: string
        vswitchName:
          description: Virtual switch name.
          type: string
      type: object
    ProcessorInfo:
      description: Processor information.
      properties:
        supportedArchitectures:
          description: The architectures supported by the instance type.
          example:
            - x86_64
            - arm64
            - i386
          items:
            enum:
              - x86_64
              - arm64
              - i386
            type: string
          type: array
        sustainedClockSpeedInGhz:
          description: The speed of the processor, in GHz.
          example: 3.1
          type: number
      type: object
    ProtectionPolicyAppliedAtInfo:
      description: Describes applied protection policy information.
      properties:
        id:
          description: UUID string uniquely identifying the protection policy.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the protection policy.
          example: ProtectionPolicy1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of the protection policy.
          enum:
            - DATASTORE
            - VIRTUAL_MACHINE
            - VM_PROTECTION_GROUP
          example: DATASTORE
          type: string
      type: object
    ProvisioningPolicyInfo:
      description: Describes provisioning policy information.
      properties:
        id:
          description: UUID string uniquely identifying the provisioning policy.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the provisioning policy.
          example: ProvisioningPolicy1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: The type of the resource
          type: string
      type: object
    ReplicationInfo:
      description: >-
        Replication groups information containing details of all replication
        partners. Applicable only for Protection Group type
        'STORAGE_REPLICATION_GROUP'
      properties:
        id:
          description: Id of the replication group.
          type: string
        name:
          description: Name of the replication group.
          type: string
        partnerDetails:
          description: List of Volumes associated with vm protection group.
          items:
            $ref: '#/components/schemas/ReplicationPartnerInfo'
          type: array
        resourceUri:
          description: Uri representing replication group in Storage Fleet
          example: /storage-fleet/v1/storage-systems/{uuid}/volume-sets
          format: Uri
          readOnly: true
          type: string
        type:
          description: type representing volume-set in Storage Fleet
          example: storage-fleet/volume-set
          readOnly: true
          type: string
      type: object
    ReplicationPartnerInfo:
      description: 'Details of the replication partnerDetails:'
      properties:
        id:
          description: Id of the storage system, applicable only for Nimble storage systems
          type: string
        mode:
          description: Replication Mode
          enum:
            - SYNCHRONOUS
            - PERIODIC
          type: string
        name:
          description: Name of the replication partner Array
          type: string
        systemWwn:
          description: storage system wwn in case of Primera
          type: string
        vendorName:
          description: Vendor name
          enum:
            - NIMBLE
            - PRIMERA
          type: string
      type: object
    Restriction:
      description: A restriction because of which SKU cannot be used.
      properties:
        reasonCode:
          description: Reason for the restriction.
          example: NotAvailableForSubscription
          type: string
        type:
          description: Type of restriction.
          example: Location
          type: string
        values:
          description: Restriction value.
          example:
            - KoreaSouth
          items:
            type: string
          type: array
      type: object
    Services:
      description: >-
        List of services this object belongs to.  This list can be used to
        filter specific services in the UI.
      example:
        - hci-manager
        - backup-and-recovery
      items:
        description: External name of the service.
        type: string
      type: array
    StorageFolderInfo:
      description: Information of storage folder.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage folder.
          type: string
        id:
          description: UUID string uniquely identifying the storage folder.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the storage folder.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of storage folder.
          type: string
      type: object
    StoragePoolInfo:
      description: Describes a storage pool.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage pool.
          type: string
        id:
          description: UUID string uniquely identifying the storage pool.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the storage pool.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of storage pool.
          type: string
      type: object
    StorageSystemInfo:
      description: Describes a storage system.
      properties:
        displayName:
          description: A user-friendly name that identifies the storage system.
          example: my-dev-3par1.ind.hpecorp.net
          type: string
        id:
          description: UUID string uniquely identifying the storage system.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        managed:
          description: Specify if the storage system is registered.
          type: boolean
        name:
          description: Name of the storage system.
          example: atlas-dev-3par1.ind.hpecorp.net
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        serialNumber:
          description: Serial number of the storage system.
          example: AF-10122
          type: string
        type:
          description: Type of storage system.
          enum:
            - NIMBLE
            - THREEPAR
            - PRIMERA
            - ALLETRA_6000
            - ALLETRA_9000
          example: ALLETRA_9000
          type: string
        vendorName:
          description: Storage system provider name.
          example: hpe
          maxLength: 255
          type: string
      type: object
    VCpuInfo:
      description: The vCPU configurations for the instance type.
      properties:
        defaultCores:
          description: The default number of cores for the instance type.
          example: 48
          type: integer
        defaultThreadsPerCore:
          description: The default number of threads per core for the instance type.
          example: 2
          type: integer
        defaultVcpus:
          description: The default number of vCPUs for the instance type.
          example: 96
          type: integer
      type: object
    VersionInfo:
      description: Image version info.
      properties:
        offer:
          description: Merchant's offer.
          example: Windows-10
          type: string
        publisher:
          description: Publisher of the image.
          example: MicrosoftWindowsDesktop
          type: string
        sku:
          description: SKU of the image.
          example: win10-22h2-pro
          type: string
        version:
          description: Version of the image.
          example: 19045.3324.230728
          type: string
      type: object
    VirtualMachine:
      description: |
        Represents a single instance of a Virtual Machine
      properties:
        allowedOperations:
          description: List of allowed operation on the virtual machine.
          example:
            - VIRTUAL_MACHINE_POWER_ON
            - VIRTUAL_MACHINE_POWER_OFF
          items:
            enum:
              - VIRTUAL_MACHINE_POWER_ON
              - VIRTUAL_MACHINE_POWER_OFF
              - VIRTUAL_MACHINE_RESET
              - VIRTUAL_MACHINE_SHUTDOWN_GUEST_OS
              - VIRTUAL_MACHINE_RESTART_GUEST_OS
              - VIRTUAL_MACHINE_DELETE
              - VIRTUAL_MACHINE_BACKUP_CREATE
              - VIRTUAL_MACHINE_BACKUP_UPDATE
              - VIRTUAL_MACHINE_BACKUP_DELETE
              - VIRTUAL_MACHINE_SNAPSHOT_CREATE
              - VIRTUAL_MACHINE_SNAPSHOT_UPDATE
              - VIRTUAL_MACHINE_SNAPSHOT_DELETE
              - VIRTUAL_MACHINE_RESTORE
              - VIRTUAL_MACHINE_DISKS_RESTORE
            type: string
          type: array
        appInfo:
          description: Application specific information for this virtual machine.
          properties:
            vmware:
              properties:
                datacenterInfo:
                  $ref: '#/components/schemas/DatacenterInfo'
                datastoresInfo:
                  description: >-
                    References to all datastores that house virtual disks of
                    this virtual machine.
                  items:
                    properties:
                      displayName:
                        $ref: '#/components/schemas/Datastore/properties/displayName'
                      id:
                        $ref: '#/components/schemas/Datastore/properties/id'
                      name:
                        $ref: '#/components/schemas/Datastore/properties/name'
                      resourceUri:
                        description: The URI reference for this resource.
                        type: string
                      type:
                        $ref: '#/components/schemas/Datastore/properties/type'
                    type: object
                  type: array
                moref:
                  description: VMware provided moref for this virtual machine.
                  example: vm-21
                  type: string
                resourcePoolInfo:
                  description: >-
                    Information about the VMware's resource pool to which the VM
                    belongs to.
                  properties:
                    displayName:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/displayName
                    id:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/id
                    moref:
                      description: VMware provided moref for this resource pool.
                      example: resourcepool-1
                      type: string
                    name:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/name
                    resourceUri:
                      description: The URI reference for this resource.
                      type: string
                    type:
                      $ref: >-
                        #/components/schemas/HypervisorResourcePool/properties/type
                  type: object
                toolsInfo:
                  description: >-
                    Information about the VMware tools installed in this virtual
                    machine.
                  properties:
                    status:
                      description: >-
                        Status of VMware Tools running in the guest operating
                        system. Values are inline with the vCenter provided
                        values
                      enum:
                        - NOT_INSTALLED
                        - NOT_RUNNING
                        - OK
                        - OLD
                      type: string
                    type:
                      description: >-
                        Type of the VMware tool installed in this virtual
                        machine.
                      example: guestToolsTypeMSI
                      type: string
                    version:
                      description: >-
                        Version of the VMware tool installed in this virtual
                        machine.
                      example: '9349'
                      type: string
                  type: object
                type:
                  description: >-
                    Type of the virtual machine. - VMFS - virtual machine which
                    is created from one or more VMFS datastores. - VVOL -
                    virtual machine which is created from a VVOL datastores. -
                    NFS  - virtual machine which is created from a NFS
                    datastores. - VSAN - virtual machine which is created from a
                    VSAN datastores.
                  enum:
                    - VMFS
                    - VVOL
                    - NFS
                    - VSAN
                  type: string
              type: object
          type: object
        appType:
          description: Type of the application to which the VM belongs.
          enum:
            - VMWARE
          type: string
        capacityInBytes:
          description: Size of the virtual machine in bytes.
          example: 2407653459860
          format: int64
          type: integer
        clusterInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorCluster/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorCluster/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorCluster/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorCluster/properties/type'
          type: object
        computeInfo:
          description: Compute information of the virtual machine.
          properties:
            memorySizeInMib:
              description: Total memory provisioned.
              example: '4096'
              type: string
            numCpuCores:
              description: Number of CPU cores provisioned.
              example: 8
              type: integer
            numCpuThreads:
              description: Number of CPU threads provisioned.
              example: 16
              type: integer
          type: object
        createdAt:
          description: Time in UTC at which the object was created.
          format: date-time
          type: string
        customerId:
          description: The customer application identifier.
          type: string
        displayName:
          description: A user-friendly name that identifies the virtual machine.
          example: My-Test-VM
          type: string
        folderInfo:
          description: >-
            The immediate parent folder on which this resource is hosted in the
            inventory of hypervisor-manager.
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorFolder/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorFolder/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorFolder/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorFolder/properties/type'
          type: object
        generation:
          $ref: '#/components/schemas/CommonResourceProperties/properties/generation'
        guestInfo:
          description: Information of this guest OS running on the virtual machine.
          properties:
            buildVersion:
              description: >-
                Build version of the guest operating system on this virtual
                machine.
              example: 6.7.0 build-9030300, NT 6.3, 3.8.13-44.1.1.el6uek.x86_64
              type: string
            name:
              description: Name of the guest operating system on this virtual machine.
              example: Microsoft Windows Server 2008 R2 (64-bit)
              type: string
            releaseVersion:
              description: >-
                Release version of the guest operating system on this virtual
                machine.
              example: 6.7.0 build-9030300, R2, 7.2
              type: string
            type:
              description: Operating system on this virtual machine.
              enum:
                - WINDOWS
                - LINUX
                - OTHERS
              type: string
          type: object
        hciClusterUuid:
          description: UUID string uniquely identifying the HCI cluster.
          example: 754f63f7-1016-40ec-9b8f-610f978b9aec
          type: string
        hostInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorHost/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorHost/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorHost/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorHost/properties/type'
          type: object
        hypervisorManagerInfo:
          properties:
            displayName:
              $ref: '#/components/schemas/HypervisorManager/properties/displayName'
            id:
              $ref: '#/components/schemas/HypervisorManager/properties/id'
            name:
              $ref: '#/components/schemas/HypervisorManager/properties/name'
            resourceUri:
              description: The URI reference for this resource.
              type: string
            type:
              $ref: '#/components/schemas/HypervisorManager/properties/type'
          type: object
        id:
          description: UUID string uniquely identifying the virtual machine
          example: 9b4c14a6-3cd5-4907-97c4-cf44c5b641e4
          type: string
        name:
          description: Name of the virtual machine as configured in the hypervisor manager.
          example: vm-1-windows
          maxLength: 80
          readOnly: true
          type: string
        networkAdapters:
          items:
            properties:
              macAddress:
                description: MAC address of the network adapter.
                type: string
              macAddressType:
                description: Specifies how the MAC address is provided for the adapter.
                enum:
                  - MANUAL
                  - AUTOMATIC
                type: string
              name:
                description: Name of the network adapter.
                type: string
              networkDetails:
                properties:
                  connectAtPowerOn:
                    description: Specifies if the network has to be connected at power on.
                    type: boolean
                  displayName:
                    $ref: >-
                      #/components/schemas/HypervisorNetwork/properties/displayName
                  id:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/id'
                  name:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/name'
                  resourceUri:
                    description: The URI reference for this resource.
                    type: string
                  state:
                    description: Reflects if network is available or deleted from vCenter.
                    enum:
                      - AVAILABLE
                      - DELETED
                    type: string
                  type:
                    $ref: '#/components/schemas/HypervisorNetwork/properties/type'
                type: object
            type: object
          type: array
        networkAddress:
          description: IP address of the virtual machine.
          type: string
        powerState:
          description: This provides the information power state of the virtual machine.
          enum:
            - POWERED_ON
            - POWERED_OFF
            - SUSPENDED
            - UNKNOWN
          type: string
        protectionJobInfo:
          $ref: '#/components/schemas/DataManagementJobInfo'
        protectionPolicyAppliedAtInfo:
          $ref: '#/components/schemas/ProtectionPolicyAppliedAtInfo'
        protectionStatus:
          $ref: '#/components/schemas/protectionStatus'
        recoveryPointsExist:
          $ref: '#/components/schemas/recoveryPointsExist'
        resourceUri:
          description: The 'self' reference for this resource.
          example: /virtualization/v1beta1/virtual-machines/{vm-id}
          type: string
        services:
          $ref: '#/components/schemas/Services'
        state:
          description: The current state of the virtual machine
          enum:
            - OK
            - UNAVAILABLE
            - ERROR
            - CREATING
            - DELETING
            - UPDATING
            - REFRESHING
            - RESTORING
            - RESTORE_FAILED
            - DELETED
          example: OK
          type: string
        stateReason:
          description: Brief reason for the current state of the virtual machine
          maxLength: 255
          type: string
        status:
          description: The current status of the virtual machine.
          enum:
            - OK
            - ERROR
            - WARNING
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
        uid:
          description: >-
            Unique identifier of the virtual machine as reported by the
            hypervisor.
          format: uuid
          type: string
        updatedAt:
          description: Time in UTC at which the object was last updated.
          format: date-time
          type: string
        vclsVm:
          description: Indicates it is a vCLS virtual machine or not.
          example: false
          type: boolean
        virtualDisks:
          description: >-
            A list of objects encapsulating information about the storage disks
            provisioned to a virtual machine
          items:
            properties:
              appInfo:
                description: Hypervisor specific information.
                properties:
                  vmware:
                    description: VMware specific app info.
                    properties:
                      datastoreInfo:
                        description: >-
                          Information of the datastore where the virtual disk is
                          residing.
                        properties:
                          displayName:
                            $ref: >-
                              #/components/schemas/Datastore/properties/displayName
                          id:
                            $ref: '#/components/schemas/Datastore/properties/id'
                          name:
                            $ref: '#/components/schemas/Datastore/properties/name'
                          resourceUri:
                            description: The URI reference for this resource.
                            type: string
                          type:
                            $ref: '#/components/schemas/Datastore/properties/type'
                        type: object
                      diskUuidEnabled:
                        description: >-
                          True if the disk UUID is enabled for the virtual
                          machine.
                        example: true
                        type: boolean
                      type:
                        description: >-
                          This gives information this virtual disk type. - VMFS
                          - virtual machine flat disks. - VVOL - virtual volume
                          - PRDM - physical raw disk mapping - VRDM - virtual
                          raw disk mapping
                        enum:
                          - VMFS
                          - VVOL
                          - PRDM
                          - VRDM
                        type: string
                    type: object
                type: object
              capacityInBytes:
                description: >-
                  Last known size of the virtual disk File path of the virtual
                  disk
                format: int64
                type: integer
              filePath:
                description: File path of the virtual disk
                example: NEW_VCSA6.7/NEW_VCSA6.7.vmdk
                type: string
              id:
                description: UUID for the virtual disk.
                format: uuid
                type: string
              name:
                description: Name of the virtual disk.
                example: NEW_VM_20200605155010/NEW_VM_20200605155010.vmdk
                type: string
              uid:
                description: >-
                  Unique identifier of the virtual disk as reported by the
                  hypervisor.
                format: uuid
                type: string
            type: object
          type: array
        vmClassification:
          description: Classification of different system/control VM types
          enum:
            - DATA_ORCHESTRATOR
            - PROTECTION_STORE_GATEWAY
            - VCLS_VM
            - TEMPLATE_VM
            - OMNICUBE_VM
            - DSC_VM
          type: string
        vmConfigPath:
          description: VM configuration path of the virtual machine.
          example: NEW_VCSA6.7/NEW_VCSA6.7.vmx
          type: string
        vmPerfMetricInfo:
          description: Virtual machine performance metrics.
          properties:
            averageReadLatency:
              description: Average read latency.
              format: int64
              type: integer
            averageWriteLatency:
              description: Average write latency.
              format: int64
              type: integer
            cpuAllocatedInMhz:
              description: CPU allocated in mega hertz.
              format: int64
              type: integer
            cpuUsedInMhz:
              description: CPU used in mega hertz.
              format: int64
              type: integer
            memoryAllocatedInMb:
              description: Memory allocated in mega bytes.
              format: int64
              type: integer
            memoryUsedInMb:
              description: Memory used in mega bytes.
              format: int64
              type: integer
            storageAllocatedInKb:
              description: Storage allocated in kilo bytes.
              format: int64
              type: integer
            storageUsedInBytes:
              description: Storage used in bytes.
              format: int64
              type: integer
            totalReadIops:
              description: Total read IOPS.
              format: int64
              type: integer
            totalWriteIops:
              description: Total write IOPS.
              format: int64
              type: integer
          type: object
        vmProtectionGroupsInfo:
          description: Protection groups related to the virtual machine.
          items:
            $ref: '#/components/schemas/VmProtectionGroupInfo'
          type: array
        volumesInfo:
          description: Volumes associated with this virtual machine.
          items:
            $ref: '#/components/schemas/VolumeInfo'
          type: array
      required:
        - id
        - type
        - generation
        - createdAt
        - updatedAt
      type: object
    VirtualMachineList:
      properties:
        count:
          description: Total number of records returned.
          type: integer
        items:
          items:
            $ref: '#/components/schemas/VirtualMachine'
          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
    VmProtectionGroupInfo:
      description: Information of the Virtual Machine Protection Group.
      properties:
        id:
          description: Unique identifier for the Protection Group.
          example: 1b738651-da9f-4c85-88c1-70dbfe1976681
          type: string
        name:
          description: Name of the Protection Group.
          example: myProtectionGroup
          type: string
        resourceUri:
          description: Reference to resource.
          type: string
        type:
          $ref: '#/components/schemas/CommonResourceProperties/properties/type'
      type: object
    VolumeInfo:
      description: Information of volume or snapshot.
      properties:
        displayName:
          description: A user-friendly name that identifies the volume.
          type: string
        id:
          description: UUID string uniquely identifying the volume.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the volume.
          example: Volume1
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        scsiIdentifier:
          description: SCSI identifier of the volume or snapshot .
          example: 1b738651-da9f-4c85-88c1-70dbfe1976681
          type: string
        sizeInBytes:
          description: Size of the volume or snapshot in bytes.
          example: 2407653459860
          format: int64
          type: integer
        storageFolderInfo:
          $ref: '#/components/schemas/StorageFolderInfo'
        storagePoolInfo:
          $ref: '#/components/schemas/StoragePoolInfo'
        storageSystemInfo:
          $ref: '#/components/schemas/StorageSystemInfo'
        type:
          description: Type of volume.
          type: string
        volumeSetInfo:
          $ref: '#/components/schemas/VolumeSetInfo'
      type: object
    VolumeSetInfo:
      description: Describes a volume set.
      properties:
        displayName:
          description: A user-friendly name that identifies the volume set.
          type: string
        id:
          description: UUID string uniquely identifying the volume set.
          example: 6a38acc7-e470-4ed7-b141-ca9509672dac
          type: string
        name:
          description: Name of the volume set.
          type: string
        resourceUri:
          description: The URI reference for this resource.
          type: string
        type:
          description: Type of the volume set.
          type: string
      type: object
    protectionStatus:
      description: >-
        Provides the current protection status of this resource. - UNPROTECTED -
        No policy assigned, No recovery points exists - LAPSED      - No policy
        assigned, at least one recovery points exists - PENDING     - Policy
        assigned, No recovery points exists - PARTIAL     - Policy assigned, At
        least one recovery point exists - PROTECTED   - Policy assigned, most
        recent run of every configured schedule is successful - PAUSED      -
        Policy assigned, one or more of the schedules are paused - UNSUPPORTED -
        No policy can be assigned
      enum:
        - UNPROTECTED
        - LAPSED
        - PENDING
        - PARTIAL
        - PROTECTED
        - PAUSED
        - UNSUPPORTED
      example: PROTECTED
      type: string
    recoveryPointsExist:
      description: Indicates at least one valid recovery point exists for this resource.
      example: true
      type: boolean
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: >
        The Data Service Cloud Console API uses a JWT bearer token for
        authentication.

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