proxmox_api/generated/
pools.rs

1pub mod poolid;
2pub struct PoolsClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> PoolsClient<T>
7where
8    T: crate::client::Client,
9{
10    pub fn new(client: T) -> Self {
11        Self {
12            client,
13            path: "/pools".to_string(),
14        }
15    }
16}
17impl<T> PoolsClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Delete pool."]
22    pub fn delete(&self, params: DeleteParams) -> Result<(), T::Error> {
23        let path = self.path.to_string();
24        self.client.delete(&path, &params)
25    }
26}
27impl<T> PoolsClient<T>
28where
29    T: crate::client::Client,
30{
31    #[doc = "List pools or get pool configuration."]
32    pub fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
33        let path = self.path.to_string();
34        self.client.get(&path, &params)
35    }
36}
37impl<T> PoolsClient<T>
38where
39    T: crate::client::Client,
40{
41    #[doc = "Create new pool."]
42    pub fn post(&self, params: PostParams) -> Result<(), T::Error> {
43        let path = self.path.to_string();
44        self.client.post(&path, &params)
45    }
46}
47impl<T> PoolsClient<T>
48where
49    T: crate::client::Client,
50{
51    #[doc = "Update pool."]
52    pub fn put(&self, params: PutParams) -> Result<(), T::Error> {
53        let path = self.path.to_string();
54        self.client.put(&path, &params)
55    }
56}
57impl DeleteParams {
58    pub fn new(poolid: String) -> Self {
59        Self {
60            poolid,
61            additional_properties: Default::default(),
62        }
63    }
64}
65#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
66pub struct DeleteParams {
67    pub poolid: String,
68    #[serde(
69        flatten,
70        default,
71        skip_serializing_if = "::std::collections::HashMap::is_empty"
72    )]
73    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
74}
75impl GetOutputItems {
76    pub fn new(poolid: String) -> Self {
77        Self {
78            poolid,
79            comment: Default::default(),
80            members: Default::default(),
81            additional_properties: Default::default(),
82        }
83    }
84}
85#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
86pub struct GetOutputItems {
87    #[serde(skip_serializing_if = "Option::is_none", default)]
88    pub comment: Option<String>,
89    #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
90    pub members: Vec<MembersGetOutputItemsMembersItems>,
91    pub poolid: String,
92    #[serde(
93        flatten,
94        default,
95        skip_serializing_if = "::std::collections::HashMap::is_empty"
96    )]
97    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
98}
99#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
100pub struct GetParams {
101    #[serde(skip_serializing_if = "Option::is_none", default)]
102    pub poolid: Option<String>,
103    #[serde(rename = "type")]
104    #[serde(skip_serializing_if = "Option::is_none", default)]
105    pub ty: Option<Type>,
106    #[serde(
107        flatten,
108        default,
109        skip_serializing_if = "::std::collections::HashMap::is_empty"
110    )]
111    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
112}
113impl MembersGetOutputItemsMembersItems {
114    pub fn new(id: String, node: String, ty: Type) -> Self {
115        Self {
116            id,
117            node,
118            ty,
119            storage: Default::default(),
120            vmid: Default::default(),
121            additional_properties: Default::default(),
122        }
123    }
124}
125#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
126pub struct MembersGetOutputItemsMembersItems {
127    pub id: String,
128    pub node: String,
129    #[serde(skip_serializing_if = "Option::is_none", default)]
130    pub storage: Option<String>,
131    #[serde(rename = "type")]
132    pub ty: Type,
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    pub vmid: Option<u64>,
139    #[serde(
140        flatten,
141        default,
142        skip_serializing_if = "::std::collections::HashMap::is_empty"
143    )]
144    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
145}
146impl PostParams {
147    pub fn new(poolid: String) -> Self {
148        Self {
149            poolid,
150            comment: Default::default(),
151            additional_properties: Default::default(),
152        }
153    }
154}
155#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
156pub struct PostParams {
157    #[serde(skip_serializing_if = "Option::is_none", default)]
158    pub comment: Option<String>,
159    pub poolid: String,
160    #[serde(
161        flatten,
162        default,
163        skip_serializing_if = "::std::collections::HashMap::is_empty"
164    )]
165    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
166}
167impl PutParams {
168    pub fn new(poolid: String) -> Self {
169        Self {
170            poolid,
171            allow_move: Default::default(),
172            comment: Default::default(),
173            delete: Default::default(),
174            storage: Default::default(),
175            vms: Default::default(),
176            additional_properties: Default::default(),
177        }
178    }
179}
180#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
181pub struct PutParams {
182    #[serde(rename = "allow-move")]
183    #[serde(
184        serialize_with = "crate::types::serialize_bool_optional",
185        deserialize_with = "crate::types::deserialize_bool_optional"
186    )]
187    #[serde(skip_serializing_if = "Option::is_none", default)]
188    #[doc = "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one."]
189    pub allow_move: Option<bool>,
190    #[serde(skip_serializing_if = "Option::is_none", default)]
191    pub comment: Option<String>,
192    #[serde(
193        serialize_with = "crate::types::serialize_bool_optional",
194        deserialize_with = "crate::types::deserialize_bool_optional"
195    )]
196    #[serde(skip_serializing_if = "Option::is_none", default)]
197    #[doc = "Remove the passed VMIDs and/or storage IDs instead of adding them."]
198    pub delete: Option<bool>,
199    pub poolid: String,
200    #[serde(skip_serializing_if = "Option::is_none", default)]
201    #[doc = "List of storage IDs to add or remove from this pool."]
202    pub storage: Option<String>,
203    #[serde(skip_serializing_if = "Option::is_none", default)]
204    #[doc = "List of guest VMIDs to add or remove from this pool."]
205    pub vms: Option<String>,
206    #[serde(
207        flatten,
208        default,
209        skip_serializing_if = "::std::collections::HashMap::is_empty"
210    )]
211    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
212}
213#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
214pub enum Type {
215    #[serde(rename = "lxc")]
216    Lxc,
217    #[serde(rename = "openvz")]
218    Openvz,
219    #[serde(rename = "qemu")]
220    Qemu,
221    #[serde(rename = "storage")]
222    Storage,
223}
224impl<T> PoolsClient<T>
225where
226    T: crate::client::Client,
227{
228    pub fn poolid(&self, poolid: &str) -> poolid::PoolidClient<T> {
229        poolid::PoolidClient::<T>::new(self.client.clone(), &self.path, poolid)
230    }
231}