# Hypervisors Controller Resource

The API allows you to list, view, create and edit hypervisors.

### GET /hypervisors

Returns list of hypervisors filtered by specified query parameters.

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
backup-to-be-restored | query |  |
direction | query |  |
filter | query |  |
hypervisor-manager | query |  |
nameLike | query |  |
orderBy | query |  |
page | query |  |
project-uuid | query |  |
size | query |  |
snapshotable | query |  | boolean
type | query |  | "CITRIX" or "ESXI" or "FAKE_HV" or "HYPERV" or "KUBERNETES" or "KVM" or "NUTANIX" or "OPENSHIFT" or "OVM" or "PROXMOX" or "VERGE" or "XEN"

Response Body
media type | data type | description
--- | --- | ---
application/json | array of HypervisorListRecord (JSON) | list of hypervisors filtered by specified query parameters

#### Example

##### Request

    GET /hypervisors
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### POST /hypervisors

Create hypervisor.

Request Body
media type | data type | description
--- | --- | ---
application/json | HypervisorRequest (JSON) | specify details for new hypervisor

Response Body
media type | data type | description
--- | --- | ---
application/json | HypervisorDetails (JSON) | details of newly created hypervisor

#### Example

##### Request

    POST /hypervisors
    Content-Type: application/json
    Accept: application/json

    {
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /hypervisors

Change node for specified list of hypervisors.

Request Body
media type | data type | description
--- | --- | ---
application/json | HypervisorBatchUpdate (JSON) | specify node and guids of hypervisors

Response Body
media type | data type | description
--- | --- | ---
application/json | BatchResponse (JSON) | list of successful and unsuccessful updates of node

#### Example

##### Request

    PUT /hypervisors
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### GET /hypervisors/detailed

Returns detailed list of hypervisors filtered by specified query parameters.

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
backup-to-be-restored | query |  |
direction | query |  |
filter | query |  |
hypervisor-manager | query |  |
nameLike | query |  |
orderBy | query |  |
page | query |  |
project-uuid | query |  |
size | query |  |
snapshotable | query |  | boolean
type | query |  | "CITRIX" or "ESXI" or "FAKE_HV" or "HYPERV" or "KUBERNETES" or "KVM" or "NUTANIX" or "OPENSHIFT" or "OVM" or "PROXMOX" or "VERGE" or "XEN"

Response Body
media type | data type | description
--- | --- | ---
application/json | array of HypervisorDetails (JSON) | detailed list of hypervisors filtered by specified query parameters

#### Example

##### Request

    GET /hypervisors/detailed
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### GET /hypervisors/for-restore

Returns list of hypervisors filtered by specified query parameters for restore operation

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
backup-to-be-restored | query |  |
direction | query |  |
filter | query |  |
hypervisor-manager | query |  |
nameLike | query |  |
orderBy | query |  |
page | query |  |
project-uuid | query |  |
size | query |  |
snapshotable | query |  | boolean
type | query |  | "CITRIX" or "ESXI" or "FAKE_HV" or "HYPERV" or "KUBERNETES" or "KVM" or "NUTANIX" or "OPENSHIFT" or "OVM" or "PROXMOX" or "VERGE" or "XEN"

Response Body
media type | data type | description
--- | --- | ---
application/json | array of HypervisorForRestoreListRecord (JSON) | list of hypervisor infos for restore filtered by specified query parameters

#### Example

##### Request

    GET /hypervisors/for-restore
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "host" : "https://some.host:8181/api",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    } ]

### PUT /hypervisors/licensed

Change license coverage for specified list of hypervisors.

Request Body
media type | data type | description
--- | --- | ---
application/json | SingleAttributeBatchUpdate (JSON) | specify license coverage and guids of hypervisors

Response Body
media type | data type | description
--- | --- | ---
application/json | BatchResponse (JSON) | list of successful and unsuccessful updates of license coverage

#### Example

##### Request

    PUT /hypervisors/licensed
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### PUT /hypervisors/password

Change password for specified list of hypervisors.

Request Body
media type | data type | description
--- | --- | ---
application/json | SingleAttributeBatchUpdate (JSON) | specify new password and guids of hypervisors

