1use reqwest;
12use serde::{Deserialize, Serialize, de::Error as _};
13
14use super::{ContentType, Error, configuration};
15use crate::{apis::ResponseContent, models};
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum CreateNetworkDriveError {
21 Status400(models::GetFinances400Response),
22 Status401(models::GetFinances401Response),
23 Status403(models::GetAccountStatus403Response),
24 Status409(models::CreateDatabaseBackup409Response),
25 Status429(models::GetFinances429Response),
26 Status500(models::GetFinances500Response),
27 UnknownValue(serde_json::Value)
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum DeleteNetworkDriveError {
34 Status400(models::GetFinances400Response),
35 Status401(models::GetFinances401Response),
36 Status403(models::GetAccountStatus403Response),
37 Status404(models::GetImage404Response),
38 Status429(models::GetFinances429Response),
39 Status500(models::GetFinances500Response),
40 UnknownValue(serde_json::Value)
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(untagged)]
46pub enum GetNetworkDriveError {
47 Status400(models::GetFinances400Response),
48 Status401(models::GetFinances401Response),
49 Status403(models::GetAccountStatus403Response),
50 Status404(models::GetImage404Response),
51 Status429(models::GetFinances429Response),
52 Status500(models::GetFinances500Response),
53 UnknownValue(serde_json::Value)
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum GetNetworkDrivesError {
60 Status400(models::GetFinances400Response),
61 Status401(models::GetFinances401Response),
62 Status403(models::GetAccountStatus403Response),
63 Status404(models::GetImage404Response),
64 Status429(models::GetFinances429Response),
65 Status500(models::GetFinances500Response),
66 UnknownValue(serde_json::Value)
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum GetNetworkDrivesAvailableResourcesError {
73 Status400(models::GetFinances400Response),
74 Status401(models::GetFinances401Response),
75 Status403(models::GetAccountStatus403Response),
76 Status404(models::GetImage404Response),
77 Status429(models::GetFinances429Response),
78 Status500(models::GetFinances500Response),
79 UnknownValue(serde_json::Value)
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum GetNetworkDrivesPresetsError {
86 Status400(models::GetFinances400Response),
87 Status401(models::GetFinances401Response),
88 Status403(models::GetAccountStatus403Response),
89 Status404(models::GetImage404Response),
90 Status429(models::GetFinances429Response),
91 Status500(models::GetFinances500Response),
92 UnknownValue(serde_json::Value)
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum MountNetworkDriveError {
99 Status400(models::GetFinances400Response),
100 Status401(models::GetFinances401Response),
101 Status403(models::GetAccountStatus403Response),
102 Status404(models::GetImage404Response),
103 Status429(models::GetFinances429Response),
104 Status500(models::GetFinances500Response),
105 UnknownValue(serde_json::Value)
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize)]
110#[serde(untagged)]
111pub enum UnmountNetworkDriveError {
112 Status400(models::GetFinances400Response),
113 Status401(models::GetFinances401Response),
114 Status403(models::GetAccountStatus403Response),
115 Status404(models::GetImage404Response),
116 Status429(models::GetFinances429Response),
117 Status500(models::GetFinances500Response),
118 UnknownValue(serde_json::Value)
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
123#[serde(untagged)]
124pub enum UpdateNetworkDriveError {
125 Status400(models::GetFinances400Response),
126 Status401(models::GetFinances401Response),
127 Status403(models::GetAccountStatus403Response),
128 Status404(models::GetImage404Response),
129 Status429(models::GetFinances429Response),
130 Status500(models::GetFinances500Response),
131 UnknownValue(serde_json::Value)
132}
133
134pub async fn create_network_drive(
137 configuration: &configuration::Configuration,
138 create_network_drive: models::CreateNetworkDrive
139) -> Result<models::CreateNetworkDrive201Response, Error<CreateNetworkDriveError>> {
140 let p_body_create_network_drive = create_network_drive;
142
143 let uri_str = format!("{}/api/v1/network-drives", configuration.base_path);
144 let mut req_builder = configuration
145 .client
146 .request(reqwest::Method::POST, &uri_str);
147
148 if let Some(ref user_agent) = configuration.user_agent {
149 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
150 }
151 if let Some(ref token) = configuration.bearer_access_token {
152 req_builder = req_builder.bearer_auth(token.to_owned());
153 };
154 req_builder = req_builder.json(&p_body_create_network_drive);
155
156 let req = req_builder.build()?;
157 let resp = configuration.client.execute(req).await?;
158
159 let status = resp.status();
160 let content_type = resp
161 .headers()
162 .get("content-type")
163 .and_then(|v| v.to_str().ok())
164 .unwrap_or("application/octet-stream");
165 let content_type = super::ContentType::from(content_type);
166
167 if !status.is_client_error() && !status.is_server_error() {
168 let content = resp.text().await?;
169 match content_type {
170 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
171 ContentType::Text => {
172 return Err(Error::from(serde_json::Error::custom(
173 "Received `text/plain` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
174 )));
175 }
176 ContentType::Unsupported(unknown_type) => {
177 return Err(Error::from(serde_json::Error::custom(format!(
178 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
179 ))));
180 }
181 }
182 } else {
183 let content = resp.text().await?;
184 let entity: Option<CreateNetworkDriveError> = serde_json::from_str(&content).ok();
185 Err(Error::ResponseError(ResponseContent {
186 status,
187 content,
188 entity
189 }))
190 }
191}
192
193pub async fn delete_network_drive(
196 configuration: &configuration::Configuration,
197 network_drive_id: &str
198) -> Result<(), Error<DeleteNetworkDriveError>> {
199 let p_path_network_drive_id = network_drive_id;
201
202 let uri_str = format!(
203 "{}/api/v1/network-drives/{network_drive_id}",
204 configuration.base_path,
205 network_drive_id = crate::apis::urlencode(p_path_network_drive_id)
206 );
207 let mut req_builder = configuration
208 .client
209 .request(reqwest::Method::DELETE, &uri_str);
210
211 if let Some(ref user_agent) = configuration.user_agent {
212 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
213 }
214 if let Some(ref token) = configuration.bearer_access_token {
215 req_builder = req_builder.bearer_auth(token.to_owned());
216 };
217
218 let req = req_builder.build()?;
219 let resp = configuration.client.execute(req).await?;
220
221 let status = resp.status();
222
223 if !status.is_client_error() && !status.is_server_error() {
224 Ok(())
225 } else {
226 let content = resp.text().await?;
227 let entity: Option<DeleteNetworkDriveError> = serde_json::from_str(&content).ok();
228 Err(Error::ResponseError(ResponseContent {
229 status,
230 content,
231 entity
232 }))
233 }
234}
235
236pub async fn get_network_drive(
239 configuration: &configuration::Configuration,
240 network_drive_id: &str
241) -> Result<models::CreateNetworkDrive201Response, Error<GetNetworkDriveError>> {
242 let p_path_network_drive_id = network_drive_id;
244
245 let uri_str = format!(
246 "{}/api/v1/network-drives/{network_drive_id}",
247 configuration.base_path,
248 network_drive_id = crate::apis::urlencode(p_path_network_drive_id)
249 );
250 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
251
252 if let Some(ref user_agent) = configuration.user_agent {
253 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
254 }
255 if let Some(ref token) = configuration.bearer_access_token {
256 req_builder = req_builder.bearer_auth(token.to_owned());
257 };
258
259 let req = req_builder.build()?;
260 let resp = configuration.client.execute(req).await?;
261
262 let status = resp.status();
263 let content_type = resp
264 .headers()
265 .get("content-type")
266 .and_then(|v| v.to_str().ok())
267 .unwrap_or("application/octet-stream");
268 let content_type = super::ContentType::from(content_type);
269
270 if !status.is_client_error() && !status.is_server_error() {
271 let content = resp.text().await?;
272 match content_type {
273 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
274 ContentType::Text => {
275 return Err(Error::from(serde_json::Error::custom(
276 "Received `text/plain` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
277 )));
278 }
279 ContentType::Unsupported(unknown_type) => {
280 return Err(Error::from(serde_json::Error::custom(format!(
281 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
282 ))));
283 }
284 }
285 } else {
286 let content = resp.text().await?;
287 let entity: Option<GetNetworkDriveError> = serde_json::from_str(&content).ok();
288 Err(Error::ResponseError(ResponseContent {
289 status,
290 content,
291 entity
292 }))
293 }
294}
295
296pub async fn get_network_drives(
299 configuration: &configuration::Configuration
300) -> Result<models::GetNetworkDrives200Response, Error<GetNetworkDrivesError>> {
301 let uri_str = format!("{}/api/v1/network-drives", configuration.base_path);
302 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
303
304 if let Some(ref user_agent) = configuration.user_agent {
305 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
306 }
307 if let Some(ref token) = configuration.bearer_access_token {
308 req_builder = req_builder.bearer_auth(token.to_owned());
309 };
310
311 let req = req_builder.build()?;
312 let resp = configuration.client.execute(req).await?;
313
314 let status = resp.status();
315 let content_type = resp
316 .headers()
317 .get("content-type")
318 .and_then(|v| v.to_str().ok())
319 .unwrap_or("application/octet-stream");
320 let content_type = super::ContentType::from(content_type);
321
322 if !status.is_client_error() && !status.is_server_error() {
323 let content = resp.text().await?;
324 match content_type {
325 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
326 ContentType::Text => {
327 return Err(Error::from(serde_json::Error::custom(
328 "Received `text/plain` content type response that cannot be converted to `models::GetNetworkDrives200Response`"
329 )));
330 }
331 ContentType::Unsupported(unknown_type) => {
332 return Err(Error::from(serde_json::Error::custom(format!(
333 "Received `{unknown_type}` content type response that cannot be converted to `models::GetNetworkDrives200Response`"
334 ))));
335 }
336 }
337 } else {
338 let content = resp.text().await?;
339 let entity: Option<GetNetworkDrivesError> = serde_json::from_str(&content).ok();
340 Err(Error::ResponseError(ResponseContent {
341 status,
342 content,
343 entity
344 }))
345 }
346}
347
348pub async fn get_network_drives_available_resources(
351 configuration: &configuration::Configuration
352) -> Result<
353 models::GetNetworkDrivesAvailableResources200Response,
354 Error<GetNetworkDrivesAvailableResourcesError>
355> {
356 let uri_str = format!(
357 "{}/api/v1/network-drives/available-resources",
358 configuration.base_path
359 );
360 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
361
362 if let Some(ref user_agent) = configuration.user_agent {
363 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
364 }
365 if let Some(ref token) = configuration.bearer_access_token {
366 req_builder = req_builder.bearer_auth(token.to_owned());
367 };
368
369 let req = req_builder.build()?;
370 let resp = configuration.client.execute(req).await?;
371
372 let status = resp.status();
373 let content_type = resp
374 .headers()
375 .get("content-type")
376 .and_then(|v| v.to_str().ok())
377 .unwrap_or("application/octet-stream");
378 let content_type = super::ContentType::from(content_type);
379
380 if !status.is_client_error() && !status.is_server_error() {
381 let content = resp.text().await?;
382 match content_type {
383 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
384 ContentType::Text => {
385 return Err(Error::from(serde_json::Error::custom(
386 "Received `text/plain` content type response that cannot be converted to `models::GetNetworkDrivesAvailableResources200Response`"
387 )));
388 }
389 ContentType::Unsupported(unknown_type) => {
390 return Err(Error::from(serde_json::Error::custom(format!(
391 "Received `{unknown_type}` content type response that cannot be converted to `models::GetNetworkDrivesAvailableResources200Response`"
392 ))));
393 }
394 }
395 } else {
396 let content = resp.text().await?;
397 let entity: Option<GetNetworkDrivesAvailableResourcesError> =
398 serde_json::from_str(&content).ok();
399 Err(Error::ResponseError(ResponseContent {
400 status,
401 content,
402 entity
403 }))
404 }
405}
406
407pub async fn get_network_drives_presets(
410 configuration: &configuration::Configuration
411) -> Result<models::GetNetworkDrivesPresets200Response, Error<GetNetworkDrivesPresetsError>> {
412 let uri_str = format!("{}/api/v1/presets/network-drives", configuration.base_path);
413 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
414
415 if let Some(ref user_agent) = configuration.user_agent {
416 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
417 }
418 if let Some(ref token) = configuration.bearer_access_token {
419 req_builder = req_builder.bearer_auth(token.to_owned());
420 };
421
422 let req = req_builder.build()?;
423 let resp = configuration.client.execute(req).await?;
424
425 let status = resp.status();
426 let content_type = resp
427 .headers()
428 .get("content-type")
429 .and_then(|v| v.to_str().ok())
430 .unwrap_or("application/octet-stream");
431 let content_type = super::ContentType::from(content_type);
432
433 if !status.is_client_error() && !status.is_server_error() {
434 let content = resp.text().await?;
435 match content_type {
436 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
437 ContentType::Text => {
438 return Err(Error::from(serde_json::Error::custom(
439 "Received `text/plain` content type response that cannot be converted to `models::GetNetworkDrivesPresets200Response`"
440 )));
441 }
442 ContentType::Unsupported(unknown_type) => {
443 return Err(Error::from(serde_json::Error::custom(format!(
444 "Received `{unknown_type}` content type response that cannot be converted to `models::GetNetworkDrivesPresets200Response`"
445 ))));
446 }
447 }
448 } else {
449 let content = resp.text().await?;
450 let entity: Option<GetNetworkDrivesPresetsError> = serde_json::from_str(&content).ok();
451 Err(Error::ResponseError(ResponseContent {
452 status,
453 content,
454 entity
455 }))
456 }
457}
458
459pub async fn mount_network_drive(
462 configuration: &configuration::Configuration,
463 network_drive_id: &str,
464 mount_network_drive: models::MountNetworkDrive
465) -> Result<(), Error<MountNetworkDriveError>> {
466 let p_path_network_drive_id = network_drive_id;
468 let p_body_mount_network_drive = mount_network_drive;
469
470 let uri_str = format!(
471 "{}/api/v1/network-drives/{network_drive_id}/mount",
472 configuration.base_path,
473 network_drive_id = crate::apis::urlencode(p_path_network_drive_id)
474 );
475 let mut req_builder = configuration
476 .client
477 .request(reqwest::Method::POST, &uri_str);
478
479 if let Some(ref user_agent) = configuration.user_agent {
480 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
481 }
482 if let Some(ref token) = configuration.bearer_access_token {
483 req_builder = req_builder.bearer_auth(token.to_owned());
484 };
485 req_builder = req_builder.json(&p_body_mount_network_drive);
486
487 let req = req_builder.build()?;
488 let resp = configuration.client.execute(req).await?;
489
490 let status = resp.status();
491
492 if !status.is_client_error() && !status.is_server_error() {
493 Ok(())
494 } else {
495 let content = resp.text().await?;
496 let entity: Option<MountNetworkDriveError> = serde_json::from_str(&content).ok();
497 Err(Error::ResponseError(ResponseContent {
498 status,
499 content,
500 entity
501 }))
502 }
503}
504
505pub async fn unmount_network_drive(
508 configuration: &configuration::Configuration,
509 network_drive_id: &str
510) -> Result<(), Error<UnmountNetworkDriveError>> {
511 let p_path_network_drive_id = network_drive_id;
513
514 let uri_str = format!(
515 "{}/api/v1/network-drives/{network_drive_id}/unmount",
516 configuration.base_path,
517 network_drive_id = crate::apis::urlencode(p_path_network_drive_id)
518 );
519 let mut req_builder = configuration
520 .client
521 .request(reqwest::Method::POST, &uri_str);
522
523 if let Some(ref user_agent) = configuration.user_agent {
524 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
525 }
526 if let Some(ref token) = configuration.bearer_access_token {
527 req_builder = req_builder.bearer_auth(token.to_owned());
528 };
529
530 let req = req_builder.build()?;
531 let resp = configuration.client.execute(req).await?;
532
533 let status = resp.status();
534
535 if !status.is_client_error() && !status.is_server_error() {
536 Ok(())
537 } else {
538 let content = resp.text().await?;
539 let entity: Option<UnmountNetworkDriveError> = serde_json::from_str(&content).ok();
540 Err(Error::ResponseError(ResponseContent {
541 status,
542 content,
543 entity
544 }))
545 }
546}
547
548pub async fn update_network_drive(
551 configuration: &configuration::Configuration,
552 network_drive_id: &str,
553 update_network_drive: models::UpdateNetworkDrive
554) -> Result<models::CreateNetworkDrive201Response, Error<UpdateNetworkDriveError>> {
555 let p_path_network_drive_id = network_drive_id;
557 let p_body_update_network_drive = update_network_drive;
558
559 let uri_str = format!(
560 "{}/api/v1/network-drives/{network_drive_id}",
561 configuration.base_path,
562 network_drive_id = crate::apis::urlencode(p_path_network_drive_id)
563 );
564 let mut req_builder = configuration
565 .client
566 .request(reqwest::Method::PATCH, &uri_str);
567
568 if let Some(ref user_agent) = configuration.user_agent {
569 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
570 }
571 if let Some(ref token) = configuration.bearer_access_token {
572 req_builder = req_builder.bearer_auth(token.to_owned());
573 };
574 req_builder = req_builder.json(&p_body_update_network_drive);
575
576 let req = req_builder.build()?;
577 let resp = configuration.client.execute(req).await?;
578
579 let status = resp.status();
580 let content_type = resp
581 .headers()
582 .get("content-type")
583 .and_then(|v| v.to_str().ok())
584 .unwrap_or("application/octet-stream");
585 let content_type = super::ContentType::from(content_type);
586
587 if !status.is_client_error() && !status.is_server_error() {
588 let content = resp.text().await?;
589 match content_type {
590 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
591 ContentType::Text => {
592 return Err(Error::from(serde_json::Error::custom(
593 "Received `text/plain` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
594 )));
595 }
596 ContentType::Unsupported(unknown_type) => {
597 return Err(Error::from(serde_json::Error::custom(format!(
598 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateNetworkDrive201Response`"
599 ))));
600 }
601 }
602 } else {
603 let content = resp.text().await?;
604 let entity: Option<UpdateNetworkDriveError> = serde_json::from_str(&content).ok();
605 Err(Error::ResponseError(ResponseContent {
606 status,
607 content,
608 entity
609 }))
610 }
611}