1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateTlsCertParams {
17 pub tls_certificate: Option<crate::models::TlsCertificate>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct DeleteTlsCertParams {
23 pub tls_certificate_id: String
25}
26
27#[derive(Clone, Debug, Default)]
29pub struct GetTlsCertParams {
30 pub tls_certificate_id: String
32}
33
34#[derive(Clone, Debug, Default)]
36pub struct GetTlsCertBlobParams {
37 pub tls_certificate_id: String
39}
40
41#[derive(Clone, Debug, Default)]
43pub struct ListTlsCertsParams {
44 pub filter_in_use: Option<String>,
46 pub filter_not_after: Option<String>,
48 pub filter_tls_domains_id: Option<String>,
50 pub include: Option<String>,
52 pub sort: Option<String>,
54 pub page_number: Option<i32>,
56 pub page_size: Option<i32>
58}
59
60#[derive(Clone, Debug, Default)]
62pub struct UpdateTlsCertParams {
63 pub tls_certificate_id: String,
65 pub tls_certificate: Option<crate::models::TlsCertificate>
66}
67
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum CreateTlsCertError {
73 UnknownValue(serde_json::Value),
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
78#[serde(untagged)]
79pub enum DeleteTlsCertError {
80 UnknownValue(serde_json::Value),
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(untagged)]
86pub enum GetTlsCertError {
87 UnknownValue(serde_json::Value),
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum GetTlsCertBlobError {
94 UnknownValue(serde_json::Value),
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
99#[serde(untagged)]
100pub enum ListTlsCertsError {
101 UnknownValue(serde_json::Value),
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
106#[serde(untagged)]
107pub enum UpdateTlsCertError {
108 UnknownValue(serde_json::Value),
109}
110
111
112pub async fn create_tls_cert(configuration: &mut configuration::Configuration, params: CreateTlsCertParams) -> Result<serde_json::Value, Error<CreateTlsCertError>> {
114 let local_var_configuration = configuration;
115
116 let tls_certificate = params.tls_certificate;
118
119
120 let local_var_client = &local_var_configuration.client;
121
122 let local_var_uri_str = format!("{}/tls/certificates", local_var_configuration.base_path);
123 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
124
125 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
127 }
128 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
129 let local_var_key = local_var_apikey.key.clone();
130 let local_var_value = match local_var_apikey.prefix {
131 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
132 None => local_var_key,
133 };
134 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
135 };
136 local_var_req_builder = local_var_req_builder.json(&tls_certificate);
137
138 let local_var_req = local_var_req_builder.build()?;
139 let local_var_resp = local_var_client.execute(local_var_req).await?;
140
141 if "POST" != "GET" && "POST" != "HEAD" {
142 let headers = local_var_resp.headers();
143 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
144 Some(v) => v.to_str().unwrap().parse().unwrap(),
145 None => configuration::DEFAULT_RATELIMIT,
146 };
147 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
148 Some(v) => v.to_str().unwrap().parse().unwrap(),
149 None => 0,
150 };
151 }
152
153 let local_var_status = local_var_resp.status();
154 let local_var_content = local_var_resp.text().await?;
155
156 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
157 serde_json::from_str(&local_var_content).map_err(Error::from)
158 } else {
159 let local_var_entity: Option<CreateTlsCertError> = serde_json::from_str(&local_var_content).ok();
160 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
161 Err(Error::ResponseError(local_var_error))
162 }
163}
164
165pub async fn delete_tls_cert(configuration: &mut configuration::Configuration, params: DeleteTlsCertParams) -> Result<(), Error<DeleteTlsCertError>> {
167 let local_var_configuration = configuration;
168
169 let tls_certificate_id = params.tls_certificate_id;
171
172
173 let local_var_client = &local_var_configuration.client;
174
175 let local_var_uri_str = format!("{}/tls/certificates/{tls_certificate_id}", local_var_configuration.base_path, tls_certificate_id=crate::apis::urlencode(tls_certificate_id));
176 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
177
178 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
179 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
180 }
181 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
182 let local_var_key = local_var_apikey.key.clone();
183 let local_var_value = match local_var_apikey.prefix {
184 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
185 None => local_var_key,
186 };
187 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
188 };
189
190 let local_var_req = local_var_req_builder.build()?;
191 let local_var_resp = local_var_client.execute(local_var_req).await?;
192
193 if "DELETE" != "GET" && "DELETE" != "HEAD" {
194 let headers = local_var_resp.headers();
195 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
196 Some(v) => v.to_str().unwrap().parse().unwrap(),
197 None => configuration::DEFAULT_RATELIMIT,
198 };
199 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
200 Some(v) => v.to_str().unwrap().parse().unwrap(),
201 None => 0,
202 };
203 }
204
205 let local_var_status = local_var_resp.status();
206 let local_var_content = local_var_resp.text().await?;
207
208 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
209 Ok(())
210 } else {
211 let local_var_entity: Option<DeleteTlsCertError> = serde_json::from_str(&local_var_content).ok();
212 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
213 Err(Error::ResponseError(local_var_error))
214 }
215}
216
217pub async fn get_tls_cert(configuration: &mut configuration::Configuration, params: GetTlsCertParams) -> Result<crate::models::TlsCertificateResponse, Error<GetTlsCertError>> {
219 let local_var_configuration = configuration;
220
221 let tls_certificate_id = params.tls_certificate_id;
223
224
225 let local_var_client = &local_var_configuration.client;
226
227 let local_var_uri_str = format!("{}/tls/certificates/{tls_certificate_id}", local_var_configuration.base_path, tls_certificate_id=crate::apis::urlencode(tls_certificate_id));
228 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
229
230 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
231 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
232 }
233 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
234 let local_var_key = local_var_apikey.key.clone();
235 let local_var_value = match local_var_apikey.prefix {
236 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
237 None => local_var_key,
238 };
239 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
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 if "GET" != "GET" && "GET" != "HEAD" {
246 let headers = local_var_resp.headers();
247 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
248 Some(v) => v.to_str().unwrap().parse().unwrap(),
249 None => configuration::DEFAULT_RATELIMIT,
250 };
251 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
252 Some(v) => v.to_str().unwrap().parse().unwrap(),
253 None => 0,
254 };
255 }
256
257 let local_var_status = local_var_resp.status();
258 let local_var_content = local_var_resp.text().await?;
259
260 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
261 serde_json::from_str(&local_var_content).map_err(Error::from)
262 } else {
263 let local_var_entity: Option<GetTlsCertError> = serde_json::from_str(&local_var_content).ok();
264 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
265 Err(Error::ResponseError(local_var_error))
266 }
267}
268
269pub async fn get_tls_cert_blob(configuration: &mut configuration::Configuration, params: GetTlsCertBlobParams) -> Result<crate::models::TlsCertificateBlobResponse, Error<GetTlsCertBlobError>> {
271 let local_var_configuration = configuration;
272
273 let tls_certificate_id = params.tls_certificate_id;
275
276
277 let local_var_client = &local_var_configuration.client;
278
279 let local_var_uri_str = format!("{}/tls/certificates/{tls_certificate_id}/blob", local_var_configuration.base_path, tls_certificate_id=crate::apis::urlencode(tls_certificate_id));
280 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
281
282 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
283 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
284 }
285 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
286 let local_var_key = local_var_apikey.key.clone();
287 let local_var_value = match local_var_apikey.prefix {
288 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
289 None => local_var_key,
290 };
291 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
292 };
293
294 let local_var_req = local_var_req_builder.build()?;
295 let local_var_resp = local_var_client.execute(local_var_req).await?;
296
297 if "GET" != "GET" && "GET" != "HEAD" {
298 let headers = local_var_resp.headers();
299 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
300 Some(v) => v.to_str().unwrap().parse().unwrap(),
301 None => configuration::DEFAULT_RATELIMIT,
302 };
303 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
304 Some(v) => v.to_str().unwrap().parse().unwrap(),
305 None => 0,
306 };
307 }
308
309 let local_var_status = local_var_resp.status();
310 let local_var_content = local_var_resp.text().await?;
311
312 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
313 serde_json::from_str(&local_var_content).map_err(Error::from)
314 } else {
315 let local_var_entity: Option<GetTlsCertBlobError> = serde_json::from_str(&local_var_content).ok();
316 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
317 Err(Error::ResponseError(local_var_error))
318 }
319}
320
321pub async fn list_tls_certs(configuration: &mut configuration::Configuration, params: ListTlsCertsParams) -> Result<crate::models::TlsCertificatesResponse, Error<ListTlsCertsError>> {
323 let local_var_configuration = configuration;
324
325 let filter_in_use = params.filter_in_use;
327 let filter_not_after = params.filter_not_after;
328 let filter_tls_domains_id = params.filter_tls_domains_id;
329 let include = params.include;
330 let sort = params.sort;
331 let page_number = params.page_number;
332 let page_size = params.page_size;
333
334
335 let local_var_client = &local_var_configuration.client;
336
337 let local_var_uri_str = format!("{}/tls/certificates", local_var_configuration.base_path);
338 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
339
340 if let Some(ref local_var_str) = filter_in_use {
341 local_var_req_builder = local_var_req_builder.query(&[("filter[in_use]", &local_var_str.to_string())]);
342 }
343 if let Some(ref local_var_str) = filter_not_after {
344 local_var_req_builder = local_var_req_builder.query(&[("filter[not_after]", &local_var_str.to_string())]);
345 }
346 if let Some(ref local_var_str) = filter_tls_domains_id {
347 local_var_req_builder = local_var_req_builder.query(&[("filter[tls_domains.id]", &local_var_str.to_string())]);
348 }
349 if let Some(ref local_var_str) = include {
350 local_var_req_builder = local_var_req_builder.query(&[("include", &local_var_str.to_string())]);
351 }
352 if let Some(ref local_var_str) = sort {
353 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
354 }
355 if let Some(ref local_var_str) = page_number {
356 local_var_req_builder = local_var_req_builder.query(&[("page[number]", &local_var_str.to_string())]);
357 }
358 if let Some(ref local_var_str) = page_size {
359 local_var_req_builder = local_var_req_builder.query(&[("page[size]", &local_var_str.to_string())]);
360 }
361 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
362 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
363 }
364 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
365 let local_var_key = local_var_apikey.key.clone();
366 let local_var_value = match local_var_apikey.prefix {
367 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
368 None => local_var_key,
369 };
370 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
371 };
372
373 let local_var_req = local_var_req_builder.build()?;
374 let local_var_resp = local_var_client.execute(local_var_req).await?;
375
376 if "GET" != "GET" && "GET" != "HEAD" {
377 let headers = local_var_resp.headers();
378 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
379 Some(v) => v.to_str().unwrap().parse().unwrap(),
380 None => configuration::DEFAULT_RATELIMIT,
381 };
382 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
383 Some(v) => v.to_str().unwrap().parse().unwrap(),
384 None => 0,
385 };
386 }
387
388 let local_var_status = local_var_resp.status();
389 let local_var_content = local_var_resp.text().await?;
390
391 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
392 serde_json::from_str(&local_var_content).map_err(Error::from)
393 } else {
394 let local_var_entity: Option<ListTlsCertsError> = serde_json::from_str(&local_var_content).ok();
395 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
396 Err(Error::ResponseError(local_var_error))
397 }
398}
399
400pub async fn update_tls_cert(configuration: &mut configuration::Configuration, params: UpdateTlsCertParams) -> Result<crate::models::TlsCertificateResponse, Error<UpdateTlsCertError>> {
402 let local_var_configuration = configuration;
403
404 let tls_certificate_id = params.tls_certificate_id;
406 let tls_certificate = params.tls_certificate;
407
408
409 let local_var_client = &local_var_configuration.client;
410
411 let local_var_uri_str = format!("{}/tls/certificates/{tls_certificate_id}", local_var_configuration.base_path, tls_certificate_id=crate::apis::urlencode(tls_certificate_id));
412 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
413
414 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
415 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
416 }
417 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
418 let local_var_key = local_var_apikey.key.clone();
419 let local_var_value = match local_var_apikey.prefix {
420 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
421 None => local_var_key,
422 };
423 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
424 };
425 local_var_req_builder = local_var_req_builder.json(&tls_certificate);
426
427 let local_var_req = local_var_req_builder.build()?;
428 let local_var_resp = local_var_client.execute(local_var_req).await?;
429
430 if "PATCH" != "GET" && "PATCH" != "HEAD" {
431 let headers = local_var_resp.headers();
432 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
433 Some(v) => v.to_str().unwrap().parse().unwrap(),
434 None => configuration::DEFAULT_RATELIMIT,
435 };
436 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
437 Some(v) => v.to_str().unwrap().parse().unwrap(),
438 None => 0,
439 };
440 }
441
442 let local_var_status = local_var_resp.status();
443 let local_var_content = local_var_resp.text().await?;
444
445 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
446 serde_json::from_str(&local_var_content).map_err(Error::from)
447 } else {
448 let local_var_entity: Option<UpdateTlsCertError> = serde_json::from_str(&local_var_content).ok();
449 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
450 Err(Error::ResponseError(local_var_error))
451 }
452}
453