This describes the API as currently implemented.
Many calls to the REST API endpoint will result in calls to sub-agents. Some of these calls may result in both a synchronous and asynchronous pipeline to be executed.
Rather than recreate the data structures here, we will reference them as declared in the agent code documentation. All request/response bodies are JSON.
|
|
| REST |
GET /metadata |
| Description |
Hypervisor level metadata |
| Output |
hash of key/value pairs |
|
|
| REST |
PATCH /metadata |
| Description |
Hypervisor level metadata |
| Input |
key/value pairs (both must be strings). Values to be removed can be set to null |
| Output |
hash of key/value pairs |
|
|
| REST |
GET /guests |
| Description |
Get list of guests |
| Output |
Array of Guest |
Note: the Agent keeps data about the guests in its data store, this is the data that is returned. Sub-agents should add any metadata desired to the Guest metadata.
|
|
| REST |
POST /guests |
| Description |
Create a guest |
| Input |
Guest though certain fields should not be set, such as ID, network/disk devices/etc |
| Output |
Guest |
Sample Guest request body:
|
|
| REST |
GET /guests/{id} |
| Description |
get a single guest |
| Output |
Guest |
|
|
| REST |
GET /guests/{id}/metadata |
| Description |
get guest metadata |
| Output |
key/value pairs |
|
|
| REST |
PATCH /guests/{id}/metadata |
| Description |
get guest metadata |
| Input |
key/value pairs (both must be strings). Values to be removed can be set to null |
| Output |
hash of key/value pairs |
|
|
| REST |
GET /guests/{id}/metrics/cpu |
| Description |
get guest CPU metrics |
| Output |
GuestCPUMetrics |
| RPC |
This calls to the cpu metrics service. This is a single call, there is no pipeline (currently) |
| RPC Input |
GuestMetricsRequest |
| RPC Output |
GuestMetricsResponse with only CPU metrics |
|
|
| REST |
GET /guests/{id}/metrics/nic |
| Description |
get guest NIC metrics |
| Output |
GuestNicMetrics |
| RPC |
This calls to the nic metrics service. This is a single call, there is no pipeline (currently) |
| RPC Input |
GuestMetricsRequest |
| RPC Output |
GuestMetricsResponse with only NIC metrics |
|
|
| REST |
GET /guests/{id}/metrics/disk |
| Description |
get guest disk metrics |
| Output |
GuestDiskMetrics |
| RPC |
This calls to the disk metrics service. This is a single call, there is no pipeline (currently) |
| RPC Input |
GuestMetricsRequest |
| RPC Output |
GuestMetricsResponse with only disk metrics |
|
|
| REST |
POST /guests/{id}/shutdown |
| Description |
perform soft shutdown of the guest. may require guest support |
| Output |
Guest |
| RPC |
This calls the shutdown action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
POST /guests/{id}/reboot |
| Description |
perform reboot of the guest. |
| Output |
Guest |
| RPC |
This calls the reboot action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
POST /guests/{id}/restart |
| Description |
perform restart of the guest. This is a hard reset. |
| Output |
Guest |
| RPC |
This calls the restart action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
POST /guests/{id}/poweroff |
| Description |
perform poweroff of the guest. |
| Output |
Guest |
| RPC |
This calls the poweroff action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
POST /guests/{id}/start |
| Description |
perform start of the guest if it is currently off, shutdown, or suspended |
| Output |
Guest |
| RPC |
This calls the start action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
POST /guests/{id}/suspend |
| Description |
perform suspend of the guest. |
| Output |
Guest |
| RPC |
This calls the suspend action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |
|
|
| REST |
DELETE /guests/{id} |
| Description |
perform delete of the guest. After succesfully deleting the guest, the agent will remove it from its data store. |
| Output |
Guest |
| RPC |
This calls the delete action which has both a synchronous and asynchronous pipeline |
| RPC Input |
GuestRequest |
| RPC Output |
GuestResponse |