proxmox_api/generated/nodes/node/lxc/vmid/status/
current.rs1#[derive(Debug, Clone)]
2pub struct CurrentClient<T> {
3 client: T,
4 path: String,
5}
6impl<T> CurrentClient<T>
7where
8 T: crate::client::Client,
9{
10 pub fn new(client: T, parent_path: &str) -> Self {
11 Self {
12 client,
13 path: format!("{}{}", parent_path, "/current"),
14 }
15 }
16}
17impl<T> CurrentClient<T>
18where
19 T: crate::client::Client,
20{
21 #[doc = "Get virtual machine status."]
22 #[doc = ""]
23 #[doc = "Permission check: perm(\"/vms/{vmid}\", [\"VM.Audit\"])"]
24 pub async fn get(&self) -> Result<GetOutput, T::Error> {
25 let path = self.path.to_string();
26 self.client.get(&path, &()).await
27 }
28}
29impl GetOutput {
30 pub fn new(ha: HaGetOutputHa, status: Status, vmid: VmidInt) -> Self {
31 Self {
32 ha,
33 status,
34 vmid,
35 cpu: ::std::default::Default::default(),
36 cpus: ::std::default::Default::default(),
37 disk: ::std::default::Default::default(),
38 diskread: ::std::default::Default::default(),
39 diskwrite: ::std::default::Default::default(),
40 lock: ::std::default::Default::default(),
41 maxdisk: ::std::default::Default::default(),
42 maxmem: ::std::default::Default::default(),
43 maxswap: ::std::default::Default::default(),
44 mem: ::std::default::Default::default(),
45 name: ::std::default::Default::default(),
46 netin: ::std::default::Default::default(),
47 netout: ::std::default::Default::default(),
48 pressurecpusome: ::std::default::Default::default(),
49 pressureiofull: ::std::default::Default::default(),
50 pressureiosome: ::std::default::Default::default(),
51 pressurememoryfull: ::std::default::Default::default(),
52 pressurememorysome: ::std::default::Default::default(),
53 tags: ::std::default::Default::default(),
54 template: ::std::default::Default::default(),
55 uptime: ::std::default::Default::default(),
56 additional_properties: ::std::default::Default::default(),
57 }
58 }
59}
60#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
61pub struct GetOutput {
62 #[serde(
63 serialize_with = "crate::types::serialize_number_optional",
64 deserialize_with = "crate::types::deserialize_number_optional"
65 )]
66 #[serde(skip_serializing_if = "Option::is_none", default)]
67 #[doc = "Current CPU usage."]
68 #[doc = ""]
69 pub cpu: Option<f64>,
70 #[serde(
71 serialize_with = "crate::types::serialize_number_optional",
72 deserialize_with = "crate::types::deserialize_number_optional"
73 )]
74 #[serde(skip_serializing_if = "Option::is_none", default)]
75 #[doc = "Maximum usable CPUs."]
76 #[doc = ""]
77 pub cpus: Option<f64>,
78 #[serde(
79 serialize_with = "crate::types::serialize_unsigned_int_optional",
80 deserialize_with = "crate::types::deserialize_unsigned_int_optional"
81 )]
82 #[serde(skip_serializing_if = "Option::is_none", default)]
83 #[doc = "Root disk image space-usage in bytes."]
84 #[doc = ""]
85 pub disk: Option<u64>,
86 #[serde(
87 serialize_with = "crate::types::serialize_int_optional",
88 deserialize_with = "crate::types::deserialize_int_optional"
89 )]
90 #[serde(skip_serializing_if = "Option::is_none", default)]
91 #[doc = "The amount of bytes the guest read from it's block devices since the guest was started. (Note: This info is not available for all storage types.)"]
92 #[doc = ""]
93 pub diskread: Option<i64>,
94 #[serde(
95 serialize_with = "crate::types::serialize_int_optional",
96 deserialize_with = "crate::types::deserialize_int_optional"
97 )]
98 #[serde(skip_serializing_if = "Option::is_none", default)]
99 #[doc = "The amount of bytes the guest wrote from it's block devices since the guest was started. (Note: This info is not available for all storage types.)"]
100 #[doc = ""]
101 pub diskwrite: Option<i64>,
102 #[doc = "HA manager service status."]
103 #[doc = ""]
104 pub ha: HaGetOutputHa,
105 #[serde(skip_serializing_if = "Option::is_none", default)]
106 #[doc = "The current config lock, if any."]
107 #[doc = ""]
108 pub lock: Option<String>,
109 #[serde(
110 serialize_with = "crate::types::serialize_int_optional",
111 deserialize_with = "crate::types::deserialize_int_optional"
112 )]
113 #[serde(skip_serializing_if = "Option::is_none", default)]
114 #[doc = "Root disk image size in bytes."]
115 #[doc = ""]
116 pub maxdisk: Option<i64>,
117 #[serde(
118 serialize_with = "crate::types::serialize_int_optional",
119 deserialize_with = "crate::types::deserialize_int_optional"
120 )]
121 #[serde(skip_serializing_if = "Option::is_none", default)]
122 #[doc = "Maximum memory in bytes."]
123 #[doc = ""]
124 pub maxmem: Option<i64>,
125 #[serde(
126 serialize_with = "crate::types::serialize_int_optional",
127 deserialize_with = "crate::types::deserialize_int_optional"
128 )]
129 #[serde(skip_serializing_if = "Option::is_none", default)]
130 #[doc = "Maximum SWAP memory in bytes."]
131 #[doc = ""]
132 pub maxswap: Option<i64>,
133 #[serde(
134 serialize_with = "crate::types::serialize_int_optional",
135 deserialize_with = "crate::types::deserialize_int_optional"
136 )]
137 #[serde(skip_serializing_if = "Option::is_none", default)]
138 #[doc = "Currently used memory in bytes."]
139 #[doc = ""]
140 pub mem: Option<i64>,
141 #[serde(skip_serializing_if = "Option::is_none", default)]
142 #[doc = "Container name."]
143 #[doc = ""]
144 pub name: Option<String>,
145 #[serde(
146 serialize_with = "crate::types::serialize_int_optional",
147 deserialize_with = "crate::types::deserialize_int_optional"
148 )]
149 #[serde(skip_serializing_if = "Option::is_none", default)]
150 #[doc = "The amount of traffic in bytes that was sent to the guest over the network since it was started."]
151 #[doc = ""]
152 pub netin: Option<i64>,
153 #[serde(
154 serialize_with = "crate::types::serialize_int_optional",
155 deserialize_with = "crate::types::deserialize_int_optional"
156 )]
157 #[serde(skip_serializing_if = "Option::is_none", default)]
158 #[doc = "The amount of traffic in bytes that was sent from the guest over the network since it was started."]
159 #[doc = ""]
160 pub netout: Option<i64>,
161 #[serde(
162 serialize_with = "crate::types::serialize_number_optional",
163 deserialize_with = "crate::types::deserialize_number_optional"
164 )]
165 #[serde(skip_serializing_if = "Option::is_none", default)]
166 #[doc = "CPU Some pressure stall average over the last 10 seconds."]
167 #[doc = ""]
168 pub pressurecpusome: Option<f64>,
169 #[serde(
170 serialize_with = "crate::types::serialize_number_optional",
171 deserialize_with = "crate::types::deserialize_number_optional"
172 )]
173 #[serde(skip_serializing_if = "Option::is_none", default)]
174 #[doc = "IO Full pressure stall average over the last 10 seconds."]
175 #[doc = ""]
176 pub pressureiofull: Option<f64>,
177 #[serde(
178 serialize_with = "crate::types::serialize_number_optional",
179 deserialize_with = "crate::types::deserialize_number_optional"
180 )]
181 #[serde(skip_serializing_if = "Option::is_none", default)]
182 #[doc = "IO Some pressure stall average over the last 10 seconds."]
183 #[doc = ""]
184 pub pressureiosome: Option<f64>,
185 #[serde(
186 serialize_with = "crate::types::serialize_number_optional",
187 deserialize_with = "crate::types::deserialize_number_optional"
188 )]
189 #[serde(skip_serializing_if = "Option::is_none", default)]
190 #[doc = "Memory Full pressure stall average over the last 10 seconds."]
191 #[doc = ""]
192 pub pressurememoryfull: Option<f64>,
193 #[serde(
194 serialize_with = "crate::types::serialize_number_optional",
195 deserialize_with = "crate::types::deserialize_number_optional"
196 )]
197 #[serde(skip_serializing_if = "Option::is_none", default)]
198 #[doc = "Memory Some pressure stall average over the last 10 seconds."]
199 #[doc = ""]
200 pub pressurememorysome: Option<f64>,
201 #[doc = "LXC Container status."]
202 #[doc = ""]
203 pub status: Status,
204 #[serde(skip_serializing_if = "Option::is_none", default)]
205 #[doc = "The current configured tags, if any."]
206 #[doc = ""]
207 pub tags: Option<String>,
208 #[serde(
209 serialize_with = "crate::types::serialize_bool_optional",
210 deserialize_with = "crate::types::deserialize_bool_optional"
211 )]
212 #[serde(skip_serializing_if = "Option::is_none", default)]
213 #[doc = "Determines if the guest is a template."]
214 #[doc = ""]
215 pub template: Option<bool>,
216 #[serde(
217 serialize_with = "crate::types::serialize_int_optional",
218 deserialize_with = "crate::types::deserialize_int_optional"
219 )]
220 #[serde(skip_serializing_if = "Option::is_none", default)]
221 #[doc = "Uptime in seconds."]
222 #[doc = ""]
223 pub uptime: Option<i64>,
224 #[doc = "The (unique) ID of the VM."]
225 #[doc = ""]
226 pub vmid: VmidInt,
227 #[serde(
228 flatten,
229 default,
230 skip_serializing_if = "::std::collections::HashMap::is_empty"
231 )]
232 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
233}
234#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
235pub struct HaGetOutputHa {
236 #[serde(
237 flatten,
238 default,
239 skip_serializing_if = "::std::collections::HashMap::is_empty"
240 )]
241 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
242}
243#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
244#[doc = "LXC Container status."]
245#[doc = ""]
246pub enum Status {
247 #[serde(rename = "running")]
248 Running,
249 #[serde(rename = "stopped")]
250 Stopped,
251}
252impl TryFrom<&str> for Status {
253 type Error = String;
254 fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
255 match value {
256 "running" => Ok(Self::Running),
257 "stopped" => Ok(Self::Stopped),
258 v => Err(format!("Unknown variant {v}")),
259 }
260 }
261}
262#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
263pub struct VmidInt(i128);
264impl crate::types::bounded_integer::BoundedInteger for VmidInt {
265 const MIN: Option<i128> = Some(100i128);
266 const MAX: Option<i128> = Some(999999999i128);
267 const DEFAULT: Option<i128> = None::<i128>;
268 const TYPE_DESCRIPTION: &'static str = "an integer between 100 and 999999999";
269 fn get(&self) -> i128 {
270 self.0
271 }
272 fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
273 Self::validate(value)?;
274 Ok(Self(value))
275 }
276}
277impl std::convert::TryFrom<i128> for VmidInt {
278 type Error = crate::types::bounded_integer::BoundedIntegerError;
279 fn try_from(value: i128) -> Result<Self, Self::Error> {
280 crate::types::bounded_integer::BoundedInteger::new(value)
281 }
282}
283impl ::serde::Serialize for VmidInt {
284 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
285 where
286 S: ::serde::Serializer,
287 {
288 crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
289 }
290}
291impl<'de> ::serde::Deserialize<'de> for VmidInt {
292 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
293 where
294 D: ::serde::Deserializer<'de>,
295 {
296 crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
297 }
298}