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 NodesDisksCreateDirectoryError {
22 Status400(models::PbsError),
23 Status401(models::PbsError),
24 Status403(models::PbsError),
25 Status404(models::PbsError),
26 Status500(models::PbsError),
27 Status501(models::PbsError),
28 Status503(models::PbsError),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum NodesDisksCreateInitgptError {
36 Status400(models::PbsError),
37 Status401(models::PbsError),
38 Status403(models::PbsError),
39 Status404(models::PbsError),
40 Status500(models::PbsError),
41 Status501(models::PbsError),
42 Status503(models::PbsError),
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum NodesDisksCreateZfsError {
50 Status400(models::PbsError),
51 Status401(models::PbsError),
52 Status403(models::PbsError),
53 Status404(models::PbsError),
54 Status500(models::PbsError),
55 Status501(models::PbsError),
56 Status503(models::PbsError),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum NodesDisksDeleteDirectoryError {
64 Status400(models::PbsError),
65 Status401(models::PbsError),
66 Status403(models::PbsError),
67 Status404(models::PbsError),
68 Status500(models::PbsError),
69 Status501(models::PbsError),
70 Status503(models::PbsError),
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum NodesDisksGetDirectoryError {
78 Status400(models::PbsError),
79 Status401(models::PbsError),
80 Status403(models::PbsError),
81 Status404(models::PbsError),
82 Status500(models::PbsError),
83 Status501(models::PbsError),
84 Status503(models::PbsError),
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum NodesDisksGetDisksError {
92 Status400(models::PbsError),
93 Status401(models::PbsError),
94 Status403(models::PbsError),
95 Status404(models::PbsError),
96 Status500(models::PbsError),
97 Status501(models::PbsError),
98 Status503(models::PbsError),
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum NodesDisksGetListError {
106 Status400(models::PbsError),
107 Status401(models::PbsError),
108 Status403(models::PbsError),
109 Status404(models::PbsError),
110 Status500(models::PbsError),
111 Status501(models::PbsError),
112 Status503(models::PbsError),
113 UnknownValue(serde_json::Value),
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum NodesDisksGetNodesByNodeDisksZfsByNameError {
120 Status400(models::PbsError),
121 Status401(models::PbsError),
122 Status403(models::PbsError),
123 Status404(models::PbsError),
124 Status500(models::PbsError),
125 Status501(models::PbsError),
126 Status503(models::PbsError),
127 UnknownValue(serde_json::Value),
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum NodesDisksGetSmartError {
134 Status400(models::PbsError),
135 Status401(models::PbsError),
136 Status403(models::PbsError),
137 Status404(models::PbsError),
138 Status500(models::PbsError),
139 Status501(models::PbsError),
140 Status503(models::PbsError),
141 UnknownValue(serde_json::Value),
142}
143
144#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum NodesDisksGetZfsError {
148 Status400(models::PbsError),
149 Status401(models::PbsError),
150 Status403(models::PbsError),
151 Status404(models::PbsError),
152 Status500(models::PbsError),
153 Status501(models::PbsError),
154 Status503(models::PbsError),
155 UnknownValue(serde_json::Value),
156}
157
158#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum NodesDisksUpdateWipediskError {
162 Status400(models::PbsError),
163 Status401(models::PbsError),
164 Status403(models::PbsError),
165 Status404(models::PbsError),
166 Status500(models::PbsError),
167 Status501(models::PbsError),
168 Status503(models::PbsError),
169 UnknownValue(serde_json::Value),
170}
171
172
173pub async fn nodes_disks_create_directory(configuration: &configuration::Configuration, node: &str, nodes_disks_create_directory_request: models::NodesDisksCreateDirectoryRequest) -> Result<models::NodesDisksCreateDirectoryResponse, Error<NodesDisksCreateDirectoryError>> {
175 let p_path_node = node;
177 let p_body_nodes_disks_create_directory_request = nodes_disks_create_directory_request;
178
179 let uri_str = format!("{}/nodes/{node}/disks/directory", configuration.base_path, node=crate::apis::urlencode(p_path_node));
180 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
181
182 if let Some(ref user_agent) = configuration.user_agent {
183 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
184 }
185 if let Some(ref apikey) = configuration.api_key {
186 let key = apikey.key.clone();
187 let value = match apikey.prefix {
188 Some(ref prefix) => format!("{} {}", prefix, key),
189 None => key,
190 };
191 req_builder = req_builder.header("Authorization", value);
192 };
193 if let Some(ref apikey) = configuration.api_key {
194 let key = apikey.key.clone();
195 let value = match apikey.prefix {
196 Some(ref prefix) => format!("{} {}", prefix, key),
197 None => key,
198 };
199 req_builder = req_builder.header("CSRFPreventionToken", value);
200 };
201 req_builder = req_builder.json(&p_body_nodes_disks_create_directory_request);
202
203 let req = req_builder.build()?;
204 let resp = configuration.client.execute(req).await?;
205
206 let status = resp.status();
207 let content_type = resp
208 .headers()
209 .get("content-type")
210 .and_then(|v| v.to_str().ok())
211 .unwrap_or("application/octet-stream");
212 let content_type = super::ContentType::from(content_type);
213
214 if !status.is_client_error() && !status.is_server_error() {
215 let content = resp.text().await?;
216 match content_type {
217 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
218 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksCreateDirectoryResponse`"))),
219 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::NodesDisksCreateDirectoryResponse`")))),
220 }
221 } else {
222 let content = resp.text().await?;
223 let entity: Option<NodesDisksCreateDirectoryError> = serde_json::from_str(&content).ok();
224 Err(Error::ResponseError(ResponseContent { status, content, entity }))
225 }
226}
227
228pub async fn nodes_disks_create_initgpt(configuration: &configuration::Configuration, node: &str, nodes_disks_create_initgpt_request: models::NodesDisksCreateInitgptRequest) -> Result<models::NodesDisksCreateInitgptResponse, Error<NodesDisksCreateInitgptError>> {
230 let p_path_node = node;
232 let p_body_nodes_disks_create_initgpt_request = nodes_disks_create_initgpt_request;
233
234 let uri_str = format!("{}/nodes/{node}/disks/initgpt", configuration.base_path, node=crate::apis::urlencode(p_path_node));
235 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
236
237 if let Some(ref user_agent) = configuration.user_agent {
238 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
239 }
240 if let Some(ref apikey) = configuration.api_key {
241 let key = apikey.key.clone();
242 let value = match apikey.prefix {
243 Some(ref prefix) => format!("{} {}", prefix, key),
244 None => key,
245 };
246 req_builder = req_builder.header("Authorization", value);
247 };
248 if let Some(ref apikey) = configuration.api_key {
249 let key = apikey.key.clone();
250 let value = match apikey.prefix {
251 Some(ref prefix) => format!("{} {}", prefix, key),
252 None => key,
253 };
254 req_builder = req_builder.header("CSRFPreventionToken", value);
255 };
256 req_builder = req_builder.json(&p_body_nodes_disks_create_initgpt_request);
257
258 let req = req_builder.build()?;
259 let resp = configuration.client.execute(req).await?;
260
261 let status = resp.status();
262 let content_type = resp
263 .headers()
264 .get("content-type")
265 .and_then(|v| v.to_str().ok())
266 .unwrap_or("application/octet-stream");
267 let content_type = super::ContentType::from(content_type);
268
269 if !status.is_client_error() && !status.is_server_error() {
270 let content = resp.text().await?;
271 match content_type {
272 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
273 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksCreateInitgptResponse`"))),
274 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::NodesDisksCreateInitgptResponse`")))),
275 }
276 } else {
277 let content = resp.text().await?;
278 let entity: Option<NodesDisksCreateInitgptError> = serde_json::from_str(&content).ok();
279 Err(Error::ResponseError(ResponseContent { status, content, entity }))
280 }
281}
282
283pub async fn nodes_disks_create_zfs(configuration: &configuration::Configuration, node: &str, nodes_disks_create_zfs_request: models::NodesDisksCreateZfsRequest) -> Result<models::NodesDisksCreateZfsResponse, Error<NodesDisksCreateZfsError>> {
285 let p_path_node = node;
287 let p_body_nodes_disks_create_zfs_request = nodes_disks_create_zfs_request;
288
289 let uri_str = format!("{}/nodes/{node}/disks/zfs", configuration.base_path, node=crate::apis::urlencode(p_path_node));
290 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
291
292 if let Some(ref user_agent) = configuration.user_agent {
293 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
294 }
295 if let Some(ref apikey) = configuration.api_key {
296 let key = apikey.key.clone();
297 let value = match apikey.prefix {
298 Some(ref prefix) => format!("{} {}", prefix, key),
299 None => key,
300 };
301 req_builder = req_builder.header("Authorization", value);
302 };
303 if let Some(ref apikey) = configuration.api_key {
304 let key = apikey.key.clone();
305 let value = match apikey.prefix {
306 Some(ref prefix) => format!("{} {}", prefix, key),
307 None => key,
308 };
309 req_builder = req_builder.header("CSRFPreventionToken", value);
310 };
311 req_builder = req_builder.json(&p_body_nodes_disks_create_zfs_request);
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::NodesDisksCreateZfsResponse`"))),
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::NodesDisksCreateZfsResponse`")))),
330 }
331 } else {
332 let content = resp.text().await?;
333 let entity: Option<NodesDisksCreateZfsError> = serde_json::from_str(&content).ok();
334 Err(Error::ResponseError(ResponseContent { status, content, entity }))
335 }
336}
337
338pub async fn nodes_disks_delete_directory(configuration: &configuration::Configuration, name: &str, node: &str) -> Result<models::NodesDisksDeleteDirectoryResponse, Error<NodesDisksDeleteDirectoryError>> {
340 let p_path_name = name;
342 let p_path_node = node;
343
344 let uri_str = format!("{}/nodes/{node}/disks/directory/{name}", configuration.base_path, name=crate::apis::urlencode(p_path_name), node=crate::apis::urlencode(p_path_node));
345 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
346
347 if let Some(ref user_agent) = configuration.user_agent {
348 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
349 }
350 if let Some(ref apikey) = configuration.api_key {
351 let key = apikey.key.clone();
352 let value = match apikey.prefix {
353 Some(ref prefix) => format!("{} {}", prefix, key),
354 None => key,
355 };
356 req_builder = req_builder.header("Authorization", value);
357 };
358 if let Some(ref apikey) = configuration.api_key {
359 let key = apikey.key.clone();
360 let value = match apikey.prefix {
361 Some(ref prefix) => format!("{} {}", prefix, key),
362 None => key,
363 };
364 req_builder = req_builder.header("CSRFPreventionToken", value);
365 };
366
367 let req = req_builder.build()?;
368 let resp = configuration.client.execute(req).await?;
369
370 let status = resp.status();
371 let content_type = resp
372 .headers()
373 .get("content-type")
374 .and_then(|v| v.to_str().ok())
375 .unwrap_or("application/octet-stream");
376 let content_type = super::ContentType::from(content_type);
377
378 if !status.is_client_error() && !status.is_server_error() {
379 let content = resp.text().await?;
380 match content_type {
381 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
382 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksDeleteDirectoryResponse`"))),
383 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::NodesDisksDeleteDirectoryResponse`")))),
384 }
385 } else {
386 let content = resp.text().await?;
387 let entity: Option<NodesDisksDeleteDirectoryError> = serde_json::from_str(&content).ok();
388 Err(Error::ResponseError(ResponseContent { status, content, entity }))
389 }
390}
391
392pub async fn nodes_disks_get_directory(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesDisksGetDirectoryResponse, Error<NodesDisksGetDirectoryError>> {
394 let p_path_node = node;
396
397 let uri_str = format!("{}/nodes/{node}/disks/directory", configuration.base_path, node=crate::apis::urlencode(p_path_node));
398 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
399
400 if let Some(ref user_agent) = configuration.user_agent {
401 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
402 }
403 if let Some(ref apikey) = configuration.api_key {
404 let key = apikey.key.clone();
405 let value = match apikey.prefix {
406 Some(ref prefix) => format!("{} {}", prefix, key),
407 None => key,
408 };
409 req_builder = req_builder.header("Authorization", value);
410 };
411 if let Some(ref apikey) = configuration.api_key {
412 let key = apikey.key.clone();
413 let value = match apikey.prefix {
414 Some(ref prefix) => format!("{} {}", prefix, key),
415 None => key,
416 };
417 req_builder = req_builder.header("CSRFPreventionToken", value);
418 };
419
420 let req = req_builder.build()?;
421 let resp = configuration.client.execute(req).await?;
422
423 let status = resp.status();
424 let content_type = resp
425 .headers()
426 .get("content-type")
427 .and_then(|v| v.to_str().ok())
428 .unwrap_or("application/octet-stream");
429 let content_type = super::ContentType::from(content_type);
430
431 if !status.is_client_error() && !status.is_server_error() {
432 let content = resp.text().await?;
433 match content_type {
434 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
435 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetDirectoryResponse`"))),
436 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::NodesDisksGetDirectoryResponse`")))),
437 }
438 } else {
439 let content = resp.text().await?;
440 let entity: Option<NodesDisksGetDirectoryError> = serde_json::from_str(&content).ok();
441 Err(Error::ResponseError(ResponseContent { status, content, entity }))
442 }
443}
444
445pub async fn nodes_disks_get_disks(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesDisksGetDisksResponse, Error<NodesDisksGetDisksError>> {
447 let p_path_node = node;
449
450 let uri_str = format!("{}/nodes/{node}/disks", configuration.base_path, node=crate::apis::urlencode(p_path_node));
451 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
452
453 if let Some(ref user_agent) = configuration.user_agent {
454 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
455 }
456 if let Some(ref apikey) = configuration.api_key {
457 let key = apikey.key.clone();
458 let value = match apikey.prefix {
459 Some(ref prefix) => format!("{} {}", prefix, key),
460 None => key,
461 };
462 req_builder = req_builder.header("Authorization", value);
463 };
464 if let Some(ref apikey) = configuration.api_key {
465 let key = apikey.key.clone();
466 let value = match apikey.prefix {
467 Some(ref prefix) => format!("{} {}", prefix, key),
468 None => key,
469 };
470 req_builder = req_builder.header("CSRFPreventionToken", value);
471 };
472
473 let req = req_builder.build()?;
474 let resp = configuration.client.execute(req).await?;
475
476 let status = resp.status();
477 let content_type = resp
478 .headers()
479 .get("content-type")
480 .and_then(|v| v.to_str().ok())
481 .unwrap_or("application/octet-stream");
482 let content_type = super::ContentType::from(content_type);
483
484 if !status.is_client_error() && !status.is_server_error() {
485 let content = resp.text().await?;
486 match content_type {
487 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
488 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetDisksResponse`"))),
489 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::NodesDisksGetDisksResponse`")))),
490 }
491 } else {
492 let content = resp.text().await?;
493 let entity: Option<NodesDisksGetDisksError> = serde_json::from_str(&content).ok();
494 Err(Error::ResponseError(ResponseContent { status, content, entity }))
495 }
496}
497
498pub async fn nodes_disks_get_list(configuration: &configuration::Configuration, node: &str, include_partitions: Option<bool>, skipsmart: Option<bool>, usage_type: Option<models::PbsUsageTypeEnum>) -> Result<models::NodesDisksGetListResponse, Error<NodesDisksGetListError>> {
500 let p_path_node = node;
502 let p_query_include_partitions = include_partitions;
503 let p_query_skipsmart = skipsmart;
504 let p_query_usage_type = usage_type;
505
506 let uri_str = format!("{}/nodes/{node}/disks/list", configuration.base_path, node=crate::apis::urlencode(p_path_node));
507 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
508
509 if let Some(ref param_value) = p_query_include_partitions {
510 req_builder = req_builder.query(&[("include-partitions", ¶m_value.to_string())]);
511 }
512 if let Some(ref param_value) = p_query_skipsmart {
513 req_builder = req_builder.query(&[("skipsmart", ¶m_value.to_string())]);
514 }
515 if let Some(ref param_value) = p_query_usage_type {
516 req_builder = req_builder.query(&[("usage-type", ¶m_value.to_string())]);
517 }
518 if let Some(ref user_agent) = configuration.user_agent {
519 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
520 }
521 if let Some(ref apikey) = configuration.api_key {
522 let key = apikey.key.clone();
523 let value = match apikey.prefix {
524 Some(ref prefix) => format!("{} {}", prefix, key),
525 None => key,
526 };
527 req_builder = req_builder.header("Authorization", value);
528 };
529 if let Some(ref apikey) = configuration.api_key {
530 let key = apikey.key.clone();
531 let value = match apikey.prefix {
532 Some(ref prefix) => format!("{} {}", prefix, key),
533 None => key,
534 };
535 req_builder = req_builder.header("CSRFPreventionToken", value);
536 };
537
538 let req = req_builder.build()?;
539 let resp = configuration.client.execute(req).await?;
540
541 let status = resp.status();
542 let content_type = resp
543 .headers()
544 .get("content-type")
545 .and_then(|v| v.to_str().ok())
546 .unwrap_or("application/octet-stream");
547 let content_type = super::ContentType::from(content_type);
548
549 if !status.is_client_error() && !status.is_server_error() {
550 let content = resp.text().await?;
551 match content_type {
552 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
553 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetListResponse`"))),
554 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::NodesDisksGetListResponse`")))),
555 }
556 } else {
557 let content = resp.text().await?;
558 let entity: Option<NodesDisksGetListError> = serde_json::from_str(&content).ok();
559 Err(Error::ResponseError(ResponseContent { status, content, entity }))
560 }
561}
562
563pub async fn nodes_disks_get_nodes_by_node_disks_zfs_by_name(configuration: &configuration::Configuration, name: &str, node: &str) -> Result<models::NodesDisksGetNodesByNodeDisksZfsByNameResponse, Error<NodesDisksGetNodesByNodeDisksZfsByNameError>> {
565 let p_path_name = name;
567 let p_path_node = node;
568
569 let uri_str = format!("{}/nodes/{node}/disks/zfs/{name}", configuration.base_path, name=crate::apis::urlencode(p_path_name), node=crate::apis::urlencode(p_path_node));
570 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
571
572 if let Some(ref user_agent) = configuration.user_agent {
573 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
574 }
575 if let Some(ref apikey) = configuration.api_key {
576 let key = apikey.key.clone();
577 let value = match apikey.prefix {
578 Some(ref prefix) => format!("{} {}", prefix, key),
579 None => key,
580 };
581 req_builder = req_builder.header("Authorization", value);
582 };
583 if let Some(ref apikey) = configuration.api_key {
584 let key = apikey.key.clone();
585 let value = match apikey.prefix {
586 Some(ref prefix) => format!("{} {}", prefix, key),
587 None => key,
588 };
589 req_builder = req_builder.header("CSRFPreventionToken", value);
590 };
591
592 let req = req_builder.build()?;
593 let resp = configuration.client.execute(req).await?;
594
595 let status = resp.status();
596 let content_type = resp
597 .headers()
598 .get("content-type")
599 .and_then(|v| v.to_str().ok())
600 .unwrap_or("application/octet-stream");
601 let content_type = super::ContentType::from(content_type);
602
603 if !status.is_client_error() && !status.is_server_error() {
604 let content = resp.text().await?;
605 match content_type {
606 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
607 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetNodesByNodeDisksZfsByNameResponse`"))),
608 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::NodesDisksGetNodesByNodeDisksZfsByNameResponse`")))),
609 }
610 } else {
611 let content = resp.text().await?;
612 let entity: Option<NodesDisksGetNodesByNodeDisksZfsByNameError> = serde_json::from_str(&content).ok();
613 Err(Error::ResponseError(ResponseContent { status, content, entity }))
614 }
615}
616
617pub async fn nodes_disks_get_smart(configuration: &configuration::Configuration, disk: &str, node: &str, healthonly: Option<bool>) -> Result<models::NodesDisksGetSmartResponse, Error<NodesDisksGetSmartError>> {
619 let p_query_disk = disk;
621 let p_path_node = node;
622 let p_query_healthonly = healthonly;
623
624 let uri_str = format!("{}/nodes/{node}/disks/smart", configuration.base_path, node=crate::apis::urlencode(p_path_node));
625 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
626
627 req_builder = req_builder.query(&[("disk", &p_query_disk.to_string())]);
628 if let Some(ref param_value) = p_query_healthonly {
629 req_builder = req_builder.query(&[("healthonly", ¶m_value.to_string())]);
630 }
631 if let Some(ref user_agent) = configuration.user_agent {
632 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
633 }
634 if let Some(ref apikey) = configuration.api_key {
635 let key = apikey.key.clone();
636 let value = match apikey.prefix {
637 Some(ref prefix) => format!("{} {}", prefix, key),
638 None => key,
639 };
640 req_builder = req_builder.header("Authorization", value);
641 };
642 if let Some(ref apikey) = configuration.api_key {
643 let key = apikey.key.clone();
644 let value = match apikey.prefix {
645 Some(ref prefix) => format!("{} {}", prefix, key),
646 None => key,
647 };
648 req_builder = req_builder.header("CSRFPreventionToken", value);
649 };
650
651 let req = req_builder.build()?;
652 let resp = configuration.client.execute(req).await?;
653
654 let status = resp.status();
655 let content_type = resp
656 .headers()
657 .get("content-type")
658 .and_then(|v| v.to_str().ok())
659 .unwrap_or("application/octet-stream");
660 let content_type = super::ContentType::from(content_type);
661
662 if !status.is_client_error() && !status.is_server_error() {
663 let content = resp.text().await?;
664 match content_type {
665 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
666 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetSmartResponse`"))),
667 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::NodesDisksGetSmartResponse`")))),
668 }
669 } else {
670 let content = resp.text().await?;
671 let entity: Option<NodesDisksGetSmartError> = serde_json::from_str(&content).ok();
672 Err(Error::ResponseError(ResponseContent { status, content, entity }))
673 }
674}
675
676pub async fn nodes_disks_get_zfs(configuration: &configuration::Configuration, node: &str) -> Result<models::NodesDisksGetZfsResponse, Error<NodesDisksGetZfsError>> {
678 let p_path_node = node;
680
681 let uri_str = format!("{}/nodes/{node}/disks/zfs", configuration.base_path, node=crate::apis::urlencode(p_path_node));
682 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
683
684 if let Some(ref user_agent) = configuration.user_agent {
685 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
686 }
687 if let Some(ref apikey) = configuration.api_key {
688 let key = apikey.key.clone();
689 let value = match apikey.prefix {
690 Some(ref prefix) => format!("{} {}", prefix, key),
691 None => key,
692 };
693 req_builder = req_builder.header("Authorization", value);
694 };
695 if let Some(ref apikey) = configuration.api_key {
696 let key = apikey.key.clone();
697 let value = match apikey.prefix {
698 Some(ref prefix) => format!("{} {}", prefix, key),
699 None => key,
700 };
701 req_builder = req_builder.header("CSRFPreventionToken", value);
702 };
703
704 let req = req_builder.build()?;
705 let resp = configuration.client.execute(req).await?;
706
707 let status = resp.status();
708 let content_type = resp
709 .headers()
710 .get("content-type")
711 .and_then(|v| v.to_str().ok())
712 .unwrap_or("application/octet-stream");
713 let content_type = super::ContentType::from(content_type);
714
715 if !status.is_client_error() && !status.is_server_error() {
716 let content = resp.text().await?;
717 match content_type {
718 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
719 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksGetZfsResponse`"))),
720 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::NodesDisksGetZfsResponse`")))),
721 }
722 } else {
723 let content = resp.text().await?;
724 let entity: Option<NodesDisksGetZfsError> = serde_json::from_str(&content).ok();
725 Err(Error::ResponseError(ResponseContent { status, content, entity }))
726 }
727}
728
729pub async fn nodes_disks_update_wipedisk(configuration: &configuration::Configuration, node: &str, nodes_disks_update_wipedisk_request: models::NodesDisksUpdateWipediskRequest) -> Result<models::NodesDisksUpdateWipediskResponse, Error<NodesDisksUpdateWipediskError>> {
731 let p_path_node = node;
733 let p_body_nodes_disks_update_wipedisk_request = nodes_disks_update_wipedisk_request;
734
735 let uri_str = format!("{}/nodes/{node}/disks/wipedisk", configuration.base_path, node=crate::apis::urlencode(p_path_node));
736 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
737
738 if let Some(ref user_agent) = configuration.user_agent {
739 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
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("Authorization", value);
748 };
749 if let Some(ref apikey) = configuration.api_key {
750 let key = apikey.key.clone();
751 let value = match apikey.prefix {
752 Some(ref prefix) => format!("{} {}", prefix, key),
753 None => key,
754 };
755 req_builder = req_builder.header("CSRFPreventionToken", value);
756 };
757 req_builder = req_builder.json(&p_body_nodes_disks_update_wipedisk_request);
758
759 let req = req_builder.build()?;
760 let resp = configuration.client.execute(req).await?;
761
762 let status = resp.status();
763 let content_type = resp
764 .headers()
765 .get("content-type")
766 .and_then(|v| v.to_str().ok())
767 .unwrap_or("application/octet-stream");
768 let content_type = super::ContentType::from(content_type);
769
770 if !status.is_client_error() && !status.is_server_error() {
771 let content = resp.text().await?;
772 match content_type {
773 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
774 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::NodesDisksUpdateWipediskResponse`"))),
775 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::NodesDisksUpdateWipediskResponse`")))),
776 }
777 } else {
778 let content = resp.text().await?;
779 let entity: Option<NodesDisksUpdateWipediskError> = serde_json::from_str(&content).ok();
780 Err(Error::ResponseError(ResponseContent { status, content, entity }))
781 }
782}
783