authentik_client/apis/
rbac_api.rs

1/*
2 * authentik
3 *
4 * Making authentication simple.
5 *
6 * The version of the OpenAPI document: 2025.2.0
7 * Contact: hello@goauthentik.io
8 * Generated by: https://openapi-generator.tech
9 */
10
11use super::{configuration, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{Deserialize, Serialize};
15
16/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_assign`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum RbacPermissionsAssignedByRolesAssignError {
20    Status400(models::ValidationError),
21    Status403(models::GenericError),
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_list`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum RbacPermissionsAssignedByRolesListError {
29    Status400(models::ValidationError),
30    Status403(models::GenericError),
31    UnknownValue(serde_json::Value),
32}
33
34/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_unassign_partial_update`]
35#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum RbacPermissionsAssignedByRolesUnassignPartialUpdateError {
38    Status400(models::ValidationError),
39    Status403(models::GenericError),
40    UnknownValue(serde_json::Value),
41}
42
43/// struct for typed errors of method [`rbac_permissions_assigned_by_users_assign`]
44#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(untagged)]
46pub enum RbacPermissionsAssignedByUsersAssignError {
47    Status400(models::ValidationError),
48    Status403(models::GenericError),
49    UnknownValue(serde_json::Value),
50}
51
52/// struct for typed errors of method [`rbac_permissions_assigned_by_users_list`]
53#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum RbacPermissionsAssignedByUsersListError {
56    Status400(models::ValidationError),
57    Status403(models::GenericError),
58    UnknownValue(serde_json::Value),
59}
60
61/// struct for typed errors of method [`rbac_permissions_assigned_by_users_unassign_partial_update`]
62#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum RbacPermissionsAssignedByUsersUnassignPartialUpdateError {
65    Status400(models::ValidationError),
66    Status403(models::GenericError),
67    UnknownValue(serde_json::Value),
68}
69
70/// struct for typed errors of method [`rbac_permissions_list`]
71#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum RbacPermissionsListError {
74    Status400(models::ValidationError),
75    Status403(models::GenericError),
76    UnknownValue(serde_json::Value),
77}
78
79/// struct for typed errors of method [`rbac_permissions_retrieve`]
80#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum RbacPermissionsRetrieveError {
83    Status400(models::ValidationError),
84    Status403(models::GenericError),
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`rbac_permissions_roles_destroy`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum RbacPermissionsRolesDestroyError {
92    Status400(models::ValidationError),
93    Status403(models::GenericError),
94    UnknownValue(serde_json::Value),
95}
96
97/// struct for typed errors of method [`rbac_permissions_roles_list`]
98#[derive(Debug, Clone, Serialize, Deserialize)]
99#[serde(untagged)]
100pub enum RbacPermissionsRolesListError {
101    Status400(models::ValidationError),
102    Status403(models::GenericError),
103    UnknownValue(serde_json::Value),
104}
105
106/// struct for typed errors of method [`rbac_permissions_roles_partial_update`]
107#[derive(Debug, Clone, Serialize, Deserialize)]
108#[serde(untagged)]
109pub enum RbacPermissionsRolesPartialUpdateError {
110    Status400(models::ValidationError),
111    Status403(models::GenericError),
112    UnknownValue(serde_json::Value),
113}
114
115/// struct for typed errors of method [`rbac_permissions_roles_retrieve`]
116#[derive(Debug, Clone, Serialize, Deserialize)]
117#[serde(untagged)]
118pub enum RbacPermissionsRolesRetrieveError {
119    Status400(models::ValidationError),
120    Status403(models::GenericError),
121    UnknownValue(serde_json::Value),
122}
123
124/// struct for typed errors of method [`rbac_permissions_roles_update`]
125#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum RbacPermissionsRolesUpdateError {
128    Status400(models::ValidationError),
129    Status403(models::GenericError),
130    UnknownValue(serde_json::Value),
131}
132
133/// struct for typed errors of method [`rbac_permissions_users_destroy`]
134#[derive(Debug, Clone, Serialize, Deserialize)]
135#[serde(untagged)]
136pub enum RbacPermissionsUsersDestroyError {
137    Status400(models::ValidationError),
138    Status403(models::GenericError),
139    UnknownValue(serde_json::Value),
140}
141
142/// struct for typed errors of method [`rbac_permissions_users_list`]
143#[derive(Debug, Clone, Serialize, Deserialize)]
144#[serde(untagged)]
145pub enum RbacPermissionsUsersListError {
146    Status400(models::ValidationError),
147    Status403(models::GenericError),
148    UnknownValue(serde_json::Value),
149}
150
151/// struct for typed errors of method [`rbac_permissions_users_partial_update`]
152#[derive(Debug, Clone, Serialize, Deserialize)]
153#[serde(untagged)]
154pub enum RbacPermissionsUsersPartialUpdateError {
155    Status400(models::ValidationError),
156    Status403(models::GenericError),
157    UnknownValue(serde_json::Value),
158}
159
160/// struct for typed errors of method [`rbac_permissions_users_retrieve`]
161#[derive(Debug, Clone, Serialize, Deserialize)]
162#[serde(untagged)]
163pub enum RbacPermissionsUsersRetrieveError {
164    Status400(models::ValidationError),
165    Status403(models::GenericError),
166    UnknownValue(serde_json::Value),
167}
168
169/// struct for typed errors of method [`rbac_permissions_users_update`]
170#[derive(Debug, Clone, Serialize, Deserialize)]
171#[serde(untagged)]
172pub enum RbacPermissionsUsersUpdateError {
173    Status400(models::ValidationError),
174    Status403(models::GenericError),
175    UnknownValue(serde_json::Value),
176}
177
178/// struct for typed errors of method [`rbac_roles_create`]
179#[derive(Debug, Clone, Serialize, Deserialize)]
180#[serde(untagged)]
181pub enum RbacRolesCreateError {
182    Status400(models::ValidationError),
183    Status403(models::GenericError),
184    UnknownValue(serde_json::Value),
185}
186
187/// struct for typed errors of method [`rbac_roles_destroy`]
188#[derive(Debug, Clone, Serialize, Deserialize)]
189#[serde(untagged)]
190pub enum RbacRolesDestroyError {
191    Status400(models::ValidationError),
192    Status403(models::GenericError),
193    UnknownValue(serde_json::Value),
194}
195
196/// struct for typed errors of method [`rbac_roles_list`]
197#[derive(Debug, Clone, Serialize, Deserialize)]
198#[serde(untagged)]
199pub enum RbacRolesListError {
200    Status400(models::ValidationError),
201    Status403(models::GenericError),
202    UnknownValue(serde_json::Value),
203}
204
205/// struct for typed errors of method [`rbac_roles_partial_update`]
206#[derive(Debug, Clone, Serialize, Deserialize)]
207#[serde(untagged)]
208pub enum RbacRolesPartialUpdateError {
209    Status400(models::ValidationError),
210    Status403(models::GenericError),
211    UnknownValue(serde_json::Value),
212}
213
214/// struct for typed errors of method [`rbac_roles_retrieve`]
215#[derive(Debug, Clone, Serialize, Deserialize)]
216#[serde(untagged)]
217pub enum RbacRolesRetrieveError {
218    Status400(models::ValidationError),
219    Status403(models::GenericError),
220    UnknownValue(serde_json::Value),
221}
222
223/// struct for typed errors of method [`rbac_roles_update`]
224#[derive(Debug, Clone, Serialize, Deserialize)]
225#[serde(untagged)]
226pub enum RbacRolesUpdateError {
227    Status400(models::ValidationError),
228    Status403(models::GenericError),
229    UnknownValue(serde_json::Value),
230}
231
232/// struct for typed errors of method [`rbac_roles_used_by_list`]
233#[derive(Debug, Clone, Serialize, Deserialize)]
234#[serde(untagged)]
235pub enum RbacRolesUsedByListError {
236    Status400(models::ValidationError),
237    Status403(models::GenericError),
238    UnknownValue(serde_json::Value),
239}
240
241/// Assign permission(s) to role. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
242pub async fn rbac_permissions_assigned_by_roles_assign(
243    configuration: &configuration::Configuration,
244    uuid: &str,
245    permission_assign_request: models::PermissionAssignRequest,
246) -> Result<Vec<models::PermissionAssignResult>, Error<RbacPermissionsAssignedByRolesAssignError>> {
247    let local_var_configuration = configuration;
248
249    let local_var_client = &local_var_configuration.client;
250
251    let local_var_uri_str = format!(
252        "{}/rbac/permissions/assigned_by_roles/{uuid}/assign/",
253        local_var_configuration.base_path,
254        uuid = crate::apis::urlencode(uuid)
255    );
256    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
257
258    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
259        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
260    }
261    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
262        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
263    };
264    local_var_req_builder = local_var_req_builder.json(&permission_assign_request);
265
266    let local_var_req = local_var_req_builder.build()?;
267    let local_var_resp = local_var_client.execute(local_var_req).await?;
268
269    let local_var_status = local_var_resp.status();
270    let local_var_content = local_var_resp.text().await?;
271
272    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
273        serde_json::from_str(&local_var_content).map_err(Error::from)
274    } else {
275        let local_var_entity: Option<RbacPermissionsAssignedByRolesAssignError> =
276            serde_json::from_str(&local_var_content).ok();
277        let local_var_error = ResponseContent {
278            status: local_var_status,
279            content: local_var_content,
280            entity: local_var_entity,
281        };
282        Err(Error::ResponseError(local_var_error))
283    }
284}
285
286/// Get assigned object permissions for a single object
287pub async fn rbac_permissions_assigned_by_roles_list(
288    configuration: &configuration::Configuration,
289    model: &str,
290    object_pk: Option<&str>,
291    ordering: Option<&str>,
292    page: Option<i32>,
293    page_size: Option<i32>,
294    search: Option<&str>,
295) -> Result<models::PaginatedRoleAssignedObjectPermissionList, Error<RbacPermissionsAssignedByRolesListError>> {
296    let local_var_configuration = configuration;
297
298    let local_var_client = &local_var_configuration.client;
299
300    let local_var_uri_str = format!(
301        "{}/rbac/permissions/assigned_by_roles/",
302        local_var_configuration.base_path
303    );
304    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
305
306    local_var_req_builder = local_var_req_builder.query(&[("model", &model.to_string())]);
307    if let Some(ref local_var_str) = object_pk {
308        local_var_req_builder = local_var_req_builder.query(&[("object_pk", &local_var_str.to_string())]);
309    }
310    if let Some(ref local_var_str) = ordering {
311        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
312    }
313    if let Some(ref local_var_str) = page {
314        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
315    }
316    if let Some(ref local_var_str) = page_size {
317        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
318    }
319    if let Some(ref local_var_str) = search {
320        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
321    }
322    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
323        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
324    }
325    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
326        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
327    };
328
329    let local_var_req = local_var_req_builder.build()?;
330    let local_var_resp = local_var_client.execute(local_var_req).await?;
331
332    let local_var_status = local_var_resp.status();
333    let local_var_content = local_var_resp.text().await?;
334
335    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
336        serde_json::from_str(&local_var_content).map_err(Error::from)
337    } else {
338        let local_var_entity: Option<RbacPermissionsAssignedByRolesListError> =
339            serde_json::from_str(&local_var_content).ok();
340        let local_var_error = ResponseContent {
341            status: local_var_status,
342            content: local_var_content,
343            entity: local_var_entity,
344        };
345        Err(Error::ResponseError(local_var_error))
346    }
347}
348
349/// Unassign permission(s) to role. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
350pub async fn rbac_permissions_assigned_by_roles_unassign_partial_update(
351    configuration: &configuration::Configuration,
352    uuid: &str,
353    patched_permission_assign_request: Option<models::PatchedPermissionAssignRequest>,
354) -> Result<(), Error<RbacPermissionsAssignedByRolesUnassignPartialUpdateError>> {
355    let local_var_configuration = configuration;
356
357    let local_var_client = &local_var_configuration.client;
358
359    let local_var_uri_str = format!(
360        "{}/rbac/permissions/assigned_by_roles/{uuid}/unassign/",
361        local_var_configuration.base_path,
362        uuid = crate::apis::urlencode(uuid)
363    );
364    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
365
366    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
367        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
368    }
369    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
370        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
371    };
372    local_var_req_builder = local_var_req_builder.json(&patched_permission_assign_request);
373
374    let local_var_req = local_var_req_builder.build()?;
375    let local_var_resp = local_var_client.execute(local_var_req).await?;
376
377    let local_var_status = local_var_resp.status();
378    let local_var_content = local_var_resp.text().await?;
379
380    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
381        Ok(())
382    } else {
383        let local_var_entity: Option<RbacPermissionsAssignedByRolesUnassignPartialUpdateError> =
384            serde_json::from_str(&local_var_content).ok();
385        let local_var_error = ResponseContent {
386            status: local_var_status,
387            content: local_var_content,
388            entity: local_var_entity,
389        };
390        Err(Error::ResponseError(local_var_error))
391    }
392}
393
394/// Assign permission(s) to user
395pub async fn rbac_permissions_assigned_by_users_assign(
396    configuration: &configuration::Configuration,
397    id: i32,
398    permission_assign_request: models::PermissionAssignRequest,
399) -> Result<Vec<models::PermissionAssignResult>, Error<RbacPermissionsAssignedByUsersAssignError>> {
400    let local_var_configuration = configuration;
401
402    let local_var_client = &local_var_configuration.client;
403
404    let local_var_uri_str = format!(
405        "{}/rbac/permissions/assigned_by_users/{id}/assign/",
406        local_var_configuration.base_path,
407        id = id
408    );
409    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
410
411    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
412        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
413    }
414    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
415        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
416    };
417    local_var_req_builder = local_var_req_builder.json(&permission_assign_request);
418
419    let local_var_req = local_var_req_builder.build()?;
420    let local_var_resp = local_var_client.execute(local_var_req).await?;
421
422    let local_var_status = local_var_resp.status();
423    let local_var_content = local_var_resp.text().await?;
424
425    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
426        serde_json::from_str(&local_var_content).map_err(Error::from)
427    } else {
428        let local_var_entity: Option<RbacPermissionsAssignedByUsersAssignError> =
429            serde_json::from_str(&local_var_content).ok();
430        let local_var_error = ResponseContent {
431            status: local_var_status,
432            content: local_var_content,
433            entity: local_var_entity,
434        };
435        Err(Error::ResponseError(local_var_error))
436    }
437}
438
439/// Get assigned object permissions for a single object
440pub async fn rbac_permissions_assigned_by_users_list(
441    configuration: &configuration::Configuration,
442    model: &str,
443    object_pk: Option<&str>,
444    ordering: Option<&str>,
445    page: Option<i32>,
446    page_size: Option<i32>,
447    search: Option<&str>,
448) -> Result<models::PaginatedUserAssignedObjectPermissionList, Error<RbacPermissionsAssignedByUsersListError>> {
449    let local_var_configuration = configuration;
450
451    let local_var_client = &local_var_configuration.client;
452
453    let local_var_uri_str = format!(
454        "{}/rbac/permissions/assigned_by_users/",
455        local_var_configuration.base_path
456    );
457    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
458
459    local_var_req_builder = local_var_req_builder.query(&[("model", &model.to_string())]);
460    if let Some(ref local_var_str) = object_pk {
461        local_var_req_builder = local_var_req_builder.query(&[("object_pk", &local_var_str.to_string())]);
462    }
463    if let Some(ref local_var_str) = ordering {
464        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
465    }
466    if let Some(ref local_var_str) = page {
467        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
468    }
469    if let Some(ref local_var_str) = page_size {
470        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
471    }
472    if let Some(ref local_var_str) = search {
473        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
474    }
475    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
476        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
477    }
478    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
479        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
480    };
481
482    let local_var_req = local_var_req_builder.build()?;
483    let local_var_resp = local_var_client.execute(local_var_req).await?;
484
485    let local_var_status = local_var_resp.status();
486    let local_var_content = local_var_resp.text().await?;
487
488    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
489        serde_json::from_str(&local_var_content).map_err(Error::from)
490    } else {
491        let local_var_entity: Option<RbacPermissionsAssignedByUsersListError> =
492            serde_json::from_str(&local_var_content).ok();
493        let local_var_error = ResponseContent {
494            status: local_var_status,
495            content: local_var_content,
496            entity: local_var_entity,
497        };
498        Err(Error::ResponseError(local_var_error))
499    }
500}
501
502/// Unassign permission(s) to user. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
503pub async fn rbac_permissions_assigned_by_users_unassign_partial_update(
504    configuration: &configuration::Configuration,
505    id: i32,
506    patched_permission_assign_request: Option<models::PatchedPermissionAssignRequest>,
507) -> Result<(), Error<RbacPermissionsAssignedByUsersUnassignPartialUpdateError>> {
508    let local_var_configuration = configuration;
509
510    let local_var_client = &local_var_configuration.client;
511
512    let local_var_uri_str = format!(
513        "{}/rbac/permissions/assigned_by_users/{id}/unassign/",
514        local_var_configuration.base_path,
515        id = id
516    );
517    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
518
519    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
520        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
521    }
522    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
523        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
524    };
525    local_var_req_builder = local_var_req_builder.json(&patched_permission_assign_request);
526
527    let local_var_req = local_var_req_builder.build()?;
528    let local_var_resp = local_var_client.execute(local_var_req).await?;
529
530    let local_var_status = local_var_resp.status();
531    let local_var_content = local_var_resp.text().await?;
532
533    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
534        Ok(())
535    } else {
536        let local_var_entity: Option<RbacPermissionsAssignedByUsersUnassignPartialUpdateError> =
537            serde_json::from_str(&local_var_content).ok();
538        let local_var_error = ResponseContent {
539            status: local_var_status,
540            content: local_var_content,
541            entity: local_var_entity,
542        };
543        Err(Error::ResponseError(local_var_error))
544    }
545}
546
547/// Read-only list of all permissions, filterable by model and app
548pub async fn rbac_permissions_list(
549    configuration: &configuration::Configuration,
550    codename: Option<&str>,
551    content_type__app_label: Option<&str>,
552    content_type__model: Option<&str>,
553    ordering: Option<&str>,
554    page: Option<i32>,
555    page_size: Option<i32>,
556    role: Option<&str>,
557    search: Option<&str>,
558    user: Option<i32>,
559) -> Result<models::PaginatedPermissionList, Error<RbacPermissionsListError>> {
560    let local_var_configuration = configuration;
561
562    let local_var_client = &local_var_configuration.client;
563
564    let local_var_uri_str = format!("{}/rbac/permissions/", local_var_configuration.base_path);
565    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
566
567    if let Some(ref local_var_str) = codename {
568        local_var_req_builder = local_var_req_builder.query(&[("codename", &local_var_str.to_string())]);
569    }
570    if let Some(ref local_var_str) = content_type__app_label {
571        local_var_req_builder = local_var_req_builder.query(&[("content_type__app_label", &local_var_str.to_string())]);
572    }
573    if let Some(ref local_var_str) = content_type__model {
574        local_var_req_builder = local_var_req_builder.query(&[("content_type__model", &local_var_str.to_string())]);
575    }
576    if let Some(ref local_var_str) = ordering {
577        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
578    }
579    if let Some(ref local_var_str) = page {
580        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
581    }
582    if let Some(ref local_var_str) = page_size {
583        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
584    }
585    if let Some(ref local_var_str) = role {
586        local_var_req_builder = local_var_req_builder.query(&[("role", &local_var_str.to_string())]);
587    }
588    if let Some(ref local_var_str) = search {
589        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
590    }
591    if let Some(ref local_var_str) = user {
592        local_var_req_builder = local_var_req_builder.query(&[("user", &local_var_str.to_string())]);
593    }
594    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
595        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
596    }
597    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
598        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
599    };
600
601    let local_var_req = local_var_req_builder.build()?;
602    let local_var_resp = local_var_client.execute(local_var_req).await?;
603
604    let local_var_status = local_var_resp.status();
605    let local_var_content = local_var_resp.text().await?;
606
607    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
608        serde_json::from_str(&local_var_content).map_err(Error::from)
609    } else {
610        let local_var_entity: Option<RbacPermissionsListError> = serde_json::from_str(&local_var_content).ok();
611        let local_var_error = ResponseContent {
612            status: local_var_status,
613            content: local_var_content,
614            entity: local_var_entity,
615        };
616        Err(Error::ResponseError(local_var_error))
617    }
618}
619
620/// Read-only list of all permissions, filterable by model and app
621pub async fn rbac_permissions_retrieve(
622    configuration: &configuration::Configuration,
623    id: i32,
624) -> Result<models::Permission, Error<RbacPermissionsRetrieveError>> {
625    let local_var_configuration = configuration;
626
627    let local_var_client = &local_var_configuration.client;
628
629    let local_var_uri_str = format!("{}/rbac/permissions/{id}/", local_var_configuration.base_path, id = id);
630    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
631
632    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
633        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
634    }
635    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
636        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
637    };
638
639    let local_var_req = local_var_req_builder.build()?;
640    let local_var_resp = local_var_client.execute(local_var_req).await?;
641
642    let local_var_status = local_var_resp.status();
643    let local_var_content = local_var_resp.text().await?;
644
645    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
646        serde_json::from_str(&local_var_content).map_err(Error::from)
647    } else {
648        let local_var_entity: Option<RbacPermissionsRetrieveError> = serde_json::from_str(&local_var_content).ok();
649        let local_var_error = ResponseContent {
650            status: local_var_status,
651            content: local_var_content,
652            entity: local_var_entity,
653        };
654        Err(Error::ResponseError(local_var_error))
655    }
656}
657
658/// Get a role's assigned object permissions
659pub async fn rbac_permissions_roles_destroy(
660    configuration: &configuration::Configuration,
661    id: i32,
662) -> Result<(), Error<RbacPermissionsRolesDestroyError>> {
663    let local_var_configuration = configuration;
664
665    let local_var_client = &local_var_configuration.client;
666
667    let local_var_uri_str = format!(
668        "{}/rbac/permissions/roles/{id}/",
669        local_var_configuration.base_path,
670        id = id
671    );
672    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
673
674    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
675        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
676    }
677    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
678        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
679    };
680
681    let local_var_req = local_var_req_builder.build()?;
682    let local_var_resp = local_var_client.execute(local_var_req).await?;
683
684    let local_var_status = local_var_resp.status();
685    let local_var_content = local_var_resp.text().await?;
686
687    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
688        Ok(())
689    } else {
690        let local_var_entity: Option<RbacPermissionsRolesDestroyError> = serde_json::from_str(&local_var_content).ok();
691        let local_var_error = ResponseContent {
692            status: local_var_status,
693            content: local_var_content,
694            entity: local_var_entity,
695        };
696        Err(Error::ResponseError(local_var_error))
697    }
698}
699
700/// Get a role's assigned object permissions
701pub async fn rbac_permissions_roles_list(
702    configuration: &configuration::Configuration,
703    ordering: Option<&str>,
704    page: Option<i32>,
705    page_size: Option<i32>,
706    search: Option<&str>,
707    uuid: Option<&str>,
708) -> Result<models::PaginatedExtraRoleObjectPermissionList, Error<RbacPermissionsRolesListError>> {
709    let local_var_configuration = configuration;
710
711    let local_var_client = &local_var_configuration.client;
712
713    let local_var_uri_str = format!("{}/rbac/permissions/roles/", local_var_configuration.base_path);
714    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
715
716    if let Some(ref local_var_str) = ordering {
717        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
718    }
719    if let Some(ref local_var_str) = page {
720        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
721    }
722    if let Some(ref local_var_str) = page_size {
723        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
724    }
725    if let Some(ref local_var_str) = search {
726        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
727    }
728    if let Some(ref local_var_str) = uuid {
729        local_var_req_builder = local_var_req_builder.query(&[("uuid", &local_var_str.to_string())]);
730    }
731    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
732        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
733    }
734    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
735        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
736    };
737
738    let local_var_req = local_var_req_builder.build()?;
739    let local_var_resp = local_var_client.execute(local_var_req).await?;
740
741    let local_var_status = local_var_resp.status();
742    let local_var_content = local_var_resp.text().await?;
743
744    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
745        serde_json::from_str(&local_var_content).map_err(Error::from)
746    } else {
747        let local_var_entity: Option<RbacPermissionsRolesListError> = serde_json::from_str(&local_var_content).ok();
748        let local_var_error = ResponseContent {
749            status: local_var_status,
750            content: local_var_content,
751            entity: local_var_entity,
752        };
753        Err(Error::ResponseError(local_var_error))
754    }
755}
756
757/// Get a role's assigned object permissions
758pub async fn rbac_permissions_roles_partial_update(
759    configuration: &configuration::Configuration,
760    id: i32,
761    patched_extra_role_object_permission_request: Option<models::PatchedExtraRoleObjectPermissionRequest>,
762) -> Result<models::ExtraRoleObjectPermission, Error<RbacPermissionsRolesPartialUpdateError>> {
763    let local_var_configuration = configuration;
764
765    let local_var_client = &local_var_configuration.client;
766
767    let local_var_uri_str = format!(
768        "{}/rbac/permissions/roles/{id}/",
769        local_var_configuration.base_path,
770        id = id
771    );
772    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
773
774    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
775        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
776    }
777    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
778        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
779    };
780    local_var_req_builder = local_var_req_builder.json(&patched_extra_role_object_permission_request);
781
782    let local_var_req = local_var_req_builder.build()?;
783    let local_var_resp = local_var_client.execute(local_var_req).await?;
784
785    let local_var_status = local_var_resp.status();
786    let local_var_content = local_var_resp.text().await?;
787
788    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
789        serde_json::from_str(&local_var_content).map_err(Error::from)
790    } else {
791        let local_var_entity: Option<RbacPermissionsRolesPartialUpdateError> =
792            serde_json::from_str(&local_var_content).ok();
793        let local_var_error = ResponseContent {
794            status: local_var_status,
795            content: local_var_content,
796            entity: local_var_entity,
797        };
798        Err(Error::ResponseError(local_var_error))
799    }
800}
801
802/// Get a role's assigned object permissions
803pub async fn rbac_permissions_roles_retrieve(
804    configuration: &configuration::Configuration,
805    id: i32,
806) -> Result<models::ExtraRoleObjectPermission, Error<RbacPermissionsRolesRetrieveError>> {
807    let local_var_configuration = configuration;
808
809    let local_var_client = &local_var_configuration.client;
810
811    let local_var_uri_str = format!(
812        "{}/rbac/permissions/roles/{id}/",
813        local_var_configuration.base_path,
814        id = id
815    );
816    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
817
818    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
819        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
820    }
821    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
822        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
823    };
824
825    let local_var_req = local_var_req_builder.build()?;
826    let local_var_resp = local_var_client.execute(local_var_req).await?;
827
828    let local_var_status = local_var_resp.status();
829    let local_var_content = local_var_resp.text().await?;
830
831    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
832        serde_json::from_str(&local_var_content).map_err(Error::from)
833    } else {
834        let local_var_entity: Option<RbacPermissionsRolesRetrieveError> = serde_json::from_str(&local_var_content).ok();
835        let local_var_error = ResponseContent {
836            status: local_var_status,
837            content: local_var_content,
838            entity: local_var_entity,
839        };
840        Err(Error::ResponseError(local_var_error))
841    }
842}
843
844/// Get a role's assigned object permissions
845pub async fn rbac_permissions_roles_update(
846    configuration: &configuration::Configuration,
847    id: i32,
848    extra_role_object_permission_request: models::ExtraRoleObjectPermissionRequest,
849) -> Result<models::ExtraRoleObjectPermission, Error<RbacPermissionsRolesUpdateError>> {
850    let local_var_configuration = configuration;
851
852    let local_var_client = &local_var_configuration.client;
853
854    let local_var_uri_str = format!(
855        "{}/rbac/permissions/roles/{id}/",
856        local_var_configuration.base_path,
857        id = id
858    );
859    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
860
861    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
862        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
863    }
864    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
865        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
866    };
867    local_var_req_builder = local_var_req_builder.json(&extra_role_object_permission_request);
868
869    let local_var_req = local_var_req_builder.build()?;
870    let local_var_resp = local_var_client.execute(local_var_req).await?;
871
872    let local_var_status = local_var_resp.status();
873    let local_var_content = local_var_resp.text().await?;
874
875    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
876        serde_json::from_str(&local_var_content).map_err(Error::from)
877    } else {
878        let local_var_entity: Option<RbacPermissionsRolesUpdateError> = serde_json::from_str(&local_var_content).ok();
879        let local_var_error = ResponseContent {
880            status: local_var_status,
881            content: local_var_content,
882            entity: local_var_entity,
883        };
884        Err(Error::ResponseError(local_var_error))
885    }
886}
887
888/// Get a users's assigned object permissions
889pub async fn rbac_permissions_users_destroy(
890    configuration: &configuration::Configuration,
891    id: i32,
892) -> Result<(), Error<RbacPermissionsUsersDestroyError>> {
893    let local_var_configuration = configuration;
894
895    let local_var_client = &local_var_configuration.client;
896
897    let local_var_uri_str = format!(
898        "{}/rbac/permissions/users/{id}/",
899        local_var_configuration.base_path,
900        id = id
901    );
902    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
903
904    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
905        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
906    }
907    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
908        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
909    };
910
911    let local_var_req = local_var_req_builder.build()?;
912    let local_var_resp = local_var_client.execute(local_var_req).await?;
913
914    let local_var_status = local_var_resp.status();
915    let local_var_content = local_var_resp.text().await?;
916
917    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
918        Ok(())
919    } else {
920        let local_var_entity: Option<RbacPermissionsUsersDestroyError> = serde_json::from_str(&local_var_content).ok();
921        let local_var_error = ResponseContent {
922            status: local_var_status,
923            content: local_var_content,
924            entity: local_var_entity,
925        };
926        Err(Error::ResponseError(local_var_error))
927    }
928}
929
930/// Get a users's assigned object permissions
931pub async fn rbac_permissions_users_list(
932    configuration: &configuration::Configuration,
933    ordering: Option<&str>,
934    page: Option<i32>,
935    page_size: Option<i32>,
936    search: Option<&str>,
937    user_id: Option<i32>,
938) -> Result<models::PaginatedExtraUserObjectPermissionList, Error<RbacPermissionsUsersListError>> {
939    let local_var_configuration = configuration;
940
941    let local_var_client = &local_var_configuration.client;
942
943    let local_var_uri_str = format!("{}/rbac/permissions/users/", local_var_configuration.base_path);
944    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
945
946    if let Some(ref local_var_str) = ordering {
947        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
948    }
949    if let Some(ref local_var_str) = page {
950        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
951    }
952    if let Some(ref local_var_str) = page_size {
953        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
954    }
955    if let Some(ref local_var_str) = search {
956        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
957    }
958    if let Some(ref local_var_str) = user_id {
959        local_var_req_builder = local_var_req_builder.query(&[("user_id", &local_var_str.to_string())]);
960    }
961    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
962        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
963    }
964    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
965        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
966    };
967
968    let local_var_req = local_var_req_builder.build()?;
969    let local_var_resp = local_var_client.execute(local_var_req).await?;
970
971    let local_var_status = local_var_resp.status();
972    let local_var_content = local_var_resp.text().await?;
973
974    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
975        serde_json::from_str(&local_var_content).map_err(Error::from)
976    } else {
977        let local_var_entity: Option<RbacPermissionsUsersListError> = serde_json::from_str(&local_var_content).ok();
978        let local_var_error = ResponseContent {
979            status: local_var_status,
980            content: local_var_content,
981            entity: local_var_entity,
982        };
983        Err(Error::ResponseError(local_var_error))
984    }
985}
986
987/// Get a users's assigned object permissions
988pub async fn rbac_permissions_users_partial_update(
989    configuration: &configuration::Configuration,
990    id: i32,
991    patched_extra_user_object_permission_request: Option<models::PatchedExtraUserObjectPermissionRequest>,
992) -> Result<models::ExtraUserObjectPermission, Error<RbacPermissionsUsersPartialUpdateError>> {
993    let local_var_configuration = configuration;
994
995    let local_var_client = &local_var_configuration.client;
996
997    let local_var_uri_str = format!(
998        "{}/rbac/permissions/users/{id}/",
999        local_var_configuration.base_path,
1000        id = id
1001    );
1002    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
1003
1004    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1005        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1006    }
1007    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1008        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1009    };
1010    local_var_req_builder = local_var_req_builder.json(&patched_extra_user_object_permission_request);
1011
1012    let local_var_req = local_var_req_builder.build()?;
1013    let local_var_resp = local_var_client.execute(local_var_req).await?;
1014
1015    let local_var_status = local_var_resp.status();
1016    let local_var_content = local_var_resp.text().await?;
1017
1018    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1019        serde_json::from_str(&local_var_content).map_err(Error::from)
1020    } else {
1021        let local_var_entity: Option<RbacPermissionsUsersPartialUpdateError> =
1022            serde_json::from_str(&local_var_content).ok();
1023        let local_var_error = ResponseContent {
1024            status: local_var_status,
1025            content: local_var_content,
1026            entity: local_var_entity,
1027        };
1028        Err(Error::ResponseError(local_var_error))
1029    }
1030}
1031
1032/// Get a users's assigned object permissions
1033pub async fn rbac_permissions_users_retrieve(
1034    configuration: &configuration::Configuration,
1035    id: i32,
1036) -> Result<models::ExtraUserObjectPermission, Error<RbacPermissionsUsersRetrieveError>> {
1037    let local_var_configuration = configuration;
1038
1039    let local_var_client = &local_var_configuration.client;
1040
1041    let local_var_uri_str = format!(
1042        "{}/rbac/permissions/users/{id}/",
1043        local_var_configuration.base_path,
1044        id = id
1045    );
1046    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1047
1048    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1049        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1050    }
1051    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1052        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1053    };
1054
1055    let local_var_req = local_var_req_builder.build()?;
1056    let local_var_resp = local_var_client.execute(local_var_req).await?;
1057
1058    let local_var_status = local_var_resp.status();
1059    let local_var_content = local_var_resp.text().await?;
1060
1061    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1062        serde_json::from_str(&local_var_content).map_err(Error::from)
1063    } else {
1064        let local_var_entity: Option<RbacPermissionsUsersRetrieveError> = serde_json::from_str(&local_var_content).ok();
1065        let local_var_error = ResponseContent {
1066            status: local_var_status,
1067            content: local_var_content,
1068            entity: local_var_entity,
1069        };
1070        Err(Error::ResponseError(local_var_error))
1071    }
1072}
1073
1074/// Get a users's assigned object permissions
1075pub async fn rbac_permissions_users_update(
1076    configuration: &configuration::Configuration,
1077    id: i32,
1078    extra_user_object_permission_request: models::ExtraUserObjectPermissionRequest,
1079) -> Result<models::ExtraUserObjectPermission, Error<RbacPermissionsUsersUpdateError>> {
1080    let local_var_configuration = configuration;
1081
1082    let local_var_client = &local_var_configuration.client;
1083
1084    let local_var_uri_str = format!(
1085        "{}/rbac/permissions/users/{id}/",
1086        local_var_configuration.base_path,
1087        id = id
1088    );
1089    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1090
1091    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1092        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1093    }
1094    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1095        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1096    };
1097    local_var_req_builder = local_var_req_builder.json(&extra_user_object_permission_request);
1098
1099    let local_var_req = local_var_req_builder.build()?;
1100    let local_var_resp = local_var_client.execute(local_var_req).await?;
1101
1102    let local_var_status = local_var_resp.status();
1103    let local_var_content = local_var_resp.text().await?;
1104
1105    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1106        serde_json::from_str(&local_var_content).map_err(Error::from)
1107    } else {
1108        let local_var_entity: Option<RbacPermissionsUsersUpdateError> = serde_json::from_str(&local_var_content).ok();
1109        let local_var_error = ResponseContent {
1110            status: local_var_status,
1111            content: local_var_content,
1112            entity: local_var_entity,
1113        };
1114        Err(Error::ResponseError(local_var_error))
1115    }
1116}
1117
1118/// Role viewset
1119pub async fn rbac_roles_create(
1120    configuration: &configuration::Configuration,
1121    role_request: models::RoleRequest,
1122) -> Result<models::Role, Error<RbacRolesCreateError>> {
1123    let local_var_configuration = configuration;
1124
1125    let local_var_client = &local_var_configuration.client;
1126
1127    let local_var_uri_str = format!("{}/rbac/roles/", local_var_configuration.base_path);
1128    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
1129
1130    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1131        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1132    }
1133    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1134        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1135    };
1136    local_var_req_builder = local_var_req_builder.json(&role_request);
1137
1138    let local_var_req = local_var_req_builder.build()?;
1139    let local_var_resp = local_var_client.execute(local_var_req).await?;
1140
1141    let local_var_status = local_var_resp.status();
1142    let local_var_content = local_var_resp.text().await?;
1143
1144    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1145        serde_json::from_str(&local_var_content).map_err(Error::from)
1146    } else {
1147        let local_var_entity: Option<RbacRolesCreateError> = serde_json::from_str(&local_var_content).ok();
1148        let local_var_error = ResponseContent {
1149            status: local_var_status,
1150            content: local_var_content,
1151            entity: local_var_entity,
1152        };
1153        Err(Error::ResponseError(local_var_error))
1154    }
1155}
1156
1157/// Role viewset
1158pub async fn rbac_roles_destroy(
1159    configuration: &configuration::Configuration,
1160    uuid: &str,
1161) -> Result<(), Error<RbacRolesDestroyError>> {
1162    let local_var_configuration = configuration;
1163
1164    let local_var_client = &local_var_configuration.client;
1165
1166    let local_var_uri_str = format!(
1167        "{}/rbac/roles/{uuid}/",
1168        local_var_configuration.base_path,
1169        uuid = crate::apis::urlencode(uuid)
1170    );
1171    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
1172
1173    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1174        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1175    }
1176    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1177        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1178    };
1179
1180    let local_var_req = local_var_req_builder.build()?;
1181    let local_var_resp = local_var_client.execute(local_var_req).await?;
1182
1183    let local_var_status = local_var_resp.status();
1184    let local_var_content = local_var_resp.text().await?;
1185
1186    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1187        Ok(())
1188    } else {
1189        let local_var_entity: Option<RbacRolesDestroyError> = serde_json::from_str(&local_var_content).ok();
1190        let local_var_error = ResponseContent {
1191            status: local_var_status,
1192            content: local_var_content,
1193            entity: local_var_entity,
1194        };
1195        Err(Error::ResponseError(local_var_error))
1196    }
1197}
1198
1199/// Role viewset
1200pub async fn rbac_roles_list(
1201    configuration: &configuration::Configuration,
1202    group__name: Option<&str>,
1203    ordering: Option<&str>,
1204    page: Option<i32>,
1205    page_size: Option<i32>,
1206    search: Option<&str>,
1207) -> Result<models::PaginatedRoleList, Error<RbacRolesListError>> {
1208    let local_var_configuration = configuration;
1209
1210    let local_var_client = &local_var_configuration.client;
1211
1212    let local_var_uri_str = format!("{}/rbac/roles/", local_var_configuration.base_path);
1213    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1214
1215    if let Some(ref local_var_str) = group__name {
1216        local_var_req_builder = local_var_req_builder.query(&[("group__name", &local_var_str.to_string())]);
1217    }
1218    if let Some(ref local_var_str) = ordering {
1219        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
1220    }
1221    if let Some(ref local_var_str) = page {
1222        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
1223    }
1224    if let Some(ref local_var_str) = page_size {
1225        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
1226    }
1227    if let Some(ref local_var_str) = search {
1228        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
1229    }
1230    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1231        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1232    }
1233    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1234        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1235    };
1236
1237    let local_var_req = local_var_req_builder.build()?;
1238    let local_var_resp = local_var_client.execute(local_var_req).await?;
1239
1240    let local_var_status = local_var_resp.status();
1241    let local_var_content = local_var_resp.text().await?;
1242
1243    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1244        serde_json::from_str(&local_var_content).map_err(Error::from)
1245    } else {
1246        let local_var_entity: Option<RbacRolesListError> = serde_json::from_str(&local_var_content).ok();
1247        let local_var_error = ResponseContent {
1248            status: local_var_status,
1249            content: local_var_content,
1250            entity: local_var_entity,
1251        };
1252        Err(Error::ResponseError(local_var_error))
1253    }
1254}
1255
1256/// Role viewset
1257pub async fn rbac_roles_partial_update(
1258    configuration: &configuration::Configuration,
1259    uuid: &str,
1260    patched_role_request: Option<models::PatchedRoleRequest>,
1261) -> Result<models::Role, Error<RbacRolesPartialUpdateError>> {
1262    let local_var_configuration = configuration;
1263
1264    let local_var_client = &local_var_configuration.client;
1265
1266    let local_var_uri_str = format!(
1267        "{}/rbac/roles/{uuid}/",
1268        local_var_configuration.base_path,
1269        uuid = crate::apis::urlencode(uuid)
1270    );
1271    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
1272
1273    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1274        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1275    }
1276    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1277        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1278    };
1279    local_var_req_builder = local_var_req_builder.json(&patched_role_request);
1280
1281    let local_var_req = local_var_req_builder.build()?;
1282    let local_var_resp = local_var_client.execute(local_var_req).await?;
1283
1284    let local_var_status = local_var_resp.status();
1285    let local_var_content = local_var_resp.text().await?;
1286
1287    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1288        serde_json::from_str(&local_var_content).map_err(Error::from)
1289    } else {
1290        let local_var_entity: Option<RbacRolesPartialUpdateError> = serde_json::from_str(&local_var_content).ok();
1291        let local_var_error = ResponseContent {
1292            status: local_var_status,
1293            content: local_var_content,
1294            entity: local_var_entity,
1295        };
1296        Err(Error::ResponseError(local_var_error))
1297    }
1298}
1299
1300/// Role viewset
1301pub async fn rbac_roles_retrieve(
1302    configuration: &configuration::Configuration,
1303    uuid: &str,
1304) -> Result<models::Role, Error<RbacRolesRetrieveError>> {
1305    let local_var_configuration = configuration;
1306
1307    let local_var_client = &local_var_configuration.client;
1308
1309    let local_var_uri_str = format!(
1310        "{}/rbac/roles/{uuid}/",
1311        local_var_configuration.base_path,
1312        uuid = crate::apis::urlencode(uuid)
1313    );
1314    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1315
1316    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1317        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1318    }
1319    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1320        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1321    };
1322
1323    let local_var_req = local_var_req_builder.build()?;
1324    let local_var_resp = local_var_client.execute(local_var_req).await?;
1325
1326    let local_var_status = local_var_resp.status();
1327    let local_var_content = local_var_resp.text().await?;
1328
1329    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1330        serde_json::from_str(&local_var_content).map_err(Error::from)
1331    } else {
1332        let local_var_entity: Option<RbacRolesRetrieveError> = serde_json::from_str(&local_var_content).ok();
1333        let local_var_error = ResponseContent {
1334            status: local_var_status,
1335            content: local_var_content,
1336            entity: local_var_entity,
1337        };
1338        Err(Error::ResponseError(local_var_error))
1339    }
1340}
1341
1342/// Role viewset
1343pub async fn rbac_roles_update(
1344    configuration: &configuration::Configuration,
1345    uuid: &str,
1346    role_request: models::RoleRequest,
1347) -> Result<models::Role, Error<RbacRolesUpdateError>> {
1348    let local_var_configuration = configuration;
1349
1350    let local_var_client = &local_var_configuration.client;
1351
1352    let local_var_uri_str = format!(
1353        "{}/rbac/roles/{uuid}/",
1354        local_var_configuration.base_path,
1355        uuid = crate::apis::urlencode(uuid)
1356    );
1357    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1358
1359    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1360        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1361    }
1362    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1363        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1364    };
1365    local_var_req_builder = local_var_req_builder.json(&role_request);
1366
1367    let local_var_req = local_var_req_builder.build()?;
1368    let local_var_resp = local_var_client.execute(local_var_req).await?;
1369
1370    let local_var_status = local_var_resp.status();
1371    let local_var_content = local_var_resp.text().await?;
1372
1373    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1374        serde_json::from_str(&local_var_content).map_err(Error::from)
1375    } else {
1376        let local_var_entity: Option<RbacRolesUpdateError> = serde_json::from_str(&local_var_content).ok();
1377        let local_var_error = ResponseContent {
1378            status: local_var_status,
1379            content: local_var_content,
1380            entity: local_var_entity,
1381        };
1382        Err(Error::ResponseError(local_var_error))
1383    }
1384}
1385
1386/// Get a list of all objects that use this object
1387pub async fn rbac_roles_used_by_list(
1388    configuration: &configuration::Configuration,
1389    uuid: &str,
1390) -> Result<Vec<models::UsedBy>, Error<RbacRolesUsedByListError>> {
1391    let local_var_configuration = configuration;
1392
1393    let local_var_client = &local_var_configuration.client;
1394
1395    let local_var_uri_str = format!(
1396        "{}/rbac/roles/{uuid}/used_by/",
1397        local_var_configuration.base_path,
1398        uuid = crate::apis::urlencode(uuid)
1399    );
1400    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1401
1402    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1403        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1404    }
1405    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1406        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1407    };
1408
1409    let local_var_req = local_var_req_builder.build()?;
1410    let local_var_resp = local_var_client.execute(local_var_req).await?;
1411
1412    let local_var_status = local_var_resp.status();
1413    let local_var_content = local_var_resp.text().await?;
1414
1415    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1416        serde_json::from_str(&local_var_content).map_err(Error::from)
1417    } else {
1418        let local_var_entity: Option<RbacRolesUsedByListError> = serde_json::from_str(&local_var_content).ok();
1419        let local_var_error = ResponseContent {
1420            status: local_var_status,
1421            content: local_var_content,
1422            entity: local_var_entity,
1423        };
1424        Err(Error::ResponseError(local_var_error))
1425    }
1426}