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 AddIpsToBalancerError {
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 CreateBalancerError {
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 CreateBalancerRuleError {
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 DeleteBalancerError {
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 DeleteBalancerRuleError {
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 DeleteIpsFromBalancerError {
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 GetBalancerError {
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 GetBalancerIpsError {
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 GetBalancerRulesError {
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
134#[derive(Debug, Clone, Serialize, Deserialize)]
136#[serde(untagged)]
137pub enum GetBalancersError {
138 Status400(models::GetFinances400Response),
139 Status401(models::GetFinances401Response),
140 Status403(models::GetAccountStatus403Response),
141 Status404(models::GetImage404Response),
142 Status429(models::GetFinances429Response),
143 Status500(models::GetFinances500Response),
144 UnknownValue(serde_json::Value)
145}
146
147#[derive(Debug, Clone, Serialize, Deserialize)]
149#[serde(untagged)]
150pub enum GetBalancersPresetsError {
151 Status400(models::GetFinances400Response),
152 Status401(models::GetFinances401Response),
153 Status403(models::GetAccountStatus403Response),
154 Status404(models::GetImage404Response),
155 Status429(models::GetFinances429Response),
156 Status500(models::GetFinances500Response),
157 UnknownValue(serde_json::Value)
158}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
162#[serde(untagged)]
163pub enum UpdateBalancerError {
164 Status400(models::GetFinances400Response),
165 Status401(models::GetFinances401Response),
166 Status403(models::GetAccountStatus403Response),
167 Status404(models::GetImage404Response),
168 Status429(models::GetFinances429Response),
169 Status500(models::GetFinances500Response),
170 UnknownValue(serde_json::Value)
171}
172
173#[derive(Debug, Clone, Serialize, Deserialize)]
175#[serde(untagged)]
176pub enum UpdateBalancerRuleError {
177 Status400(models::GetFinances400Response),
178 Status401(models::GetFinances401Response),
179 Status403(models::GetAccountStatus403Response),
180 Status404(models::GetImage404Response),
181 Status429(models::GetFinances429Response),
182 Status500(models::GetFinances500Response),
183 UnknownValue(serde_json::Value)
184}
185
186pub async fn add_ips_to_balancer(
189 configuration: &configuration::Configuration,
190 balancer_id: i32,
191 add_ips_to_balancer_request: models::AddIpsToBalancerRequest
192) -> Result<(), Error<AddIpsToBalancerError>> {
193 let p_path_balancer_id = balancer_id;
195 let p_body_add_ips_to_balancer_request = add_ips_to_balancer_request;
196
197 let uri_str = format!(
198 "{}/api/v1/balancers/{balancer_id}/ips",
199 configuration.base_path,
200 balancer_id = p_path_balancer_id
201 );
202 let mut req_builder = configuration
203 .client
204 .request(reqwest::Method::POST, &uri_str);
205
206 if let Some(ref user_agent) = configuration.user_agent {
207 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
208 }
209 if let Some(ref token) = configuration.bearer_access_token {
210 req_builder = req_builder.bearer_auth(token.to_owned());
211 };
212 req_builder = req_builder.json(&p_body_add_ips_to_balancer_request);
213
214 let req = req_builder.build()?;
215 let resp = configuration.client.execute(req).await?;
216
217 let status = resp.status();
218
219 if !status.is_client_error() && !status.is_server_error() {
220 Ok(())
221 } else {
222 let content = resp.text().await?;
223 let entity: Option<AddIpsToBalancerError> = serde_json::from_str(&content).ok();
224 Err(Error::ResponseError(ResponseContent {
225 status,
226 content,
227 entity
228 }))
229 }
230}
231
232pub async fn create_balancer(
237 configuration: &configuration::Configuration,
238 create_balancer: models::CreateBalancer
239) -> Result<models::CreateBalancer200Response, Error<CreateBalancerError>> {
240 let p_body_create_balancer = create_balancer;
242
243 let uri_str = format!("{}/api/v1/balancers", configuration.base_path);
244 let mut req_builder = configuration
245 .client
246 .request(reqwest::Method::POST, &uri_str);
247
248 if let Some(ref user_agent) = configuration.user_agent {
249 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
250 }
251 if let Some(ref token) = configuration.bearer_access_token {
252 req_builder = req_builder.bearer_auth(token.to_owned());
253 };
254 req_builder = req_builder.json(&p_body_create_balancer);
255
256 let req = req_builder.build()?;
257 let resp = configuration.client.execute(req).await?;
258
259 let status = resp.status();
260 let content_type = resp
261 .headers()
262 .get("content-type")
263 .and_then(|v| v.to_str().ok())
264 .unwrap_or("application/octet-stream");
265 let content_type = super::ContentType::from(content_type);
266
267 if !status.is_client_error() && !status.is_server_error() {
268 let content = resp.text().await?;
269 match content_type {
270 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
271 ContentType::Text => {
272 return Err(Error::from(serde_json::Error::custom(
273 "Received `text/plain` content type response that cannot be converted to `models::CreateBalancer200Response`"
274 )));
275 }
276 ContentType::Unsupported(unknown_type) => {
277 return Err(Error::from(serde_json::Error::custom(format!(
278 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateBalancer200Response`"
279 ))));
280 }
281 }
282 } else {
283 let content = resp.text().await?;
284 let entity: Option<CreateBalancerError> = serde_json::from_str(&content).ok();
285 Err(Error::ResponseError(ResponseContent {
286 status,
287 content,
288 entity
289 }))
290 }
291}
292
293pub async fn create_balancer_rule(
296 configuration: &configuration::Configuration,
297 balancer_id: i32,
298 create_rule: models::CreateRule
299) -> Result<models::CreateBalancerRule200Response, Error<CreateBalancerRuleError>> {
300 let p_path_balancer_id = balancer_id;
302 let p_body_create_rule = create_rule;
303
304 let uri_str = format!(
305 "{}/api/v1/balancers/{balancer_id}/rules",
306 configuration.base_path,
307 balancer_id = p_path_balancer_id
308 );
309 let mut req_builder = configuration
310 .client
311 .request(reqwest::Method::POST, &uri_str);
312
313 if let Some(ref user_agent) = configuration.user_agent {
314 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
315 }
316 if let Some(ref token) = configuration.bearer_access_token {
317 req_builder = req_builder.bearer_auth(token.to_owned());
318 };
319 req_builder = req_builder.json(&p_body_create_rule);
320
321 let req = req_builder.build()?;
322 let resp = configuration.client.execute(req).await?;
323
324 let status = resp.status();
325 let content_type = resp
326 .headers()
327 .get("content-type")
328 .and_then(|v| v.to_str().ok())
329 .unwrap_or("application/octet-stream");
330 let content_type = super::ContentType::from(content_type);
331
332 if !status.is_client_error() && !status.is_server_error() {
333 let content = resp.text().await?;
334 match content_type {
335 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
336 ContentType::Text => {
337 return Err(Error::from(serde_json::Error::custom(
338 "Received `text/plain` content type response that cannot be converted to `models::CreateBalancerRule200Response`"
339 )));
340 }
341 ContentType::Unsupported(unknown_type) => {
342 return Err(Error::from(serde_json::Error::custom(format!(
343 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateBalancerRule200Response`"
344 ))));
345 }
346 }
347 } else {
348 let content = resp.text().await?;
349 let entity: Option<CreateBalancerRuleError> = serde_json::from_str(&content).ok();
350 Err(Error::ResponseError(ResponseContent {
351 status,
352 content,
353 entity
354 }))
355 }
356}
357
358pub async fn delete_balancer(
361 configuration: &configuration::Configuration,
362 balancer_id: i32,
363 hash: Option<&str>,
364 code: Option<&str>
365) -> Result<models::DeleteBalancer200Response, Error<DeleteBalancerError>> {
366 let p_path_balancer_id = balancer_id;
368 let p_query_hash = hash;
369 let p_query_code = code;
370
371 let uri_str = format!(
372 "{}/api/v1/balancers/{balancer_id}",
373 configuration.base_path,
374 balancer_id = p_path_balancer_id
375 );
376 let mut req_builder = configuration
377 .client
378 .request(reqwest::Method::DELETE, &uri_str);
379
380 if let Some(ref param_value) = p_query_hash {
381 req_builder = req_builder.query(&[("hash", ¶m_value.to_string())]);
382 }
383 if let Some(ref param_value) = p_query_code {
384 req_builder = req_builder.query(&[("code", ¶m_value.to_string())]);
385 }
386 if let Some(ref user_agent) = configuration.user_agent {
387 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
388 }
389 if let Some(ref token) = configuration.bearer_access_token {
390 req_builder = req_builder.bearer_auth(token.to_owned());
391 };
392
393 let req = req_builder.build()?;
394 let resp = configuration.client.execute(req).await?;
395
396 let status = resp.status();
397 let content_type = resp
398 .headers()
399 .get("content-type")
400 .and_then(|v| v.to_str().ok())
401 .unwrap_or("application/octet-stream");
402 let content_type = super::ContentType::from(content_type);
403
404 if !status.is_client_error() && !status.is_server_error() {
405 let content = resp.text().await?;
406 match content_type {
407 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
408 ContentType::Text => {
409 return Err(Error::from(serde_json::Error::custom(
410 "Received `text/plain` content type response that cannot be converted to `models::DeleteBalancer200Response`"
411 )));
412 }
413 ContentType::Unsupported(unknown_type) => {
414 return Err(Error::from(serde_json::Error::custom(format!(
415 "Received `{unknown_type}` content type response that cannot be converted to `models::DeleteBalancer200Response`"
416 ))));
417 }
418 }
419 } else {
420 let content = resp.text().await?;
421 let entity: Option<DeleteBalancerError> = serde_json::from_str(&content).ok();
422 Err(Error::ResponseError(ResponseContent {
423 status,
424 content,
425 entity
426 }))
427 }
428}
429
430pub async fn delete_balancer_rule(
433 configuration: &configuration::Configuration,
434 balancer_id: i32,
435 rule_id: i32
436) -> Result<(), Error<DeleteBalancerRuleError>> {
437 let p_path_balancer_id = balancer_id;
439 let p_path_rule_id = rule_id;
440
441 let uri_str = format!(
442 "{}/api/v1/balancers/{balancer_id}/rules/{rule_id}",
443 configuration.base_path,
444 balancer_id = p_path_balancer_id,
445 rule_id = p_path_rule_id
446 );
447 let mut req_builder = configuration
448 .client
449 .request(reqwest::Method::DELETE, &uri_str);
450
451 if let Some(ref user_agent) = configuration.user_agent {
452 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
453 }
454 if let Some(ref token) = configuration.bearer_access_token {
455 req_builder = req_builder.bearer_auth(token.to_owned());
456 };
457
458 let req = req_builder.build()?;
459 let resp = configuration.client.execute(req).await?;
460
461 let status = resp.status();
462
463 if !status.is_client_error() && !status.is_server_error() {
464 Ok(())
465 } else {
466 let content = resp.text().await?;
467 let entity: Option<DeleteBalancerRuleError> = serde_json::from_str(&content).ok();
468 Err(Error::ResponseError(ResponseContent {
469 status,
470 content,
471 entity
472 }))
473 }
474}
475
476pub async fn delete_ips_from_balancer(
479 configuration: &configuration::Configuration,
480 balancer_id: i32,
481 add_ips_to_balancer_request: models::AddIpsToBalancerRequest
482) -> Result<(), Error<DeleteIpsFromBalancerError>> {
483 let p_path_balancer_id = balancer_id;
485 let p_body_add_ips_to_balancer_request = add_ips_to_balancer_request;
486
487 let uri_str = format!(
488 "{}/api/v1/balancers/{balancer_id}/ips",
489 configuration.base_path,
490 balancer_id = p_path_balancer_id
491 );
492 let mut req_builder = configuration
493 .client
494 .request(reqwest::Method::DELETE, &uri_str);
495
496 if let Some(ref user_agent) = configuration.user_agent {
497 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
498 }
499 if let Some(ref token) = configuration.bearer_access_token {
500 req_builder = req_builder.bearer_auth(token.to_owned());
501 };
502 req_builder = req_builder.json(&p_body_add_ips_to_balancer_request);
503
504 let req = req_builder.build()?;
505 let resp = configuration.client.execute(req).await?;
506
507 let status = resp.status();
508
509 if !status.is_client_error() && !status.is_server_error() {
510 Ok(())
511 } else {
512 let content = resp.text().await?;
513 let entity: Option<DeleteIpsFromBalancerError> = serde_json::from_str(&content).ok();
514 Err(Error::ResponseError(ResponseContent {
515 status,
516 content,
517 entity
518 }))
519 }
520}
521
522pub async fn get_balancer(
525 configuration: &configuration::Configuration,
526 balancer_id: i32
527) -> Result<models::CreateBalancer200Response, Error<GetBalancerError>> {
528 let p_path_balancer_id = balancer_id;
530
531 let uri_str = format!(
532 "{}/api/v1/balancers/{balancer_id}",
533 configuration.base_path,
534 balancer_id = p_path_balancer_id
535 );
536 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
537
538 if let Some(ref user_agent) = configuration.user_agent {
539 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
540 }
541 if let Some(ref token) = configuration.bearer_access_token {
542 req_builder = req_builder.bearer_auth(token.to_owned());
543 };
544
545 let req = req_builder.build()?;
546 let resp = configuration.client.execute(req).await?;
547
548 let status = resp.status();
549 let content_type = resp
550 .headers()
551 .get("content-type")
552 .and_then(|v| v.to_str().ok())
553 .unwrap_or("application/octet-stream");
554 let content_type = super::ContentType::from(content_type);
555
556 if !status.is_client_error() && !status.is_server_error() {
557 let content = resp.text().await?;
558 match content_type {
559 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
560 ContentType::Text => {
561 return Err(Error::from(serde_json::Error::custom(
562 "Received `text/plain` content type response that cannot be converted to `models::CreateBalancer200Response`"
563 )));
564 }
565 ContentType::Unsupported(unknown_type) => {
566 return Err(Error::from(serde_json::Error::custom(format!(
567 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateBalancer200Response`"
568 ))));
569 }
570 }
571 } else {
572 let content = resp.text().await?;
573 let entity: Option<GetBalancerError> = serde_json::from_str(&content).ok();
574 Err(Error::ResponseError(ResponseContent {
575 status,
576 content,
577 entity
578 }))
579 }
580}
581
582pub async fn get_balancer_ips(
585 configuration: &configuration::Configuration,
586 balancer_id: i32
587) -> Result<models::GetBalancerIps200Response, Error<GetBalancerIpsError>> {
588 let p_path_balancer_id = balancer_id;
590
591 let uri_str = format!(
592 "{}/api/v1/balancers/{balancer_id}/ips",
593 configuration.base_path,
594 balancer_id = p_path_balancer_id
595 );
596 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
597
598 if let Some(ref user_agent) = configuration.user_agent {
599 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
600 }
601 if let Some(ref token) = configuration.bearer_access_token {
602 req_builder = req_builder.bearer_auth(token.to_owned());
603 };
604
605 let req = req_builder.build()?;
606 let resp = configuration.client.execute(req).await?;
607
608 let status = resp.status();
609 let content_type = resp
610 .headers()
611 .get("content-type")
612 .and_then(|v| v.to_str().ok())
613 .unwrap_or("application/octet-stream");
614 let content_type = super::ContentType::from(content_type);
615
616 if !status.is_client_error() && !status.is_server_error() {
617 let content = resp.text().await?;
618 match content_type {
619 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
620 ContentType::Text => {
621 return Err(Error::from(serde_json::Error::custom(
622 "Received `text/plain` content type response that cannot be converted to `models::GetBalancerIps200Response`"
623 )));
624 }
625 ContentType::Unsupported(unknown_type) => {
626 return Err(Error::from(serde_json::Error::custom(format!(
627 "Received `{unknown_type}` content type response that cannot be converted to `models::GetBalancerIps200Response`"
628 ))));
629 }
630 }
631 } else {
632 let content = resp.text().await?;
633 let entity: Option<GetBalancerIpsError> = serde_json::from_str(&content).ok();
634 Err(Error::ResponseError(ResponseContent {
635 status,
636 content,
637 entity
638 }))
639 }
640}
641
642pub async fn get_balancer_rules(
645 configuration: &configuration::Configuration,
646 balancer_id: i32
647) -> Result<models::GetBalancerRules200Response, Error<GetBalancerRulesError>> {
648 let p_path_balancer_id = balancer_id;
650
651 let uri_str = format!(
652 "{}/api/v1/balancers/{balancer_id}/rules",
653 configuration.base_path,
654 balancer_id = p_path_balancer_id
655 );
656 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
657
658 if let Some(ref user_agent) = configuration.user_agent {
659 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
660 }
661 if let Some(ref token) = configuration.bearer_access_token {
662 req_builder = req_builder.bearer_auth(token.to_owned());
663 };
664
665 let req = req_builder.build()?;
666 let resp = configuration.client.execute(req).await?;
667
668 let status = resp.status();
669 let content_type = resp
670 .headers()
671 .get("content-type")
672 .and_then(|v| v.to_str().ok())
673 .unwrap_or("application/octet-stream");
674 let content_type = super::ContentType::from(content_type);
675
676 if !status.is_client_error() && !status.is_server_error() {
677 let content = resp.text().await?;
678 match content_type {
679 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
680 ContentType::Text => {
681 return Err(Error::from(serde_json::Error::custom(
682 "Received `text/plain` content type response that cannot be converted to `models::GetBalancerRules200Response`"
683 )));
684 }
685 ContentType::Unsupported(unknown_type) => {
686 return Err(Error::from(serde_json::Error::custom(format!(
687 "Received `{unknown_type}` content type response that cannot be converted to `models::GetBalancerRules200Response`"
688 ))));
689 }
690 }
691 } else {
692 let content = resp.text().await?;
693 let entity: Option<GetBalancerRulesError> = serde_json::from_str(&content).ok();
694 Err(Error::ResponseError(ResponseContent {
695 status,
696 content,
697 entity
698 }))
699 }
700}
701
702pub async fn get_balancers(
706 configuration: &configuration::Configuration,
707 limit: Option<i32>,
708 offset: Option<i32>
709) -> Result<models::GetBalancers200Response, Error<GetBalancersError>> {
710 let p_query_limit = limit;
712 let p_query_offset = offset;
713
714 let uri_str = format!("{}/api/v1/balancers", configuration.base_path);
715 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
716
717 if let Some(ref param_value) = p_query_limit {
718 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
719 }
720 if let Some(ref param_value) = p_query_offset {
721 req_builder = req_builder.query(&[("offset", ¶m_value.to_string())]);
722 }
723 if let Some(ref user_agent) = configuration.user_agent {
724 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
725 }
726 if let Some(ref token) = configuration.bearer_access_token {
727 req_builder = req_builder.bearer_auth(token.to_owned());
728 };
729
730 let req = req_builder.build()?;
731 let resp = configuration.client.execute(req).await?;
732
733 let status = resp.status();
734 let content_type = resp
735 .headers()
736 .get("content-type")
737 .and_then(|v| v.to_str().ok())
738 .unwrap_or("application/octet-stream");
739 let content_type = super::ContentType::from(content_type);
740
741 if !status.is_client_error() && !status.is_server_error() {
742 let content = resp.text().await?;
743 match content_type {
744 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
745 ContentType::Text => {
746 return Err(Error::from(serde_json::Error::custom(
747 "Received `text/plain` content type response that cannot be converted to `models::GetBalancers200Response`"
748 )));
749 }
750 ContentType::Unsupported(unknown_type) => {
751 return Err(Error::from(serde_json::Error::custom(format!(
752 "Received `{unknown_type}` content type response that cannot be converted to `models::GetBalancers200Response`"
753 ))));
754 }
755 }
756 } else {
757 let content = resp.text().await?;
758 let entity: Option<GetBalancersError> = serde_json::from_str(&content).ok();
759 Err(Error::ResponseError(ResponseContent {
760 status,
761 content,
762 entity
763 }))
764 }
765}
766
767pub async fn get_balancers_presets(
771 configuration: &configuration::Configuration
772) -> Result<models::GetBalancersPresets200Response, Error<GetBalancersPresetsError>> {
773 let uri_str = format!("{}/api/v1/presets/balancers", configuration.base_path);
774 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
775
776 if let Some(ref user_agent) = configuration.user_agent {
777 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
778 }
779 if let Some(ref token) = configuration.bearer_access_token {
780 req_builder = req_builder.bearer_auth(token.to_owned());
781 };
782
783 let req = req_builder.build()?;
784 let resp = configuration.client.execute(req).await?;
785
786 let status = resp.status();
787 let content_type = resp
788 .headers()
789 .get("content-type")
790 .and_then(|v| v.to_str().ok())
791 .unwrap_or("application/octet-stream");
792 let content_type = super::ContentType::from(content_type);
793
794 if !status.is_client_error() && !status.is_server_error() {
795 let content = resp.text().await?;
796 match content_type {
797 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
798 ContentType::Text => {
799 return Err(Error::from(serde_json::Error::custom(
800 "Received `text/plain` content type response that cannot be converted to `models::GetBalancersPresets200Response`"
801 )));
802 }
803 ContentType::Unsupported(unknown_type) => {
804 return Err(Error::from(serde_json::Error::custom(format!(
805 "Received `{unknown_type}` content type response that cannot be converted to `models::GetBalancersPresets200Response`"
806 ))));
807 }
808 }
809 } else {
810 let content = resp.text().await?;
811 let entity: Option<GetBalancersPresetsError> = serde_json::from_str(&content).ok();
812 Err(Error::ResponseError(ResponseContent {
813 status,
814 content,
815 entity
816 }))
817 }
818}
819
820pub async fn update_balancer(
823 configuration: &configuration::Configuration,
824 balancer_id: i32,
825 update_balancer: models::UpdateBalancer
826) -> Result<models::CreateBalancer200Response, Error<UpdateBalancerError>> {
827 let p_path_balancer_id = balancer_id;
829 let p_body_update_balancer = update_balancer;
830
831 let uri_str = format!(
832 "{}/api/v1/balancers/{balancer_id}",
833 configuration.base_path,
834 balancer_id = p_path_balancer_id
835 );
836 let mut req_builder = configuration
837 .client
838 .request(reqwest::Method::PATCH, &uri_str);
839
840 if let Some(ref user_agent) = configuration.user_agent {
841 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
842 }
843 if let Some(ref token) = configuration.bearer_access_token {
844 req_builder = req_builder.bearer_auth(token.to_owned());
845 };
846 req_builder = req_builder.json(&p_body_update_balancer);
847
848 let req = req_builder.build()?;
849 let resp = configuration.client.execute(req).await?;
850
851 let status = resp.status();
852 let content_type = resp
853 .headers()
854 .get("content-type")
855 .and_then(|v| v.to_str().ok())
856 .unwrap_or("application/octet-stream");
857 let content_type = super::ContentType::from(content_type);
858
859 if !status.is_client_error() && !status.is_server_error() {
860 let content = resp.text().await?;
861 match content_type {
862 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
863 ContentType::Text => {
864 return Err(Error::from(serde_json::Error::custom(
865 "Received `text/plain` content type response that cannot be converted to `models::CreateBalancer200Response`"
866 )));
867 }
868 ContentType::Unsupported(unknown_type) => {
869 return Err(Error::from(serde_json::Error::custom(format!(
870 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateBalancer200Response`"
871 ))));
872 }
873 }
874 } else {
875 let content = resp.text().await?;
876 let entity: Option<UpdateBalancerError> = serde_json::from_str(&content).ok();
877 Err(Error::ResponseError(ResponseContent {
878 status,
879 content,
880 entity
881 }))
882 }
883}
884
885pub async fn update_balancer_rule(
888 configuration: &configuration::Configuration,
889 balancer_id: i32,
890 rule_id: i32,
891 update_rule: models::UpdateRule
892) -> Result<models::CreateBalancerRule200Response, Error<UpdateBalancerRuleError>> {
893 let p_path_balancer_id = balancer_id;
895 let p_path_rule_id = rule_id;
896 let p_body_update_rule = update_rule;
897
898 let uri_str = format!(
899 "{}/api/v1/balancers/{balancer_id}/rules/{rule_id}",
900 configuration.base_path,
901 balancer_id = p_path_balancer_id,
902 rule_id = p_path_rule_id
903 );
904 let mut req_builder = configuration
905 .client
906 .request(reqwest::Method::PATCH, &uri_str);
907
908 if let Some(ref user_agent) = configuration.user_agent {
909 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
910 }
911 if let Some(ref token) = configuration.bearer_access_token {
912 req_builder = req_builder.bearer_auth(token.to_owned());
913 };
914 req_builder = req_builder.json(&p_body_update_rule);
915
916 let req = req_builder.build()?;
917 let resp = configuration.client.execute(req).await?;
918
919 let status = resp.status();
920 let content_type = resp
921 .headers()
922 .get("content-type")
923 .and_then(|v| v.to_str().ok())
924 .unwrap_or("application/octet-stream");
925 let content_type = super::ContentType::from(content_type);
926
927 if !status.is_client_error() && !status.is_server_error() {
928 let content = resp.text().await?;
929 match content_type {
930 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
931 ContentType::Text => {
932 return Err(Error::from(serde_json::Error::custom(
933 "Received `text/plain` content type response that cannot be converted to `models::CreateBalancerRule200Response`"
934 )));
935 }
936 ContentType::Unsupported(unknown_type) => {
937 return Err(Error::from(serde_json::Error::custom(format!(
938 "Received `{unknown_type}` content type response that cannot be converted to `models::CreateBalancerRule200Response`"
939 ))));
940 }
941 }
942 } else {
943 let content = resp.text().await?;
944 let entity: Option<UpdateBalancerRuleError> = serde_json::from_str(&content).ok();
945 Err(Error::ResponseError(ResponseContent {
946 status,
947 content,
948 entity
949 }))
950 }
951}