exoscale/apis/
network_load_balancer_api.rs

1/*
2 * Exoscale Public API
3 *
4 *  Infrastructure automation API, allowing programmatic access to all Exoscale products and services.  The [OpenAPI Specification](http://spec.openapis.org/oas/v3.0.3.html) source of this documentation can be obtained here:  * [JSON format](https://bump.sh/doc/exoscale-api.json) * [YAML format](https://bump.sh/doc/exoscale-api.yaml)
5 *
6 * The version of the OpenAPI document: 2.0.0
7 * Contact: api@exoscale.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16/// struct for typed errors of method [`add_service_to_load_balancer`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum AddServiceToLoadBalancerError {
20    UnknownValue(serde_json::Value),
21}
22
23/// struct for typed errors of method [`create_load_balancer`]
24#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum CreateLoadBalancerError {
27    UnknownValue(serde_json::Value),
28}
29
30/// struct for typed errors of method [`delete_load_balancer`]
31#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum DeleteLoadBalancerError {
34    UnknownValue(serde_json::Value),
35}
36
37/// struct for typed errors of method [`delete_load_balancer_service`]
38#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum DeleteLoadBalancerServiceError {
41    UnknownValue(serde_json::Value),
42}
43
44/// struct for typed errors of method [`get_load_balancer`]
45#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum GetLoadBalancerError {
48    UnknownValue(serde_json::Value),
49}
50
51/// struct for typed errors of method [`get_load_balancer_service`]
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum GetLoadBalancerServiceError {
55    UnknownValue(serde_json::Value),
56}
57
58/// struct for typed errors of method [`list_load_balancers`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum ListLoadBalancersError {
62    UnknownValue(serde_json::Value),
63}
64
65/// struct for typed errors of method [`reset_load_balancer_field`]
66#[derive(Debug, Clone, Serialize, Deserialize)]
67#[serde(untagged)]
68pub enum ResetLoadBalancerFieldError {
69    UnknownValue(serde_json::Value),
70}
71
72/// struct for typed errors of method [`reset_load_balancer_service_field`]
73#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum ResetLoadBalancerServiceFieldError {
76    UnknownValue(serde_json::Value),
77}
78
79/// struct for typed errors of method [`update_load_balancer`]
80#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum UpdateLoadBalancerError {
83    UnknownValue(serde_json::Value),
84}
85
86/// struct for typed errors of method [`update_load_balancer_service`]
87#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum UpdateLoadBalancerServiceError {
90    UnknownValue(serde_json::Value),
91}
92
93///
94pub 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
137///
138pub 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
176///
177pub 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
218///
219pub 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
262///
263pub 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
304///
305pub 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
348///
349pub 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
385///
386pub 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
429///
430pub 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
475///
476pub 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
519///
520pub 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}