outscale_api/apis/
load_balancer_api.rs

1/*
2 * 3DS OUTSCALE API
3 *
4 * Welcome to the OUTSCALE API documentation.<br /> The OUTSCALE API enables you to manage your resources in the OUTSCALE Cloud. This documentation describes the different actions available along with code examples.<br /><br /> Throttling: To protect against overloads, the number of identical requests allowed in a given time period is limited.<br /> Brute force: To protect against brute force attacks, the number of failed authentication attempts in a given time period is limited.<br /><br /> Note that the OUTSCALE Cloud is compatible with Amazon Web Services (AWS) APIs, but there are [differences in resource names](https://docs.outscale.com/en/userguide/About-the-APIs.html) between AWS and the OUTSCALE API.<br /> You can also manage your resources using the [Cockpit](https://docs.outscale.com/en/userguide/About-Cockpit.html) web interface.<br /><br /> An OpenAPI description of the OUTSCALE API is also available in this [GitHub repository](https://github.com/outscale/osc-api).<br /> # Authentication Schemes ### Access Key/Secret Key The main way to authenticate your requests to the OUTSCALE API is to use an access key and a secret key.<br /> The mechanism behind this is based on AWS Signature Version 4, whose technical implementation details are described in [Signature of API Requests](https://docs.outscale.com/en/userguide/Signature-of-API-Requests.html).<br /><br /> In practice, the way to specify your access key and secret key depends on the tool or SDK you want to use to interact with the API.<br />  > For example, if you use OSC CLI: > 1. You need to create an **~/.osc/config.json** file to specify your access key, secret key, and the Region of your account. > 2. You then specify the `--profile` option when executing OSC CLI commands. > > For more information, see [Installing and Configuring OSC CLI](https://docs.outscale.com/en/userguide/Installing-and-Configuring-OSC-CLI.html).  See the code samples in each section of this documentation for specific examples in different programming languages.<br /> For more information about access keys, see [About Access Keys](https://docs.outscale.com/en/userguide/About-Access-Keys.html).  > If you try to sign requests with an invalid access key four times in a row, further authentication attempts will be prevented for 1 minute. This lockout time increases 1 minute every four failed attempts, for up to 10 minutes.  ### Login/Password For certain API actions, you can also use basic authentication with the login (email address) and password of your TINA account.<br /> This is useful only in special circumstances, for example if you do not know your access key/secret key and want to retrieve them programmatically.<br /> In most cases, however, you can use the Cockpit web interface to retrieve them.<br />  > For example, if you use OSC CLI: > 1. You need to create an **~/.osc/config.json** file to specify the Region of your account, but you leave the access key value and secret key value empty (`&quot;&quot;`). > 2. You then specify the `--profile`, `--authentication-method`, `--login`, and `--password` options when executing OSC CLI commands.  See the code samples in each section of this documentation for specific examples in different programming languages.  > If you try to sign requests with an invalid password four times in a row, further authentication attempts will be prevented for 1 minute. This lockout time increases 1 minute every four failed attempts, for up to 10 minutes.  ### No Authentication A few API actions do not require any authentication. They are indicated as such in this documentation.<br /> ### Other Security Mechanisms In parallel with the authentication schemes, you can add other security mechanisms to your OUTSCALE account, for example to restrict API requests by IP or other criteria.<br /> For more information, see [Managing Your API Accesses](https://docs.outscale.com/en/userguide/Managing-Your-API-Accesses.html). # Pagination Tutorial You can learn more about the pagination methods for read calls in the dedicated [pagination tutorial](https://docs.outscale.com/en/userguide/Tutorial-Paginating-an-API-Request.html). # Error Codes Reference You can learn more about errors returned by the API in the dedicated [errors page](api-errors.html).
5 *
6 * The version of the OpenAPI document: 1.35.3
7 * Contact: support@outscale.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 [`create_load_balancer`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateLoadBalancerError {
20    UnknownValue(serde_json::Value),
21}
22
23/// struct for typed errors of method [`create_load_balancer_tags`]
24#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum CreateLoadBalancerTagsError {
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_tags`]
38#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum DeleteLoadBalancerTagsError {
41    UnknownValue(serde_json::Value),
42}
43
44/// struct for typed errors of method [`deregister_vms_in_load_balancer`]
45#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum DeregisterVmsInLoadBalancerError {
48    UnknownValue(serde_json::Value),
49}
50
51/// struct for typed errors of method [`link_load_balancer_backend_machines`]
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum LinkLoadBalancerBackendMachinesError {
55    UnknownValue(serde_json::Value),
56}
57
58/// struct for typed errors of method [`read_load_balancer_tags`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum ReadLoadBalancerTagsError {
62    UnknownValue(serde_json::Value),
63}
64
65/// struct for typed errors of method [`read_load_balancers`]
66#[derive(Debug, Clone, Serialize, Deserialize)]
67#[serde(untagged)]
68pub enum ReadLoadBalancersError {
69    UnknownValue(serde_json::Value),
70}
71
72/// struct for typed errors of method [`read_vms_health`]
73#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum ReadVmsHealthError {
76    UnknownValue(serde_json::Value),
77}
78
79/// struct for typed errors of method [`register_vms_in_load_balancer`]
80#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum RegisterVmsInLoadBalancerError {
83    UnknownValue(serde_json::Value),
84}
85
86/// struct for typed errors of method [`unlink_load_balancer_backend_machines`]
87#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum UnlinkLoadBalancerBackendMachinesError {
90    UnknownValue(serde_json::Value),
91}
92
93/// struct for typed errors of method [`update_load_balancer`]
94#[derive(Debug, Clone, Serialize, Deserialize)]
95#[serde(untagged)]
96pub enum UpdateLoadBalancerError {
97    UnknownValue(serde_json::Value),
98}
99
100pub fn create_load_balancer(
101    configuration: &configuration::Configuration,
102    create_load_balancer_request: Option<crate::models::CreateLoadBalancerRequest>,
103) -> Result<crate::models::CreateLoadBalancerResponse, Error<CreateLoadBalancerError>> {
104    let local_var_configuration = configuration;
105
106    let local_var_client = &local_var_configuration.client;
107
108    let local_var_uri_str = format!("{}/CreateLoadBalancer", local_var_configuration.base_path);
109    let mut local_var_req_builder =
110        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
111
112    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
113        let local_var_new_headers = match local_var_aws_v4_key.sign(
114            &local_var_uri_str,
115            "POST",
116            &serde_json::to_string(&create_load_balancer_request)
117                .expect("param should serialize to string"),
118        ) {
119            Ok(new_headers) => new_headers,
120            Err(err) => return Err(Error::AWSV4SignatureError(err)),
121        };
122        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
123            local_var_req_builder =
124                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
125        }
126    }
127    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
128        local_var_req_builder =
129            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
130    }
131    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
132        let local_var_key = local_var_apikey.key.clone();
133        let local_var_value = match local_var_apikey.prefix {
134            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
135            None => local_var_key,
136        };
137        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
138    };
139    local_var_req_builder = local_var_req_builder.json(&create_load_balancer_request);
140
141    let local_var_req = local_var_req_builder.build()?;
142    let mut local_var_resp = local_var_client.execute(local_var_req)?;
143
144    let local_var_status = local_var_resp.status();
145    let local_var_content = local_var_resp.text()?;
146
147    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
148        serde_json::from_str(&local_var_content).map_err(Error::from)
149    } else {
150        let local_var_entity: Option<CreateLoadBalancerError> =
151            serde_json::from_str(&local_var_content).ok();
152        let local_var_error = ResponseContent {
153            status: local_var_status,
154            content: local_var_content,
155            entity: local_var_entity,
156        };
157        Err(Error::ResponseError(local_var_error))
158    }
159}
160
161pub fn create_load_balancer_tags(
162    configuration: &configuration::Configuration,
163    create_load_balancer_tags_request: Option<crate::models::CreateLoadBalancerTagsRequest>,
164) -> Result<crate::models::CreateLoadBalancerTagsResponse, Error<CreateLoadBalancerTagsError>> {
165    let local_var_configuration = configuration;
166
167    let local_var_client = &local_var_configuration.client;
168
169    let local_var_uri_str = format!(
170        "{}/CreateLoadBalancerTags",
171        local_var_configuration.base_path
172    );
173    let mut local_var_req_builder =
174        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
175
176    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
177        let local_var_new_headers = match local_var_aws_v4_key.sign(
178            &local_var_uri_str,
179            "POST",
180            &serde_json::to_string(&create_load_balancer_tags_request)
181                .expect("param should serialize to string"),
182        ) {
183            Ok(new_headers) => new_headers,
184            Err(err) => return Err(Error::AWSV4SignatureError(err)),
185        };
186        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
187            local_var_req_builder =
188                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
189        }
190    }
191    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
192        local_var_req_builder =
193            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
194    }
195    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
196        let local_var_key = local_var_apikey.key.clone();
197        let local_var_value = match local_var_apikey.prefix {
198            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
199            None => local_var_key,
200        };
201        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
202    };
203    local_var_req_builder = local_var_req_builder.json(&create_load_balancer_tags_request);
204
205    let local_var_req = local_var_req_builder.build()?;
206    let mut local_var_resp = local_var_client.execute(local_var_req)?;
207
208    let local_var_status = local_var_resp.status();
209    let local_var_content = local_var_resp.text()?;
210
211    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
212        serde_json::from_str(&local_var_content).map_err(Error::from)
213    } else {
214        let local_var_entity: Option<CreateLoadBalancerTagsError> =
215            serde_json::from_str(&local_var_content).ok();
216        let local_var_error = ResponseContent {
217            status: local_var_status,
218            content: local_var_content,
219            entity: local_var_entity,
220        };
221        Err(Error::ResponseError(local_var_error))
222    }
223}
224
225pub fn delete_load_balancer(
226    configuration: &configuration::Configuration,
227    delete_load_balancer_request: Option<crate::models::DeleteLoadBalancerRequest>,
228) -> Result<crate::models::DeleteLoadBalancerResponse, Error<DeleteLoadBalancerError>> {
229    let local_var_configuration = configuration;
230
231    let local_var_client = &local_var_configuration.client;
232
233    let local_var_uri_str = format!("{}/DeleteLoadBalancer", local_var_configuration.base_path);
234    let mut local_var_req_builder =
235        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
236
237    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
238        let local_var_new_headers = match local_var_aws_v4_key.sign(
239            &local_var_uri_str,
240            "POST",
241            &serde_json::to_string(&delete_load_balancer_request)
242                .expect("param should serialize to string"),
243        ) {
244            Ok(new_headers) => new_headers,
245            Err(err) => return Err(Error::AWSV4SignatureError(err)),
246        };
247        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
248            local_var_req_builder =
249                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
250        }
251    }
252    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
253        local_var_req_builder =
254            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
255    }
256    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
257        let local_var_key = local_var_apikey.key.clone();
258        let local_var_value = match local_var_apikey.prefix {
259            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
260            None => local_var_key,
261        };
262        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
263    };
264    local_var_req_builder = local_var_req_builder.json(&delete_load_balancer_request);
265
266    let local_var_req = local_var_req_builder.build()?;
267    let mut local_var_resp = local_var_client.execute(local_var_req)?;
268
269    let local_var_status = local_var_resp.status();
270    let local_var_content = local_var_resp.text()?;
271
272    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
273        serde_json::from_str(&local_var_content).map_err(Error::from)
274    } else {
275        let local_var_entity: Option<DeleteLoadBalancerError> =
276            serde_json::from_str(&local_var_content).ok();
277        let local_var_error = ResponseContent {
278            status: local_var_status,
279            content: local_var_content,
280            entity: local_var_entity,
281        };
282        Err(Error::ResponseError(local_var_error))
283    }
284}
285
286pub fn delete_load_balancer_tags(
287    configuration: &configuration::Configuration,
288    delete_load_balancer_tags_request: Option<crate::models::DeleteLoadBalancerTagsRequest>,
289) -> Result<crate::models::DeleteLoadBalancerTagsResponse, Error<DeleteLoadBalancerTagsError>> {
290    let local_var_configuration = configuration;
291
292    let local_var_client = &local_var_configuration.client;
293
294    let local_var_uri_str = format!(
295        "{}/DeleteLoadBalancerTags",
296        local_var_configuration.base_path
297    );
298    let mut local_var_req_builder =
299        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
300
301    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
302        let local_var_new_headers = match local_var_aws_v4_key.sign(
303            &local_var_uri_str,
304            "POST",
305            &serde_json::to_string(&delete_load_balancer_tags_request)
306                .expect("param should serialize to string"),
307        ) {
308            Ok(new_headers) => new_headers,
309            Err(err) => return Err(Error::AWSV4SignatureError(err)),
310        };
311        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
312            local_var_req_builder =
313                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
314        }
315    }
316    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
317        local_var_req_builder =
318            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
319    }
320    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
321        let local_var_key = local_var_apikey.key.clone();
322        let local_var_value = match local_var_apikey.prefix {
323            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
324            None => local_var_key,
325        };
326        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
327    };
328    local_var_req_builder = local_var_req_builder.json(&delete_load_balancer_tags_request);
329
330    let local_var_req = local_var_req_builder.build()?;
331    let mut local_var_resp = local_var_client.execute(local_var_req)?;
332
333    let local_var_status = local_var_resp.status();
334    let local_var_content = local_var_resp.text()?;
335
336    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
337        serde_json::from_str(&local_var_content).map_err(Error::from)
338    } else {
339        let local_var_entity: Option<DeleteLoadBalancerTagsError> =
340            serde_json::from_str(&local_var_content).ok();
341        let local_var_error = ResponseContent {
342            status: local_var_status,
343            content: local_var_content,
344            entity: local_var_entity,
345        };
346        Err(Error::ResponseError(local_var_error))
347    }
348}
349
350pub fn deregister_vms_in_load_balancer(
351    configuration: &configuration::Configuration,
352    deregister_vms_in_load_balancer_request: Option<
353        crate::models::DeregisterVmsInLoadBalancerRequest,
354    >,
355) -> Result<
356    crate::models::DeregisterVmsInLoadBalancerResponse,
357    Error<DeregisterVmsInLoadBalancerError>,
358> {
359    let local_var_configuration = configuration;
360
361    let local_var_client = &local_var_configuration.client;
362
363    let local_var_uri_str = format!(
364        "{}/DeregisterVmsInLoadBalancer",
365        local_var_configuration.base_path
366    );
367    let mut local_var_req_builder =
368        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
369
370    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
371        let local_var_new_headers = match local_var_aws_v4_key.sign(
372            &local_var_uri_str,
373            "POST",
374            &serde_json::to_string(&deregister_vms_in_load_balancer_request)
375                .expect("param should serialize to string"),
376        ) {
377            Ok(new_headers) => new_headers,
378            Err(err) => return Err(Error::AWSV4SignatureError(err)),
379        };
380        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
381            local_var_req_builder =
382                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
383        }
384    }
385    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
386        local_var_req_builder =
387            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
388    }
389    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
390        let local_var_key = local_var_apikey.key.clone();
391        let local_var_value = match local_var_apikey.prefix {
392            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
393            None => local_var_key,
394        };
395        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
396    };
397    local_var_req_builder = local_var_req_builder.json(&deregister_vms_in_load_balancer_request);
398
399    let local_var_req = local_var_req_builder.build()?;
400    let mut local_var_resp = local_var_client.execute(local_var_req)?;
401
402    let local_var_status = local_var_resp.status();
403    let local_var_content = local_var_resp.text()?;
404
405    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
406        serde_json::from_str(&local_var_content).map_err(Error::from)
407    } else {
408        let local_var_entity: Option<DeregisterVmsInLoadBalancerError> =
409            serde_json::from_str(&local_var_content).ok();
410        let local_var_error = ResponseContent {
411            status: local_var_status,
412            content: local_var_content,
413            entity: local_var_entity,
414        };
415        Err(Error::ResponseError(local_var_error))
416    }
417}
418
419pub fn link_load_balancer_backend_machines(
420    configuration: &configuration::Configuration,
421    link_load_balancer_backend_machines_request: Option<
422        crate::models::LinkLoadBalancerBackendMachinesRequest,
423    >,
424) -> Result<
425    crate::models::LinkLoadBalancerBackendMachinesResponse,
426    Error<LinkLoadBalancerBackendMachinesError>,
427> {
428    let local_var_configuration = configuration;
429
430    let local_var_client = &local_var_configuration.client;
431
432    let local_var_uri_str = format!(
433        "{}/LinkLoadBalancerBackendMachines",
434        local_var_configuration.base_path
435    );
436    let mut local_var_req_builder =
437        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
438
439    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
440        let local_var_new_headers = match local_var_aws_v4_key.sign(
441            &local_var_uri_str,
442            "POST",
443            &serde_json::to_string(&link_load_balancer_backend_machines_request)
444                .expect("param should serialize to string"),
445        ) {
446            Ok(new_headers) => new_headers,
447            Err(err) => return Err(Error::AWSV4SignatureError(err)),
448        };
449        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
450            local_var_req_builder =
451                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
452        }
453    }
454    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
455        local_var_req_builder =
456            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
457    }
458    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
459        let local_var_key = local_var_apikey.key.clone();
460        let local_var_value = match local_var_apikey.prefix {
461            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
462            None => local_var_key,
463        };
464        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
465    };
466    local_var_req_builder =
467        local_var_req_builder.json(&link_load_balancer_backend_machines_request);
468
469    let local_var_req = local_var_req_builder.build()?;
470    let mut local_var_resp = local_var_client.execute(local_var_req)?;
471
472    let local_var_status = local_var_resp.status();
473    let local_var_content = local_var_resp.text()?;
474
475    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
476        serde_json::from_str(&local_var_content).map_err(Error::from)
477    } else {
478        let local_var_entity: Option<LinkLoadBalancerBackendMachinesError> =
479            serde_json::from_str(&local_var_content).ok();
480        let local_var_error = ResponseContent {
481            status: local_var_status,
482            content: local_var_content,
483            entity: local_var_entity,
484        };
485        Err(Error::ResponseError(local_var_error))
486    }
487}
488
489pub fn read_load_balancer_tags(
490    configuration: &configuration::Configuration,
491    read_load_balancer_tags_request: Option<crate::models::ReadLoadBalancerTagsRequest>,
492) -> Result<crate::models::ReadLoadBalancerTagsResponse, Error<ReadLoadBalancerTagsError>> {
493    let local_var_configuration = configuration;
494
495    let local_var_client = &local_var_configuration.client;
496
497    let local_var_uri_str = format!("{}/ReadLoadBalancerTags", local_var_configuration.base_path);
498    let mut local_var_req_builder =
499        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
500
501    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
502        let local_var_new_headers = match local_var_aws_v4_key.sign(
503            &local_var_uri_str,
504            "POST",
505            &serde_json::to_string(&read_load_balancer_tags_request)
506                .expect("param should serialize to string"),
507        ) {
508            Ok(new_headers) => new_headers,
509            Err(err) => return Err(Error::AWSV4SignatureError(err)),
510        };
511        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
512            local_var_req_builder =
513                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
514        }
515    }
516    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
517        local_var_req_builder =
518            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
519    }
520    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
521        let local_var_key = local_var_apikey.key.clone();
522        let local_var_value = match local_var_apikey.prefix {
523            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
524            None => local_var_key,
525        };
526        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
527    };
528    local_var_req_builder = local_var_req_builder.json(&read_load_balancer_tags_request);
529
530    let local_var_req = local_var_req_builder.build()?;
531    let mut local_var_resp = local_var_client.execute(local_var_req)?;
532
533    let local_var_status = local_var_resp.status();
534    let local_var_content = local_var_resp.text()?;
535
536    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
537        serde_json::from_str(&local_var_content).map_err(Error::from)
538    } else {
539        let local_var_entity: Option<ReadLoadBalancerTagsError> =
540            serde_json::from_str(&local_var_content).ok();
541        let local_var_error = ResponseContent {
542            status: local_var_status,
543            content: local_var_content,
544            entity: local_var_entity,
545        };
546        Err(Error::ResponseError(local_var_error))
547    }
548}
549
550pub fn read_load_balancers(
551    configuration: &configuration::Configuration,
552    read_load_balancers_request: Option<crate::models::ReadLoadBalancersRequest>,
553) -> Result<crate::models::ReadLoadBalancersResponse, Error<ReadLoadBalancersError>> {
554    let local_var_configuration = configuration;
555
556    let local_var_client = &local_var_configuration.client;
557
558    let local_var_uri_str = format!("{}/ReadLoadBalancers", local_var_configuration.base_path);
559    let mut local_var_req_builder =
560        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
561
562    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
563        let local_var_new_headers = match local_var_aws_v4_key.sign(
564            &local_var_uri_str,
565            "POST",
566            &serde_json::to_string(&read_load_balancers_request)
567                .expect("param should serialize to string"),
568        ) {
569            Ok(new_headers) => new_headers,
570            Err(err) => return Err(Error::AWSV4SignatureError(err)),
571        };
572        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
573            local_var_req_builder =
574                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
575        }
576    }
577    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
578        local_var_req_builder =
579            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
580    }
581    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
582        let local_var_key = local_var_apikey.key.clone();
583        let local_var_value = match local_var_apikey.prefix {
584            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
585            None => local_var_key,
586        };
587        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
588    };
589    local_var_req_builder = local_var_req_builder.json(&read_load_balancers_request);
590
591    let local_var_req = local_var_req_builder.build()?;
592    let mut local_var_resp = local_var_client.execute(local_var_req)?;
593
594    let local_var_status = local_var_resp.status();
595    let local_var_content = local_var_resp.text()?;
596
597    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
598        serde_json::from_str(&local_var_content).map_err(Error::from)
599    } else {
600        let local_var_entity: Option<ReadLoadBalancersError> =
601            serde_json::from_str(&local_var_content).ok();
602        let local_var_error = ResponseContent {
603            status: local_var_status,
604            content: local_var_content,
605            entity: local_var_entity,
606        };
607        Err(Error::ResponseError(local_var_error))
608    }
609}
610
611pub fn read_vms_health(
612    configuration: &configuration::Configuration,
613    read_vms_health_request: Option<crate::models::ReadVmsHealthRequest>,
614) -> Result<crate::models::ReadVmsHealthResponse, Error<ReadVmsHealthError>> {
615    let local_var_configuration = configuration;
616
617    let local_var_client = &local_var_configuration.client;
618
619    let local_var_uri_str = format!("{}/ReadVmsHealth", local_var_configuration.base_path);
620    let mut local_var_req_builder =
621        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
622
623    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
624        let local_var_new_headers = match local_var_aws_v4_key.sign(
625            &local_var_uri_str,
626            "POST",
627            &serde_json::to_string(&read_vms_health_request)
628                .expect("param should serialize to string"),
629        ) {
630            Ok(new_headers) => new_headers,
631            Err(err) => return Err(Error::AWSV4SignatureError(err)),
632        };
633        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
634            local_var_req_builder =
635                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
636        }
637    }
638    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
639        local_var_req_builder =
640            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
641    }
642    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
643        let local_var_key = local_var_apikey.key.clone();
644        let local_var_value = match local_var_apikey.prefix {
645            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
646            None => local_var_key,
647        };
648        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
649    };
650    local_var_req_builder = local_var_req_builder.json(&read_vms_health_request);
651
652    let local_var_req = local_var_req_builder.build()?;
653    let mut local_var_resp = local_var_client.execute(local_var_req)?;
654
655    let local_var_status = local_var_resp.status();
656    let local_var_content = local_var_resp.text()?;
657
658    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
659        serde_json::from_str(&local_var_content).map_err(Error::from)
660    } else {
661        let local_var_entity: Option<ReadVmsHealthError> =
662            serde_json::from_str(&local_var_content).ok();
663        let local_var_error = ResponseContent {
664            status: local_var_status,
665            content: local_var_content,
666            entity: local_var_entity,
667        };
668        Err(Error::ResponseError(local_var_error))
669    }
670}
671
672pub fn register_vms_in_load_balancer(
673    configuration: &configuration::Configuration,
674    register_vms_in_load_balancer_request: Option<crate::models::RegisterVmsInLoadBalancerRequest>,
675) -> Result<crate::models::RegisterVmsInLoadBalancerResponse, Error<RegisterVmsInLoadBalancerError>>
676{
677    let local_var_configuration = configuration;
678
679    let local_var_client = &local_var_configuration.client;
680
681    let local_var_uri_str = format!(
682        "{}/RegisterVmsInLoadBalancer",
683        local_var_configuration.base_path
684    );
685    let mut local_var_req_builder =
686        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
687
688    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
689        let local_var_new_headers = match local_var_aws_v4_key.sign(
690            &local_var_uri_str,
691            "POST",
692            &serde_json::to_string(&register_vms_in_load_balancer_request)
693                .expect("param should serialize to string"),
694        ) {
695            Ok(new_headers) => new_headers,
696            Err(err) => return Err(Error::AWSV4SignatureError(err)),
697        };
698        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
699            local_var_req_builder =
700                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
701        }
702    }
703    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
704        local_var_req_builder =
705            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
706    }
707    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
708        let local_var_key = local_var_apikey.key.clone();
709        let local_var_value = match local_var_apikey.prefix {
710            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
711            None => local_var_key,
712        };
713        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
714    };
715    local_var_req_builder = local_var_req_builder.json(&register_vms_in_load_balancer_request);
716
717    let local_var_req = local_var_req_builder.build()?;
718    let mut local_var_resp = local_var_client.execute(local_var_req)?;
719
720    let local_var_status = local_var_resp.status();
721    let local_var_content = local_var_resp.text()?;
722
723    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
724        serde_json::from_str(&local_var_content).map_err(Error::from)
725    } else {
726        let local_var_entity: Option<RegisterVmsInLoadBalancerError> =
727            serde_json::from_str(&local_var_content).ok();
728        let local_var_error = ResponseContent {
729            status: local_var_status,
730            content: local_var_content,
731            entity: local_var_entity,
732        };
733        Err(Error::ResponseError(local_var_error))
734    }
735}
736
737pub fn unlink_load_balancer_backend_machines(
738    configuration: &configuration::Configuration,
739    unlink_load_balancer_backend_machines_request: Option<
740        crate::models::UnlinkLoadBalancerBackendMachinesRequest,
741    >,
742) -> Result<
743    crate::models::UnlinkLoadBalancerBackendMachinesResponse,
744    Error<UnlinkLoadBalancerBackendMachinesError>,
745> {
746    let local_var_configuration = configuration;
747
748    let local_var_client = &local_var_configuration.client;
749
750    let local_var_uri_str = format!(
751        "{}/UnlinkLoadBalancerBackendMachines",
752        local_var_configuration.base_path
753    );
754    let mut local_var_req_builder =
755        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
756
757    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
758        let local_var_new_headers = match local_var_aws_v4_key.sign(
759            &local_var_uri_str,
760            "POST",
761            &serde_json::to_string(&unlink_load_balancer_backend_machines_request)
762                .expect("param should serialize to string"),
763        ) {
764            Ok(new_headers) => new_headers,
765            Err(err) => return Err(Error::AWSV4SignatureError(err)),
766        };
767        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
768            local_var_req_builder =
769                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
770        }
771    }
772    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
773        local_var_req_builder =
774            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
775    }
776    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
777        let local_var_key = local_var_apikey.key.clone();
778        let local_var_value = match local_var_apikey.prefix {
779            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
780            None => local_var_key,
781        };
782        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
783    };
784    local_var_req_builder =
785        local_var_req_builder.json(&unlink_load_balancer_backend_machines_request);
786
787    let local_var_req = local_var_req_builder.build()?;
788    let mut local_var_resp = local_var_client.execute(local_var_req)?;
789
790    let local_var_status = local_var_resp.status();
791    let local_var_content = local_var_resp.text()?;
792
793    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
794        serde_json::from_str(&local_var_content).map_err(Error::from)
795    } else {
796        let local_var_entity: Option<UnlinkLoadBalancerBackendMachinesError> =
797            serde_json::from_str(&local_var_content).ok();
798        let local_var_error = ResponseContent {
799            status: local_var_status,
800            content: local_var_content,
801            entity: local_var_entity,
802        };
803        Err(Error::ResponseError(local_var_error))
804    }
805}
806
807pub fn update_load_balancer(
808    configuration: &configuration::Configuration,
809    update_load_balancer_request: Option<crate::models::UpdateLoadBalancerRequest>,
810) -> Result<crate::models::UpdateLoadBalancerResponse, Error<UpdateLoadBalancerError>> {
811    let local_var_configuration = configuration;
812
813    let local_var_client = &local_var_configuration.client;
814
815    let local_var_uri_str = format!("{}/UpdateLoadBalancer", local_var_configuration.base_path);
816    let mut local_var_req_builder =
817        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
818
819    if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
820        let local_var_new_headers = match local_var_aws_v4_key.sign(
821            &local_var_uri_str,
822            "POST",
823            &serde_json::to_string(&update_load_balancer_request)
824                .expect("param should serialize to string"),
825        ) {
826            Ok(new_headers) => new_headers,
827            Err(err) => return Err(Error::AWSV4SignatureError(err)),
828        };
829        for (local_var_name, local_var_value) in local_var_new_headers.iter() {
830            local_var_req_builder =
831                local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
832        }
833    }
834    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
835        local_var_req_builder =
836            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
837    }
838    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
839        let local_var_key = local_var_apikey.key.clone();
840        let local_var_value = match local_var_apikey.prefix {
841            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
842            None => local_var_key,
843        };
844        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
845    };
846    local_var_req_builder = local_var_req_builder.json(&update_load_balancer_request);
847
848    let local_var_req = local_var_req_builder.build()?;
849    let mut local_var_resp = local_var_client.execute(local_var_req)?;
850
851    let local_var_status = local_var_resp.status();
852    let local_var_content = local_var_resp.text()?;
853
854    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
855        serde_json::from_str(&local_var_content).map_err(Error::from)
856    } else {
857        let local_var_entity: Option<UpdateLoadBalancerError> =
858            serde_json::from_str(&local_var_content).ok();
859        let local_var_error = ResponseContent {
860            status: local_var_status,
861            content: local_var_content,
862            entity: local_var_entity,
863        };
864        Err(Error::ResponseError(local_var_error))
865    }
866}