1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum PoolsCreatePoolError {
22 Status400(models::PveError),
23 Status401(models::PveError),
24 Status403(models::PveError),
25 Status404(models::PveError),
26 Status500(models::PveError),
27 Status501(models::PveError),
28 Status503(models::PveError),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum PoolsDeletePoolError {
36 Status400(models::PveError),
37 Status401(models::PveError),
38 Status403(models::PveError),
39 Status404(models::PveError),
40 Status500(models::PveError),
41 Status501(models::PveError),
42 Status503(models::PveError),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum PoolsDeletePoolDeprecatedError {
50 Status400(models::PveError),
51 Status401(models::PveError),
52 Status403(models::PveError),
53 Status404(models::PveError),
54 Status500(models::PveError),
55 Status501(models::PveError),
56 Status503(models::PveError),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum PoolsGetPoolsError {
64 Status400(models::PveError),
65 Status401(models::PveError),
66 Status403(models::PveError),
67 Status404(models::PveError),
68 Status500(models::PveError),
69 Status501(models::PveError),
70 Status503(models::PveError),
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum PoolsReadPoolError {
78 Status400(models::PveError),
79 Status401(models::PveError),
80 Status403(models::PveError),
81 Status404(models::PveError),
82 Status500(models::PveError),
83 Status501(models::PveError),
84 Status503(models::PveError),
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum PoolsUpdatePoolError {
92 Status400(models::PveError),
93 Status401(models::PveError),
94 Status403(models::PveError),
95 Status404(models::PveError),
96 Status500(models::PveError),
97 Status501(models::PveError),
98 Status503(models::PveError),
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum PoolsUpdatePoolDeprecatedError {
106 Status400(models::PveError),
107 Status401(models::PveError),
108 Status403(models::PveError),
109 Status404(models::PveError),
110 Status500(models::PveError),
111 Status501(models::PveError),
112 Status503(models::PveError),
113 UnknownValue(serde_json::Value),
114}
115
116
117pub async fn pools_create_pool(configuration: &configuration::Configuration, pools_create_pool_request: models::PoolsCreatePoolRequest) -> Result<models::PoolsCreatePoolResponse, Error<PoolsCreatePoolError>> {
119 let p_body_pools_create_pool_request = pools_create_pool_request;
121
122 let uri_str = format!("{}/pools", configuration.base_path);
123 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
124
125 if let Some(ref user_agent) = configuration.user_agent {
126 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
127 }
128 if let Some(ref apikey) = configuration.api_key {
129 let key = apikey.key.clone();
130 let value = match apikey.prefix {
131 Some(ref prefix) => format!("{} {}", prefix, key),
132 None => key,
133 };
134 req_builder = req_builder.header("Authorization", value);
135 };
136 if let Some(ref apikey) = configuration.api_key {
137 let key = apikey.key.clone();
138 let value = match apikey.prefix {
139 Some(ref prefix) => format!("{} {}", prefix, key),
140 None => key,
141 };
142 req_builder = req_builder.header("CSRFPreventionToken", value);
143 };
144 req_builder = req_builder.json(&p_body_pools_create_pool_request);
145
146 let req = req_builder.build()?;
147 let resp = configuration.client.execute(req).await?;
148
149 let status = resp.status();
150 let content_type = resp
151 .headers()
152 .get("content-type")
153 .and_then(|v| v.to_str().ok())
154 .unwrap_or("application/octet-stream");
155 let content_type = super::ContentType::from(content_type);
156
157 if !status.is_client_error() && !status.is_server_error() {
158 let content = resp.text().await?;
159 match content_type {
160 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
161 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsCreatePoolResponse`"))),
162 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsCreatePoolResponse`")))),
163 }
164 } else {
165 let content = resp.text().await?;
166 let entity: Option<PoolsCreatePoolError> = serde_json::from_str(&content).ok();
167 Err(Error::ResponseError(ResponseContent { status, content, entity }))
168 }
169}
170
171pub async fn pools_delete_pool(configuration: &configuration::Configuration, poolid: &str) -> Result<models::PoolsDeletePoolResponse, Error<PoolsDeletePoolError>> {
173 let p_query_poolid = poolid;
175
176 let uri_str = format!("{}/pools", configuration.base_path);
177 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
178
179 req_builder = req_builder.query(&[("poolid", &p_query_poolid.to_string())]);
180 if let Some(ref user_agent) = configuration.user_agent {
181 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
182 }
183 if let Some(ref apikey) = configuration.api_key {
184 let key = apikey.key.clone();
185 let value = match apikey.prefix {
186 Some(ref prefix) => format!("{} {}", prefix, key),
187 None => key,
188 };
189 req_builder = req_builder.header("Authorization", value);
190 };
191 if let Some(ref apikey) = configuration.api_key {
192 let key = apikey.key.clone();
193 let value = match apikey.prefix {
194 Some(ref prefix) => format!("{} {}", prefix, key),
195 None => key,
196 };
197 req_builder = req_builder.header("CSRFPreventionToken", value);
198 };
199
200 let req = req_builder.build()?;
201 let resp = configuration.client.execute(req).await?;
202
203 let status = resp.status();
204 let content_type = resp
205 .headers()
206 .get("content-type")
207 .and_then(|v| v.to_str().ok())
208 .unwrap_or("application/octet-stream");
209 let content_type = super::ContentType::from(content_type);
210
211 if !status.is_client_error() && !status.is_server_error() {
212 let content = resp.text().await?;
213 match content_type {
214 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
215 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsDeletePoolResponse`"))),
216 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsDeletePoolResponse`")))),
217 }
218 } else {
219 let content = resp.text().await?;
220 let entity: Option<PoolsDeletePoolError> = serde_json::from_str(&content).ok();
221 Err(Error::ResponseError(ResponseContent { status, content, entity }))
222 }
223}
224
225pub async fn pools_delete_pool_deprecated(configuration: &configuration::Configuration, poolid: &str) -> Result<models::PoolsDeletePoolDeprecatedResponse, Error<PoolsDeletePoolDeprecatedError>> {
227 let p_path_poolid = poolid;
229
230 let uri_str = format!("{}/pools/{poolid}", configuration.base_path, poolid=crate::apis::urlencode(p_path_poolid));
231 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
232
233 if let Some(ref user_agent) = configuration.user_agent {
234 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
235 }
236 if let Some(ref apikey) = configuration.api_key {
237 let key = apikey.key.clone();
238 let value = match apikey.prefix {
239 Some(ref prefix) => format!("{} {}", prefix, key),
240 None => key,
241 };
242 req_builder = req_builder.header("Authorization", value);
243 };
244 if let Some(ref apikey) = configuration.api_key {
245 let key = apikey.key.clone();
246 let value = match apikey.prefix {
247 Some(ref prefix) => format!("{} {}", prefix, key),
248 None => key,
249 };
250 req_builder = req_builder.header("CSRFPreventionToken", value);
251 };
252
253 let req = req_builder.build()?;
254 let resp = configuration.client.execute(req).await?;
255
256 let status = resp.status();
257 let content_type = resp
258 .headers()
259 .get("content-type")
260 .and_then(|v| v.to_str().ok())
261 .unwrap_or("application/octet-stream");
262 let content_type = super::ContentType::from(content_type);
263
264 if !status.is_client_error() && !status.is_server_error() {
265 let content = resp.text().await?;
266 match content_type {
267 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
268 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsDeletePoolDeprecatedResponse`"))),
269 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsDeletePoolDeprecatedResponse`")))),
270 }
271 } else {
272 let content = resp.text().await?;
273 let entity: Option<PoolsDeletePoolDeprecatedError> = serde_json::from_str(&content).ok();
274 Err(Error::ResponseError(ResponseContent { status, content, entity }))
275 }
276}
277
278pub async fn pools_get_pools(configuration: &configuration::Configuration, poolid: Option<&str>, r#type: Option<models::PvePoolsTypeEnum>) -> Result<models::PoolsGetPoolsResponse, Error<PoolsGetPoolsError>> {
280 let p_query_poolid = poolid;
282 let p_query_type = r#type;
283
284 let uri_str = format!("{}/pools", configuration.base_path);
285 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
286
287 if let Some(ref param_value) = p_query_poolid {
288 req_builder = req_builder.query(&[("poolid", ¶m_value.to_string())]);
289 }
290 if let Some(ref param_value) = p_query_type {
291 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
292 }
293 if let Some(ref user_agent) = configuration.user_agent {
294 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
295 }
296 if let Some(ref apikey) = configuration.api_key {
297 let key = apikey.key.clone();
298 let value = match apikey.prefix {
299 Some(ref prefix) => format!("{} {}", prefix, key),
300 None => key,
301 };
302 req_builder = req_builder.header("Authorization", value);
303 };
304 if let Some(ref apikey) = configuration.api_key {
305 let key = apikey.key.clone();
306 let value = match apikey.prefix {
307 Some(ref prefix) => format!("{} {}", prefix, key),
308 None => key,
309 };
310 req_builder = req_builder.header("CSRFPreventionToken", value);
311 };
312
313 let req = req_builder.build()?;
314 let resp = configuration.client.execute(req).await?;
315
316 let status = resp.status();
317 let content_type = resp
318 .headers()
319 .get("content-type")
320 .and_then(|v| v.to_str().ok())
321 .unwrap_or("application/octet-stream");
322 let content_type = super::ContentType::from(content_type);
323
324 if !status.is_client_error() && !status.is_server_error() {
325 let content = resp.text().await?;
326 match content_type {
327 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
328 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsGetPoolsResponse`"))),
329 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsGetPoolsResponse`")))),
330 }
331 } else {
332 let content = resp.text().await?;
333 let entity: Option<PoolsGetPoolsError> = serde_json::from_str(&content).ok();
334 Err(Error::ResponseError(ResponseContent { status, content, entity }))
335 }
336}
337
338pub async fn pools_read_pool(configuration: &configuration::Configuration, poolid: &str, r#type: Option<models::PvePoolsTypeEnum>) -> Result<models::PoolsReadPoolResponse, Error<PoolsReadPoolError>> {
340 let p_path_poolid = poolid;
342 let p_query_type = r#type;
343
344 let uri_str = format!("{}/pools/{poolid}", configuration.base_path, poolid=crate::apis::urlencode(p_path_poolid));
345 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
346
347 if let Some(ref param_value) = p_query_type {
348 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
349 }
350 if let Some(ref user_agent) = configuration.user_agent {
351 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
352 }
353 if let Some(ref apikey) = configuration.api_key {
354 let key = apikey.key.clone();
355 let value = match apikey.prefix {
356 Some(ref prefix) => format!("{} {}", prefix, key),
357 None => key,
358 };
359 req_builder = req_builder.header("Authorization", value);
360 };
361 if let Some(ref apikey) = configuration.api_key {
362 let key = apikey.key.clone();
363 let value = match apikey.prefix {
364 Some(ref prefix) => format!("{} {}", prefix, key),
365 None => key,
366 };
367 req_builder = req_builder.header("CSRFPreventionToken", value);
368 };
369
370 let req = req_builder.build()?;
371 let resp = configuration.client.execute(req).await?;
372
373 let status = resp.status();
374 let content_type = resp
375 .headers()
376 .get("content-type")
377 .and_then(|v| v.to_str().ok())
378 .unwrap_or("application/octet-stream");
379 let content_type = super::ContentType::from(content_type);
380
381 if !status.is_client_error() && !status.is_server_error() {
382 let content = resp.text().await?;
383 match content_type {
384 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
385 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsReadPoolResponse`"))),
386 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsReadPoolResponse`")))),
387 }
388 } else {
389 let content = resp.text().await?;
390 let entity: Option<PoolsReadPoolError> = serde_json::from_str(&content).ok();
391 Err(Error::ResponseError(ResponseContent { status, content, entity }))
392 }
393}
394
395pub async fn pools_update_pool(configuration: &configuration::Configuration, pools_update_pool_request: models::PoolsUpdatePoolRequest) -> Result<models::PoolsUpdatePoolResponse, Error<PoolsUpdatePoolError>> {
397 let p_body_pools_update_pool_request = pools_update_pool_request;
399
400 let uri_str = format!("{}/pools", configuration.base_path);
401 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
402
403 if let Some(ref user_agent) = configuration.user_agent {
404 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
405 }
406 if let Some(ref apikey) = configuration.api_key {
407 let key = apikey.key.clone();
408 let value = match apikey.prefix {
409 Some(ref prefix) => format!("{} {}", prefix, key),
410 None => key,
411 };
412 req_builder = req_builder.header("Authorization", value);
413 };
414 if let Some(ref apikey) = configuration.api_key {
415 let key = apikey.key.clone();
416 let value = match apikey.prefix {
417 Some(ref prefix) => format!("{} {}", prefix, key),
418 None => key,
419 };
420 req_builder = req_builder.header("CSRFPreventionToken", value);
421 };
422 req_builder = req_builder.json(&p_body_pools_update_pool_request);
423
424 let req = req_builder.build()?;
425 let resp = configuration.client.execute(req).await?;
426
427 let status = resp.status();
428 let content_type = resp
429 .headers()
430 .get("content-type")
431 .and_then(|v| v.to_str().ok())
432 .unwrap_or("application/octet-stream");
433 let content_type = super::ContentType::from(content_type);
434
435 if !status.is_client_error() && !status.is_server_error() {
436 let content = resp.text().await?;
437 match content_type {
438 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
439 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsUpdatePoolResponse`"))),
440 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsUpdatePoolResponse`")))),
441 }
442 } else {
443 let content = resp.text().await?;
444 let entity: Option<PoolsUpdatePoolError> = serde_json::from_str(&content).ok();
445 Err(Error::ResponseError(ResponseContent { status, content, entity }))
446 }
447}
448
449pub async fn pools_update_pool_deprecated(configuration: &configuration::Configuration, poolid: &str, pools_update_pool_deprecated_request: Option<models::PoolsUpdatePoolDeprecatedRequest>) -> Result<models::PoolsUpdatePoolDeprecatedResponse, Error<PoolsUpdatePoolDeprecatedError>> {
451 let p_path_poolid = poolid;
453 let p_body_pools_update_pool_deprecated_request = pools_update_pool_deprecated_request;
454
455 let uri_str = format!("{}/pools/{poolid}", configuration.base_path, poolid=crate::apis::urlencode(p_path_poolid));
456 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
457
458 if let Some(ref user_agent) = configuration.user_agent {
459 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
460 }
461 if let Some(ref apikey) = configuration.api_key {
462 let key = apikey.key.clone();
463 let value = match apikey.prefix {
464 Some(ref prefix) => format!("{} {}", prefix, key),
465 None => key,
466 };
467 req_builder = req_builder.header("Authorization", value);
468 };
469 if let Some(ref apikey) = configuration.api_key {
470 let key = apikey.key.clone();
471 let value = match apikey.prefix {
472 Some(ref prefix) => format!("{} {}", prefix, key),
473 None => key,
474 };
475 req_builder = req_builder.header("CSRFPreventionToken", value);
476 };
477 req_builder = req_builder.json(&p_body_pools_update_pool_deprecated_request);
478
479 let req = req_builder.build()?;
480 let resp = configuration.client.execute(req).await?;
481
482 let status = resp.status();
483 let content_type = resp
484 .headers()
485 .get("content-type")
486 .and_then(|v| v.to_str().ok())
487 .unwrap_or("application/octet-stream");
488 let content_type = super::ContentType::from(content_type);
489
490 if !status.is_client_error() && !status.is_server_error() {
491 let content = resp.text().await?;
492 match content_type {
493 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
494 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::PoolsUpdatePoolDeprecatedResponse`"))),
495 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::PoolsUpdatePoolDeprecatedResponse`")))),
496 }
497 } else {
498 let content = resp.text().await?;
499 let entity: Option<PoolsUpdatePoolDeprecatedError> = serde_json::from_str(&content).ok();
500 Err(Error::ResponseError(ResponseContent { status, content, entity }))
501 }
502}
503