1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//!Unofficial Rust crate for accessing the [cloud-hypervisor REST API](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/api.md)
//!
//!# Overview
//!
//!The `cloud-hypervisor-client` crate can be used for managing the endpoints provided by the cloud-hypervisor REST API socket in your Rust project.
//!
//!The API client code of this crate has been auto-generated from the [Official OpenAPI Description for the cloud-hypervisor REST API](https://raw.githubusercontent.com/cloud-hypervisor/cloud-hypervisor/master/vmm/src/api/openapi/cloud-hypervisor.yaml) using [OpenAPI Generator](https://openapi-generator.tech/).
//!
//!# Example
//!
//!Get information about a VM:
//!
//!```rust,no_run
//! use cloud_hypervisor_client::apis::DefaultApi;
//! use cloud_hypervisor_client::socket_based_api_client;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), String> {
//! let client = socket_based_api_client("cloud_hypervisor_vm_socket.sock");
//!
//! let vm_info = client.vm_info_get()
//! .await
//! .map_err(|err| format!("API call to vm_info_get failed: {:?}", err))?;
//!
//! println!("Received vm info: {vm_info:?}");
//!
//! Ok(())
//! }
//!```
//!
//! For more examples check out the [examples](https://github.com/lpotthast/cloud-hypervisor-client/tree/main/examples)
//! folder in the Git repository.
extern crate futures;
extern crate hyper;
extern crate serde;
extern crate serde_json;
extern crate serde_repr;
extern crate url;
use crateDefaultApiClient;
use crateConfiguration;
use Path;
use Arc;
/// A [`DefaultApiClient`] wired up to talk to the cloud-hypervisor VMM over a Unix domain socket.
///
/// Construct one with [`socket_based_api_client`].
pub type SocketBasedApiClient = ;
/// Builds a client for the cloud-hypervisor REST API exposed at the given Unix domain socket path.
///
/// This is the main entrypoint of the crate. Cloud-hypervisor exposes its API over a local Unix
/// socket (typically configured via the VMM's `--api-socket` flag); pass that socket's path here
/// and the returned [`SocketBasedApiClient`] can drive any endpoint of the [`DefaultApi`] trait.
///
/// The `vmm_socket_path` is not opened here. The connection is established lazily by `hyper` on the
/// first request. A non-existent or unreachable socket therefore surfaces as an error from the
/// first API call rather than from this function.
///
/// [`DefaultApi`]: apis::DefaultApi
///
/// # Example
///
/// ```rust,no_run
/// use cloud_hypervisor_client::apis::DefaultApi;
/// use cloud_hypervisor_client::socket_based_api_client;
///
/// #[tokio::main]
/// async fn main() -> Result<(), String> {
/// let client = socket_based_api_client("cloud_hypervisor_vm_socket.sock");
///
/// let vm_info = client.vm_info_get()
/// .await
/// .map_err(|err| format!("API call to vm_info_get failed: {:?}", err))?;
///
/// println!("Received vm info: {vm_info:?}");
///
/// Ok(())
/// }
/// ```