Skip to main content

proxmox_api/generated/nodes/node/qemu/vmid/
resize.rs

1#[derive(Debug, Clone)]
2pub struct ResizeClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> ResizeClient<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, "/resize"),
14        }
15    }
16}
17impl<T> ResizeClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Extend volume size."]
22    #[doc = ""]
23    #[doc = "Permission check: perm(\"/vms/{vmid}\", [\"VM.Config.Disk\"])"]
24    pub async fn put(&self, params: PutParams) -> Result<String, T::Error> {
25        let path = self.path.to_string();
26        self.client.put(&path, &params).await
27    }
28}
29impl PutParams {
30    pub fn new(disk: Disk, size: SizeStr) -> Self {
31        Self {
32            disk,
33            size,
34            digest: ::std::default::Default::default(),
35            skiplock: ::std::default::Default::default(),
36            additional_properties: ::std::default::Default::default(),
37        }
38    }
39}
40#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
41pub struct PutParams {
42    #[serde(skip_serializing_if = "Option::is_none", default)]
43    #[doc = "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."]
44    #[doc = ""]
45    pub digest: Option<DigestStr>,
46    #[doc = "The disk you want to resize."]
47    #[doc = ""]
48    pub disk: Disk,
49    #[doc = "The new size. With the `+` sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported."]
50    #[doc = ""]
51    pub size: SizeStr,
52    #[serde(
53        serialize_with = "crate::types::serialize_bool_optional",
54        deserialize_with = "crate::types::deserialize_bool_optional"
55    )]
56    #[serde(skip_serializing_if = "Option::is_none", default)]
57    #[doc = "Ignore locks - only root is allowed to use this option."]
58    #[doc = ""]
59    pub skiplock: Option<bool>,
60    #[serde(
61        flatten,
62        default,
63        skip_serializing_if = "::std::collections::HashMap::is_empty"
64    )]
65    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
66}
67#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
68#[doc = "The disk you want to resize."]
69#[doc = ""]
70pub enum Disk {
71    #[serde(rename = "efidisk0")]
72    Efidisk0,
73    #[serde(rename = "ide0")]
74    Ide0,
75    #[serde(rename = "ide1")]
76    Ide1,
77    #[serde(rename = "ide2")]
78    Ide2,
79    #[serde(rename = "ide3")]
80    Ide3,
81    #[serde(rename = "sata0")]
82    Sata0,
83    #[serde(rename = "sata1")]
84    Sata1,
85    #[serde(rename = "sata2")]
86    Sata2,
87    #[serde(rename = "sata3")]
88    Sata3,
89    #[serde(rename = "sata4")]
90    Sata4,
91    #[serde(rename = "sata5")]
92    Sata5,
93    #[serde(rename = "scsi0")]
94    Scsi0,
95    #[serde(rename = "scsi1")]
96    Scsi1,
97    #[serde(rename = "scsi10")]
98    Scsi10,
99    #[serde(rename = "scsi11")]
100    Scsi11,
101    #[serde(rename = "scsi12")]
102    Scsi12,
103    #[serde(rename = "scsi13")]
104    Scsi13,
105    #[serde(rename = "scsi14")]
106    Scsi14,
107    #[serde(rename = "scsi15")]
108    Scsi15,
109    #[serde(rename = "scsi16")]
110    Scsi16,
111    #[serde(rename = "scsi17")]
112    Scsi17,
113    #[serde(rename = "scsi18")]
114    Scsi18,
115    #[serde(rename = "scsi19")]
116    Scsi19,
117    #[serde(rename = "scsi2")]
118    Scsi2,
119    #[serde(rename = "scsi20")]
120    Scsi20,
121    #[serde(rename = "scsi21")]
122    Scsi21,
123    #[serde(rename = "scsi22")]
124    Scsi22,
125    #[serde(rename = "scsi23")]
126    Scsi23,
127    #[serde(rename = "scsi24")]
128    Scsi24,
129    #[serde(rename = "scsi25")]
130    Scsi25,
131    #[serde(rename = "scsi26")]
132    Scsi26,
133    #[serde(rename = "scsi27")]
134    Scsi27,
135    #[serde(rename = "scsi28")]
136    Scsi28,
137    #[serde(rename = "scsi29")]
138    Scsi29,
139    #[serde(rename = "scsi3")]
140    Scsi3,
141    #[serde(rename = "scsi30")]
142    Scsi30,
143    #[serde(rename = "scsi4")]
144    Scsi4,
145    #[serde(rename = "scsi5")]
146    Scsi5,
147    #[serde(rename = "scsi6")]
148    Scsi6,
149    #[serde(rename = "scsi7")]
150    Scsi7,
151    #[serde(rename = "scsi8")]
152    Scsi8,
153    #[serde(rename = "scsi9")]
154    Scsi9,
155    #[serde(rename = "tpmstate0")]
156    Tpmstate0,
157    #[serde(rename = "virtio0")]
158    Virtio0,
159    #[serde(rename = "virtio1")]
160    Virtio1,
161    #[serde(rename = "virtio10")]
162    Virtio10,
163    #[serde(rename = "virtio11")]
164    Virtio11,
165    #[serde(rename = "virtio12")]
166    Virtio12,
167    #[serde(rename = "virtio13")]
168    Virtio13,
169    #[serde(rename = "virtio14")]
170    Virtio14,
171    #[serde(rename = "virtio15")]
172    Virtio15,
173    #[serde(rename = "virtio2")]
174    Virtio2,
175    #[serde(rename = "virtio3")]
176    Virtio3,
177    #[serde(rename = "virtio4")]
178    Virtio4,
179    #[serde(rename = "virtio5")]
180    Virtio5,
181    #[serde(rename = "virtio6")]
182    Virtio6,
183    #[serde(rename = "virtio7")]
184    Virtio7,
185    #[serde(rename = "virtio8")]
186    Virtio8,
187    #[serde(rename = "virtio9")]
188    Virtio9,
189}
190impl TryFrom<&str> for Disk {
191    type Error = String;
192    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
193        match value {
194            "efidisk0" => Ok(Self::Efidisk0),
195            "ide0" => Ok(Self::Ide0),
196            "ide1" => Ok(Self::Ide1),
197            "ide2" => Ok(Self::Ide2),
198            "ide3" => Ok(Self::Ide3),
199            "sata0" => Ok(Self::Sata0),
200            "sata1" => Ok(Self::Sata1),
201            "sata2" => Ok(Self::Sata2),
202            "sata3" => Ok(Self::Sata3),
203            "sata4" => Ok(Self::Sata4),
204            "sata5" => Ok(Self::Sata5),
205            "scsi0" => Ok(Self::Scsi0),
206            "scsi1" => Ok(Self::Scsi1),
207            "scsi10" => Ok(Self::Scsi10),
208            "scsi11" => Ok(Self::Scsi11),
209            "scsi12" => Ok(Self::Scsi12),
210            "scsi13" => Ok(Self::Scsi13),
211            "scsi14" => Ok(Self::Scsi14),
212            "scsi15" => Ok(Self::Scsi15),
213            "scsi16" => Ok(Self::Scsi16),
214            "scsi17" => Ok(Self::Scsi17),
215            "scsi18" => Ok(Self::Scsi18),
216            "scsi19" => Ok(Self::Scsi19),
217            "scsi2" => Ok(Self::Scsi2),
218            "scsi20" => Ok(Self::Scsi20),
219            "scsi21" => Ok(Self::Scsi21),
220            "scsi22" => Ok(Self::Scsi22),
221            "scsi23" => Ok(Self::Scsi23),
222            "scsi24" => Ok(Self::Scsi24),
223            "scsi25" => Ok(Self::Scsi25),
224            "scsi26" => Ok(Self::Scsi26),
225            "scsi27" => Ok(Self::Scsi27),
226            "scsi28" => Ok(Self::Scsi28),
227            "scsi29" => Ok(Self::Scsi29),
228            "scsi3" => Ok(Self::Scsi3),
229            "scsi30" => Ok(Self::Scsi30),
230            "scsi4" => Ok(Self::Scsi4),
231            "scsi5" => Ok(Self::Scsi5),
232            "scsi6" => Ok(Self::Scsi6),
233            "scsi7" => Ok(Self::Scsi7),
234            "scsi8" => Ok(Self::Scsi8),
235            "scsi9" => Ok(Self::Scsi9),
236            "tpmstate0" => Ok(Self::Tpmstate0),
237            "virtio0" => Ok(Self::Virtio0),
238            "virtio1" => Ok(Self::Virtio1),
239            "virtio10" => Ok(Self::Virtio10),
240            "virtio11" => Ok(Self::Virtio11),
241            "virtio12" => Ok(Self::Virtio12),
242            "virtio13" => Ok(Self::Virtio13),
243            "virtio14" => Ok(Self::Virtio14),
244            "virtio15" => Ok(Self::Virtio15),
245            "virtio2" => Ok(Self::Virtio2),
246            "virtio3" => Ok(Self::Virtio3),
247            "virtio4" => Ok(Self::Virtio4),
248            "virtio5" => Ok(Self::Virtio5),
249            "virtio6" => Ok(Self::Virtio6),
250            "virtio7" => Ok(Self::Virtio7),
251            "virtio8" => Ok(Self::Virtio8),
252            "virtio9" => Ok(Self::Virtio9),
253            v => Err(format!("Unknown variant {v}")),
254        }
255    }
256}
257#[derive(Debug, Clone, PartialEq, PartialOrd)]
258pub struct DigestStr {
259    value: String,
260}
261impl crate::types::bounded_string::BoundedString for DigestStr {
262    const MIN_LENGTH: Option<usize> = None::<usize>;
263    const MAX_LENGTH: Option<usize> = Some(40usize);
264    const DEFAULT: Option<&'static str> = None::<&'static str>;
265    const PATTERN: Option<&'static str> = None::<&'static str>;
266    const TYPE_DESCRIPTION: &'static str = "a string with length at most 40";
267    fn get_value(&self) -> &str {
268        &self.value
269    }
270    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
271        Self::validate(&value)?;
272        Ok(Self { value })
273    }
274}
275impl std::convert::TryFrom<String> for DigestStr {
276    type Error = crate::types::bounded_string::BoundedStringError;
277    fn try_from(value: String) -> Result<Self, Self::Error> {
278        crate::types::bounded_string::BoundedString::new(value)
279    }
280}
281impl ::serde::Serialize for DigestStr {
282    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
283    where
284        S: ::serde::Serializer,
285    {
286        crate::types::bounded_string::serialize_bounded_string(self, serializer)
287    }
288}
289impl<'de> ::serde::Deserialize<'de> for DigestStr {
290    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
291    where
292        D: ::serde::Deserializer<'de>,
293    {
294        crate::types::bounded_string::deserialize_bounded_string(deserializer)
295    }
296}
297#[derive(Debug, Clone, PartialEq, PartialOrd)]
298pub struct SizeStr {
299    value: String,
300}
301impl crate::types::bounded_string::BoundedString for SizeStr {
302    const MIN_LENGTH: Option<usize> = None::<usize>;
303    const MAX_LENGTH: Option<usize> = None::<usize>;
304    const DEFAULT: Option<&'static str> = None::<&'static str>;
305    const PATTERN: Option<&'static str> = Some("\\+?\\d+(\\.\\d+)?[KMGT]?");
306    const TYPE_DESCRIPTION: &'static str =
307        "a string with pattern r\"\\+?\\d+(\\.\\d+)?[KMGT]?\" and no length constraints";
308    fn get_value(&self) -> &str {
309        &self.value
310    }
311    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
312        Self::validate(&value)?;
313        Ok(Self { value })
314    }
315}
316impl std::convert::TryFrom<String> for SizeStr {
317    type Error = crate::types::bounded_string::BoundedStringError;
318    fn try_from(value: String) -> Result<Self, Self::Error> {
319        crate::types::bounded_string::BoundedString::new(value)
320    }
321}
322impl ::serde::Serialize for SizeStr {
323    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
324    where
325        S: ::serde::Serializer,
326    {
327        crate::types::bounded_string::serialize_bounded_string(self, serializer)
328    }
329}
330impl<'de> ::serde::Deserialize<'de> for SizeStr {
331    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
332    where
333        D: ::serde::Deserializer<'de>,
334    {
335        crate::types::bounded_string::deserialize_bounded_string(deserializer)
336    }
337}