fastly_api/apis/
iam_roles_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 [`add_role_permissions`]
15#[derive(Clone, Debug, Default)]
16pub struct AddRolePermissionsParams {
17    /// Alphanumeric string identifying the role.
18    pub role_id: String,
19    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
20}
21
22/// struct for passing parameters to the method [`create_a_role`]
23#[derive(Clone, Debug, Default)]
24pub struct CreateARoleParams {
25    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
26}
27
28/// struct for passing parameters to the method [`delete_a_role`]
29#[derive(Clone, Debug, Default)]
30pub struct DeleteARoleParams {
31    /// Alphanumeric string identifying the role.
32    pub role_id: String
33}
34
35/// struct for passing parameters to the method [`get_a_role`]
36#[derive(Clone, Debug, Default)]
37pub struct GetARoleParams {
38    /// Alphanumeric string identifying the role.
39    pub role_id: String
40}
41
42/// struct for passing parameters to the method [`list_role_permissions`]
43#[derive(Clone, Debug, Default)]
44pub struct ListRolePermissionsParams {
45    /// Alphanumeric string identifying the role.
46    pub role_id: String
47}
48
49/// struct for passing parameters to the method [`list_roles`]
50#[derive(Clone, Debug, Default)]
51pub struct ListRolesParams {
52    /// Number of records per page.
53    pub per_page: Option<i32>,
54    /// Current page.
55    pub page: Option<i32>
56}
57
58/// struct for passing parameters to the method [`remove_role_permissions`]
59#[derive(Clone, Debug, Default)]
60pub struct RemoveRolePermissionsParams {
61    /// Alphanumeric string identifying the role.
62    pub role_id: String,
63    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
64}
65
66/// struct for passing parameters to the method [`update_a_role`]
67#[derive(Clone, Debug, Default)]
68pub struct UpdateARoleParams {
69    /// Alphanumeric string identifying the role.
70    pub role_id: String,
71    pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
72}
73
74
75/// struct for typed errors of method [`add_role_permissions`]
76#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum AddRolePermissionsError {
79    UnknownValue(serde_json::Value),
80}
81
82/// struct for typed errors of method [`create_a_role`]
83#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum CreateARoleError {
86    UnknownValue(serde_json::Value),
87}
88
89/// struct for typed errors of method [`delete_a_role`]
90#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum DeleteARoleError {
93    UnknownValue(serde_json::Value),
94}
95
96/// struct for typed errors of method [`get_a_role`]
97#[derive(Debug, Clone, Serialize, Deserialize)]
98#[serde(untagged)]
99pub enum GetARoleError {
100    UnknownValue(serde_json::Value),
101}
102
103/// struct for typed errors of method [`list_role_permissions`]
104#[derive(Debug, Clone, Serialize, Deserialize)]
105#[serde(untagged)]
106pub enum ListRolePermissionsError {
107    UnknownValue(serde_json::Value),
108}
109
110/// struct for typed errors of method [`list_roles`]
111#[derive(Debug, Clone, Serialize, Deserialize)]
112#[serde(untagged)]
113pub enum ListRolesError {
114    UnknownValue(serde_json::Value),
115}
116
117/// struct for typed errors of method [`remove_role_permissions`]
118#[derive(Debug, Clone, Serialize, Deserialize)]
119#[serde(untagged)]
120pub enum RemoveRolePermissionsError {
121    UnknownValue(serde_json::Value),
122}
123
124/// struct for typed errors of method [`update_a_role`]
125#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum UpdateARoleError {
128    UnknownValue(serde_json::Value),
129}
130
131
132/// Add permissions to a role.
133pub 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    // unbox the parameters
137    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
186/// Create a role.
187pub 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    // unbox the parameters
191    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
239/// Delete a role.
240pub async fn delete_a_role(configuration: &mut configuration::Configuration, params: DeleteARoleParams) -> Result<(), Error<DeleteARoleError>> {
241    let local_var_configuration = configuration;
242
243    // unbox the parameters
244    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
291/// Get a role.
292pub 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    // unbox the parameters
296    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
343/// List all permissions in a role.
344pub 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    // unbox the parameters
348    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
395/// List all roles.
396pub async fn list_roles(configuration: &mut configuration::Configuration, params: ListRolesParams) -> Result<serde_json::Value, Error<ListRolesError>> {
397    let local_var_configuration = configuration;
398
399    // unbox the parameters
400    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
454/// Remove permissions from a role.
455pub async fn remove_role_permissions(configuration: &mut configuration::Configuration, params: RemoveRolePermissionsParams) -> Result<(), Error<RemoveRolePermissionsError>> {
456    let local_var_configuration = configuration;
457
458    // unbox the parameters
459    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
508/// Update a role.
509pub 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    // unbox the parameters
513    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