1use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum AddServiceToLoadBalancerError {
20 UnknownValue(serde_json::Value),
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum CreateLoadBalancerError {
27 UnknownValue(serde_json::Value),
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum DeleteLoadBalancerError {
34 UnknownValue(serde_json::Value),
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum DeleteLoadBalancerServiceError {
41 UnknownValue(serde_json::Value),
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum GetLoadBalancerError {
48 UnknownValue(serde_json::Value),
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum GetLoadBalancerServiceError {
55 UnknownValue(serde_json::Value),
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum ListLoadBalancersError {
62 UnknownValue(serde_json::Value),
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize)]
67#[serde(untagged)]
68pub enum ResetLoadBalancerFieldError {
69 UnknownValue(serde_json::Value),
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum ResetLoadBalancerServiceFieldError {
76 UnknownValue(serde_json::Value),
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum UpdateLoadBalancerError {
83 UnknownValue(serde_json::Value),
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum UpdateLoadBalancerServiceError {
90 UnknownValue(serde_json::Value),
91}
92
93pub async fn add_service_to_load_balancer(
95 configuration: &configuration::Configuration,
96 id: &str,
97 add_service_to_load_balancer_request: crate::models::AddServiceToLoadBalancerRequest,
98) -> Result<crate::models::Operation, Error<AddServiceToLoadBalancerError>> {
99 let local_var_configuration = configuration;
100
101 let local_var_client = &local_var_configuration.client;
102
103 let local_var_uri_str = format!(
104 "{}/load-balancer/{id}/service",
105 local_var_configuration.base_path,
106 id = crate::apis::urlencode(id)
107 );
108 let mut local_var_req_builder =
109 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
110
111 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
112 local_var_req_builder =
113 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
114 }
115 local_var_req_builder = local_var_req_builder.json(&add_service_to_load_balancer_request);
116
117 let local_var_req = local_var_req_builder.build()?;
118 let local_var_resp = local_var_client.execute(local_var_req).await?;
119
120 let local_var_status = local_var_resp.status();
121 let local_var_content = local_var_resp.text().await?;
122
123 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
124 serde_json::from_str(&local_var_content).map_err(Error::from)
125 } else {
126 let local_var_entity: Option<AddServiceToLoadBalancerError> =
127 serde_json::from_str(&local_var_content).ok();
128 let local_var_error = ResponseContent {
129 status: local_var_status,
130 content: local_var_content,
131 entity: local_var_entity,
132 };
133 Err(Error::ResponseError(local_var_error))
134 }
135}
136
137pub async fn create_load_balancer(
139 configuration: &configuration::Configuration,
140 create_load_balancer_request: crate::models::CreateLoadBalancerRequest,
141) -> Result<crate::models::Operation, Error<CreateLoadBalancerError>> {
142 let local_var_configuration = configuration;
143
144 let local_var_client = &local_var_configuration.client;
145
146 let local_var_uri_str = format!("{}/load-balancer", local_var_configuration.base_path);
147 let mut local_var_req_builder =
148 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
149
150 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
151 local_var_req_builder =
152 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
153 }
154 local_var_req_builder = local_var_req_builder.json(&create_load_balancer_request);
155
156 let local_var_req = local_var_req_builder.build()?;
157 let local_var_resp = local_var_client.execute(local_var_req).await?;
158
159 let local_var_status = local_var_resp.status();
160 let local_var_content = local_var_resp.text().await?;
161
162 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
163 serde_json::from_str(&local_var_content).map_err(Error::from)
164 } else {
165 let local_var_entity: Option<CreateLoadBalancerError> =
166 serde_json::from_str(&local_var_content).ok();
167 let local_var_error = ResponseContent {
168 status: local_var_status,
169 content: local_var_content,
170 entity: local_var_entity,
171 };
172 Err(Error::ResponseError(local_var_error))
173 }
174}
175
176pub async fn delete_load_balancer(
178 configuration: &configuration::Configuration,
179 id: &str,
180) -> Result<crate::models::Operation, Error<DeleteLoadBalancerError>> {
181 let local_var_configuration = configuration;
182
183 let local_var_client = &local_var_configuration.client;
184
185 let local_var_uri_str = format!(
186 "{}/load-balancer/{id}",
187 local_var_configuration.base_path,
188 id = crate::apis::urlencode(id)
189 );
190 let mut local_var_req_builder =
191 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
192
193 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
194 local_var_req_builder =
195 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
196 }
197
198 let local_var_req = local_var_req_builder.build()?;
199 let local_var_resp = local_var_client.execute(local_var_req).await?;
200
201 let local_var_status = local_var_resp.status();
202 let local_var_content = local_var_resp.text().await?;
203
204 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
205 serde_json::from_str(&local_var_content).map_err(Error::from)
206 } else {
207 let local_var_entity: Option<DeleteLoadBalancerError> =
208 serde_json::from_str(&local_var_content).ok();
209 let local_var_error = ResponseContent {
210 status: local_var_status,
211 content: local_var_content,
212 entity: local_var_entity,
213 };
214 Err(Error::ResponseError(local_var_error))
215 }
216}
217
218pub async fn delete_load_balancer_service(
220 configuration: &configuration::Configuration,
221 id: &str,
222 service_id: &str,
223) -> Result<crate::models::Operation, Error<DeleteLoadBalancerServiceError>> {
224 let local_var_configuration = configuration;
225
226 let local_var_client = &local_var_configuration.client;
227
228 let local_var_uri_str = format!(
229 "{}/load-balancer/{id}/service/{service_id}",
230 local_var_configuration.base_path,
231 id = crate::apis::urlencode(id),
232 service_id = crate::apis::urlencode(service_id)
233 );
234 let mut local_var_req_builder =
235 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
236
237 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
238 local_var_req_builder =
239 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
240 }
241
242 let local_var_req = local_var_req_builder.build()?;
243 let local_var_resp = local_var_client.execute(local_var_req).await?;
244
245 let local_var_status = local_var_resp.status();
246 let local_var_content = local_var_resp.text().await?;
247
248 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
249 serde_json::from_str(&local_var_content).map_err(Error::from)
250 } else {
251 let local_var_entity: Option<DeleteLoadBalancerServiceError> =
252 serde_json::from_str(&local_var_content).ok();
253 let local_var_error = ResponseContent {
254 status: local_var_status,
255 content: local_var_content,
256 entity: local_var_entity,
257 };
258 Err(Error::ResponseError(local_var_error))
259 }
260}
261
262pub async fn get_load_balancer(
264 configuration: &configuration::Configuration,
265 id: &str,
266) -> Result<crate::models::LoadBalancer, Error<GetLoadBalancerError>> {
267 let local_var_configuration = configuration;
268
269 let local_var_client = &local_var_configuration.client;
270
271 let local_var_uri_str = format!(
272 "{}/load-balancer/{id}",
273 local_var_configuration.base_path,
274 id = crate::apis::urlencode(id)
275 );
276 let mut local_var_req_builder =
277 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
278
279 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
280 local_var_req_builder =
281 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
282 }
283
284 let local_var_req = local_var_req_builder.build()?;
285 let local_var_resp = local_var_client.execute(local_var_req).await?;
286
287 let local_var_status = local_var_resp.status();
288 let local_var_content = local_var_resp.text().await?;
289
290 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
291 serde_json::from_str(&local_var_content).map_err(Error::from)
292 } else {
293 let local_var_entity: Option<GetLoadBalancerError> =
294 serde_json::from_str(&local_var_content).ok();
295 let local_var_error = ResponseContent {
296 status: local_var_status,
297 content: local_var_content,
298 entity: local_var_entity,
299 };
300 Err(Error::ResponseError(local_var_error))
301 }
302}
303
304pub async fn get_load_balancer_service(
306 configuration: &configuration::Configuration,
307 id: &str,
308 service_id: &str,
309) -> Result<crate::models::LoadBalancerService, Error<GetLoadBalancerServiceError>> {
310 let local_var_configuration = configuration;
311
312 let local_var_client = &local_var_configuration.client;
313
314 let local_var_uri_str = format!(
315 "{}/load-balancer/{id}/service/{service_id}",
316 local_var_configuration.base_path,
317 id = crate::apis::urlencode(id),
318 service_id = crate::apis::urlencode(service_id)
319 );
320 let mut local_var_req_builder =
321 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
322
323 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
324 local_var_req_builder =
325 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
326 }
327
328 let local_var_req = local_var_req_builder.build()?;
329 let local_var_resp = local_var_client.execute(local_var_req).await?;
330
331 let local_var_status = local_var_resp.status();
332 let local_var_content = local_var_resp.text().await?;
333
334 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
335 serde_json::from_str(&local_var_content).map_err(Error::from)
336 } else {
337 let local_var_entity: Option<GetLoadBalancerServiceError> =
338 serde_json::from_str(&local_var_content).ok();
339 let local_var_error = ResponseContent {
340 status: local_var_status,
341 content: local_var_content,
342 entity: local_var_entity,
343 };
344 Err(Error::ResponseError(local_var_error))
345 }
346}
347
348pub async fn list_load_balancers(
350 configuration: &configuration::Configuration,
351) -> Result<crate::models::ListLoadBalancers200Response, Error<ListLoadBalancersError>> {
352 let local_var_configuration = configuration;
353
354 let local_var_client = &local_var_configuration.client;
355
356 let local_var_uri_str = format!("{}/load-balancer", local_var_configuration.base_path);
357 let mut local_var_req_builder =
358 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
359
360 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
361 local_var_req_builder =
362 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
363 }
364
365 let local_var_req = local_var_req_builder.build()?;
366 let local_var_resp = local_var_client.execute(local_var_req).await?;
367
368 let local_var_status = local_var_resp.status();
369 let local_var_content = local_var_resp.text().await?;
370
371 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
372 serde_json::from_str(&local_var_content).map_err(Error::from)
373 } else {
374 let local_var_entity: Option<ListLoadBalancersError> =
375 serde_json::from_str(&local_var_content).ok();
376 let local_var_error = ResponseContent {
377 status: local_var_status,
378 content: local_var_content,
379 entity: local_var_entity,
380 };
381 Err(Error::ResponseError(local_var_error))
382 }
383}
384
385pub async fn reset_load_balancer_field(
387 configuration: &configuration::Configuration,
388 id: &str,
389 field: &str,
390) -> Result<crate::models::Operation, Error<ResetLoadBalancerFieldError>> {
391 let local_var_configuration = configuration;
392
393 let local_var_client = &local_var_configuration.client;
394
395 let local_var_uri_str = format!(
396 "{}/load-balancer/{id}/{field}",
397 local_var_configuration.base_path,
398 id = crate::apis::urlencode(id),
399 field = crate::apis::urlencode(field)
400 );
401 let mut local_var_req_builder =
402 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
403
404 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
405 local_var_req_builder =
406 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
407 }
408
409 let local_var_req = local_var_req_builder.build()?;
410 let local_var_resp = local_var_client.execute(local_var_req).await?;
411
412 let local_var_status = local_var_resp.status();
413 let local_var_content = local_var_resp.text().await?;
414
415 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
416 serde_json::from_str(&local_var_content).map_err(Error::from)
417 } else {
418 let local_var_entity: Option<ResetLoadBalancerFieldError> =
419 serde_json::from_str(&local_var_content).ok();
420 let local_var_error = ResponseContent {
421 status: local_var_status,
422 content: local_var_content,
423 entity: local_var_entity,
424 };
425 Err(Error::ResponseError(local_var_error))
426 }
427}
428
429pub async fn reset_load_balancer_service_field(
431 configuration: &configuration::Configuration,
432 id: &str,
433 service_id: &str,
434 field: &str,
435) -> Result<crate::models::Operation, Error<ResetLoadBalancerServiceFieldError>> {
436 let local_var_configuration = configuration;
437
438 let local_var_client = &local_var_configuration.client;
439
440 let local_var_uri_str = format!(
441 "{}/load-balancer/{id}/service/{service_id}/{field}",
442 local_var_configuration.base_path,
443 id = crate::apis::urlencode(id),
444 service_id = crate::apis::urlencode(service_id),
445 field = crate::apis::urlencode(field)
446 );
447 let mut local_var_req_builder =
448 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
449
450 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
451 local_var_req_builder =
452 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
453 }
454
455 let local_var_req = local_var_req_builder.build()?;
456 let local_var_resp = local_var_client.execute(local_var_req).await?;
457
458 let local_var_status = local_var_resp.status();
459 let local_var_content = local_var_resp.text().await?;
460
461 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
462 serde_json::from_str(&local_var_content).map_err(Error::from)
463 } else {
464 let local_var_entity: Option<ResetLoadBalancerServiceFieldError> =
465 serde_json::from_str(&local_var_content).ok();
466 let local_var_error = ResponseContent {
467 status: local_var_status,
468 content: local_var_content,
469 entity: local_var_entity,
470 };
471 Err(Error::ResponseError(local_var_error))
472 }
473}
474
475pub async fn update_load_balancer(
477 configuration: &configuration::Configuration,
478 id: &str,
479 update_load_balancer_request: crate::models::UpdateLoadBalancerRequest,
480) -> Result<crate::models::Operation, Error<UpdateLoadBalancerError>> {
481 let local_var_configuration = configuration;
482
483 let local_var_client = &local_var_configuration.client;
484
485 let local_var_uri_str = format!(
486 "{}/load-balancer/{id}",
487 local_var_configuration.base_path,
488 id = crate::apis::urlencode(id)
489 );
490 let mut local_var_req_builder =
491 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
492
493 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
494 local_var_req_builder =
495 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
496 }
497 local_var_req_builder = local_var_req_builder.json(&update_load_balancer_request);
498
499 let local_var_req = local_var_req_builder.build()?;
500 let local_var_resp = local_var_client.execute(local_var_req).await?;
501
502 let local_var_status = local_var_resp.status();
503 let local_var_content = local_var_resp.text().await?;
504
505 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
506 serde_json::from_str(&local_var_content).map_err(Error::from)
507 } else {
508 let local_var_entity: Option<UpdateLoadBalancerError> =
509 serde_json::from_str(&local_var_content).ok();
510 let local_var_error = ResponseContent {
511 status: local_var_status,
512 content: local_var_content,
513 entity: local_var_entity,
514 };
515 Err(Error::ResponseError(local_var_error))
516 }
517}
518
519pub async fn update_load_balancer_service(
521 configuration: &configuration::Configuration,
522 id: &str,
523 service_id: &str,
524 update_load_balancer_service_request: crate::models::UpdateLoadBalancerServiceRequest,
525) -> Result<crate::models::Operation, Error<UpdateLoadBalancerServiceError>> {
526 let local_var_configuration = configuration;
527
528 let local_var_client = &local_var_configuration.client;
529
530 let local_var_uri_str = format!(
531 "{}/load-balancer/{id}/service/{service_id}",
532 local_var_configuration.base_path,
533 id = crate::apis::urlencode(id),
534 service_id = crate::apis::urlencode(service_id)
535 );
536 let mut local_var_req_builder =
537 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
538
539 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
540 local_var_req_builder =
541 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
542 }
543 local_var_req_builder = local_var_req_builder.json(&update_load_balancer_service_request);
544
545 let local_var_req = local_var_req_builder.build()?;
546 let local_var_resp = local_var_client.execute(local_var_req).await?;
547
548 let local_var_status = local_var_resp.status();
549 let local_var_content = local_var_resp.text().await?;
550
551 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
552 serde_json::from_str(&local_var_content).map_err(Error::from)
553 } else {
554 let local_var_entity: Option<UpdateLoadBalancerServiceError> =
555 serde_json::from_str(&local_var_content).ok();
556 let local_var_error = ResponseContent {
557 status: local_var_status,
558 content: local_var_content,
559 entity: local_var_entity,
560 };
561 Err(Error::ResponseError(local_var_error))
562 }
563}