1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct ComputeAclCreateAclsParams {
17 pub compute_acl_create_acls_request: Option<crate::models::ComputeAclCreateAclsRequest>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct ComputeAclDeleteSAclIdParams {
23 pub acl_id: String
24}
25
26#[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#[derive(Clone, Debug, Default)]
36pub struct ComputeAclListAclsSAclIdParams {
37 pub acl_id: String
38}
39
40#[derive(Clone, Debug, Default)]
42pub struct ComputeAclLookupAclsParams {
43 pub acl_id: String,
44 pub acl_ip: String
45}
46
47#[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#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum ComputeAclCreateAclsError {
59 UnknownValue(serde_json::Value),
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum ComputeAclDeleteSAclIdError {
66 UnknownValue(serde_json::Value),
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum ComputeAclListAclEntriesError {
73 UnknownValue(serde_json::Value),
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
78#[serde(untagged)]
79pub enum ComputeAclListAclsError {
80 UnknownValue(serde_json::Value),
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(untagged)]
86pub enum ComputeAclListAclsSAclIdError {
87 UnknownValue(serde_json::Value),
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum ComputeAclLookupAclsError {
94 Status404(),
95 UnknownValue(serde_json::Value),
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum ComputeAclUpdateAclsError {
102 UnknownValue(serde_json::Value),
103}
104
105
106pub 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 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
159pub 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 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
211pub 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 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
271pub 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 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
322pub 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 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
374pub 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 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
427pub async fn compute_acl_update_acls(configuration: &mut configuration::Configuration, params: ComputeAclUpdateAclsParams) -> Result<(), Error<ComputeAclUpdateAclsError>> {
429 let local_var_configuration = configuration;
430
431 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