fastly_api/apis/
tls_activations_api.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14/// struct for passing parameters to the method [`create_tls_activation`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateTlsActivationParams {
17    pub tls_activation: Option<crate::models::TlsActivation>
18}
19
20/// struct for passing parameters to the method [`delete_tls_activation`]
21#[derive(Clone, Debug, Default)]
22pub struct DeleteTlsActivationParams {
23    /// Alphanumeric string identifying a TLS activation.
24    pub tls_activation_id: String
25}
26
27/// struct for passing parameters to the method [`get_tls_activation`]
28#[derive(Clone, Debug, Default)]
29pub struct GetTlsActivationParams {
30    /// Alphanumeric string identifying a TLS activation.
31    pub tls_activation_id: String,
32    /// Include related objects. Optional, comma-separated values. Permitted values: `tls_certificate`, `tls_configuration`, and `tls_domain`. 
33    pub include: Option<String>
34}
35
36/// struct for passing parameters to the method [`list_tls_activations`]
37#[derive(Clone, Debug, Default)]
38pub struct ListTlsActivationsParams {
39    /// Limit the returned activations to a specific certificate.
40    pub filter_tls_certificate_id: Option<String>,
41    /// Limit the returned activations to a specific TLS configuration.
42    pub filter_tls_configuration_id: Option<String>,
43    /// Limit the returned rules to a specific domain name.
44    pub filter_tls_domain_id: Option<String>,
45    /// Include related objects. Optional, comma-separated values. Permitted values: `tls_certificate`, `tls_configuration`, and `tls_domain`. 
46    pub include: Option<String>,
47    /// Current page.
48    pub page_number: Option<i32>,
49    /// Number of records per page.
50    pub page_size: Option<i32>
51}
52
53/// struct for passing parameters to the method [`update_tls_activation`]
54#[derive(Clone, Debug, Default)]
55pub struct UpdateTlsActivationParams {
56    /// Alphanumeric string identifying a TLS activation.
57    pub tls_activation_id: String,
58    pub tls_activation: Option<crate::models::TlsActivation>
59}
60
61
62/// struct for typed errors of method [`create_tls_activation`]
63#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum CreateTlsActivationError {
66    UnknownValue(serde_json::Value),
67}
68
69/// struct for typed errors of method [`delete_tls_activation`]
70#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum DeleteTlsActivationError {
73    UnknownValue(serde_json::Value),
74}
75
76/// struct for typed errors of method [`get_tls_activation`]
77#[derive(Debug, Clone, Serialize, Deserialize)]
78#[serde(untagged)]
79pub enum GetTlsActivationError {
80    UnknownValue(serde_json::Value),
81}
82
83/// struct for typed errors of method [`list_tls_activations`]
84#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(untagged)]
86pub enum ListTlsActivationsError {
87    UnknownValue(serde_json::Value),
88}
89
90/// struct for typed errors of method [`update_tls_activation`]
91#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum UpdateTlsActivationError {
94    UnknownValue(serde_json::Value),
95}
96
97
98/// Enable TLS for a particular TLS domain and certificate combination. These relationships must be specified to create the TLS activation.
99pub async fn create_tls_activation(configuration: &mut configuration::Configuration, params: CreateTlsActivationParams) -> Result<crate::models::TlsActivationResponse, Error<CreateTlsActivationError>> {
100    let local_var_configuration = configuration;
101
102    // unbox the parameters
103    let tls_activation = params.tls_activation;
104
105
106    let local_var_client = &local_var_configuration.client;
107
108    let local_var_uri_str = format!("{}/tls/activations", local_var_configuration.base_path);
109    let mut local_var_req_builder = 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 = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
113    }
114    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
115        let local_var_key = local_var_apikey.key.clone();
116        let local_var_value = match local_var_apikey.prefix {
117            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
118            None => local_var_key,
119        };
120        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
121    };
122    local_var_req_builder = local_var_req_builder.json(&tls_activation);
123
124    let local_var_req = local_var_req_builder.build()?;
125    let local_var_resp = local_var_client.execute(local_var_req).await?;
126
127    if "POST" != "GET" && "POST" != "HEAD" {
128      let headers = local_var_resp.headers();
129      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
130          Some(v) => v.to_str().unwrap().parse().unwrap(),
131          None => configuration::DEFAULT_RATELIMIT,
132      };
133      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
134          Some(v) => v.to_str().unwrap().parse().unwrap(),
135          None => 0,
136      };
137    }
138
139    let local_var_status = local_var_resp.status();
140    let local_var_content = local_var_resp.text().await?;
141
142    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
143        serde_json::from_str(&local_var_content).map_err(Error::from)
144    } else {
145        let local_var_entity: Option<CreateTlsActivationError> = serde_json::from_str(&local_var_content).ok();
146        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
147        Err(Error::ResponseError(local_var_error))
148    }
149}
150
151/// Disable TLS on the domain associated with this TLS activation.
152pub async fn delete_tls_activation(configuration: &mut configuration::Configuration, params: DeleteTlsActivationParams) -> Result<(), Error<DeleteTlsActivationError>> {
153    let local_var_configuration = configuration;
154
155    // unbox the parameters
156    let tls_activation_id = params.tls_activation_id;
157
158
159    let local_var_client = &local_var_configuration.client;
160
161    let local_var_uri_str = format!("{}/tls/activations/{tls_activation_id}", local_var_configuration.base_path, tls_activation_id=crate::apis::urlencode(tls_activation_id));
162    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
163
164    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
165        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
166    }
167    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
168        let local_var_key = local_var_apikey.key.clone();
169        let local_var_value = match local_var_apikey.prefix {
170            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
171            None => local_var_key,
172        };
173        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
174    };
175
176    let local_var_req = local_var_req_builder.build()?;
177    let local_var_resp = local_var_client.execute(local_var_req).await?;
178
179    if "DELETE" != "GET" && "DELETE" != "HEAD" {
180      let headers = local_var_resp.headers();
181      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
182          Some(v) => v.to_str().unwrap().parse().unwrap(),
183          None => configuration::DEFAULT_RATELIMIT,
184      };
185      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
186          Some(v) => v.to_str().unwrap().parse().unwrap(),
187          None => 0,
188      };
189    }
190
191    let local_var_status = local_var_resp.status();
192    let local_var_content = local_var_resp.text().await?;
193
194    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
195        Ok(())
196    } else {
197        let local_var_entity: Option<DeleteTlsActivationError> = serde_json::from_str(&local_var_content).ok();
198        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
199        Err(Error::ResponseError(local_var_error))
200    }
201}
202
203/// Show a TLS activation.
204pub async fn get_tls_activation(configuration: &mut configuration::Configuration, params: GetTlsActivationParams) -> Result<crate::models::TlsActivationResponse, Error<GetTlsActivationError>> {
205    let local_var_configuration = configuration;
206
207    // unbox the parameters
208    let tls_activation_id = params.tls_activation_id;
209    let include = params.include;
210
211
212    let local_var_client = &local_var_configuration.client;
213
214    let local_var_uri_str = format!("{}/tls/activations/{tls_activation_id}", local_var_configuration.base_path, tls_activation_id=crate::apis::urlencode(tls_activation_id));
215    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
216
217    if let Some(ref local_var_str) = include {
218        local_var_req_builder = local_var_req_builder.query(&[("include", &local_var_str.to_string())]);
219    }
220    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
221        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
222    }
223    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
224        let local_var_key = local_var_apikey.key.clone();
225        let local_var_value = match local_var_apikey.prefix {
226            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
227            None => local_var_key,
228        };
229        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
230    };
231
232    let local_var_req = local_var_req_builder.build()?;
233    let local_var_resp = local_var_client.execute(local_var_req).await?;
234
235    if "GET" != "GET" && "GET" != "HEAD" {
236      let headers = local_var_resp.headers();
237      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
238          Some(v) => v.to_str().unwrap().parse().unwrap(),
239          None => configuration::DEFAULT_RATELIMIT,
240      };
241      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
242          Some(v) => v.to_str().unwrap().parse().unwrap(),
243          None => 0,
244      };
245    }
246
247    let local_var_status = local_var_resp.status();
248    let local_var_content = local_var_resp.text().await?;
249
250    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
251        serde_json::from_str(&local_var_content).map_err(Error::from)
252    } else {
253        let local_var_entity: Option<GetTlsActivationError> = serde_json::from_str(&local_var_content).ok();
254        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
255        Err(Error::ResponseError(local_var_error))
256    }
257}
258
259/// List all TLS activations.
260pub async fn list_tls_activations(configuration: &mut configuration::Configuration, params: ListTlsActivationsParams) -> Result<crate::models::TlsActivationsResponse, Error<ListTlsActivationsError>> {
261    let local_var_configuration = configuration;
262
263    // unbox the parameters
264    let filter_tls_certificate_id = params.filter_tls_certificate_id;
265    let filter_tls_configuration_id = params.filter_tls_configuration_id;
266    let filter_tls_domain_id = params.filter_tls_domain_id;
267    let include = params.include;
268    let page_number = params.page_number;
269    let page_size = params.page_size;
270
271
272    let local_var_client = &local_var_configuration.client;
273
274    let local_var_uri_str = format!("{}/tls/activations", local_var_configuration.base_path);
275    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
276
277    if let Some(ref local_var_str) = filter_tls_certificate_id {
278        local_var_req_builder = local_var_req_builder.query(&[("filter[tls_certificate.id]", &local_var_str.to_string())]);
279    }
280    if let Some(ref local_var_str) = filter_tls_configuration_id {
281        local_var_req_builder = local_var_req_builder.query(&[("filter[tls_configuration.id]", &local_var_str.to_string())]);
282    }
283    if let Some(ref local_var_str) = filter_tls_domain_id {
284        local_var_req_builder = local_var_req_builder.query(&[("filter[tls_domain.id]", &local_var_str.to_string())]);
285    }
286    if let Some(ref local_var_str) = include {
287        local_var_req_builder = local_var_req_builder.query(&[("include", &local_var_str.to_string())]);
288    }
289    if let Some(ref local_var_str) = page_number {
290        local_var_req_builder = local_var_req_builder.query(&[("page[number]", &local_var_str.to_string())]);
291    }
292    if let Some(ref local_var_str) = page_size {
293        local_var_req_builder = local_var_req_builder.query(&[("page[size]", &local_var_str.to_string())]);
294    }
295    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
296        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
297    }
298    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
299        let local_var_key = local_var_apikey.key.clone();
300        let local_var_value = match local_var_apikey.prefix {
301            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
302            None => local_var_key,
303        };
304        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
305    };
306
307    let local_var_req = local_var_req_builder.build()?;
308    let local_var_resp = local_var_client.execute(local_var_req).await?;
309
310    if "GET" != "GET" && "GET" != "HEAD" {
311      let headers = local_var_resp.headers();
312      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
313          Some(v) => v.to_str().unwrap().parse().unwrap(),
314          None => configuration::DEFAULT_RATELIMIT,
315      };
316      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
317          Some(v) => v.to_str().unwrap().parse().unwrap(),
318          None => 0,
319      };
320    }
321
322    let local_var_status = local_var_resp.status();
323    let local_var_content = local_var_resp.text().await?;
324
325    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
326        serde_json::from_str(&local_var_content).map_err(Error::from)
327    } else {
328        let local_var_entity: Option<ListTlsActivationsError> = serde_json::from_str(&local_var_content).ok();
329        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
330        Err(Error::ResponseError(local_var_error))
331    }
332}
333
334/// Update the certificate used to terminate TLS traffic for the domain associated with this TLS activation.
335pub async fn update_tls_activation(configuration: &mut configuration::Configuration, params: UpdateTlsActivationParams) -> Result<crate::models::TlsActivationResponse, Error<UpdateTlsActivationError>> {
336    let local_var_configuration = configuration;
337
338    // unbox the parameters
339    let tls_activation_id = params.tls_activation_id;
340    let tls_activation = params.tls_activation;
341
342
343    let local_var_client = &local_var_configuration.client;
344
345    let local_var_uri_str = format!("{}/tls/activations/{tls_activation_id}", local_var_configuration.base_path, tls_activation_id=crate::apis::urlencode(tls_activation_id));
346    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
347
348    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
349        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
350    }
351    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
352        let local_var_key = local_var_apikey.key.clone();
353        let local_var_value = match local_var_apikey.prefix {
354            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
355            None => local_var_key,
356        };
357        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
358    };
359    local_var_req_builder = local_var_req_builder.json(&tls_activation);
360
361    let local_var_req = local_var_req_builder.build()?;
362    let local_var_resp = local_var_client.execute(local_var_req).await?;
363
364    if "PATCH" != "GET" && "PATCH" != "HEAD" {
365      let headers = local_var_resp.headers();
366      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
367          Some(v) => v.to_str().unwrap().parse().unwrap(),
368          None => configuration::DEFAULT_RATELIMIT,
369      };
370      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
371          Some(v) => v.to_str().unwrap().parse().unwrap(),
372          None => 0,
373      };
374    }
375
376    let local_var_status = local_var_resp.status();
377    let local_var_content = local_var_resp.text().await?;
378
379    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
380        serde_json::from_str(&local_var_content).map_err(Error::from)
381    } else {
382        let local_var_entity: Option<UpdateTlsActivationError> = serde_json::from_str(&local_var_content).ok();
383        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
384        Err(Error::ResponseError(local_var_error))
385    }
386}
387