outscale_api/apis/
dhcp_option_api.rs1use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateDhcpOptionsError {
20 UnknownValue(serde_json::Value),
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum DeleteDhcpOptionsError {
27 UnknownValue(serde_json::Value),
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum ReadDhcpOptionsError {
34 UnknownValue(serde_json::Value),
35}
36
37pub fn create_dhcp_options(
38 configuration: &configuration::Configuration,
39 create_dhcp_options_request: Option<crate::models::CreateDhcpOptionsRequest>,
40) -> Result<crate::models::CreateDhcpOptionsResponse, Error<CreateDhcpOptionsError>> {
41 let local_var_configuration = configuration;
42
43 let local_var_client = &local_var_configuration.client;
44
45 let local_var_uri_str = format!("{}/CreateDhcpOptions", local_var_configuration.base_path);
46 let mut local_var_req_builder =
47 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
48
49 if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
50 let local_var_new_headers = match local_var_aws_v4_key.sign(
51 &local_var_uri_str,
52 "POST",
53 &serde_json::to_string(&create_dhcp_options_request)
54 .expect("param should serialize to string"),
55 ) {
56 Ok(new_headers) => new_headers,
57 Err(err) => return Err(Error::AWSV4SignatureError(err)),
58 };
59 for (local_var_name, local_var_value) in local_var_new_headers.iter() {
60 local_var_req_builder =
61 local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
62 }
63 }
64 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
65 local_var_req_builder =
66 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
67 }
68 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
69 let local_var_key = local_var_apikey.key.clone();
70 let local_var_value = match local_var_apikey.prefix {
71 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
72 None => local_var_key,
73 };
74 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
75 };
76 local_var_req_builder = local_var_req_builder.json(&create_dhcp_options_request);
77
78 let local_var_req = local_var_req_builder.build()?;
79 let mut local_var_resp = local_var_client.execute(local_var_req)?;
80
81 let local_var_status = local_var_resp.status();
82 let local_var_content = local_var_resp.text()?;
83
84 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
85 serde_json::from_str(&local_var_content).map_err(Error::from)
86 } else {
87 let local_var_entity: Option<CreateDhcpOptionsError> =
88 serde_json::from_str(&local_var_content).ok();
89 let local_var_error = ResponseContent {
90 status: local_var_status,
91 content: local_var_content,
92 entity: local_var_entity,
93 };
94 Err(Error::ResponseError(local_var_error))
95 }
96}
97
98pub fn delete_dhcp_options(
99 configuration: &configuration::Configuration,
100 delete_dhcp_options_request: Option<crate::models::DeleteDhcpOptionsRequest>,
101) -> Result<crate::models::DeleteDhcpOptionsResponse, Error<DeleteDhcpOptionsError>> {
102 let local_var_configuration = configuration;
103
104 let local_var_client = &local_var_configuration.client;
105
106 let local_var_uri_str = format!("{}/DeleteDhcpOptions", local_var_configuration.base_path);
107 let mut local_var_req_builder =
108 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
109
110 if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
111 let local_var_new_headers = match local_var_aws_v4_key.sign(
112 &local_var_uri_str,
113 "POST",
114 &serde_json::to_string(&delete_dhcp_options_request)
115 .expect("param should serialize to string"),
116 ) {
117 Ok(new_headers) => new_headers,
118 Err(err) => return Err(Error::AWSV4SignatureError(err)),
119 };
120 for (local_var_name, local_var_value) in local_var_new_headers.iter() {
121 local_var_req_builder =
122 local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
123 }
124 }
125 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126 local_var_req_builder =
127 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128 }
129 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
130 let local_var_key = local_var_apikey.key.clone();
131 let local_var_value = match local_var_apikey.prefix {
132 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
133 None => local_var_key,
134 };
135 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
136 };
137 local_var_req_builder = local_var_req_builder.json(&delete_dhcp_options_request);
138
139 let local_var_req = local_var_req_builder.build()?;
140 let mut local_var_resp = local_var_client.execute(local_var_req)?;
141
142 let local_var_status = local_var_resp.status();
143 let local_var_content = local_var_resp.text()?;
144
145 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
146 serde_json::from_str(&local_var_content).map_err(Error::from)
147 } else {
148 let local_var_entity: Option<DeleteDhcpOptionsError> =
149 serde_json::from_str(&local_var_content).ok();
150 let local_var_error = ResponseContent {
151 status: local_var_status,
152 content: local_var_content,
153 entity: local_var_entity,
154 };
155 Err(Error::ResponseError(local_var_error))
156 }
157}
158
159pub fn read_dhcp_options(
160 configuration: &configuration::Configuration,
161 read_dhcp_options_request: Option<crate::models::ReadDhcpOptionsRequest>,
162) -> Result<crate::models::ReadDhcpOptionsResponse, Error<ReadDhcpOptionsError>> {
163 let local_var_configuration = configuration;
164
165 let local_var_client = &local_var_configuration.client;
166
167 let local_var_uri_str = format!("{}/ReadDhcpOptions", local_var_configuration.base_path);
168 let mut local_var_req_builder =
169 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
170
171 if let Some(ref local_var_aws_v4_key) = local_var_configuration.aws_v4_key {
172 let local_var_new_headers = match local_var_aws_v4_key.sign(
173 &local_var_uri_str,
174 "POST",
175 &serde_json::to_string(&read_dhcp_options_request)
176 .expect("param should serialize to string"),
177 ) {
178 Ok(new_headers) => new_headers,
179 Err(err) => return Err(Error::AWSV4SignatureError(err)),
180 };
181 for (local_var_name, local_var_value) in local_var_new_headers.iter() {
182 local_var_req_builder =
183 local_var_req_builder.header(local_var_name.as_str(), local_var_value.as_str());
184 }
185 }
186 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
187 local_var_req_builder =
188 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
189 }
190 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
191 let local_var_key = local_var_apikey.key.clone();
192 let local_var_value = match local_var_apikey.prefix {
193 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
194 None => local_var_key,
195 };
196 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
197 };
198 local_var_req_builder = local_var_req_builder.json(&read_dhcp_options_request);
199
200 let local_var_req = local_var_req_builder.build()?;
201 let mut local_var_resp = local_var_client.execute(local_var_req)?;
202
203 let local_var_status = local_var_resp.status();
204 let local_var_content = local_var_resp.text()?;
205
206 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
207 serde_json::from_str(&local_var_content).map_err(Error::from)
208 } else {
209 let local_var_entity: Option<ReadDhcpOptionsError> =
210 serde_json::from_str(&local_var_content).ok();
211 let local_var_error = ResponseContent {
212 status: local_var_status,
213 content: local_var_content,
214 entity: local_var_entity,
215 };
216 Err(Error::ResponseError(local_var_error))
217 }
218}