Response Body
media type | data type | description
--- | --- | ---
application/json | BatchResponse (JSON) | list of successful and unsuccessful updates of password

#### Example

##### Request

    PUT /hypervisors/password
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### GET /hypervisors/rbac-contexts

Returns list of hypervisors filtered by specified query parameters.

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
app-cmd-exec-config | query |  |
cloud-service-provider | query |  |
cluster | query |  |
data-center | query |  |
direction | query |  |
filter | query |  |
hypervisor | query |  |
hypervisor-manager | query |  |
nameLike | query |  |
orderBy | query |  |
page | query |  |
project | query |  |
size | query |  |
storage-pool | query |  |
storage-provider | query |  |
teams-group | query |  | boolean

Response Body
media type | data type | description
--- | --- | ---
application/json | array of RbacContextListRecord (JSON) | list of hypervisors filtered by specified query parameters

#### Example

##### Request

    GET /hypervisors/rbac-contexts
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]

### PUT /hypervisors/ssh-key-path

Change ssh key path for specified list of hypervisors.

Request Body
media type | data type | description
--- | --- | ---
application/json | SingleAttributeBatchUpdate (JSON) | specify new ssh key path and guids of hypervisors

Response Body
media type | data type | description
--- | --- | ---
application/json | BatchResponse (JSON) | list of successful and unsuccessful updates of ssh key path

#### Example

##### Request

    PUT /hypervisors/ssh-key-path
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### PUT /hypervisors/user

Change user for specified list of hypervisors.

Request Body
media type | data type | description
--- | --- | ---
application/json | SingleAttributeBatchUpdate (JSON) | specify new user and guids of hypervisors

Response Body
media type | data type | description
--- | --- | ---
application/json | BatchResponse (JSON) | list of successful and unsuccessful updates of user

#### Example

##### Request

    PUT /hypervisors/user
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### DELETE /hypervisors/{guid}

Remove hypervisor.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect)

#### Example

##### Request

    DELETE /hypervisors/{guid}
    Content-Type: */*

    ...

##### Response

    HTTP/1.1 204 No Content

### GET /hypervisors/{guid}

Get a single hypervisor.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | HypervisorDetails (JSON) | hypervisor details

#### Example

##### Request

    GET /hypervisors/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /hypervisors/{guid}

Change hypervisor details.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | HypervisorUpdate (JSON) | specify hypervisor details to update

Response Body
media type | data type | description
--- | --- | ---
application/json | HypervisorDetails (JSON) | updated details of hypervisor

#### Example

##### Request

    PUT /hypervisors/{guid}
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /hypervisors/{guid}/certificates

Change hypervisor certificate settings.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | HypervisorCertificateSettingsUpdate (JSON) | specify hypervisor certificate settings to update

Response Body
media type | data type | description
--- | --- | ---
application/json | HypervisorDetails (JSON) | updated details of hypervisor

#### Example

##### Request

    PUT /hypervisors/{guid}/certificates
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    {
      "guid" : "f8f73bf9-2445-4bce-a7dd-753be3b40a67",
      "type" : {
        "name" : "ENUM_NAME",
        "description" : "Enum description"
      }
    }

### PUT /hypervisors/{guid}/password

Change password for specified hypervisor.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | StringDTO (JSON) | specify new password to update

#### Example

##### Request

    PUT /hypervisors/{guid}/password
    Content-Type: application/json

    { }

##### Response

    HTTP/1.1 204 No Content

### GET /hypervisors/{guid}/statistics

Returns architecture statistics from hypervisor.

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
guid | path | specify local unique identifier for hypervisor (use by vProtect) |
compute-zone | query |  |
from | query |  | long
to | query |  | long

Response Body
media type | data type | description
--- | --- | ---
application/json | VirtualProviderStatisticsDetails (JSON) | architecture statistics from hypervisor

#### Example

##### Request

    GET /hypervisors/{guid}/statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }

### GET /hypervisors/{guid}/storages

Request Parameters
name | type | description
--- | --- | ---
guid | path |

Response Body
media type | data type | description
--- | --- | ---
application/json | array of HypervisorStorageListRecord (JSON) |

#### Example

##### Request

    GET /hypervisors/{guid}/storages
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]