fastly_api/apis/
automation_tokens_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_automation_token`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateAutomationTokenParams {
17    pub automation_token_create_request: Option<crate::models::AutomationTokenCreateRequest>
18}
19
20/// struct for passing parameters to the method [`get_automation_token_id`]
21#[derive(Clone, Debug, Default)]
22pub struct GetAutomationTokenIdParams {
23    pub id: String
24}
25
26/// struct for passing parameters to the method [`get_automation_tokens_id_services`]
27#[derive(Clone, Debug, Default)]
28pub struct GetAutomationTokensIdServicesParams {
29    pub id: String,
30    pub per_page: Option<i32>,
31    pub page: Option<i32>
32}
33
34/// struct for passing parameters to the method [`list_automation_tokens`]
35#[derive(Clone, Debug, Default)]
36pub struct ListAutomationTokensParams {
37    pub per_page: Option<i32>,
38    pub page: Option<i32>
39}
40
41/// struct for passing parameters to the method [`revoke_automation_token_id`]
42#[derive(Clone, Debug, Default)]
43pub struct RevokeAutomationTokenIdParams {
44    pub id: String
45}
46
47
48/// struct for typed errors of method [`create_automation_token`]
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum CreateAutomationTokenError {
52    Status400(),
53    Status422(),
54    UnknownValue(serde_json::Value),
55}
56
57/// struct for typed errors of method [`get_automation_token_id`]
58#[derive(Debug, Clone, Serialize, Deserialize)]
59#[serde(untagged)]
60pub enum GetAutomationTokenIdError {
61    Status401(crate::models::AutomationTokenErrorResponse),
62    Status403(crate::models::AutomationTokenErrorResponse),
63    UnknownValue(serde_json::Value),
64}
65
66/// struct for typed errors of method [`get_automation_tokens_id_services`]
67#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum GetAutomationTokensIdServicesError {
70    Status401(crate::models::AutomationTokenErrorResponse),
71    Status403(crate::models::AutomationTokenErrorResponse),
72    UnknownValue(serde_json::Value),
73}
74
75/// struct for typed errors of method [`list_automation_tokens`]
76#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum ListAutomationTokensError {
79    Status401(crate::models::AutomationTokenErrorResponse),
80    Status403(crate::models::AutomationTokenErrorResponse),
81    UnknownValue(serde_json::Value),
82}
83
84/// struct for typed errors of method [`revoke_automation_token_id`]
85#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum RevokeAutomationTokenIdError {
88    Status400(crate::models::AutomationTokenErrorResponse),
89    Status401(crate::models::AutomationTokenErrorResponse),
90    Status403(crate::models::AutomationTokenErrorResponse),
91    Status404(crate::models::AutomationTokenErrorResponse),
92    UnknownValue(serde_json::Value),
93}
94
95
96/// Creates a new automation token.
97pub async fn create_automation_token(configuration: &mut configuration::Configuration, params: CreateAutomationTokenParams) -> Result<crate::models::AutomationTokenCreateResponse, Error<CreateAutomationTokenError>> {
98    let local_var_configuration = configuration;
99
100    // unbox the parameters
101    let automation_token_create_request = params.automation_token_create_request;
102
103
104    let local_var_client = &local_var_configuration.client;
105
106    let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
107    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
108
109    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
110        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
111    }
112    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
113        let local_var_key = local_var_apikey.key.clone();
114        let local_var_value = match local_var_apikey.prefix {
115            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
116            None => local_var_key,
117        };
118        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
119    };
120    local_var_req_builder = local_var_req_builder.json(&automation_token_create_request);
121
122    let local_var_req = local_var_req_builder.build()?;
123    let local_var_resp = local_var_client.execute(local_var_req).await?;
124
125    if "POST" != "GET" && "POST" != "HEAD" {
126      let headers = local_var_resp.headers();
127      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
128          Some(v) => v.to_str().unwrap().parse().unwrap(),
129          None => configuration::DEFAULT_RATELIMIT,
130      };
131      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
132          Some(v) => v.to_str().unwrap().parse().unwrap(),
133          None => 0,
134      };
135    }
136
137    let local_var_status = local_var_resp.status();
138    let local_var_content = local_var_resp.text().await?;
139
140    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141        serde_json::from_str(&local_var_content).map_err(Error::from)
142    } else {
143        let local_var_entity: Option<CreateAutomationTokenError> = serde_json::from_str(&local_var_content).ok();
144        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
145        Err(Error::ResponseError(local_var_error))
146    }
147}
148
149/// Retrieves an automation token by ID.
150pub async fn get_automation_token_id(configuration: &mut configuration::Configuration, params: GetAutomationTokenIdParams) -> Result<crate::models::AutomationTokenResponse, Error<GetAutomationTokenIdError>> {
151    let local_var_configuration = configuration;
152
153    // unbox the parameters
154    let id = params.id;
155
156
157    let local_var_client = &local_var_configuration.client;
158
159    let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
160    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
161
162    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
163        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
164    }
165    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
166        let local_var_key = local_var_apikey.key.clone();
167        let local_var_value = match local_var_apikey.prefix {
168            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
169            None => local_var_key,
170        };
171        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
172    };
173
174    let local_var_req = local_var_req_builder.build()?;
175    let local_var_resp = local_var_client.execute(local_var_req).await?;
176
177    if "GET" != "GET" && "GET" != "HEAD" {
178      let headers = local_var_resp.headers();
179      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
180          Some(v) => v.to_str().unwrap().parse().unwrap(),
181          None => configuration::DEFAULT_RATELIMIT,
182      };
183      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
184          Some(v) => v.to_str().unwrap().parse().unwrap(),
185          None => 0,
186      };
187    }
188
189    let local_var_status = local_var_resp.status();
190    let local_var_content = local_var_resp.text().await?;
191
192    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
193        serde_json::from_str(&local_var_content).map_err(Error::from)
194    } else {
195        let local_var_entity: Option<GetAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
196        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
197        Err(Error::ResponseError(local_var_error))
198    }
199}
200
201/// List of services associated with the automation token.
202pub async fn get_automation_tokens_id_services(configuration: &mut configuration::Configuration, params: GetAutomationTokensIdServicesParams) -> Result<crate::models::InlineResponse2001, Error<GetAutomationTokensIdServicesError>> {
203    let local_var_configuration = configuration;
204
205    // unbox the parameters
206    let id = params.id;
207    let per_page = params.per_page;
208    let page = params.page;
209
210
211    let local_var_client = &local_var_configuration.client;
212
213    let local_var_uri_str = format!("{}/automation-tokens/{id}/services", local_var_configuration.base_path, id=crate::apis::urlencode(id));
214    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
215
216    if let Some(ref local_var_str) = per_page {
217        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
218    }
219    if let Some(ref local_var_str) = page {
220        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
221    }
222    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
223        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
224    }
225    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
226        let local_var_key = local_var_apikey.key.clone();
227        let local_var_value = match local_var_apikey.prefix {
228            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
229            None => local_var_key,
230        };
231        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
232    };
233
234    let local_var_req = local_var_req_builder.build()?;
235    let local_var_resp = local_var_client.execute(local_var_req).await?;
236
237    if "GET" != "GET" && "GET" != "HEAD" {
238      let headers = local_var_resp.headers();
239      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
240          Some(v) => v.to_str().unwrap().parse().unwrap(),
241          None => configuration::DEFAULT_RATELIMIT,
242      };
243      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
244          Some(v) => v.to_str().unwrap().parse().unwrap(),
245          None => 0,
246      };
247    }
248
249    let local_var_status = local_var_resp.status();
250    let local_var_content = local_var_resp.text().await?;
251
252    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253        serde_json::from_str(&local_var_content).map_err(Error::from)
254    } else {
255        let local_var_entity: Option<GetAutomationTokensIdServicesError> = serde_json::from_str(&local_var_content).ok();
256        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257        Err(Error::ResponseError(local_var_error))
258    }
259}
260
261/// Lists all automation tokens for a customer.
262pub async fn list_automation_tokens(configuration: &mut configuration::Configuration, params: ListAutomationTokensParams) -> Result<Vec<crate::models::AutomationTokenResponse>, Error<ListAutomationTokensError>> {
263    let local_var_configuration = configuration;
264
265    // unbox the parameters
266    let per_page = params.per_page;
267    let page = params.page;
268
269
270    let local_var_client = &local_var_configuration.client;
271
272    let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
273    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
274
275    if let Some(ref local_var_str) = per_page {
276        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
277    }
278    if let Some(ref local_var_str) = page {
279        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
280    }
281    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
282        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
283    }
284    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
285        let local_var_key = local_var_apikey.key.clone();
286        let local_var_value = match local_var_apikey.prefix {
287            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
288            None => local_var_key,
289        };
290        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
291    };
292
293    let local_var_req = local_var_req_builder.build()?;
294    let local_var_resp = local_var_client.execute(local_var_req).await?;
295
296    if "GET" != "GET" && "GET" != "HEAD" {
297      let headers = local_var_resp.headers();
298      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
299          Some(v) => v.to_str().unwrap().parse().unwrap(),
300          None => configuration::DEFAULT_RATELIMIT,
301      };
302      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
303          Some(v) => v.to_str().unwrap().parse().unwrap(),
304          None => 0,
305      };
306    }
307
308    let local_var_status = local_var_resp.status();
309    let local_var_content = local_var_resp.text().await?;
310
311    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
312        serde_json::from_str(&local_var_content).map_err(Error::from)
313    } else {
314        let local_var_entity: Option<ListAutomationTokensError> = serde_json::from_str(&local_var_content).ok();
315        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
316        Err(Error::ResponseError(local_var_error))
317    }
318}
319
320/// Revoke an automation token by ID.
321pub async fn revoke_automation_token_id(configuration: &mut configuration::Configuration, params: RevokeAutomationTokenIdParams) -> Result<crate::models::AutomationTokenErrorResponse, Error<RevokeAutomationTokenIdError>> {
322    let local_var_configuration = configuration;
323
324    // unbox the parameters
325    let id = params.id;
326
327
328    let local_var_client = &local_var_configuration.client;
329
330    let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
331    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
332
333    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
334        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
335    }
336    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
337        let local_var_key = local_var_apikey.key.clone();
338        let local_var_value = match local_var_apikey.prefix {
339            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
340            None => local_var_key,
341        };
342        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
343    };
344
345    let local_var_req = local_var_req_builder.build()?;
346    let local_var_resp = local_var_client.execute(local_var_req).await?;
347
348    if "DELETE" != "GET" && "DELETE" != "HEAD" {
349      let headers = local_var_resp.headers();
350      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
351          Some(v) => v.to_str().unwrap().parse().unwrap(),
352          None => configuration::DEFAULT_RATELIMIT,
353      };
354      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
355          Some(v) => v.to_str().unwrap().parse().unwrap(),
356          None => 0,
357      };
358    }
359
360    let local_var_status = local_var_resp.status();
361    let local_var_content = local_var_resp.text().await?;
362
363    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
364        serde_json::from_str(&local_var_content).map_err(Error::from)
365    } else {
366        let local_var_entity: Option<RevokeAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
367        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
368        Err(Error::ResponseError(local_var_error))
369    }
370}
371