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 NodesStorageCopyError {
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 NodesStorageCreateContentError {
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 NodesStorageDeleteContentError {
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 NodesStorageDeletePrunebackupsError {
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 NodesStorageDiridxError {
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 NodesStorageDownloadError {
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 NodesStorageDownloadUrlError {
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#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum NodesStorageDryrunError {
120 Status400(models::PveError),
121 Status401(models::PveError),
122 Status403(models::PveError),
123 Status404(models::PveError),
124 Status500(models::PveError),
125 Status501(models::PveError),
126 Status503(models::PveError),
127 UnknownValue(serde_json::Value),
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum NodesStorageGetContentError {
134 Status400(models::PveError),
135 Status401(models::PveError),
136 Status403(models::PveError),
137 Status404(models::PveError),
138 Status500(models::PveError),
139 Status501(models::PveError),
140 Status503(models::PveError),
141 UnknownValue(serde_json::Value),
142}
143
144#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum NodesStorageGetImportMetadataError {
148 Status400(models::PveError),
149 Status401(models::PveError),
150 Status403(models::PveError),
151 Status404(models::PveError),
152 Status500(models::PveError),
153 Status501(models::PveError),
154 Status503(models::PveError),
155 UnknownValue(serde_json::Value),
156}
157
158#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum NodesStorageGetListError {
162 Status400(models::PveError),
163 Status401(models::PveError),
164 Status403(models::PveError),
165 Status404(models::PveError),
166 Status500(models::PveError),
167 Status501(models::PveError),
168 Status503(models::PveError),
169 UnknownValue(serde_json::Value),
170}
171
172#[derive(Debug, Clone, Serialize, Deserialize)]
174#[serde(untagged)]
175pub enum NodesStorageGetStorageError {
176 Status400(models::PveError),
177 Status401(models::PveError),
178 Status403(models::PveError),
179 Status404(models::PveError),
180 Status500(models::PveError),
181 Status501(models::PveError),
182 Status503(models::PveError),
183 UnknownValue(serde_json::Value),
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(untagged)]
189pub enum NodesStorageIdentityError {
190 Status400(models::PveError),
191 Status401(models::PveError),
192 Status403(models::PveError),
193 Status404(models::PveError),
194 Status500(models::PveError),
195 Status501(models::PveError),
196 Status503(models::PveError),
197 UnknownValue(serde_json::Value),
198}
199
200#[derive(Debug, Clone, Serialize, Deserialize)]
202#[serde(untagged)]
203pub enum NodesStorageInfoError {
204 Status400(models::PveError),
205 Status401(models::PveError),
206 Status403(models::PveError),
207 Status404(models::PveError),
208 Status500(models::PveError),
209 Status501(models::PveError),
210 Status503(models::PveError),
211 UnknownValue(serde_json::Value),
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
216#[serde(untagged)]
217pub enum NodesStorageOciRegistryPullError {
218 Status400(models::PveError),
219 Status401(models::PveError),
220 Status403(models::PveError),
221 Status404(models::PveError),
222 Status500(models::PveError),
223 Status501(models::PveError),
224 Status503(models::PveError),
225 UnknownValue(serde_json::Value),
226}
227
228#[derive(Debug, Clone, Serialize, Deserialize)]
230#[serde(untagged)]
231pub enum NodesStorageReadStatusError {
232 Status400(models::PveError),
233 Status401(models::PveError),
234 Status403(models::PveError),
235 Status404(models::PveError),
236 Status500(models::PveError),
237 Status501(models::PveError),
238 Status503(models::PveError),
239 UnknownValue(serde_json::Value),
240}
241
242#[derive(Debug, Clone, Serialize, Deserialize)]
244#[serde(untagged)]
245pub enum NodesStorageRrdError {
246 Status400(models::PveError),
247 Status401(models::PveError),
248 Status403(models::PveError),
249 Status404(models::PveError),
250 Status500(models::PveError),
251 Status501(models::PveError),
252 Status503(models::PveError),
253 UnknownValue(serde_json::Value),
254}
255
256#[derive(Debug, Clone, Serialize, Deserialize)]
258#[serde(untagged)]
259pub enum NodesStorageRrddataError {
260 Status400(models::PveError),
261 Status401(models::PveError),
262 Status403(models::PveError),
263 Status404(models::PveError),
264 Status500(models::PveError),
265 Status501(models::PveError),
266 Status503(models::PveError),
267 UnknownValue(serde_json::Value),
268}
269
270#[derive(Debug, Clone, Serialize, Deserialize)]
272#[serde(untagged)]
273pub enum NodesStorageUpdateattributesError {
274 Status400(models::PveError),
275 Status401(models::PveError),
276 Status403(models::PveError),
277 Status404(models::PveError),
278 Status500(models::PveError),
279 Status501(models::PveError),
280 Status503(models::PveError),
281 UnknownValue(serde_json::Value),
282}
283
284#[derive(Debug, Clone, Serialize, Deserialize)]
286#[serde(untagged)]
287pub enum NodesStorageUploadError {
288 Status400(models::PveError),
289 Status401(models::PveError),
290 Status403(models::PveError),
291 Status404(models::PveError),
292 Status500(models::PveError),
293 Status501(models::PveError),
294 Status503(models::PveError),
295 UnknownValue(serde_json::Value),
296}
297
298
299pub async fn nodes_storage_copy(configuration: &configuration::Configuration, node: &str, storage: &str, volume: &str, nodes_storage_copy_request: models::NodesStorageCopyRequest) -> Result<models::NodesStorageCopyResponse, Error<NodesStorageCopyError>> {
301 let p_path_node = node;
303 let p_path_storage = storage;
304 let p_path_volume = volume;
305 let p_body_nodes_storage_copy_request = nodes_storage_copy_request;
306
307 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content/{volume}", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage), volume=crate::apis::urlencode(p_path_volume));
308 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
309
310 if let Some(ref user_agent) = configuration.user_agent {
311 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
312 }
313 if let Some(ref apikey) = configuration.api_key {
314 let key = apikey.key.clone();
315 let value = match apikey.prefix {
316 Some(ref prefix) => format!("{} {}", prefix, key),
317 None => key,
318 };
319 req_builder = req_builder.header("Authorization", value);
320 };
321 if let Some(ref apikey) = configuration.api_key {
322 let key = apikey.key.clone();
323 let value = match apikey.prefix {
324 Some(ref prefix) => format!("{} {}", prefix, key),
325 None => key,
326 };
327 req_builder = req_builder.header("CSRFPreventionToken", value);
328 };
329 req_builder = req_builder.json(&p_body_nodes_storage_copy_request);
330
331 let req = req_builder.build()?;
332 let resp = configuration.client.execute(req).await?;
333
334 let status = resp.status();
335 let content_type = resp
336 .headers()
337 .get("content-type")
338 .and_then(|v| v.to_str().ok())
339 .unwrap_or("application/octet-stream");
340 let content_type = super::ContentType::from(content_type);
341
342 if !status.is_client_error() && !status.is_server_error() {
343 let content = resp.text().await?;
344 match content_type {
345 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
346 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageCopyResponse`"))),
347 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::NodesStorageCopyResponse`")))),
348 }
349 } else {
350 let content = resp.text().await?;
351 let entity: Option<NodesStorageCopyError> = serde_json::from_str(&content).ok();
352 Err(Error::ResponseError(ResponseContent { status, content, entity }))
353 }
354}
355
356pub async fn nodes_storage_create_content(configuration: &configuration::Configuration, node: &str, storage: &str, nodes_storage_create_content_request: models::NodesStorageCreateContentRequest) -> Result<models::NodesStorageCreateContentResponse, Error<NodesStorageCreateContentError>> {
358 let p_path_node = node;
360 let p_path_storage = storage;
361 let p_body_nodes_storage_create_content_request = nodes_storage_create_content_request;
362
363 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
364 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
365
366 if let Some(ref user_agent) = configuration.user_agent {
367 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
368 }
369 if let Some(ref apikey) = configuration.api_key {
370 let key = apikey.key.clone();
371 let value = match apikey.prefix {
372 Some(ref prefix) => format!("{} {}", prefix, key),
373 None => key,
374 };
375 req_builder = req_builder.header("Authorization", value);
376 };
377 if let Some(ref apikey) = configuration.api_key {
378 let key = apikey.key.clone();
379 let value = match apikey.prefix {
380 Some(ref prefix) => format!("{} {}", prefix, key),
381 None => key,
382 };
383 req_builder = req_builder.header("CSRFPreventionToken", value);
384 };
385 req_builder = req_builder.json(&p_body_nodes_storage_create_content_request);
386
387 let req = req_builder.build()?;
388 let resp = configuration.client.execute(req).await?;
389
390 let status = resp.status();
391 let content_type = resp
392 .headers()
393 .get("content-type")
394 .and_then(|v| v.to_str().ok())
395 .unwrap_or("application/octet-stream");
396 let content_type = super::ContentType::from(content_type);
397
398 if !status.is_client_error() && !status.is_server_error() {
399 let content = resp.text().await?;
400 match content_type {
401 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
402 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageCreateContentResponse`"))),
403 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::NodesStorageCreateContentResponse`")))),
404 }
405 } else {
406 let content = resp.text().await?;
407 let entity: Option<NodesStorageCreateContentError> = serde_json::from_str(&content).ok();
408 Err(Error::ResponseError(ResponseContent { status, content, entity }))
409 }
410}
411
412pub async fn nodes_storage_delete_content(configuration: &configuration::Configuration, node: &str, storage: &str, volume: &str, delay: Option<i32>) -> Result<models::NodesStorageDeleteContentResponse, Error<NodesStorageDeleteContentError>> {
414 let p_path_node = node;
416 let p_path_storage = storage;
417 let p_path_volume = volume;
418 let p_query_delay = delay;
419
420 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content/{volume}", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage), volume=crate::apis::urlencode(p_path_volume));
421 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
422
423 if let Some(ref param_value) = p_query_delay {
424 req_builder = req_builder.query(&[("delay", ¶m_value.to_string())]);
425 }
426 if let Some(ref user_agent) = configuration.user_agent {
427 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
428 }
429 if let Some(ref apikey) = configuration.api_key {
430 let key = apikey.key.clone();
431 let value = match apikey.prefix {
432 Some(ref prefix) => format!("{} {}", prefix, key),
433 None => key,
434 };
435 req_builder = req_builder.header("Authorization", value);
436 };
437 if let Some(ref apikey) = configuration.api_key {
438 let key = apikey.key.clone();
439 let value = match apikey.prefix {
440 Some(ref prefix) => format!("{} {}", prefix, key),
441 None => key,
442 };
443 req_builder = req_builder.header("CSRFPreventionToken", value);
444 };
445
446 let req = req_builder.build()?;
447 let resp = configuration.client.execute(req).await?;
448
449 let status = resp.status();
450 let content_type = resp
451 .headers()
452 .get("content-type")
453 .and_then(|v| v.to_str().ok())
454 .unwrap_or("application/octet-stream");
455 let content_type = super::ContentType::from(content_type);
456
457 if !status.is_client_error() && !status.is_server_error() {
458 let content = resp.text().await?;
459 match content_type {
460 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
461 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDeleteContentResponse`"))),
462 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::NodesStorageDeleteContentResponse`")))),
463 }
464 } else {
465 let content = resp.text().await?;
466 let entity: Option<NodesStorageDeleteContentError> = serde_json::from_str(&content).ok();
467 Err(Error::ResponseError(ResponseContent { status, content, entity }))
468 }
469}
470
471pub async fn nodes_storage_delete_prunebackups(configuration: &configuration::Configuration, node: &str, storage: &str, prune_backups: Option<&str>, r#type: Option<models::PveClusterBackupInfoTypeEnum>, vmid: Option<i32>) -> Result<models::NodesStorageDeletePrunebackupsResponse, Error<NodesStorageDeletePrunebackupsError>> {
473 let p_path_node = node;
475 let p_path_storage = storage;
476 let p_query_prune_backups = prune_backups;
477 let p_query_type = r#type;
478 let p_query_vmid = vmid;
479
480 let uri_str = format!("{}/nodes/{node}/storage/{storage}/prunebackups", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
481 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
482
483 if let Some(ref param_value) = p_query_prune_backups {
484 req_builder = req_builder.query(&[("prune-backups", ¶m_value.to_string())]);
485 }
486 if let Some(ref param_value) = p_query_type {
487 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
488 }
489 if let Some(ref param_value) = p_query_vmid {
490 req_builder = req_builder.query(&[("vmid", ¶m_value.to_string())]);
491 }
492 if let Some(ref user_agent) = configuration.user_agent {
493 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
494 }
495 if let Some(ref apikey) = configuration.api_key {
496 let key = apikey.key.clone();
497 let value = match apikey.prefix {
498 Some(ref prefix) => format!("{} {}", prefix, key),
499 None => key,
500 };
501 req_builder = req_builder.header("Authorization", value);
502 };
503 if let Some(ref apikey) = configuration.api_key {
504 let key = apikey.key.clone();
505 let value = match apikey.prefix {
506 Some(ref prefix) => format!("{} {}", prefix, key),
507 None => key,
508 };
509 req_builder = req_builder.header("CSRFPreventionToken", value);
510 };
511
512 let req = req_builder.build()?;
513 let resp = configuration.client.execute(req).await?;
514
515 let status = resp.status();
516 let content_type = resp
517 .headers()
518 .get("content-type")
519 .and_then(|v| v.to_str().ok())
520 .unwrap_or("application/octet-stream");
521 let content_type = super::ContentType::from(content_type);
522
523 if !status.is_client_error() && !status.is_server_error() {
524 let content = resp.text().await?;
525 match content_type {
526 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
527 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDeletePrunebackupsResponse`"))),
528 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::NodesStorageDeletePrunebackupsResponse`")))),
529 }
530 } else {
531 let content = resp.text().await?;
532 let entity: Option<NodesStorageDeletePrunebackupsError> = serde_json::from_str(&content).ok();
533 Err(Error::ResponseError(ResponseContent { status, content, entity }))
534 }
535}
536
537pub async fn nodes_storage_diridx(configuration: &configuration::Configuration, node: &str, storage: &str) -> Result<models::NodesStorageDiridxResponse, Error<NodesStorageDiridxError>> {
539 let p_path_node = node;
541 let p_path_storage = storage;
542
543 let uri_str = format!("{}/nodes/{node}/storage/{storage}", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
544 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
545
546 if let Some(ref user_agent) = configuration.user_agent {
547 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
548 }
549 if let Some(ref apikey) = configuration.api_key {
550 let key = apikey.key.clone();
551 let value = match apikey.prefix {
552 Some(ref prefix) => format!("{} {}", prefix, key),
553 None => key,
554 };
555 req_builder = req_builder.header("Authorization", value);
556 };
557 if let Some(ref apikey) = configuration.api_key {
558 let key = apikey.key.clone();
559 let value = match apikey.prefix {
560 Some(ref prefix) => format!("{} {}", prefix, key),
561 None => key,
562 };
563 req_builder = req_builder.header("CSRFPreventionToken", value);
564 };
565
566 let req = req_builder.build()?;
567 let resp = configuration.client.execute(req).await?;
568
569 let status = resp.status();
570 let content_type = resp
571 .headers()
572 .get("content-type")
573 .and_then(|v| v.to_str().ok())
574 .unwrap_or("application/octet-stream");
575 let content_type = super::ContentType::from(content_type);
576
577 if !status.is_client_error() && !status.is_server_error() {
578 let content = resp.text().await?;
579 match content_type {
580 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
581 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDiridxResponse`"))),
582 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::NodesStorageDiridxResponse`")))),
583 }
584 } else {
585 let content = resp.text().await?;
586 let entity: Option<NodesStorageDiridxError> = serde_json::from_str(&content).ok();
587 Err(Error::ResponseError(ResponseContent { status, content, entity }))
588 }
589}
590
591pub async fn nodes_storage_download(configuration: &configuration::Configuration, filepath: &str, node: &str, storage: &str, volume: &str, tar: Option<&str>) -> Result<models::NodesStorageDownloadResponse, Error<NodesStorageDownloadError>> {
593 let p_query_filepath = filepath;
595 let p_path_node = node;
596 let p_path_storage = storage;
597 let p_query_volume = volume;
598 let p_query_tar = tar;
599
600 let uri_str = format!("{}/nodes/{node}/storage/{storage}/file-restore/download", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
601 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
602
603 req_builder = req_builder.query(&[("filepath", &p_query_filepath.to_string())]);
604 if let Some(ref param_value) = p_query_tar {
605 req_builder = req_builder.query(&[("tar", ¶m_value.to_string())]);
606 }
607 req_builder = req_builder.query(&[("volume", &p_query_volume.to_string())]);
608 if let Some(ref user_agent) = configuration.user_agent {
609 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
610 }
611 if let Some(ref apikey) = configuration.api_key {
612 let key = apikey.key.clone();
613 let value = match apikey.prefix {
614 Some(ref prefix) => format!("{} {}", prefix, key),
615 None => key,
616 };
617 req_builder = req_builder.header("Authorization", value);
618 };
619 if let Some(ref apikey) = configuration.api_key {
620 let key = apikey.key.clone();
621 let value = match apikey.prefix {
622 Some(ref prefix) => format!("{} {}", prefix, key),
623 None => key,
624 };
625 req_builder = req_builder.header("CSRFPreventionToken", value);
626 };
627
628 let req = req_builder.build()?;
629 let resp = configuration.client.execute(req).await?;
630
631 let status = resp.status();
632 let content_type = resp
633 .headers()
634 .get("content-type")
635 .and_then(|v| v.to_str().ok())
636 .unwrap_or("application/octet-stream");
637 let content_type = super::ContentType::from(content_type);
638
639 if !status.is_client_error() && !status.is_server_error() {
640 let content = resp.text().await?;
641 match content_type {
642 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
643 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDownloadResponse`"))),
644 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::NodesStorageDownloadResponse`")))),
645 }
646 } else {
647 let content = resp.text().await?;
648 let entity: Option<NodesStorageDownloadError> = serde_json::from_str(&content).ok();
649 Err(Error::ResponseError(ResponseContent { status, content, entity }))
650 }
651}
652
653pub async fn nodes_storage_download_url(configuration: &configuration::Configuration, node: &str, storage: &str, nodes_storage_download_url_request: models::NodesStorageDownloadUrlRequest) -> Result<models::NodesStorageDownloadUrlResponse, Error<NodesStorageDownloadUrlError>> {
655 let p_path_node = node;
657 let p_path_storage = storage;
658 let p_body_nodes_storage_download_url_request = nodes_storage_download_url_request;
659
660 let uri_str = format!("{}/nodes/{node}/storage/{storage}/download-url", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
661 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
662
663 if let Some(ref user_agent) = configuration.user_agent {
664 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
665 }
666 if let Some(ref apikey) = configuration.api_key {
667 let key = apikey.key.clone();
668 let value = match apikey.prefix {
669 Some(ref prefix) => format!("{} {}", prefix, key),
670 None => key,
671 };
672 req_builder = req_builder.header("Authorization", value);
673 };
674 if let Some(ref apikey) = configuration.api_key {
675 let key = apikey.key.clone();
676 let value = match apikey.prefix {
677 Some(ref prefix) => format!("{} {}", prefix, key),
678 None => key,
679 };
680 req_builder = req_builder.header("CSRFPreventionToken", value);
681 };
682 req_builder = req_builder.json(&p_body_nodes_storage_download_url_request);
683
684 let req = req_builder.build()?;
685 let resp = configuration.client.execute(req).await?;
686
687 let status = resp.status();
688 let content_type = resp
689 .headers()
690 .get("content-type")
691 .and_then(|v| v.to_str().ok())
692 .unwrap_or("application/octet-stream");
693 let content_type = super::ContentType::from(content_type);
694
695 if !status.is_client_error() && !status.is_server_error() {
696 let content = resp.text().await?;
697 match content_type {
698 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
699 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDownloadUrlResponse`"))),
700 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::NodesStorageDownloadUrlResponse`")))),
701 }
702 } else {
703 let content = resp.text().await?;
704 let entity: Option<NodesStorageDownloadUrlError> = serde_json::from_str(&content).ok();
705 Err(Error::ResponseError(ResponseContent { status, content, entity }))
706 }
707}
708
709pub async fn nodes_storage_dryrun(configuration: &configuration::Configuration, node: &str, storage: &str, prune_backups: Option<&str>, r#type: Option<models::PveClusterBackupInfoTypeEnum>, vmid: Option<i32>) -> Result<models::NodesStorageDryrunResponse, Error<NodesStorageDryrunError>> {
711 let p_path_node = node;
713 let p_path_storage = storage;
714 let p_query_prune_backups = prune_backups;
715 let p_query_type = r#type;
716 let p_query_vmid = vmid;
717
718 let uri_str = format!("{}/nodes/{node}/storage/{storage}/prunebackups", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
719 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
720
721 if let Some(ref param_value) = p_query_prune_backups {
722 req_builder = req_builder.query(&[("prune-backups", ¶m_value.to_string())]);
723 }
724 if let Some(ref param_value) = p_query_type {
725 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
726 }
727 if let Some(ref param_value) = p_query_vmid {
728 req_builder = req_builder.query(&[("vmid", ¶m_value.to_string())]);
729 }
730 if let Some(ref user_agent) = configuration.user_agent {
731 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
732 }
733 if let Some(ref apikey) = configuration.api_key {
734 let key = apikey.key.clone();
735 let value = match apikey.prefix {
736 Some(ref prefix) => format!("{} {}", prefix, key),
737 None => key,
738 };
739 req_builder = req_builder.header("Authorization", value);
740 };
741 if let Some(ref apikey) = configuration.api_key {
742 let key = apikey.key.clone();
743 let value = match apikey.prefix {
744 Some(ref prefix) => format!("{} {}", prefix, key),
745 None => key,
746 };
747 req_builder = req_builder.header("CSRFPreventionToken", value);
748 };
749
750 let req = req_builder.build()?;
751 let resp = configuration.client.execute(req).await?;
752
753 let status = resp.status();
754 let content_type = resp
755 .headers()
756 .get("content-type")
757 .and_then(|v| v.to_str().ok())
758 .unwrap_or("application/octet-stream");
759 let content_type = super::ContentType::from(content_type);
760
761 if !status.is_client_error() && !status.is_server_error() {
762 let content = resp.text().await?;
763 match content_type {
764 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
765 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageDryrunResponse`"))),
766 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::NodesStorageDryrunResponse`")))),
767 }
768 } else {
769 let content = resp.text().await?;
770 let entity: Option<NodesStorageDryrunError> = serde_json::from_str(&content).ok();
771 Err(Error::ResponseError(ResponseContent { status, content, entity }))
772 }
773}
774
775pub async fn nodes_storage_get_content(configuration: &configuration::Configuration, node: &str, storage: &str, content: Option<&str>, vmid: Option<i32>) -> Result<models::NodesStorageGetContentResponse, Error<NodesStorageGetContentError>> {
777 let p_path_node = node;
779 let p_path_storage = storage;
780 let p_query_content = content;
781 let p_query_vmid = vmid;
782
783 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
784 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
785
786 if let Some(ref param_value) = p_query_content {
787 req_builder = req_builder.query(&[("content", ¶m_value.to_string())]);
788 }
789 if let Some(ref param_value) = p_query_vmid {
790 req_builder = req_builder.query(&[("vmid", ¶m_value.to_string())]);
791 }
792 if let Some(ref user_agent) = configuration.user_agent {
793 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
794 }
795 if let Some(ref apikey) = configuration.api_key {
796 let key = apikey.key.clone();
797 let value = match apikey.prefix {
798 Some(ref prefix) => format!("{} {}", prefix, key),
799 None => key,
800 };
801 req_builder = req_builder.header("Authorization", value);
802 };
803 if let Some(ref apikey) = configuration.api_key {
804 let key = apikey.key.clone();
805 let value = match apikey.prefix {
806 Some(ref prefix) => format!("{} {}", prefix, key),
807 None => key,
808 };
809 req_builder = req_builder.header("CSRFPreventionToken", value);
810 };
811
812 let req = req_builder.build()?;
813 let resp = configuration.client.execute(req).await?;
814
815 let status = resp.status();
816 let content_type = resp
817 .headers()
818 .get("content-type")
819 .and_then(|v| v.to_str().ok())
820 .unwrap_or("application/octet-stream");
821 let content_type = super::ContentType::from(content_type);
822
823 if !status.is_client_error() && !status.is_server_error() {
824 let content = resp.text().await?;
825 match content_type {
826 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
827 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageGetContentResponse`"))),
828 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::NodesStorageGetContentResponse`")))),
829 }
830 } else {
831 let content = resp.text().await?;
832 let entity: Option<NodesStorageGetContentError> = serde_json::from_str(&content).ok();
833 Err(Error::ResponseError(ResponseContent { status, content, entity }))
834 }
835}
836
837pub async fn nodes_storage_get_import_metadata(configuration: &configuration::Configuration, node: &str, storage: &str, volume: &str) -> Result<models::NodesStorageGetImportMetadataResponse, Error<NodesStorageGetImportMetadataError>> {
839 let p_path_node = node;
841 let p_path_storage = storage;
842 let p_query_volume = volume;
843
844 let uri_str = format!("{}/nodes/{node}/storage/{storage}/import-metadata", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
845 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
846
847 req_builder = req_builder.query(&[("volume", &p_query_volume.to_string())]);
848 if let Some(ref user_agent) = configuration.user_agent {
849 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
850 }
851 if let Some(ref apikey) = configuration.api_key {
852 let key = apikey.key.clone();
853 let value = match apikey.prefix {
854 Some(ref prefix) => format!("{} {}", prefix, key),
855 None => key,
856 };
857 req_builder = req_builder.header("Authorization", value);
858 };
859 if let Some(ref apikey) = configuration.api_key {
860 let key = apikey.key.clone();
861 let value = match apikey.prefix {
862 Some(ref prefix) => format!("{} {}", prefix, key),
863 None => key,
864 };
865 req_builder = req_builder.header("CSRFPreventionToken", value);
866 };
867
868 let req = req_builder.build()?;
869 let resp = configuration.client.execute(req).await?;
870
871 let status = resp.status();
872 let content_type = resp
873 .headers()
874 .get("content-type")
875 .and_then(|v| v.to_str().ok())
876 .unwrap_or("application/octet-stream");
877 let content_type = super::ContentType::from(content_type);
878
879 if !status.is_client_error() && !status.is_server_error() {
880 let content = resp.text().await?;
881 match content_type {
882 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
883 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageGetImportMetadataResponse`"))),
884 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::NodesStorageGetImportMetadataResponse`")))),
885 }
886 } else {
887 let content = resp.text().await?;
888 let entity: Option<NodesStorageGetImportMetadataError> = serde_json::from_str(&content).ok();
889 Err(Error::ResponseError(ResponseContent { status, content, entity }))
890 }
891}
892
893pub async fn nodes_storage_get_list(configuration: &configuration::Configuration, filepath: &str, node: &str, storage: &str, volume: &str) -> Result<models::NodesStorageGetListResponse, Error<NodesStorageGetListError>> {
895 let p_query_filepath = filepath;
897 let p_path_node = node;
898 let p_path_storage = storage;
899 let p_query_volume = volume;
900
901 let uri_str = format!("{}/nodes/{node}/storage/{storage}/file-restore/list", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
902 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
903
904 req_builder = req_builder.query(&[("filepath", &p_query_filepath.to_string())]);
905 req_builder = req_builder.query(&[("volume", &p_query_volume.to_string())]);
906 if let Some(ref user_agent) = configuration.user_agent {
907 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
908 }
909 if let Some(ref apikey) = configuration.api_key {
910 let key = apikey.key.clone();
911 let value = match apikey.prefix {
912 Some(ref prefix) => format!("{} {}", prefix, key),
913 None => key,
914 };
915 req_builder = req_builder.header("Authorization", value);
916 };
917 if let Some(ref apikey) = configuration.api_key {
918 let key = apikey.key.clone();
919 let value = match apikey.prefix {
920 Some(ref prefix) => format!("{} {}", prefix, key),
921 None => key,
922 };
923 req_builder = req_builder.header("CSRFPreventionToken", value);
924 };
925
926 let req = req_builder.build()?;
927 let resp = configuration.client.execute(req).await?;
928
929 let status = resp.status();
930 let content_type = resp
931 .headers()
932 .get("content-type")
933 .and_then(|v| v.to_str().ok())
934 .unwrap_or("application/octet-stream");
935 let content_type = super::ContentType::from(content_type);
936
937 if !status.is_client_error() && !status.is_server_error() {
938 let content = resp.text().await?;
939 match content_type {
940 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
941 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageGetListResponse`"))),
942 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::NodesStorageGetListResponse`")))),
943 }
944 } else {
945 let content = resp.text().await?;
946 let entity: Option<NodesStorageGetListError> = serde_json::from_str(&content).ok();
947 Err(Error::ResponseError(ResponseContent { status, content, entity }))
948 }
949}
950
951pub async fn nodes_storage_get_storage(configuration: &configuration::Configuration, node: &str, content: Option<&str>, enabled: Option<&str>, format: Option<&str>, storage: Option<&str>, target: Option<&str>) -> Result<models::NodesStorageGetStorageResponse, Error<NodesStorageGetStorageError>> {
953 let p_path_node = node;
955 let p_query_content = content;
956 let p_query_enabled = enabled;
957 let p_query_format = format;
958 let p_query_storage = storage;
959 let p_query_target = target;
960
961 let uri_str = format!("{}/nodes/{node}/storage", configuration.base_path, node=crate::apis::urlencode(p_path_node));
962 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
963
964 if let Some(ref param_value) = p_query_content {
965 req_builder = req_builder.query(&[("content", ¶m_value.to_string())]);
966 }
967 if let Some(ref param_value) = p_query_enabled {
968 req_builder = req_builder.query(&[("enabled", ¶m_value.to_string())]);
969 }
970 if let Some(ref param_value) = p_query_format {
971 req_builder = req_builder.query(&[("format", ¶m_value.to_string())]);
972 }
973 if let Some(ref param_value) = p_query_storage {
974 req_builder = req_builder.query(&[("storage", ¶m_value.to_string())]);
975 }
976 if let Some(ref param_value) = p_query_target {
977 req_builder = req_builder.query(&[("target", ¶m_value.to_string())]);
978 }
979 if let Some(ref user_agent) = configuration.user_agent {
980 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
981 }
982 if let Some(ref apikey) = configuration.api_key {
983 let key = apikey.key.clone();
984 let value = match apikey.prefix {
985 Some(ref prefix) => format!("{} {}", prefix, key),
986 None => key,
987 };
988 req_builder = req_builder.header("Authorization", value);
989 };
990 if let Some(ref apikey) = configuration.api_key {
991 let key = apikey.key.clone();
992 let value = match apikey.prefix {
993 Some(ref prefix) => format!("{} {}", prefix, key),
994 None => key,
995 };
996 req_builder = req_builder.header("CSRFPreventionToken", value);
997 };
998
999 let req = req_builder.build()?;
1000 let resp = configuration.client.execute(req).await?;
1001
1002 let status = resp.status();
1003 let content_type = resp
1004 .headers()
1005 .get("content-type")
1006 .and_then(|v| v.to_str().ok())
1007 .unwrap_or("application/octet-stream");
1008 let content_type = super::ContentType::from(content_type);
1009
1010 if !status.is_client_error() && !status.is_server_error() {
1011 let content = resp.text().await?;
1012 match content_type {
1013 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1014 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageGetStorageResponse`"))),
1015 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::NodesStorageGetStorageResponse`")))),
1016 }
1017 } else {
1018 let content = resp.text().await?;
1019 let entity: Option<NodesStorageGetStorageError> = serde_json::from_str(&content).ok();
1020 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1021 }
1022}
1023
1024pub async fn nodes_storage_identity(configuration: &configuration::Configuration, node: &str, storage: &str) -> Result<models::NodesStorageIdentityResponse, Error<NodesStorageIdentityError>> {
1026 let p_path_node = node;
1028 let p_path_storage = storage;
1029
1030 let uri_str = format!("{}/nodes/{node}/storage/{storage}/identity", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1031 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1032
1033 if let Some(ref user_agent) = configuration.user_agent {
1034 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1035 }
1036 if let Some(ref apikey) = configuration.api_key {
1037 let key = apikey.key.clone();
1038 let value = match apikey.prefix {
1039 Some(ref prefix) => format!("{} {}", prefix, key),
1040 None => key,
1041 };
1042 req_builder = req_builder.header("Authorization", value);
1043 };
1044 if let Some(ref apikey) = configuration.api_key {
1045 let key = apikey.key.clone();
1046 let value = match apikey.prefix {
1047 Some(ref prefix) => format!("{} {}", prefix, key),
1048 None => key,
1049 };
1050 req_builder = req_builder.header("CSRFPreventionToken", value);
1051 };
1052
1053 let req = req_builder.build()?;
1054 let resp = configuration.client.execute(req).await?;
1055
1056 let status = resp.status();
1057 let content_type = resp
1058 .headers()
1059 .get("content-type")
1060 .and_then(|v| v.to_str().ok())
1061 .unwrap_or("application/octet-stream");
1062 let content_type = super::ContentType::from(content_type);
1063
1064 if !status.is_client_error() && !status.is_server_error() {
1065 let content = resp.text().await?;
1066 match content_type {
1067 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1068 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageIdentityResponse`"))),
1069 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::NodesStorageIdentityResponse`")))),
1070 }
1071 } else {
1072 let content = resp.text().await?;
1073 let entity: Option<NodesStorageIdentityError> = serde_json::from_str(&content).ok();
1074 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1075 }
1076}
1077
1078pub async fn nodes_storage_info(configuration: &configuration::Configuration, node: &str, storage: &str, volume: &str) -> Result<models::NodesStorageInfoResponse, Error<NodesStorageInfoError>> {
1080 let p_path_node = node;
1082 let p_path_storage = storage;
1083 let p_path_volume = volume;
1084
1085 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content/{volume}", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage), volume=crate::apis::urlencode(p_path_volume));
1086 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1087
1088 if let Some(ref user_agent) = configuration.user_agent {
1089 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1090 }
1091 if let Some(ref apikey) = configuration.api_key {
1092 let key = apikey.key.clone();
1093 let value = match apikey.prefix {
1094 Some(ref prefix) => format!("{} {}", prefix, key),
1095 None => key,
1096 };
1097 req_builder = req_builder.header("Authorization", value);
1098 };
1099 if let Some(ref apikey) = configuration.api_key {
1100 let key = apikey.key.clone();
1101 let value = match apikey.prefix {
1102 Some(ref prefix) => format!("{} {}", prefix, key),
1103 None => key,
1104 };
1105 req_builder = req_builder.header("CSRFPreventionToken", value);
1106 };
1107
1108 let req = req_builder.build()?;
1109 let resp = configuration.client.execute(req).await?;
1110
1111 let status = resp.status();
1112 let content_type = resp
1113 .headers()
1114 .get("content-type")
1115 .and_then(|v| v.to_str().ok())
1116 .unwrap_or("application/octet-stream");
1117 let content_type = super::ContentType::from(content_type);
1118
1119 if !status.is_client_error() && !status.is_server_error() {
1120 let content = resp.text().await?;
1121 match content_type {
1122 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1123 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageInfoResponse`"))),
1124 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::NodesStorageInfoResponse`")))),
1125 }
1126 } else {
1127 let content = resp.text().await?;
1128 let entity: Option<NodesStorageInfoError> = serde_json::from_str(&content).ok();
1129 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1130 }
1131}
1132
1133pub async fn nodes_storage_oci_registry_pull(configuration: &configuration::Configuration, node: &str, storage: &str, nodes_storage_oci_registry_pull_request: models::NodesStorageOciRegistryPullRequest) -> Result<models::NodesStorageOciRegistryPullResponse, Error<NodesStorageOciRegistryPullError>> {
1135 let p_path_node = node;
1137 let p_path_storage = storage;
1138 let p_body_nodes_storage_oci_registry_pull_request = nodes_storage_oci_registry_pull_request;
1139
1140 let uri_str = format!("{}/nodes/{node}/storage/{storage}/oci-registry-pull", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1141 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
1142
1143 if let Some(ref user_agent) = configuration.user_agent {
1144 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1145 }
1146 if let Some(ref apikey) = configuration.api_key {
1147 let key = apikey.key.clone();
1148 let value = match apikey.prefix {
1149 Some(ref prefix) => format!("{} {}", prefix, key),
1150 None => key,
1151 };
1152 req_builder = req_builder.header("Authorization", value);
1153 };
1154 if let Some(ref apikey) = configuration.api_key {
1155 let key = apikey.key.clone();
1156 let value = match apikey.prefix {
1157 Some(ref prefix) => format!("{} {}", prefix, key),
1158 None => key,
1159 };
1160 req_builder = req_builder.header("CSRFPreventionToken", value);
1161 };
1162 req_builder = req_builder.json(&p_body_nodes_storage_oci_registry_pull_request);
1163
1164 let req = req_builder.build()?;
1165 let resp = configuration.client.execute(req).await?;
1166
1167 let status = resp.status();
1168 let content_type = resp
1169 .headers()
1170 .get("content-type")
1171 .and_then(|v| v.to_str().ok())
1172 .unwrap_or("application/octet-stream");
1173 let content_type = super::ContentType::from(content_type);
1174
1175 if !status.is_client_error() && !status.is_server_error() {
1176 let content = resp.text().await?;
1177 match content_type {
1178 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1179 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageOciRegistryPullResponse`"))),
1180 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::NodesStorageOciRegistryPullResponse`")))),
1181 }
1182 } else {
1183 let content = resp.text().await?;
1184 let entity: Option<NodesStorageOciRegistryPullError> = serde_json::from_str(&content).ok();
1185 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1186 }
1187}
1188
1189pub async fn nodes_storage_read_status(configuration: &configuration::Configuration, node: &str, storage: &str) -> Result<models::NodesStorageReadStatusResponse, Error<NodesStorageReadStatusError>> {
1191 let p_path_node = node;
1193 let p_path_storage = storage;
1194
1195 let uri_str = format!("{}/nodes/{node}/storage/{storage}/status", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1196 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1197
1198 if let Some(ref user_agent) = configuration.user_agent {
1199 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1200 }
1201 if let Some(ref apikey) = configuration.api_key {
1202 let key = apikey.key.clone();
1203 let value = match apikey.prefix {
1204 Some(ref prefix) => format!("{} {}", prefix, key),
1205 None => key,
1206 };
1207 req_builder = req_builder.header("Authorization", value);
1208 };
1209 if let Some(ref apikey) = configuration.api_key {
1210 let key = apikey.key.clone();
1211 let value = match apikey.prefix {
1212 Some(ref prefix) => format!("{} {}", prefix, key),
1213 None => key,
1214 };
1215 req_builder = req_builder.header("CSRFPreventionToken", value);
1216 };
1217
1218 let req = req_builder.build()?;
1219 let resp = configuration.client.execute(req).await?;
1220
1221 let status = resp.status();
1222 let content_type = resp
1223 .headers()
1224 .get("content-type")
1225 .and_then(|v| v.to_str().ok())
1226 .unwrap_or("application/octet-stream");
1227 let content_type = super::ContentType::from(content_type);
1228
1229 if !status.is_client_error() && !status.is_server_error() {
1230 let content = resp.text().await?;
1231 match content_type {
1232 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1233 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageReadStatusResponse`"))),
1234 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::NodesStorageReadStatusResponse`")))),
1235 }
1236 } else {
1237 let content = resp.text().await?;
1238 let entity: Option<NodesStorageReadStatusError> = serde_json::from_str(&content).ok();
1239 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1240 }
1241}
1242
1243pub async fn nodes_storage_rrd(configuration: &configuration::Configuration, ds: &str, node: &str, storage: &str, timeframe: models::PveTimeframeEnum, cf: Option<models::PveCfEnum>) -> Result<models::NodesStorageRrdResponse, Error<NodesStorageRrdError>> {
1245 let p_query_ds = ds;
1247 let p_path_node = node;
1248 let p_path_storage = storage;
1249 let p_query_timeframe = timeframe;
1250 let p_query_cf = cf;
1251
1252 let uri_str = format!("{}/nodes/{node}/storage/{storage}/rrd", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1253 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1254
1255 if let Some(ref param_value) = p_query_cf {
1256 req_builder = req_builder.query(&[("cf", ¶m_value.to_string())]);
1257 }
1258 req_builder = req_builder.query(&[("ds", &p_query_ds.to_string())]);
1259 req_builder = req_builder.query(&[("timeframe", &p_query_timeframe.to_string())]);
1260 if let Some(ref user_agent) = configuration.user_agent {
1261 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1262 }
1263 if let Some(ref apikey) = configuration.api_key {
1264 let key = apikey.key.clone();
1265 let value = match apikey.prefix {
1266 Some(ref prefix) => format!("{} {}", prefix, key),
1267 None => key,
1268 };
1269 req_builder = req_builder.header("Authorization", value);
1270 };
1271 if let Some(ref apikey) = configuration.api_key {
1272 let key = apikey.key.clone();
1273 let value = match apikey.prefix {
1274 Some(ref prefix) => format!("{} {}", prefix, key),
1275 None => key,
1276 };
1277 req_builder = req_builder.header("CSRFPreventionToken", value);
1278 };
1279
1280 let req = req_builder.build()?;
1281 let resp = configuration.client.execute(req).await?;
1282
1283 let status = resp.status();
1284 let content_type = resp
1285 .headers()
1286 .get("content-type")
1287 .and_then(|v| v.to_str().ok())
1288 .unwrap_or("application/octet-stream");
1289 let content_type = super::ContentType::from(content_type);
1290
1291 if !status.is_client_error() && !status.is_server_error() {
1292 let content = resp.text().await?;
1293 match content_type {
1294 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1295 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageRrdResponse`"))),
1296 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::NodesStorageRrdResponse`")))),
1297 }
1298 } else {
1299 let content = resp.text().await?;
1300 let entity: Option<NodesStorageRrdError> = serde_json::from_str(&content).ok();
1301 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1302 }
1303}
1304
1305pub async fn nodes_storage_rrddata(configuration: &configuration::Configuration, node: &str, storage: &str, timeframe: models::PveTimeframeEnum, cf: Option<models::PveCfEnum>) -> Result<models::NodesStorageRrddataResponse, Error<NodesStorageRrddataError>> {
1307 let p_path_node = node;
1309 let p_path_storage = storage;
1310 let p_query_timeframe = timeframe;
1311 let p_query_cf = cf;
1312
1313 let uri_str = format!("{}/nodes/{node}/storage/{storage}/rrddata", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1314 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1315
1316 if let Some(ref param_value) = p_query_cf {
1317 req_builder = req_builder.query(&[("cf", ¶m_value.to_string())]);
1318 }
1319 req_builder = req_builder.query(&[("timeframe", &p_query_timeframe.to_string())]);
1320 if let Some(ref user_agent) = configuration.user_agent {
1321 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1322 }
1323 if let Some(ref apikey) = configuration.api_key {
1324 let key = apikey.key.clone();
1325 let value = match apikey.prefix {
1326 Some(ref prefix) => format!("{} {}", prefix, key),
1327 None => key,
1328 };
1329 req_builder = req_builder.header("Authorization", value);
1330 };
1331 if let Some(ref apikey) = configuration.api_key {
1332 let key = apikey.key.clone();
1333 let value = match apikey.prefix {
1334 Some(ref prefix) => format!("{} {}", prefix, key),
1335 None => key,
1336 };
1337 req_builder = req_builder.header("CSRFPreventionToken", value);
1338 };
1339
1340 let req = req_builder.build()?;
1341 let resp = configuration.client.execute(req).await?;
1342
1343 let status = resp.status();
1344 let content_type = resp
1345 .headers()
1346 .get("content-type")
1347 .and_then(|v| v.to_str().ok())
1348 .unwrap_or("application/octet-stream");
1349 let content_type = super::ContentType::from(content_type);
1350
1351 if !status.is_client_error() && !status.is_server_error() {
1352 let content = resp.text().await?;
1353 match content_type {
1354 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1355 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageRrddataResponse`"))),
1356 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::NodesStorageRrddataResponse`")))),
1357 }
1358 } else {
1359 let content = resp.text().await?;
1360 let entity: Option<NodesStorageRrddataError> = serde_json::from_str(&content).ok();
1361 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1362 }
1363}
1364
1365pub async fn nodes_storage_updateattributes(configuration: &configuration::Configuration, node: &str, storage: &str, volume: &str, nodes_storage_updateattributes_request: Option<models::NodesStorageUpdateattributesRequest>) -> Result<models::NodesStorageUpdateattributesResponse, Error<NodesStorageUpdateattributesError>> {
1367 let p_path_node = node;
1369 let p_path_storage = storage;
1370 let p_path_volume = volume;
1371 let p_body_nodes_storage_updateattributes_request = nodes_storage_updateattributes_request;
1372
1373 let uri_str = format!("{}/nodes/{node}/storage/{storage}/content/{volume}", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage), volume=crate::apis::urlencode(p_path_volume));
1374 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
1375
1376 if let Some(ref user_agent) = configuration.user_agent {
1377 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1378 }
1379 if let Some(ref apikey) = configuration.api_key {
1380 let key = apikey.key.clone();
1381 let value = match apikey.prefix {
1382 Some(ref prefix) => format!("{} {}", prefix, key),
1383 None => key,
1384 };
1385 req_builder = req_builder.header("Authorization", value);
1386 };
1387 if let Some(ref apikey) = configuration.api_key {
1388 let key = apikey.key.clone();
1389 let value = match apikey.prefix {
1390 Some(ref prefix) => format!("{} {}", prefix, key),
1391 None => key,
1392 };
1393 req_builder = req_builder.header("CSRFPreventionToken", value);
1394 };
1395 req_builder = req_builder.json(&p_body_nodes_storage_updateattributes_request);
1396
1397 let req = req_builder.build()?;
1398 let resp = configuration.client.execute(req).await?;
1399
1400 let status = resp.status();
1401 let content_type = resp
1402 .headers()
1403 .get("content-type")
1404 .and_then(|v| v.to_str().ok())
1405 .unwrap_or("application/octet-stream");
1406 let content_type = super::ContentType::from(content_type);
1407
1408 if !status.is_client_error() && !status.is_server_error() {
1409 let content = resp.text().await?;
1410 match content_type {
1411 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1412 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageUpdateattributesResponse`"))),
1413 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::NodesStorageUpdateattributesResponse`")))),
1414 }
1415 } else {
1416 let content = resp.text().await?;
1417 let entity: Option<NodesStorageUpdateattributesError> = serde_json::from_str(&content).ok();
1418 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1419 }
1420}
1421
1422pub async fn nodes_storage_upload(configuration: &configuration::Configuration, node: &str, storage: &str, nodes_storage_upload_request: models::NodesStorageUploadRequest) -> Result<models::NodesStorageUploadResponse, Error<NodesStorageUploadError>> {
1424 let p_path_node = node;
1426 let p_path_storage = storage;
1427 let p_body_nodes_storage_upload_request = nodes_storage_upload_request;
1428
1429 let uri_str = format!("{}/nodes/{node}/storage/{storage}/upload", configuration.base_path, node=crate::apis::urlencode(p_path_node), storage=crate::apis::urlencode(p_path_storage));
1430 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
1431
1432 if let Some(ref user_agent) = configuration.user_agent {
1433 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1434 }
1435 if let Some(ref apikey) = configuration.api_key {
1436 let key = apikey.key.clone();
1437 let value = match apikey.prefix {
1438 Some(ref prefix) => format!("{} {}", prefix, key),
1439 None => key,
1440 };
1441 req_builder = req_builder.header("Authorization", value);
1442 };
1443 if let Some(ref apikey) = configuration.api_key {
1444 let key = apikey.key.clone();
1445 let value = match apikey.prefix {
1446 Some(ref prefix) => format!("{} {}", prefix, key),
1447 None => key,
1448 };
1449 req_builder = req_builder.header("CSRFPreventionToken", value);
1450 };
1451 req_builder = req_builder.json(&p_body_nodes_storage_upload_request);
1452
1453 let req = req_builder.build()?;
1454 let resp = configuration.client.execute(req).await?;
1455
1456 let status = resp.status();
1457 let content_type = resp
1458 .headers()
1459 .get("content-type")
1460 .and_then(|v| v.to_str().ok())
1461 .unwrap_or("application/octet-stream");
1462 let content_type = super::ContentType::from(content_type);
1463
1464 if !status.is_client_error() && !status.is_server_error() {
1465 let content = resp.text().await?;
1466 match content_type {
1467 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1468 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesStorageUploadResponse`"))),
1469 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::NodesStorageUploadResponse`")))),
1470 }
1471 } else {
1472 let content = resp.text().await?;
1473 let entity: Option<NodesStorageUploadError> = serde_json::from_str(&content).ok();
1474 Err(Error::ResponseError(ResponseContent { status, content, entity }))
1475 }
1476}
1477