1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct AddRolePermissionsParams {
17 pub role_id: String,
19 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
20}
21
22#[derive(Clone, Debug, Default)]
24pub struct CreateARoleParams {
25 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
26}
27
28#[derive(Clone, Debug, Default)]
30pub struct DeleteARoleParams {
31 pub role_id: String
33}
34
35#[derive(Clone, Debug, Default)]
37pub struct GetARoleParams {
38 pub role_id: String
40}
41
42#[derive(Clone, Debug, Default)]
44pub struct ListRolePermissionsParams {
45 pub role_id: String
47}
48
49#[derive(Clone, Debug, Default)]
51pub struct ListRolesParams {
52 pub per_page: Option<i32>,
54 pub page: Option<i32>
56}
57
58#[derive(Clone, Debug, Default)]
60pub struct RemoveRolePermissionsParams {
61 pub role_id: String,
63 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
64}
65
66#[derive(Clone, Debug, Default)]
68pub struct UpdateARoleParams {
69 pub role_id: String,
71 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
72}
73
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum AddRolePermissionsError {
79 UnknownValue(serde_json::Value),
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum CreateARoleError {
86 UnknownValue(serde_json::Value),
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum DeleteARoleError {
93 UnknownValue(serde_json::Value),
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
98#[serde(untagged)]
99pub enum GetARoleError {
100 UnknownValue(serde_json::Value),
101}
102
103#[derive(Debug, Clone, Serialize, Deserialize)]
105#[serde(untagged)]
106pub enum ListRolePermissionsError {
107 UnknownValue(serde_json::Value),
108}
109
110#[derive(Debug, Clone, Serialize, Deserialize)]
112#[serde(untagged)]
113pub enum ListRolesError {
114 UnknownValue(serde_json::Value),
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize)]
119#[serde(untagged)]
120pub enum RemoveRolePermissionsError {
121 UnknownValue(serde_json::Value),
122}
123
124#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum UpdateARoleError {
128 UnknownValue(serde_json::Value),
129}
130
131
132pub async fn add_role_permissions(configuration: &mut configuration::Configuration, params: AddRolePermissionsParams) -> Result<serde_json::Value, Error<AddRolePermissionsError>> {
134 let local_var_configuration = configuration;
135
136 let role_id = params.role_id;
138 let request_body = params.request_body;
139
140
141 let local_var_client = &local_var_configuration.client;
142
143 let local_var_uri_str = format!("{}/roles/{role_id}/permissions", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
144 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
145
146 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
147 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
148 }
149 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
150 let local_var_key = local_var_apikey.key.clone();
151 let local_var_value = match local_var_apikey.prefix {
152 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
153 None => local_var_key,
154 };
155 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
156 };
157 local_var_req_builder = local_var_req_builder.json(&request_body);
158
159 let local_var_req = local_var_req_builder.build()?;
160 let local_var_resp = local_var_client.execute(local_var_req).await?;
161
162 if "POST" != "GET" && "POST" != "HEAD" {
163 let headers = local_var_resp.headers();
164 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
165 Some(v) => v.to_str().unwrap().parse().unwrap(),
166 None => configuration::DEFAULT_RATELIMIT,
167 };
168 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
169 Some(v) => v.to_str().unwrap().parse().unwrap(),
170 None => 0,
171 };
172 }
173
174 let local_var_status = local_var_resp.status();
175 let local_var_content = local_var_resp.text().await?;
176
177 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
178 serde_json::from_str(&local_var_content).map_err(Error::from)
179 } else {
180 let local_var_entity: Option<AddRolePermissionsError> = serde_json::from_str(&local_var_content).ok();
181 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
182 Err(Error::ResponseError(local_var_error))
183 }
184}
185
186pub async fn create_a_role(configuration: &mut configuration::Configuration, params: CreateARoleParams) -> Result<serde_json::Value, Error<CreateARoleError>> {
188 let local_var_configuration = configuration;
189
190 let request_body = params.request_body;
192
193
194 let local_var_client = &local_var_configuration.client;
195
196 let local_var_uri_str = format!("{}/roles", local_var_configuration.base_path);
197 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
198
199 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
200 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
201 }
202 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
203 let local_var_key = local_var_apikey.key.clone();
204 let local_var_value = match local_var_apikey.prefix {
205 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
206 None => local_var_key,
207 };
208 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
209 };
210 local_var_req_builder = local_var_req_builder.json(&request_body);
211
212 let local_var_req = local_var_req_builder.build()?;
213 let local_var_resp = local_var_client.execute(local_var_req).await?;
214
215 if "POST" != "GET" && "POST" != "HEAD" {
216 let headers = local_var_resp.headers();
217 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
218 Some(v) => v.to_str().unwrap().parse().unwrap(),
219 None => configuration::DEFAULT_RATELIMIT,
220 };
221 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
222 Some(v) => v.to_str().unwrap().parse().unwrap(),
223 None => 0,
224 };
225 }
226
227 let local_var_status = local_var_resp.status();
228 let local_var_content = local_var_resp.text().await?;
229
230 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
231 serde_json::from_str(&local_var_content).map_err(Error::from)
232 } else {
233 let local_var_entity: Option<CreateARoleError> = serde_json::from_str(&local_var_content).ok();
234 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
235 Err(Error::ResponseError(local_var_error))
236 }
237}
238
239pub async fn delete_a_role(configuration: &mut configuration::Configuration, params: DeleteARoleParams) -> Result<(), Error<DeleteARoleError>> {
241 let local_var_configuration = configuration;
242
243 let role_id = params.role_id;
245
246
247 let local_var_client = &local_var_configuration.client;
248
249 let local_var_uri_str = format!("{}/roles/{role_id}", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
250 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
251
252 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
253 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
254 }
255 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
256 let local_var_key = local_var_apikey.key.clone();
257 let local_var_value = match local_var_apikey.prefix {
258 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
259 None => local_var_key,
260 };
261 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
262 };
263
264 let local_var_req = local_var_req_builder.build()?;
265 let local_var_resp = local_var_client.execute(local_var_req).await?;
266
267 if "DELETE" != "GET" && "DELETE" != "HEAD" {
268 let headers = local_var_resp.headers();
269 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
270 Some(v) => v.to_str().unwrap().parse().unwrap(),
271 None => configuration::DEFAULT_RATELIMIT,
272 };
273 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
274 Some(v) => v.to_str().unwrap().parse().unwrap(),
275 None => 0,
276 };
277 }
278
279 let local_var_status = local_var_resp.status();
280 let local_var_content = local_var_resp.text().await?;
281
282 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
283 Ok(())
284 } else {
285 let local_var_entity: Option<DeleteARoleError> = serde_json::from_str(&local_var_content).ok();
286 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
287 Err(Error::ResponseError(local_var_error))
288 }
289}
290
291pub async fn get_a_role(configuration: &mut configuration::Configuration, params: GetARoleParams) -> Result<serde_json::Value, Error<GetARoleError>> {
293 let local_var_configuration = configuration;
294
295 let role_id = params.role_id;
297
298
299 let local_var_client = &local_var_configuration.client;
300
301 let local_var_uri_str = format!("{}/roles/{role_id}", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
302 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
303
304 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
305 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
306 }
307 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
308 let local_var_key = local_var_apikey.key.clone();
309 let local_var_value = match local_var_apikey.prefix {
310 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
311 None => local_var_key,
312 };
313 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
314 };
315
316 let local_var_req = local_var_req_builder.build()?;
317 let local_var_resp = local_var_client.execute(local_var_req).await?;
318
319 if "GET" != "GET" && "GET" != "HEAD" {
320 let headers = local_var_resp.headers();
321 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
322 Some(v) => v.to_str().unwrap().parse().unwrap(),
323 None => configuration::DEFAULT_RATELIMIT,
324 };
325 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
326 Some(v) => v.to_str().unwrap().parse().unwrap(),
327 None => 0,
328 };
329 }
330
331 let local_var_status = local_var_resp.status();
332 let local_var_content = local_var_resp.text().await?;
333
334 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
335 serde_json::from_str(&local_var_content).map_err(Error::from)
336 } else {
337 let local_var_entity: Option<GetARoleError> = serde_json::from_str(&local_var_content).ok();
338 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
339 Err(Error::ResponseError(local_var_error))
340 }
341}
342
343pub async fn list_role_permissions(configuration: &mut configuration::Configuration, params: ListRolePermissionsParams) -> Result<serde_json::Value, Error<ListRolePermissionsError>> {
345 let local_var_configuration = configuration;
346
347 let role_id = params.role_id;
349
350
351 let local_var_client = &local_var_configuration.client;
352
353 let local_var_uri_str = format!("{}/roles/{role_id}/permissions", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
354 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
355
356 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
357 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
358 }
359 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
360 let local_var_key = local_var_apikey.key.clone();
361 let local_var_value = match local_var_apikey.prefix {
362 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
363 None => local_var_key,
364 };
365 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
366 };
367
368 let local_var_req = local_var_req_builder.build()?;
369 let local_var_resp = local_var_client.execute(local_var_req).await?;
370
371 if "GET" != "GET" && "GET" != "HEAD" {
372 let headers = local_var_resp.headers();
373 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
374 Some(v) => v.to_str().unwrap().parse().unwrap(),
375 None => configuration::DEFAULT_RATELIMIT,
376 };
377 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
378 Some(v) => v.to_str().unwrap().parse().unwrap(),
379 None => 0,
380 };
381 }
382
383 let local_var_status = local_var_resp.status();
384 let local_var_content = local_var_resp.text().await?;
385
386 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
387 serde_json::from_str(&local_var_content).map_err(Error::from)
388 } else {
389 let local_var_entity: Option<ListRolePermissionsError> = serde_json::from_str(&local_var_content).ok();
390 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
391 Err(Error::ResponseError(local_var_error))
392 }
393}
394
395pub async fn list_roles(configuration: &mut configuration::Configuration, params: ListRolesParams) -> Result<serde_json::Value, Error<ListRolesError>> {
397 let local_var_configuration = configuration;
398
399 let per_page = params.per_page;
401 let page = params.page;
402
403
404 let local_var_client = &local_var_configuration.client;
405
406 let local_var_uri_str = format!("{}/roles", local_var_configuration.base_path);
407 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
408
409 if let Some(ref local_var_str) = per_page {
410 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
411 }
412 if let Some(ref local_var_str) = page {
413 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
414 }
415 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
416 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
417 }
418 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
419 let local_var_key = local_var_apikey.key.clone();
420 let local_var_value = match local_var_apikey.prefix {
421 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
422 None => local_var_key,
423 };
424 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
425 };
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 "GET" != "GET" && "GET" != "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<ListRolesError> = 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
454pub async fn remove_role_permissions(configuration: &mut configuration::Configuration, params: RemoveRolePermissionsParams) -> Result<(), Error<RemoveRolePermissionsError>> {
456 let local_var_configuration = configuration;
457
458 let role_id = params.role_id;
460 let request_body = params.request_body;
461
462
463 let local_var_client = &local_var_configuration.client;
464
465 let local_var_uri_str = format!("{}/roles/{role_id}/permissions", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
466 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
467
468 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
469 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
470 }
471 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
472 let local_var_key = local_var_apikey.key.clone();
473 let local_var_value = match local_var_apikey.prefix {
474 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
475 None => local_var_key,
476 };
477 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
478 };
479 local_var_req_builder = local_var_req_builder.json(&request_body);
480
481 let local_var_req = local_var_req_builder.build()?;
482 let local_var_resp = local_var_client.execute(local_var_req).await?;
483
484 if "DELETE" != "GET" && "DELETE" != "HEAD" {
485 let headers = local_var_resp.headers();
486 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
487 Some(v) => v.to_str().unwrap().parse().unwrap(),
488 None => configuration::DEFAULT_RATELIMIT,
489 };
490 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
491 Some(v) => v.to_str().unwrap().parse().unwrap(),
492 None => 0,
493 };
494 }
495
496 let local_var_status = local_var_resp.status();
497 let local_var_content = local_var_resp.text().await?;
498
499 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
500 Ok(())
501 } else {
502 let local_var_entity: Option<RemoveRolePermissionsError> = serde_json::from_str(&local_var_content).ok();
503 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
504 Err(Error::ResponseError(local_var_error))
505 }
506}
507
508pub async fn update_a_role(configuration: &mut configuration::Configuration, params: UpdateARoleParams) -> Result<serde_json::Value, Error<UpdateARoleError>> {
510 let local_var_configuration = configuration;
511
512 let role_id = params.role_id;
514 let request_body = params.request_body;
515
516
517 let local_var_client = &local_var_configuration.client;
518
519 let local_var_uri_str = format!("{}/roles/{role_id}", local_var_configuration.base_path, role_id=crate::apis::urlencode(role_id));
520 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
521
522 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
523 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
524 }
525 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
526 let local_var_key = local_var_apikey.key.clone();
527 let local_var_value = match local_var_apikey.prefix {
528 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
529 None => local_var_key,
530 };
531 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
532 };
533 local_var_req_builder = local_var_req_builder.json(&request_body);
534
535 let local_var_req = local_var_req_builder.build()?;
536 let local_var_resp = local_var_client.execute(local_var_req).await?;
537
538 if "PATCH" != "GET" && "PATCH" != "HEAD" {
539 let headers = local_var_resp.headers();
540 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
541 Some(v) => v.to_str().unwrap().parse().unwrap(),
542 None => configuration::DEFAULT_RATELIMIT,
543 };
544 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
545 Some(v) => v.to_str().unwrap().parse().unwrap(),
546 None => 0,
547 };
548 }
549
550 let local_var_status = local_var_resp.status();
551 let local_var_content = local_var_resp.text().await?;
552
553 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
554 serde_json::from_str(&local_var_content).map_err(Error::from)
555 } else {
556 let local_var_entity: Option<UpdateARoleError> = serde_json::from_str(&local_var_content).ok();
557 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
558 Err(Error::ResponseError(local_var_error))
559 }
560}
561