fastly_api/apis/
acls_in_compute_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 [`compute_acl_create_acls`]
15#[derive(Clone, Debug, Default)]
16pub struct ComputeAclCreateAclsParams {
17    pub compute_acl_create_acls_request: Option<crate::models::ComputeAclCreateAclsRequest>
18}
19
20/// struct for passing parameters to the method [`compute_acl_delete_s_acl_id`]
21#[derive(Clone, Debug, Default)]
22pub struct ComputeAclDeleteSAclIdParams {
23    pub acl_id: String
24}
25
26/// struct for passing parameters to the method [`compute_acl_list_acl_entries`]
27#[derive(Clone, Debug, Default)]
28pub struct ComputeAclListAclEntriesParams {
29    pub acl_id: String,
30    pub cursor: Option<String>,
31    pub limit: Option<i32>
32}
33
34/// struct for passing parameters to the method [`compute_acl_list_acls_s_acl_id`]
35#[derive(Clone, Debug, Default)]
36pub struct ComputeAclListAclsSAclIdParams {
37    pub acl_id: String
38}
39
40/// struct for passing parameters to the method [`compute_acl_lookup_acls`]
41#[derive(Clone, Debug, Default)]
42pub struct ComputeAclLookupAclsParams {
43    pub acl_id: String,
44    pub acl_ip: String
45}
46
47/// struct for passing parameters to the method [`compute_acl_update_acls`]
48#[derive(Clone, Debug, Default)]
49pub struct ComputeAclUpdateAclsParams {
50    pub acl_id: String,
51    pub compute_acl_update: Option<crate::models::ComputeAclUpdate>
52}
53
54
55/// struct for typed errors of method [`compute_acl_create_acls`]
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum ComputeAclCreateAclsError {
59    UnknownValue(serde_json::Value),
60}
61
62/// struct for typed errors of method [`compute_acl_delete_s_acl_id`]
63#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum ComputeAclDeleteSAclIdError {
66    UnknownValue(serde_json::Value),
67}
68
69/// struct for typed errors of method [`compute_acl_list_acl_entries`]
70#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum ComputeAclListAclEntriesError {
73    UnknownValue(serde_json::Value),
74}
75
76/// struct for typed errors of method [`compute_acl_list_acls`]
77#[derive(Debug, Clone, Serialize, Deserialize)]
78#[serde(untagged)]
79pub enum ComputeAclListAclsError {
80    UnknownValue(serde_json::Value),
81}
82
83/// struct for typed errors of method [`compute_acl_list_acls_s_acl_id`]
84#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(untagged)]
86pub enum ComputeAclListAclsSAclIdError {
87    UnknownValue(serde_json::Value),
88}
89
90/// struct for typed errors of method [`compute_acl_lookup_acls`]
91#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum ComputeAclLookupAclsError {
94    Status404(),
95    UnknownValue(serde_json::Value),
96}
97
98/// struct for typed errors of method [`compute_acl_update_acls`]
99#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum ComputeAclUpdateAclsError {
102    UnknownValue(serde_json::Value),
103}
104
105
106/// Create a new ACL.
107pub async fn compute_acl_create_acls(configuration: &mut configuration::Configuration, params: ComputeAclCreateAclsParams) -> Result<crate::models::ComputeAclCreateAclsResponse, Error<ComputeAclCreateAclsError>> {
108    let local_var_configuration = configuration;
109
110    // unbox the parameters
111    let compute_acl_create_acls_request = params.compute_acl_create_acls_request;
112
113
114    let local_var_client = &local_var_configuration.client;
115
116    let local_var_uri_str = format!("{}/resources/acls", local_var_configuration.base_path);
117    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
118
119    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
120        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
121    }
122    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
123        let local_var_key = local_var_apikey.key.clone();
124        let local_var_value = match local_var_apikey.prefix {
125            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
126            None => local_var_key,
127        };
128        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
129    };
130    local_var_req_builder = local_var_req_builder.json(&compute_acl_create_acls_request);
131
132    let local_var_req = local_var_req_builder.build()?;
133    let local_var_resp = local_var_client.execute(local_var_req).await?;
134
135    if "POST" != "GET" && "POST" != "HEAD" {
136      let headers = local_var_resp.headers();
137      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
138          Some(v) => v.to_str().unwrap().parse().unwrap(),
139          None => configuration::DEFAULT_RATELIMIT,
140      };
141      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
142          Some(v) => v.to_str().unwrap().parse().unwrap(),
143          None => 0,
144      };
145    }
146
147    let local_var_status = local_var_resp.status();
148    let local_var_content = local_var_resp.text().await?;
149
150    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
151        serde_json::from_str(&local_var_content).map_err(Error::from)
152    } else {
153        let local_var_entity: Option<ComputeAclCreateAclsError> = serde_json::from_str(&local_var_content).ok();
154        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
155        Err(Error::ResponseError(local_var_error))
156    }
157}
158
159/// Delete an ACL.
160pub async fn compute_acl_delete_s_acl_id(configuration: &mut configuration::Configuration, params: ComputeAclDeleteSAclIdParams) -> Result<(), Error<ComputeAclDeleteSAclIdError>> {
161    let local_var_configuration = configuration;
162
163    // unbox the parameters
164    let acl_id = params.acl_id;
165
166
167    let local_var_client = &local_var_configuration.client;
168
169    let local_var_uri_str = format!("{}/resources/acls/{acl_id}", local_var_configuration.base_path, acl_id=crate::apis::urlencode(acl_id));
170    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
171
172    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
173        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
174    }
175    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
176        let local_var_key = local_var_apikey.key.clone();
177        let local_var_value = match local_var_apikey.prefix {
178            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
179            None => local_var_key,
180        };
181        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
182    };
183
184    let local_var_req = local_var_req_builder.build()?;
185    let local_var_resp = local_var_client.execute(local_var_req).await?;
186
187    if "DELETE" != "GET" && "DELETE" != "HEAD" {
188      let headers = local_var_resp.headers();
189      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
190          Some(v) => v.to_str().unwrap().parse().unwrap(),
191          None => configuration::DEFAULT_RATELIMIT,
192      };
193      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
194          Some(v) => v.to_str().unwrap().parse().unwrap(),
195          None => 0,
196      };
197    }
198
199    let local_var_status = local_var_resp.status();
200    let local_var_content = local_var_resp.text().await?;
201
202    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
203        Ok(())
204    } else {
205        let local_var_entity: Option<ComputeAclDeleteSAclIdError> = serde_json::from_str(&local_var_content).ok();
206        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
207        Err(Error::ResponseError(local_var_error))
208    }
209}
210
211/// List an ACL.
212pub async fn compute_acl_list_acl_entries(configuration: &mut configuration::Configuration, params: ComputeAclListAclEntriesParams) -> Result<crate::models::ComputeAclListEntries, Error<ComputeAclListAclEntriesError>> {
213    let local_var_configuration = configuration;
214
215    // unbox the parameters
216    let acl_id = params.acl_id;
217    let cursor = params.cursor;
218    let limit = params.limit;
219
220
221    let local_var_client = &local_var_configuration.client;
222
223    let local_var_uri_str = format!("{}/resources/acls/{acl_id}/entries", local_var_configuration.base_path, acl_id=crate::apis::urlencode(acl_id));
224    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
225
226    if let Some(ref local_var_str) = cursor {
227        local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
228    }
229    if let Some(ref local_var_str) = limit {
230        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
231    }
232    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
233        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
234    }
235    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
236        let local_var_key = local_var_apikey.key.clone();
237        let local_var_value = match local_var_apikey.prefix {
238            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
239            None => local_var_key,
240        };
241        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
242    };
243
244    let local_var_req = local_var_req_builder.build()?;
245    let local_var_resp = local_var_client.execute(local_var_req).await?;
246
247    if "GET" != "GET" && "GET" != "HEAD" {
248      let headers = local_var_resp.headers();
249      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
250          Some(v) => v.to_str().unwrap().parse().unwrap(),
251          None => configuration::DEFAULT_RATELIMIT,
252      };
253      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
254          Some(v) => v.to_str().unwrap().parse().unwrap(),
255          None => 0,
256      };
257    }
258
259    let local_var_status = local_var_resp.status();
260    let local_var_content = local_var_resp.text().await?;
261
262    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
263        serde_json::from_str(&local_var_content).map_err(Error::from)
264    } else {
265        let local_var_entity: Option<ComputeAclListAclEntriesError> = serde_json::from_str(&local_var_content).ok();
266        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
267        Err(Error::ResponseError(local_var_error))
268    }
269}
270
271/// List all ACLs.
272pub async fn compute_acl_list_acls(configuration: &mut configuration::Configuration) -> Result<Vec<crate::models::ComputeAclCreateAclsResponse>, Error<ComputeAclListAclsError>> {
273    let local_var_configuration = configuration;
274
275    // unbox the parameters
276
277
278    let local_var_client = &local_var_configuration.client;
279
280    let local_var_uri_str = format!("{}/resources/acls", local_var_configuration.base_path);
281    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
282
283    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
284        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
285    }
286    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
287        let local_var_key = local_var_apikey.key.clone();
288        let local_var_value = match local_var_apikey.prefix {
289            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
290            None => local_var_key,
291        };
292        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
293    };
294
295    let local_var_req = local_var_req_builder.build()?;
296    let local_var_resp = local_var_client.execute(local_var_req).await?;
297
298    if "GET" != "GET" && "GET" != "HEAD" {
299      let headers = local_var_resp.headers();
300      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
301          Some(v) => v.to_str().unwrap().parse().unwrap(),
302          None => configuration::DEFAULT_RATELIMIT,
303      };
304      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
305          Some(v) => v.to_str().unwrap().parse().unwrap(),
306          None => 0,
307      };
308    }
309
310    let local_var_status = local_var_resp.status();
311    let local_var_content = local_var_resp.text().await?;
312
313    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
314        serde_json::from_str(&local_var_content).map_err(Error::from)
315    } else {
316        let local_var_entity: Option<ComputeAclListAclsError> = serde_json::from_str(&local_var_content).ok();
317        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
318        Err(Error::ResponseError(local_var_error))
319    }
320}
321
322/// Describe an ACL.
323pub async fn compute_acl_list_acls_s_acl_id(configuration: &mut configuration::Configuration, params: ComputeAclListAclsSAclIdParams) -> Result<crate::models::ComputeAclCreateAclsResponse, Error<ComputeAclListAclsSAclIdError>> {
324    let local_var_configuration = configuration;
325
326    // unbox the parameters
327    let acl_id = params.acl_id;
328
329
330    let local_var_client = &local_var_configuration.client;
331
332    let local_var_uri_str = format!("{}/resources/acls/{acl_id}", local_var_configuration.base_path, acl_id=crate::apis::urlencode(acl_id));
333    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
334
335    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
336        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
337    }
338    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
339        let local_var_key = local_var_apikey.key.clone();
340        let local_var_value = match local_var_apikey.prefix {
341            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
342            None => local_var_key,
343        };
344        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
345    };
346
347    let local_var_req = local_var_req_builder.build()?;
348    let local_var_resp = local_var_client.execute(local_var_req).await?;
349
350    if "GET" != "GET" && "GET" != "HEAD" {
351      let headers = local_var_resp.headers();
352      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
353          Some(v) => v.to_str().unwrap().parse().unwrap(),
354          None => configuration::DEFAULT_RATELIMIT,
355      };
356      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
357          Some(v) => v.to_str().unwrap().parse().unwrap(),
358          None => 0,
359      };
360    }
361
362    let local_var_status = local_var_resp.status();
363    let local_var_content = local_var_resp.text().await?;
364
365    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
366        serde_json::from_str(&local_var_content).map_err(Error::from)
367    } else {
368        let local_var_entity: Option<ComputeAclListAclsSAclIdError> = serde_json::from_str(&local_var_content).ok();
369        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
370        Err(Error::ResponseError(local_var_error))
371    }
372}
373
374/// Find a matching ACL entry for an IP address.
375pub async fn compute_acl_lookup_acls(configuration: &mut configuration::Configuration, params: ComputeAclLookupAclsParams) -> Result<crate::models::ComputeAclLookup, Error<ComputeAclLookupAclsError>> {
376    let local_var_configuration = configuration;
377
378    // unbox the parameters
379    let acl_id = params.acl_id;
380    let acl_ip = params.acl_ip;
381
382
383    let local_var_client = &local_var_configuration.client;
384
385    let local_var_uri_str = format!("{}/resources/acls/{acl_id}/entry/{acl_ip}", local_var_configuration.base_path, acl_id=crate::apis::urlencode(acl_id), acl_ip=crate::apis::urlencode(acl_ip));
386    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
387
388    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
389        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
390    }
391    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
392        let local_var_key = local_var_apikey.key.clone();
393        let local_var_value = match local_var_apikey.prefix {
394            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
395            None => local_var_key,
396        };
397        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
398    };
399
400    let local_var_req = local_var_req_builder.build()?;
401    let local_var_resp = local_var_client.execute(local_var_req).await?;
402
403    if "GET" != "GET" && "GET" != "HEAD" {
404      let headers = local_var_resp.headers();
405      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
406          Some(v) => v.to_str().unwrap().parse().unwrap(),
407          None => configuration::DEFAULT_RATELIMIT,
408      };
409      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
410          Some(v) => v.to_str().unwrap().parse().unwrap(),
411          None => 0,
412      };
413    }
414
415    let local_var_status = local_var_resp.status();
416    let local_var_content = local_var_resp.text().await?;
417
418    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
419        serde_json::from_str(&local_var_content).map_err(Error::from)
420    } else {
421        let local_var_entity: Option<ComputeAclLookupAclsError> = serde_json::from_str(&local_var_content).ok();
422        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
423        Err(Error::ResponseError(local_var_error))
424    }
425}
426
427/// Update an ACL.
428pub async fn compute_acl_update_acls(configuration: &mut configuration::Configuration, params: ComputeAclUpdateAclsParams) -> Result<(), Error<ComputeAclUpdateAclsError>> {
429    let local_var_configuration = configuration;
430
431    // unbox the parameters
432    let acl_id = params.acl_id;
433    let compute_acl_update = params.compute_acl_update;
434
435
436    let local_var_client = &local_var_configuration.client;
437
438    let local_var_uri_str = format!("{}/resources/acls/{acl_id}/entries", local_var_configuration.base_path, acl_id=crate::apis::urlencode(acl_id));
439    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
440
441    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
442        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
443    }
444    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
445        let local_var_key = local_var_apikey.key.clone();
446        let local_var_value = match local_var_apikey.prefix {
447            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
448            None => local_var_key,
449        };
450        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
451    };
452    local_var_req_builder = local_var_req_builder.json(&compute_acl_update);
453
454    let local_var_req = local_var_req_builder.build()?;
455    let local_var_resp = local_var_client.execute(local_var_req).await?;
456
457    if "PATCH" != "GET" && "PATCH" != "HEAD" {
458      let headers = local_var_resp.headers();
459      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
460          Some(v) => v.to_str().unwrap().parse().unwrap(),
461          None => configuration::DEFAULT_RATELIMIT,
462      };
463      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
464          Some(v) => v.to_str().unwrap().parse().unwrap(),
465          None => 0,
466      };
467    }
468
469    let local_var_status = local_var_resp.status();
470    let local_var_content = local_var_resp.text().await?;
471
472    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
473        Ok(())
474    } else {
475        let local_var_entity: Option<ComputeAclUpdateAclsError> = serde_json::from_str(&local_var_content).ok();
476        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
477        Err(Error::ResponseError(local_var_error))
478    }
479}
480