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 AddBalancerToProjectError {
21 Status400(models::GetFinances400Response),
22 Status401(models::GetFinances401Response),
23 Status403(models::GetAccountStatus403Response),
24 Status404(models::GetImage404Response),
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 AddClusterToProjectError {
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 AddDatabaseToProjectError {
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 AddDedicatedServerToProjectError {
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 AddServerToProjectError {
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 AddStorageToProjectError {
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 CreateProjectError {
99 Status400(models::GetFinances400Response),
100 Status401(models::GetFinances401Response),
101 Status403(models::GetAccountStatus403Response),
102 Status429(models::GetFinances429Response),
103 Status500(models::GetFinances500Response),
104 UnknownValue(serde_json::Value)
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
109#[serde(untagged)]
110pub enum DeleteProjectError {
111 Status400(models::GetFinances400Response),
112 Status401(models::GetFinances401Response),
113 Status403(models::GetAccountStatus403Response),
114 Status404(models::GetImage404Response),
115 Status429(models::GetFinances429Response),
116 Status500(models::GetFinances500Response),
117 UnknownValue(serde_json::Value)
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize)]
122#[serde(untagged)]
123pub enum GetAccountBalancersError {
124 Status400(models::GetFinances400Response),
125 Status401(models::GetFinances401Response),
126 Status429(models::GetFinances429Response),
127 Status500(models::GetFinances500Response),
128 UnknownValue(serde_json::Value)
129}
130
131#[derive(Debug, Clone, Serialize, Deserialize)]
133#[serde(untagged)]
134pub enum GetAccountClustersError {
135 Status400(models::GetFinances400Response),
136 Status401(models::GetFinances401Response),
137 Status429(models::GetFinances429Response),
138 Status500(models::GetFinances500Response),
139 UnknownValue(serde_json::Value)
140}
141
142#[derive(Debug, Clone, Serialize, Deserialize)]
144#[serde(untagged)]
145pub enum GetAccountDatabasesError {
146 Status400(models::GetFinances400Response),
147 Status401(models::GetFinances401Response),
148 Status429(models::GetFinances429Response),
149 Status500(models::GetFinances500Response),
150 UnknownValue(serde_json::Value)
151}
152
153#[derive(Debug, Clone, Serialize, Deserialize)]
155#[serde(untagged)]
156pub enum GetAccountDedicatedServersError {
157 Status400(models::GetFinances400Response),
158 Status401(models::GetFinances401Response),
159 Status429(models::GetFinances429Response),
160 Status500(models::GetFinances500Response),
161 UnknownValue(serde_json::Value)
162}
163
164#[derive(Debug, Clone, Serialize, Deserialize)]
166#[serde(untagged)]
167pub enum GetAccountServersError {
168 Status400(models::GetFinances400Response),
169 Status401(models::GetFinances401Response),
170 Status429(models::GetFinances429Response),
171 Status500(models::GetFinances500Response),
172 UnknownValue(serde_json::Value)
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
177#[serde(untagged)]
178pub enum GetAccountStoragesError {
179 Status400(models::GetFinances400Response),
180 Status401(models::GetFinances401Response),
181 Status429(models::GetFinances429Response),
182 Status500(models::GetFinances500Response),
183 UnknownValue(serde_json::Value)
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(untagged)]
189pub enum GetAllProjectResourcesError {
190 Status400(models::GetFinances400Response),
191 Status401(models::GetFinances401Response),
192 Status403(models::GetAccountStatus403Response),
193 Status404(models::GetImage404Response),
194 Status429(models::GetFinances429Response),
195 Status500(models::GetFinances500Response),
196 UnknownValue(serde_json::Value)
197}
198
199#[derive(Debug, Clone, Serialize, Deserialize)]
201#[serde(untagged)]
202pub enum GetProjectError {
203 Status400(models::GetFinances400Response),
204 Status401(models::GetFinances401Response),
205 Status403(models::GetAccountStatus403Response),
206 Status404(models::GetImage404Response),
207 Status429(models::GetFinances429Response),
208 Status500(models::GetFinances500Response),
209 UnknownValue(serde_json::Value)
210}
211
212#[derive(Debug, Clone, Serialize, Deserialize)]
214#[serde(untagged)]
215pub enum GetProjectBalancersError {
216 Status400(models::GetFinances400Response),
217 Status401(models::GetFinances401Response),
218 Status403(models::GetAccountStatus403Response),
219 Status404(models::GetImage404Response),
220 Status429(models::GetFinances429Response),
221 Status500(models::GetFinances500Response),
222 UnknownValue(serde_json::Value)
223}
224
225#[derive(Debug, Clone, Serialize, Deserialize)]
227#[serde(untagged)]
228pub enum GetProjectClustersError {
229 Status400(models::GetFinances400Response),
230 Status401(models::GetFinances401Response),
231 Status403(models::GetAccountStatus403Response),
232 Status404(models::GetImage404Response),
233 Status429(models::GetFinances429Response),
234 Status500(models::GetFinances500Response),
235 UnknownValue(serde_json::Value)
236}
237
238#[derive(Debug, Clone, Serialize, Deserialize)]
240#[serde(untagged)]
241pub enum GetProjectDatabasesError {
242 Status400(models::GetFinances400Response),
243 Status401(models::GetFinances401Response),
244 Status403(models::GetAccountStatus403Response),
245 Status404(models::GetImage404Response),
246 Status429(models::GetFinances429Response),
247 Status500(models::GetFinances500Response),
248 UnknownValue(serde_json::Value)
249}
250
251#[derive(Debug, Clone, Serialize, Deserialize)]
253#[serde(untagged)]
254pub enum GetProjectDedicatedServersError {
255 Status400(models::GetFinances400Response),
256 Status401(models::GetFinances401Response),
257 Status403(models::GetAccountStatus403Response),
258 Status404(models::GetImage404Response),
259 Status429(models::GetFinances429Response),
260 Status500(models::GetFinances500Response),
261 UnknownValue(serde_json::Value)
262}
263
264#[derive(Debug, Clone, Serialize, Deserialize)]
266#[serde(untagged)]
267pub enum GetProjectServersError {
268 Status400(models::GetFinances400Response),
269 Status401(models::GetFinances401Response),
270 Status403(models::GetAccountStatus403Response),
271 Status404(models::GetImage404Response),
272 Status429(models::GetFinances429Response),
273 Status500(models::GetFinances500Response),
274 UnknownValue(serde_json::Value)
275}
276
277#[derive(Debug, Clone, Serialize, Deserialize)]
279#[serde(untagged)]
280pub enum GetProjectStoragesError {
281 Status400(models::GetFinances400Response),
282 Status401(models::GetFinances401Response),
283 Status403(models::GetAccountStatus403Response),
284 Status404(models::GetImage404Response),
285 Status429(models::GetFinances429Response),
286 Status500(models::GetFinances500Response),
287 UnknownValue(serde_json::Value)
288}
289
290#[derive(Debug, Clone, Serialize, Deserialize)]
292#[serde(untagged)]
293pub enum GetProjectsError {
294 Status400(models::GetFinances400Response),
295 Status401(models::GetFinances401Response),
296 Status429(models::GetFinances429Response),
297 Status500(models::GetFinances500Response),
298 UnknownValue(serde_json::Value)
299}
300
301#[derive(Debug, Clone, Serialize, Deserialize)]
303#[serde(untagged)]
304pub enum TransferResourceToAnotherProjectError {
305 Status400(models::GetFinances400Response),
306 Status401(models::GetFinances401Response),
307 Status403(models::GetAccountStatus403Response),
308 Status404(models::GetImage404Response),
309 Status429(models::GetFinances429Response),
310 Status500(models::GetFinances500Response),
311 UnknownValue(serde_json::Value)
312}
313
314#[derive(Debug, Clone, Serialize, Deserialize)]
316#[serde(untagged)]
317pub enum UpdateProjectError {
318 Status400(models::GetFinances400Response),
319 Status401(models::GetFinances401Response),
320 Status403(models::GetAccountStatus403Response),
321 Status404(models::GetImage404Response),
322 Status429(models::GetFinances429Response),
323 Status500(models::GetFinances500Response),
324 UnknownValue(serde_json::Value)
325}
326
327pub async fn add_balancer_to_project(
332 configuration: &configuration::Configuration,
333 project_id: i32,
334 add_balancer_to_project_request: models::AddBalancerToProjectRequest
335) -> Result<models::AddBalancerToProject200Response, Error<AddBalancerToProjectError>> {
336 let p_path_project_id = project_id;
338 let p_body_add_balancer_to_project_request = add_balancer_to_project_request;
339
340 let uri_str = format!(
341 "{}/api/v1/projects/{project_id}/resources/balancers",
342 configuration.base_path,
343 project_id = p_path_project_id
344 );
345 let mut req_builder = configuration
346 .client
347 .request(reqwest::Method::POST, &uri_str);
348
349 if let Some(ref user_agent) = configuration.user_agent {
350 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
351 }
352 if let Some(ref token) = configuration.bearer_access_token {
353 req_builder = req_builder.bearer_auth(token.to_owned());
354 };
355 req_builder = req_builder.json(&p_body_add_balancer_to_project_request);
356
357 let req = req_builder.build()?;
358 let resp = configuration.client.execute(req).await?;
359
360 let status = resp.status();
361 let content_type = resp
362 .headers()
363 .get("content-type")
364 .and_then(|v| v.to_str().ok())
365 .unwrap_or("application/octet-stream");
366 let content_type = super::ContentType::from(content_type);
367
368 if !status.is_client_error() && !status.is_server_error() {
369 let content = resp.text().await?;
370 match content_type {
371 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
372 ContentType::Text => {
373 return Err(Error::from(serde_json::Error::custom(
374 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
375 )));
376 }
377 ContentType::Unsupported(unknown_type) => {
378 return Err(Error::from(serde_json::Error::custom(format!(
379 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
380 ))));
381 }
382 }
383 } else {
384 let content = resp.text().await?;
385 let entity: Option<AddBalancerToProjectError> = serde_json::from_str(&content).ok();
386 Err(Error::ResponseError(ResponseContent {
387 status,
388 content,
389 entity
390 }))
391 }
392}
393
394pub async fn add_cluster_to_project(
399 configuration: &configuration::Configuration,
400 project_id: i32,
401 add_cluster_to_project_request: models::AddClusterToProjectRequest
402) -> Result<models::AddBalancerToProject200Response, Error<AddClusterToProjectError>> {
403 let p_path_project_id = project_id;
405 let p_body_add_cluster_to_project_request = add_cluster_to_project_request;
406
407 let uri_str = format!(
408 "{}/api/v1/projects/{project_id}/resources/clusters",
409 configuration.base_path,
410 project_id = p_path_project_id
411 );
412 let mut req_builder = configuration
413 .client
414 .request(reqwest::Method::POST, &uri_str);
415
416 if let Some(ref user_agent) = configuration.user_agent {
417 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
418 }
419 if let Some(ref token) = configuration.bearer_access_token {
420 req_builder = req_builder.bearer_auth(token.to_owned());
421 };
422 req_builder = req_builder.json(&p_body_add_cluster_to_project_request);
423
424 let req = req_builder.build()?;
425 let resp = configuration.client.execute(req).await?;
426
427 let status = resp.status();
428 let content_type = resp
429 .headers()
430 .get("content-type")
431 .and_then(|v| v.to_str().ok())
432 .unwrap_or("application/octet-stream");
433 let content_type = super::ContentType::from(content_type);
434
435 if !status.is_client_error() && !status.is_server_error() {
436 let content = resp.text().await?;
437 match content_type {
438 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
439 ContentType::Text => {
440 return Err(Error::from(serde_json::Error::custom(
441 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
442 )));
443 }
444 ContentType::Unsupported(unknown_type) => {
445 return Err(Error::from(serde_json::Error::custom(format!(
446 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
447 ))));
448 }
449 }
450 } else {
451 let content = resp.text().await?;
452 let entity: Option<AddClusterToProjectError> = serde_json::from_str(&content).ok();
453 Err(Error::ResponseError(ResponseContent {
454 status,
455 content,
456 entity
457 }))
458 }
459}
460
461pub async fn add_database_to_project(
466 configuration: &configuration::Configuration,
467 project_id: i32,
468 add_database_to_project_request: models::AddDatabaseToProjectRequest
469) -> Result<models::AddBalancerToProject200Response, Error<AddDatabaseToProjectError>> {
470 let p_path_project_id = project_id;
472 let p_body_add_database_to_project_request = add_database_to_project_request;
473
474 let uri_str = format!(
475 "{}/api/v1/projects/{project_id}/resources/databases",
476 configuration.base_path,
477 project_id = p_path_project_id
478 );
479 let mut req_builder = configuration
480 .client
481 .request(reqwest::Method::POST, &uri_str);
482
483 if let Some(ref user_agent) = configuration.user_agent {
484 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
485 }
486 if let Some(ref token) = configuration.bearer_access_token {
487 req_builder = req_builder.bearer_auth(token.to_owned());
488 };
489 req_builder = req_builder.json(&p_body_add_database_to_project_request);
490
491 let req = req_builder.build()?;
492 let resp = configuration.client.execute(req).await?;
493
494 let status = resp.status();
495 let content_type = resp
496 .headers()
497 .get("content-type")
498 .and_then(|v| v.to_str().ok())
499 .unwrap_or("application/octet-stream");
500 let content_type = super::ContentType::from(content_type);
501
502 if !status.is_client_error() && !status.is_server_error() {
503 let content = resp.text().await?;
504 match content_type {
505 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
506 ContentType::Text => {
507 return Err(Error::from(serde_json::Error::custom(
508 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
509 )));
510 }
511 ContentType::Unsupported(unknown_type) => {
512 return Err(Error::from(serde_json::Error::custom(format!(
513 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
514 ))));
515 }
516 }
517 } else {
518 let content = resp.text().await?;
519 let entity: Option<AddDatabaseToProjectError> = serde_json::from_str(&content).ok();
520 Err(Error::ResponseError(ResponseContent {
521 status,
522 content,
523 entity
524 }))
525 }
526}
527
528pub async fn add_dedicated_server_to_project(
533 configuration: &configuration::Configuration,
534 project_id: i32,
535 add_dedicated_server_to_project_request: models::AddDedicatedServerToProjectRequest
536) -> Result<models::AddBalancerToProject200Response, Error<AddDedicatedServerToProjectError>> {
537 let p_path_project_id = project_id;
539 let p_body_add_dedicated_server_to_project_request = add_dedicated_server_to_project_request;
540
541 let uri_str = format!(
542 "{}/api/v1/projects/{project_id}/resources/dedicated",
543 configuration.base_path,
544 project_id = p_path_project_id
545 );
546 let mut req_builder = configuration
547 .client
548 .request(reqwest::Method::POST, &uri_str);
549
550 if let Some(ref user_agent) = configuration.user_agent {
551 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
552 }
553 if let Some(ref token) = configuration.bearer_access_token {
554 req_builder = req_builder.bearer_auth(token.to_owned());
555 };
556 req_builder = req_builder.json(&p_body_add_dedicated_server_to_project_request);
557
558 let req = req_builder.build()?;
559 let resp = configuration.client.execute(req).await?;
560
561 let status = resp.status();
562 let content_type = resp
563 .headers()
564 .get("content-type")
565 .and_then(|v| v.to_str().ok())
566 .unwrap_or("application/octet-stream");
567 let content_type = super::ContentType::from(content_type);
568
569 if !status.is_client_error() && !status.is_server_error() {
570 let content = resp.text().await?;
571 match content_type {
572 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
573 ContentType::Text => {
574 return Err(Error::from(serde_json::Error::custom(
575 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
576 )));
577 }
578 ContentType::Unsupported(unknown_type) => {
579 return Err(Error::from(serde_json::Error::custom(format!(
580 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
581 ))));
582 }
583 }
584 } else {
585 let content = resp.text().await?;
586 let entity: Option<AddDedicatedServerToProjectError> = serde_json::from_str(&content).ok();
587 Err(Error::ResponseError(ResponseContent {
588 status,
589 content,
590 entity
591 }))
592 }
593}
594
595pub async fn add_server_to_project(
600 configuration: &configuration::Configuration,
601 project_id: i32,
602 add_server_to_project_request: models::AddServerToProjectRequest
603) -> Result<models::AddBalancerToProject200Response, Error<AddServerToProjectError>> {
604 let p_path_project_id = project_id;
606 let p_body_add_server_to_project_request = add_server_to_project_request;
607
608 let uri_str = format!(
609 "{}/api/v1/projects/{project_id}/resources/servers",
610 configuration.base_path,
611 project_id = p_path_project_id
612 );
613 let mut req_builder = configuration
614 .client
615 .request(reqwest::Method::POST, &uri_str);
616
617 if let Some(ref user_agent) = configuration.user_agent {
618 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
619 }
620 if let Some(ref token) = configuration.bearer_access_token {
621 req_builder = req_builder.bearer_auth(token.to_owned());
622 };
623 req_builder = req_builder.json(&p_body_add_server_to_project_request);
624
625 let req = req_builder.build()?;
626 let resp = configuration.client.execute(req).await?;
627
628 let status = resp.status();
629 let content_type = resp
630 .headers()
631 .get("content-type")
632 .and_then(|v| v.to_str().ok())
633 .unwrap_or("application/octet-stream");
634 let content_type = super::ContentType::from(content_type);
635
636 if !status.is_client_error() && !status.is_server_error() {
637 let content = resp.text().await?;
638 match content_type {
639 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
640 ContentType::Text => {
641 return Err(Error::from(serde_json::Error::custom(
642 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
643 )));
644 }
645 ContentType::Unsupported(unknown_type) => {
646 return Err(Error::from(serde_json::Error::custom(format!(
647 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
648 ))));
649 }
650 }
651 } else {
652 let content = resp.text().await?;
653 let entity: Option<AddServerToProjectError> = serde_json::from_str(&content).ok();
654 Err(Error::ResponseError(ResponseContent {
655 status,
656 content,
657 entity
658 }))
659 }
660}
661
662pub async fn add_storage_to_project(
667 configuration: &configuration::Configuration,
668 project_id: i32,
669 add_storage_to_project_request: models::AddStorageToProjectRequest
670) -> Result<models::AddBalancerToProject200Response, Error<AddStorageToProjectError>> {
671 let p_path_project_id = project_id;
673 let p_body_add_storage_to_project_request = add_storage_to_project_request;
674
675 let uri_str = format!(
676 "{}/api/v1/projects/{project_id}/resources/buckets",
677 configuration.base_path,
678 project_id = p_path_project_id
679 );
680 let mut req_builder = configuration
681 .client
682 .request(reqwest::Method::POST, &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 token) = configuration.bearer_access_token {
688 req_builder = req_builder.bearer_auth(token.to_owned());
689 };
690 req_builder = req_builder.json(&p_body_add_storage_to_project_request);
691
692 let req = req_builder.build()?;
693 let resp = configuration.client.execute(req).await?;
694
695 let status = resp.status();
696 let content_type = resp
697 .headers()
698 .get("content-type")
699 .and_then(|v| v.to_str().ok())
700 .unwrap_or("application/octet-stream");
701 let content_type = super::ContentType::from(content_type);
702
703 if !status.is_client_error() && !status.is_server_error() {
704 let content = resp.text().await?;
705 match content_type {
706 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
707 ContentType::Text => {
708 return Err(Error::from(serde_json::Error::custom(
709 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
710 )));
711 }
712 ContentType::Unsupported(unknown_type) => {
713 return Err(Error::from(serde_json::Error::custom(format!(
714 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
715 ))));
716 }
717 }
718 } else {
719 let content = resp.text().await?;
720 let entity: Option<AddStorageToProjectError> = serde_json::from_str(&content).ok();
721 Err(Error::ResponseError(ResponseContent {
722 status,
723 content,
724 entity
725 }))
726 }
727}
728
729pub async fn create_project(
734 configuration: &configuration::Configuration,
735 create_project: models::CreateProject
736) -> Result<models::CreateProject201Response, Error<CreateProjectError>> {
737 let p_body_create_project = create_project;
739
740 let uri_str = format!("{}/api/v1/projects", configuration.base_path);
741 let mut req_builder = configuration
742 .client
743 .request(reqwest::Method::POST, &uri_str);
744
745 if let Some(ref user_agent) = configuration.user_agent {
746 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
747 }
748 if let Some(ref token) = configuration.bearer_access_token {
749 req_builder = req_builder.bearer_auth(token.to_owned());
750 };
751 req_builder = req_builder.json(&p_body_create_project);
752
753 let req = req_builder.build()?;
754 let resp = configuration.client.execute(req).await?;
755
756 let status = resp.status();
757 let content_type = resp
758 .headers()
759 .get("content-type")
760 .and_then(|v| v.to_str().ok())
761 .unwrap_or("application/octet-stream");
762 let content_type = super::ContentType::from(content_type);
763
764 if !status.is_client_error() && !status.is_server_error() {
765 let content = resp.text().await?;
766 match content_type {
767 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
768 ContentType::Text => {
769 return Err(Error::from(serde_json::Error::custom(
770 "Received `text/plain` content type response that cannot be converted to `models::CreateProject201Response`"
771 )));
772 }
773 ContentType::Unsupported(unknown_type) => {
774 return Err(Error::from(serde_json::Error::custom(format!(
775 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateProject201Response`"
776 ))));
777 }
778 }
779 } else {
780 let content = resp.text().await?;
781 let entity: Option<CreateProjectError> = serde_json::from_str(&content).ok();
782 Err(Error::ResponseError(ResponseContent {
783 status,
784 content,
785 entity
786 }))
787 }
788}
789
790pub async fn delete_project(
793 configuration: &configuration::Configuration,
794 project_id: i32
795) -> Result<(), Error<DeleteProjectError>> {
796 let p_path_project_id = project_id;
798
799 let uri_str = format!(
800 "{}/api/v1/projects/{project_id}",
801 configuration.base_path,
802 project_id = p_path_project_id
803 );
804 let mut req_builder = configuration
805 .client
806 .request(reqwest::Method::DELETE, &uri_str);
807
808 if let Some(ref user_agent) = configuration.user_agent {
809 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
810 }
811 if let Some(ref token) = configuration.bearer_access_token {
812 req_builder = req_builder.bearer_auth(token.to_owned());
813 };
814
815 let req = req_builder.build()?;
816 let resp = configuration.client.execute(req).await?;
817
818 let status = resp.status();
819
820 if !status.is_client_error() && !status.is_server_error() {
821 Ok(())
822 } else {
823 let content = resp.text().await?;
824 let entity: Option<DeleteProjectError> = serde_json::from_str(&content).ok();
825 Err(Error::ResponseError(ResponseContent {
826 status,
827 content,
828 entity
829 }))
830 }
831}
832
833pub async fn get_account_balancers(
836 configuration: &configuration::Configuration
837) -> Result<models::GetProjectBalancers200Response, Error<GetAccountBalancersError>> {
838 let uri_str = format!(
839 "{}/api/v1/projects/resources/balancers",
840 configuration.base_path
841 );
842 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
843
844 if let Some(ref user_agent) = configuration.user_agent {
845 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
846 }
847 if let Some(ref token) = configuration.bearer_access_token {
848 req_builder = req_builder.bearer_auth(token.to_owned());
849 };
850
851 let req = req_builder.build()?;
852 let resp = configuration.client.execute(req).await?;
853
854 let status = resp.status();
855 let content_type = resp
856 .headers()
857 .get("content-type")
858 .and_then(|v| v.to_str().ok())
859 .unwrap_or("application/octet-stream");
860 let content_type = super::ContentType::from(content_type);
861
862 if !status.is_client_error() && !status.is_server_error() {
863 let content = resp.text().await?;
864 match content_type {
865 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
866 ContentType::Text => {
867 return Err(Error::from(serde_json::Error::custom(
868 "Received `text/plain` content type response that cannot be converted to `models::GetProjectBalancers200Response`"
869 )));
870 }
871 ContentType::Unsupported(unknown_type) => {
872 return Err(Error::from(serde_json::Error::custom(format!(
873 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectBalancers200Response`"
874 ))));
875 }
876 }
877 } else {
878 let content = resp.text().await?;
879 let entity: Option<GetAccountBalancersError> = serde_json::from_str(&content).ok();
880 Err(Error::ResponseError(ResponseContent {
881 status,
882 content,
883 entity
884 }))
885 }
886}
887
888pub async fn get_account_clusters(
891 configuration: &configuration::Configuration
892) -> Result<models::GetProjectClusters200Response, Error<GetAccountClustersError>> {
893 let uri_str = format!(
894 "{}/api/v1/projects/resources/clusters",
895 configuration.base_path
896 );
897 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
898
899 if let Some(ref user_agent) = configuration.user_agent {
900 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
901 }
902 if let Some(ref token) = configuration.bearer_access_token {
903 req_builder = req_builder.bearer_auth(token.to_owned());
904 };
905
906 let req = req_builder.build()?;
907 let resp = configuration.client.execute(req).await?;
908
909 let status = resp.status();
910 let content_type = resp
911 .headers()
912 .get("content-type")
913 .and_then(|v| v.to_str().ok())
914 .unwrap_or("application/octet-stream");
915 let content_type = super::ContentType::from(content_type);
916
917 if !status.is_client_error() && !status.is_server_error() {
918 let content = resp.text().await?;
919 match content_type {
920 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
921 ContentType::Text => {
922 return Err(Error::from(serde_json::Error::custom(
923 "Received `text/plain` content type response that cannot be converted to `models::GetProjectClusters200Response`"
924 )));
925 }
926 ContentType::Unsupported(unknown_type) => {
927 return Err(Error::from(serde_json::Error::custom(format!(
928 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectClusters200Response`"
929 ))));
930 }
931 }
932 } else {
933 let content = resp.text().await?;
934 let entity: Option<GetAccountClustersError> = serde_json::from_str(&content).ok();
935 Err(Error::ResponseError(ResponseContent {
936 status,
937 content,
938 entity
939 }))
940 }
941}
942
943pub async fn get_account_databases(
946 configuration: &configuration::Configuration
947) -> Result<models::GetProjectDatabases200Response, Error<GetAccountDatabasesError>> {
948 let uri_str = format!(
949 "{}/api/v1/projects/resources/databases",
950 configuration.base_path
951 );
952 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
953
954 if let Some(ref user_agent) = configuration.user_agent {
955 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
956 }
957 if let Some(ref token) = configuration.bearer_access_token {
958 req_builder = req_builder.bearer_auth(token.to_owned());
959 };
960
961 let req = req_builder.build()?;
962 let resp = configuration.client.execute(req).await?;
963
964 let status = resp.status();
965 let content_type = resp
966 .headers()
967 .get("content-type")
968 .and_then(|v| v.to_str().ok())
969 .unwrap_or("application/octet-stream");
970 let content_type = super::ContentType::from(content_type);
971
972 if !status.is_client_error() && !status.is_server_error() {
973 let content = resp.text().await?;
974 match content_type {
975 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
976 ContentType::Text => {
977 return Err(Error::from(serde_json::Error::custom(
978 "Received `text/plain` content type response that cannot be converted to `models::GetProjectDatabases200Response`"
979 )));
980 }
981 ContentType::Unsupported(unknown_type) => {
982 return Err(Error::from(serde_json::Error::custom(format!(
983 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectDatabases200Response`"
984 ))));
985 }
986 }
987 } else {
988 let content = resp.text().await?;
989 let entity: Option<GetAccountDatabasesError> = serde_json::from_str(&content).ok();
990 Err(Error::ResponseError(ResponseContent {
991 status,
992 content,
993 entity
994 }))
995 }
996}
997
998pub async fn get_account_dedicated_servers(
1001 configuration: &configuration::Configuration
1002) -> Result<models::GetProjectDedicatedServers200Response, Error<GetAccountDedicatedServersError>>
1003{
1004 let uri_str = format!(
1005 "{}/api/v1/projects/resources/dedicated",
1006 configuration.base_path
1007 );
1008 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1009
1010 if let Some(ref user_agent) = configuration.user_agent {
1011 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1012 }
1013 if let Some(ref token) = configuration.bearer_access_token {
1014 req_builder = req_builder.bearer_auth(token.to_owned());
1015 };
1016
1017 let req = req_builder.build()?;
1018 let resp = configuration.client.execute(req).await?;
1019
1020 let status = resp.status();
1021 let content_type = resp
1022 .headers()
1023 .get("content-type")
1024 .and_then(|v| v.to_str().ok())
1025 .unwrap_or("application/octet-stream");
1026 let content_type = super::ContentType::from(content_type);
1027
1028 if !status.is_client_error() && !status.is_server_error() {
1029 let content = resp.text().await?;
1030 match content_type {
1031 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1032 ContentType::Text => {
1033 return Err(Error::from(serde_json::Error::custom(
1034 "Received `text/plain` content type response that cannot be converted to `models::GetProjectDedicatedServers200Response`"
1035 )));
1036 }
1037 ContentType::Unsupported(unknown_type) => {
1038 return Err(Error::from(serde_json::Error::custom(format!(
1039 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectDedicatedServers200Response`"
1040 ))));
1041 }
1042 }
1043 } else {
1044 let content = resp.text().await?;
1045 let entity: Option<GetAccountDedicatedServersError> = serde_json::from_str(&content).ok();
1046 Err(Error::ResponseError(ResponseContent {
1047 status,
1048 content,
1049 entity
1050 }))
1051 }
1052}
1053
1054pub async fn get_account_servers(
1057 configuration: &configuration::Configuration
1058) -> Result<models::GetProjectServers200Response, Error<GetAccountServersError>> {
1059 let uri_str = format!(
1060 "{}/api/v1/projects/resources/servers",
1061 configuration.base_path
1062 );
1063 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1064
1065 if let Some(ref user_agent) = configuration.user_agent {
1066 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1067 }
1068 if let Some(ref token) = configuration.bearer_access_token {
1069 req_builder = req_builder.bearer_auth(token.to_owned());
1070 };
1071
1072 let req = req_builder.build()?;
1073 let resp = configuration.client.execute(req).await?;
1074
1075 let status = resp.status();
1076 let content_type = resp
1077 .headers()
1078 .get("content-type")
1079 .and_then(|v| v.to_str().ok())
1080 .unwrap_or("application/octet-stream");
1081 let content_type = super::ContentType::from(content_type);
1082
1083 if !status.is_client_error() && !status.is_server_error() {
1084 let content = resp.text().await?;
1085 match content_type {
1086 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1087 ContentType::Text => {
1088 return Err(Error::from(serde_json::Error::custom(
1089 "Received `text/plain` content type response that cannot be converted to `models::GetProjectServers200Response`"
1090 )));
1091 }
1092 ContentType::Unsupported(unknown_type) => {
1093 return Err(Error::from(serde_json::Error::custom(format!(
1094 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectServers200Response`"
1095 ))));
1096 }
1097 }
1098 } else {
1099 let content = resp.text().await?;
1100 let entity: Option<GetAccountServersError> = serde_json::from_str(&content).ok();
1101 Err(Error::ResponseError(ResponseContent {
1102 status,
1103 content,
1104 entity
1105 }))
1106 }
1107}
1108
1109pub async fn get_account_storages(
1112 configuration: &configuration::Configuration
1113) -> Result<models::GetProjectStorages200Response, Error<GetAccountStoragesError>> {
1114 let uri_str = format!(
1115 "{}/api/v1/projects/resources/buckets",
1116 configuration.base_path
1117 );
1118 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1119
1120 if let Some(ref user_agent) = configuration.user_agent {
1121 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1122 }
1123 if let Some(ref token) = configuration.bearer_access_token {
1124 req_builder = req_builder.bearer_auth(token.to_owned());
1125 };
1126
1127 let req = req_builder.build()?;
1128 let resp = configuration.client.execute(req).await?;
1129
1130 let status = resp.status();
1131 let content_type = resp
1132 .headers()
1133 .get("content-type")
1134 .and_then(|v| v.to_str().ok())
1135 .unwrap_or("application/octet-stream");
1136 let content_type = super::ContentType::from(content_type);
1137
1138 if !status.is_client_error() && !status.is_server_error() {
1139 let content = resp.text().await?;
1140 match content_type {
1141 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1142 ContentType::Text => {
1143 return Err(Error::from(serde_json::Error::custom(
1144 "Received `text/plain` content type response that cannot be converted to `models::GetProjectStorages200Response`"
1145 )));
1146 }
1147 ContentType::Unsupported(unknown_type) => {
1148 return Err(Error::from(serde_json::Error::custom(format!(
1149 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectStorages200Response`"
1150 ))));
1151 }
1152 }
1153 } else {
1154 let content = resp.text().await?;
1155 let entity: Option<GetAccountStoragesError> = serde_json::from_str(&content).ok();
1156 Err(Error::ResponseError(ResponseContent {
1157 status,
1158 content,
1159 entity
1160 }))
1161 }
1162}
1163
1164pub async fn get_all_project_resources(
1167 configuration: &configuration::Configuration,
1168 project_id: i32
1169) -> Result<models::GetAllProjectResources200Response, Error<GetAllProjectResourcesError>> {
1170 let p_path_project_id = project_id;
1172
1173 let uri_str = format!(
1174 "{}/api/v1/projects/{project_id}/resources",
1175 configuration.base_path,
1176 project_id = p_path_project_id
1177 );
1178 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1179
1180 if let Some(ref user_agent) = configuration.user_agent {
1181 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1182 }
1183 if let Some(ref token) = configuration.bearer_access_token {
1184 req_builder = req_builder.bearer_auth(token.to_owned());
1185 };
1186
1187 let req = req_builder.build()?;
1188 let resp = configuration.client.execute(req).await?;
1189
1190 let status = resp.status();
1191 let content_type = resp
1192 .headers()
1193 .get("content-type")
1194 .and_then(|v| v.to_str().ok())
1195 .unwrap_or("application/octet-stream");
1196 let content_type = super::ContentType::from(content_type);
1197
1198 if !status.is_client_error() && !status.is_server_error() {
1199 let content = resp.text().await?;
1200 match content_type {
1201 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1202 ContentType::Text => {
1203 return Err(Error::from(serde_json::Error::custom(
1204 "Received `text/plain` content type response that cannot be converted to `models::GetAllProjectResources200Response`"
1205 )));
1206 }
1207 ContentType::Unsupported(unknown_type) => {
1208 return Err(Error::from(serde_json::Error::custom(format!(
1209 "Received `{unknown_type}` content type response that cannot be converted to `models::GetAllProjectResources200Response`"
1210 ))));
1211 }
1212 }
1213 } else {
1214 let content = resp.text().await?;
1215 let entity: Option<GetAllProjectResourcesError> = serde_json::from_str(&content).ok();
1216 Err(Error::ResponseError(ResponseContent {
1217 status,
1218 content,
1219 entity
1220 }))
1221 }
1222}
1223
1224pub async fn get_project(
1227 configuration: &configuration::Configuration,
1228 project_id: i32
1229) -> Result<models::CreateProject201Response, Error<GetProjectError>> {
1230 let p_path_project_id = project_id;
1232
1233 let uri_str = format!(
1234 "{}/api/v1/projects/{project_id}",
1235 configuration.base_path,
1236 project_id = p_path_project_id
1237 );
1238 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1239
1240 if let Some(ref user_agent) = configuration.user_agent {
1241 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1242 }
1243 if let Some(ref token) = configuration.bearer_access_token {
1244 req_builder = req_builder.bearer_auth(token.to_owned());
1245 };
1246
1247 let req = req_builder.build()?;
1248 let resp = configuration.client.execute(req).await?;
1249
1250 let status = resp.status();
1251 let content_type = resp
1252 .headers()
1253 .get("content-type")
1254 .and_then(|v| v.to_str().ok())
1255 .unwrap_or("application/octet-stream");
1256 let content_type = super::ContentType::from(content_type);
1257
1258 if !status.is_client_error() && !status.is_server_error() {
1259 let content = resp.text().await?;
1260 match content_type {
1261 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1262 ContentType::Text => {
1263 return Err(Error::from(serde_json::Error::custom(
1264 "Received `text/plain` content type response that cannot be converted to `models::CreateProject201Response`"
1265 )));
1266 }
1267 ContentType::Unsupported(unknown_type) => {
1268 return Err(Error::from(serde_json::Error::custom(format!(
1269 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateProject201Response`"
1270 ))));
1271 }
1272 }
1273 } else {
1274 let content = resp.text().await?;
1275 let entity: Option<GetProjectError> = serde_json::from_str(&content).ok();
1276 Err(Error::ResponseError(ResponseContent {
1277 status,
1278 content,
1279 entity
1280 }))
1281 }
1282}
1283
1284pub async fn get_project_balancers(
1287 configuration: &configuration::Configuration,
1288 project_id: i32
1289) -> Result<models::GetProjectBalancers200Response, Error<GetProjectBalancersError>> {
1290 let p_path_project_id = project_id;
1292
1293 let uri_str = format!(
1294 "{}/api/v1/projects/{project_id}/resources/balancers",
1295 configuration.base_path,
1296 project_id = p_path_project_id
1297 );
1298 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1299
1300 if let Some(ref user_agent) = configuration.user_agent {
1301 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1302 }
1303 if let Some(ref token) = configuration.bearer_access_token {
1304 req_builder = req_builder.bearer_auth(token.to_owned());
1305 };
1306
1307 let req = req_builder.build()?;
1308 let resp = configuration.client.execute(req).await?;
1309
1310 let status = resp.status();
1311 let content_type = resp
1312 .headers()
1313 .get("content-type")
1314 .and_then(|v| v.to_str().ok())
1315 .unwrap_or("application/octet-stream");
1316 let content_type = super::ContentType::from(content_type);
1317
1318 if !status.is_client_error() && !status.is_server_error() {
1319 let content = resp.text().await?;
1320 match content_type {
1321 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1322 ContentType::Text => {
1323 return Err(Error::from(serde_json::Error::custom(
1324 "Received `text/plain` content type response that cannot be converted to `models::GetProjectBalancers200Response`"
1325 )));
1326 }
1327 ContentType::Unsupported(unknown_type) => {
1328 return Err(Error::from(serde_json::Error::custom(format!(
1329 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectBalancers200Response`"
1330 ))));
1331 }
1332 }
1333 } else {
1334 let content = resp.text().await?;
1335 let entity: Option<GetProjectBalancersError> = serde_json::from_str(&content).ok();
1336 Err(Error::ResponseError(ResponseContent {
1337 status,
1338 content,
1339 entity
1340 }))
1341 }
1342}
1343
1344pub async fn get_project_clusters(
1347 configuration: &configuration::Configuration,
1348 project_id: i32
1349) -> Result<models::GetProjectClusters200Response, Error<GetProjectClustersError>> {
1350 let p_path_project_id = project_id;
1352
1353 let uri_str = format!(
1354 "{}/api/v1/projects/{project_id}/resources/clusters",
1355 configuration.base_path,
1356 project_id = p_path_project_id
1357 );
1358 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1359
1360 if let Some(ref user_agent) = configuration.user_agent {
1361 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1362 }
1363 if let Some(ref token) = configuration.bearer_access_token {
1364 req_builder = req_builder.bearer_auth(token.to_owned());
1365 };
1366
1367 let req = req_builder.build()?;
1368 let resp = configuration.client.execute(req).await?;
1369
1370 let status = resp.status();
1371 let content_type = resp
1372 .headers()
1373 .get("content-type")
1374 .and_then(|v| v.to_str().ok())
1375 .unwrap_or("application/octet-stream");
1376 let content_type = super::ContentType::from(content_type);
1377
1378 if !status.is_client_error() && !status.is_server_error() {
1379 let content = resp.text().await?;
1380 match content_type {
1381 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1382 ContentType::Text => {
1383 return Err(Error::from(serde_json::Error::custom(
1384 "Received `text/plain` content type response that cannot be converted to `models::GetProjectClusters200Response`"
1385 )));
1386 }
1387 ContentType::Unsupported(unknown_type) => {
1388 return Err(Error::from(serde_json::Error::custom(format!(
1389 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectClusters200Response`"
1390 ))));
1391 }
1392 }
1393 } else {
1394 let content = resp.text().await?;
1395 let entity: Option<GetProjectClustersError> = serde_json::from_str(&content).ok();
1396 Err(Error::ResponseError(ResponseContent {
1397 status,
1398 content,
1399 entity
1400 }))
1401 }
1402}
1403
1404pub async fn get_project_databases(
1407 configuration: &configuration::Configuration,
1408 project_id: i32
1409) -> Result<models::GetProjectDatabases200Response, Error<GetProjectDatabasesError>> {
1410 let p_path_project_id = project_id;
1412
1413 let uri_str = format!(
1414 "{}/api/v1/projects/{project_id}/resources/databases",
1415 configuration.base_path,
1416 project_id = p_path_project_id
1417 );
1418 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1419
1420 if let Some(ref user_agent) = configuration.user_agent {
1421 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1422 }
1423 if let Some(ref token) = configuration.bearer_access_token {
1424 req_builder = req_builder.bearer_auth(token.to_owned());
1425 };
1426
1427 let req = req_builder.build()?;
1428 let resp = configuration.client.execute(req).await?;
1429
1430 let status = resp.status();
1431 let content_type = resp
1432 .headers()
1433 .get("content-type")
1434 .and_then(|v| v.to_str().ok())
1435 .unwrap_or("application/octet-stream");
1436 let content_type = super::ContentType::from(content_type);
1437
1438 if !status.is_client_error() && !status.is_server_error() {
1439 let content = resp.text().await?;
1440 match content_type {
1441 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1442 ContentType::Text => {
1443 return Err(Error::from(serde_json::Error::custom(
1444 "Received `text/plain` content type response that cannot be converted to `models::GetProjectDatabases200Response`"
1445 )));
1446 }
1447 ContentType::Unsupported(unknown_type) => {
1448 return Err(Error::from(serde_json::Error::custom(format!(
1449 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectDatabases200Response`"
1450 ))));
1451 }
1452 }
1453 } else {
1454 let content = resp.text().await?;
1455 let entity: Option<GetProjectDatabasesError> = serde_json::from_str(&content).ok();
1456 Err(Error::ResponseError(ResponseContent {
1457 status,
1458 content,
1459 entity
1460 }))
1461 }
1462}
1463
1464pub async fn get_project_dedicated_servers(
1467 configuration: &configuration::Configuration,
1468 project_id: i32
1469) -> Result<models::GetProjectDedicatedServers200Response, Error<GetProjectDedicatedServersError>>
1470{
1471 let p_path_project_id = project_id;
1473
1474 let uri_str = format!(
1475 "{}/api/v1/projects/{project_id}/resources/dedicated",
1476 configuration.base_path,
1477 project_id = p_path_project_id
1478 );
1479 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1480
1481 if let Some(ref user_agent) = configuration.user_agent {
1482 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1483 }
1484 if let Some(ref token) = configuration.bearer_access_token {
1485 req_builder = req_builder.bearer_auth(token.to_owned());
1486 };
1487
1488 let req = req_builder.build()?;
1489 let resp = configuration.client.execute(req).await?;
1490
1491 let status = resp.status();
1492 let content_type = resp
1493 .headers()
1494 .get("content-type")
1495 .and_then(|v| v.to_str().ok())
1496 .unwrap_or("application/octet-stream");
1497 let content_type = super::ContentType::from(content_type);
1498
1499 if !status.is_client_error() && !status.is_server_error() {
1500 let content = resp.text().await?;
1501 match content_type {
1502 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1503 ContentType::Text => {
1504 return Err(Error::from(serde_json::Error::custom(
1505 "Received `text/plain` content type response that cannot be converted to `models::GetProjectDedicatedServers200Response`"
1506 )));
1507 }
1508 ContentType::Unsupported(unknown_type) => {
1509 return Err(Error::from(serde_json::Error::custom(format!(
1510 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectDedicatedServers200Response`"
1511 ))));
1512 }
1513 }
1514 } else {
1515 let content = resp.text().await?;
1516 let entity: Option<GetProjectDedicatedServersError> = serde_json::from_str(&content).ok();
1517 Err(Error::ResponseError(ResponseContent {
1518 status,
1519 content,
1520 entity
1521 }))
1522 }
1523}
1524
1525pub async fn get_project_servers(
1528 configuration: &configuration::Configuration,
1529 project_id: i32
1530) -> Result<models::GetProjectServers200Response, Error<GetProjectServersError>> {
1531 let p_path_project_id = project_id;
1533
1534 let uri_str = format!(
1535 "{}/api/v1/projects/{project_id}/resources/servers",
1536 configuration.base_path,
1537 project_id = p_path_project_id
1538 );
1539 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1540
1541 if let Some(ref user_agent) = configuration.user_agent {
1542 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1543 }
1544 if let Some(ref token) = configuration.bearer_access_token {
1545 req_builder = req_builder.bearer_auth(token.to_owned());
1546 };
1547
1548 let req = req_builder.build()?;
1549 let resp = configuration.client.execute(req).await?;
1550
1551 let status = resp.status();
1552 let content_type = resp
1553 .headers()
1554 .get("content-type")
1555 .and_then(|v| v.to_str().ok())
1556 .unwrap_or("application/octet-stream");
1557 let content_type = super::ContentType::from(content_type);
1558
1559 if !status.is_client_error() && !status.is_server_error() {
1560 let content = resp.text().await?;
1561 match content_type {
1562 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1563 ContentType::Text => {
1564 return Err(Error::from(serde_json::Error::custom(
1565 "Received `text/plain` content type response that cannot be converted to `models::GetProjectServers200Response`"
1566 )));
1567 }
1568 ContentType::Unsupported(unknown_type) => {
1569 return Err(Error::from(serde_json::Error::custom(format!(
1570 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectServers200Response`"
1571 ))));
1572 }
1573 }
1574 } else {
1575 let content = resp.text().await?;
1576 let entity: Option<GetProjectServersError> = serde_json::from_str(&content).ok();
1577 Err(Error::ResponseError(ResponseContent {
1578 status,
1579 content,
1580 entity
1581 }))
1582 }
1583}
1584
1585pub async fn get_project_storages(
1588 configuration: &configuration::Configuration,
1589 project_id: i32
1590) -> Result<models::GetProjectStorages200Response, Error<GetProjectStoragesError>> {
1591 let p_path_project_id = project_id;
1593
1594 let uri_str = format!(
1595 "{}/api/v1/projects/{project_id}/resources/buckets",
1596 configuration.base_path,
1597 project_id = p_path_project_id
1598 );
1599 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1600
1601 if let Some(ref user_agent) = configuration.user_agent {
1602 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1603 }
1604 if let Some(ref token) = configuration.bearer_access_token {
1605 req_builder = req_builder.bearer_auth(token.to_owned());
1606 };
1607
1608 let req = req_builder.build()?;
1609 let resp = configuration.client.execute(req).await?;
1610
1611 let status = resp.status();
1612 let content_type = resp
1613 .headers()
1614 .get("content-type")
1615 .and_then(|v| v.to_str().ok())
1616 .unwrap_or("application/octet-stream");
1617 let content_type = super::ContentType::from(content_type);
1618
1619 if !status.is_client_error() && !status.is_server_error() {
1620 let content = resp.text().await?;
1621 match content_type {
1622 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1623 ContentType::Text => {
1624 return Err(Error::from(serde_json::Error::custom(
1625 "Received `text/plain` content type response that cannot be converted to `models::GetProjectStorages200Response`"
1626 )));
1627 }
1628 ContentType::Unsupported(unknown_type) => {
1629 return Err(Error::from(serde_json::Error::custom(format!(
1630 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjectStorages200Response`"
1631 ))));
1632 }
1633 }
1634 } else {
1635 let content = resp.text().await?;
1636 let entity: Option<GetProjectStoragesError> = serde_json::from_str(&content).ok();
1637 Err(Error::ResponseError(ResponseContent {
1638 status,
1639 content,
1640 entity
1641 }))
1642 }
1643}
1644
1645pub async fn get_projects(
1649 configuration: &configuration::Configuration
1650) -> Result<models::GetProjects200Response, Error<GetProjectsError>> {
1651 let uri_str = format!("{}/api/v1/projects", configuration.base_path);
1652 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
1653
1654 if let Some(ref user_agent) = configuration.user_agent {
1655 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1656 }
1657 if let Some(ref token) = configuration.bearer_access_token {
1658 req_builder = req_builder.bearer_auth(token.to_owned());
1659 };
1660
1661 let req = req_builder.build()?;
1662 let resp = configuration.client.execute(req).await?;
1663
1664 let status = resp.status();
1665 let content_type = resp
1666 .headers()
1667 .get("content-type")
1668 .and_then(|v| v.to_str().ok())
1669 .unwrap_or("application/octet-stream");
1670 let content_type = super::ContentType::from(content_type);
1671
1672 if !status.is_client_error() && !status.is_server_error() {
1673 let content = resp.text().await?;
1674 match content_type {
1675 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1676 ContentType::Text => {
1677 return Err(Error::from(serde_json::Error::custom(
1678 "Received `text/plain` content type response that cannot be converted to `models::GetProjects200Response`"
1679 )));
1680 }
1681 ContentType::Unsupported(unknown_type) => {
1682 return Err(Error::from(serde_json::Error::custom(format!(
1683 "Received `{unknown_type}` content type response that cannot be converted to `models::GetProjects200Response`"
1684 ))));
1685 }
1686 }
1687 } else {
1688 let content = resp.text().await?;
1689 let entity: Option<GetProjectsError> = serde_json::from_str(&content).ok();
1690 Err(Error::ResponseError(ResponseContent {
1691 status,
1692 content,
1693 entity
1694 }))
1695 }
1696}
1697
1698pub async fn transfer_resource_to_another_project(
1701 configuration: &configuration::Configuration,
1702 project_id: i32,
1703 resource_transfer: models::ResourceTransfer
1704) -> Result<models::AddBalancerToProject200Response, Error<TransferResourceToAnotherProjectError>>
1705{
1706 let p_path_project_id = project_id;
1708 let p_body_resource_transfer = resource_transfer;
1709
1710 let uri_str = format!(
1711 "{}/api/v1/projects/{project_id}/resources/transfer",
1712 configuration.base_path,
1713 project_id = p_path_project_id
1714 );
1715 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
1716
1717 if let Some(ref user_agent) = configuration.user_agent {
1718 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1719 }
1720 if let Some(ref token) = configuration.bearer_access_token {
1721 req_builder = req_builder.bearer_auth(token.to_owned());
1722 };
1723 req_builder = req_builder.json(&p_body_resource_transfer);
1724
1725 let req = req_builder.build()?;
1726 let resp = configuration.client.execute(req).await?;
1727
1728 let status = resp.status();
1729 let content_type = resp
1730 .headers()
1731 .get("content-type")
1732 .and_then(|v| v.to_str().ok())
1733 .unwrap_or("application/octet-stream");
1734 let content_type = super::ContentType::from(content_type);
1735
1736 if !status.is_client_error() && !status.is_server_error() {
1737 let content = resp.text().await?;
1738 match content_type {
1739 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1740 ContentType::Text => {
1741 return Err(Error::from(serde_json::Error::custom(
1742 "Received `text/plain` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
1743 )));
1744 }
1745 ContentType::Unsupported(unknown_type) => {
1746 return Err(Error::from(serde_json::Error::custom(format!(
1747 "Received `{unknown_type}` content type response that cannot be converted to `models::AddBalancerToProject200Response`"
1748 ))));
1749 }
1750 }
1751 } else {
1752 let content = resp.text().await?;
1753 let entity: Option<TransferResourceToAnotherProjectError> =
1754 serde_json::from_str(&content).ok();
1755 Err(Error::ResponseError(ResponseContent {
1756 status,
1757 content,
1758 entity
1759 }))
1760 }
1761}
1762
1763pub async fn update_project(
1766 configuration: &configuration::Configuration,
1767 project_id: i32,
1768 update_project: models::UpdateProject
1769) -> Result<models::CreateProject201Response, Error<UpdateProjectError>> {
1770 let p_path_project_id = project_id;
1772 let p_body_update_project = update_project;
1773
1774 let uri_str = format!(
1775 "{}/api/v1/projects/{project_id}",
1776 configuration.base_path,
1777 project_id = p_path_project_id
1778 );
1779 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
1780
1781 if let Some(ref user_agent) = configuration.user_agent {
1782 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1783 }
1784 if let Some(ref token) = configuration.bearer_access_token {
1785 req_builder = req_builder.bearer_auth(token.to_owned());
1786 };
1787 req_builder = req_builder.json(&p_body_update_project);
1788
1789 let req = req_builder.build()?;
1790 let resp = configuration.client.execute(req).await?;
1791
1792 let status = resp.status();
1793 let content_type = resp
1794 .headers()
1795 .get("content-type")
1796 .and_then(|v| v.to_str().ok())
1797 .unwrap_or("application/octet-stream");
1798 let content_type = super::ContentType::from(content_type);
1799
1800 if !status.is_client_error() && !status.is_server_error() {
1801 let content = resp.text().await?;
1802 match content_type {
1803 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
1804 ContentType::Text => {
1805 return Err(Error::from(serde_json::Error::custom(
1806 "Received `text/plain` content type response that cannot be converted to `models::CreateProject201Response`"
1807 )));
1808 }
1809 ContentType::Unsupported(unknown_type) => {
1810 return Err(Error::from(serde_json::Error::custom(format!(
1811 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateProject201Response`"
1812 ))));
1813 }
1814 }
1815 } else {
1816 let content = resp.text().await?;
1817 let entity: Option<UpdateProjectError> = serde_json::from_str(&content).ok();
1818 Err(Error::ResponseError(ResponseContent {
1819 status,
1820 content,
1821 entity
1822 }))
1823 }
1824}