Skip to main content

proxmox_api/generated/cluster/bulk_action/guest/
start.rs

1#[derive(Debug, Clone)]
2pub struct StartClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> StartClient<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, "/start"),
14        }
15    }
16}
17impl<T> StartClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Bulk start or resume all guests on the cluster."]
22    #[doc = ""]
23    #[doc = "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/\\<ID\\>' for each ID passed via the 'vms' parameter."]
24    pub async fn post(&self, params: PostParams) -> Result<String, T::Error> {
25        let path = self.path.to_string();
26        self.client.post(&path, &params).await
27    }
28}
29#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
30pub struct PostParams {
31    #[serde(skip_serializing_if = "Option::is_none", default)]
32    #[doc = "How many parallel tasks at maximum should be started."]
33    #[doc = ""]
34    pub maxworkers: Option<MaxworkersInt>,
35    #[serde(
36        serialize_with = "crate::types::serialize_int_optional",
37        deserialize_with = "crate::types::deserialize_int_optional"
38    )]
39    #[serde(skip_serializing_if = "Option::is_none", default)]
40    #[doc = "Default start timeout in seconds. Only valid for VMs. (default depends on the guest configuration)."]
41    #[doc = ""]
42    pub timeout: Option<i64>,
43    #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
44    #[doc = "Only consider guests from this list of VMIDs."]
45    #[doc = ""]
46    pub vms: Vec<VmsInt>,
47    #[serde(
48        flatten,
49        default,
50        skip_serializing_if = "::std::collections::HashMap::is_empty"
51    )]
52    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
53}
54#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
55pub struct MaxworkersInt(i128);
56impl crate::types::bounded_integer::BoundedInteger for MaxworkersInt {
57    const MIN: Option<i128> = None::<i128>;
58    const MAX: Option<i128> = None::<i128>;
59    const DEFAULT: Option<i128> = Some(1i128);
60    const TYPE_DESCRIPTION: &'static str = "a valid integer";
61    fn get(&self) -> i128 {
62        self.0
63    }
64    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
65        Self::validate(value)?;
66        Ok(Self(value))
67    }
68}
69impl std::convert::TryFrom<i128> for MaxworkersInt {
70    type Error = crate::types::bounded_integer::BoundedIntegerError;
71    fn try_from(value: i128) -> Result<Self, Self::Error> {
72        crate::types::bounded_integer::BoundedInteger::new(value)
73    }
74}
75impl ::serde::Serialize for MaxworkersInt {
76    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
77    where
78        S: ::serde::Serializer,
79    {
80        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
81    }
82}
83impl<'de> ::serde::Deserialize<'de> for MaxworkersInt {
84    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
85    where
86        D: ::serde::Deserializer<'de>,
87    {
88        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
89    }
90}
91#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
92pub struct VmsInt(i128);
93impl crate::types::bounded_integer::BoundedInteger for VmsInt {
94    const MIN: Option<i128> = Some(100i128);
95    const MAX: Option<i128> = Some(999999999i128);
96    const DEFAULT: Option<i128> = None::<i128>;
97    const TYPE_DESCRIPTION: &'static str = "an integer between 100 and 999999999";
98    fn get(&self) -> i128 {
99        self.0
100    }
101    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
102        Self::validate(value)?;
103        Ok(Self(value))
104    }
105}
106impl std::convert::TryFrom<i128> for VmsInt {
107    type Error = crate::types::bounded_integer::BoundedIntegerError;
108    fn try_from(value: i128) -> Result<Self, Self::Error> {
109        crate::types::bounded_integer::BoundedInteger::new(value)
110    }
111}
112impl ::serde::Serialize for VmsInt {
113    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
114    where
115        S: ::serde::Serializer,
116    {
117        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
118    }
119}
120impl<'de> ::serde::Deserialize<'de> for VmsInt {
121    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
122    where
123        D: ::serde::Deserializer<'de>,
124    {
125        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
126    }
127}