authentik_rust/apis/
rbac_api.rs

1/*
2 * authentik
3 *
4 * Making authentication simple.
5 *
6 * The version of the OpenAPI document: 2024.2.1
7 * Contact: hello@goauthentik.io
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_assign_create`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum RbacPermissionsAssignedByRolesAssignCreateError {
22    Status400(models::ValidationError),
23    Status403(models::GenericError),
24    UnknownValue(serde_json::Value),
25}
26
27/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_list`]
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum RbacPermissionsAssignedByRolesListError {
31    Status400(models::ValidationError),
32    Status403(models::GenericError),
33    UnknownValue(serde_json::Value),
34}
35
36/// struct for typed errors of method [`rbac_permissions_assigned_by_roles_unassign_partial_update`]
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum RbacPermissionsAssignedByRolesUnassignPartialUpdateError {
40    Status400(models::ValidationError),
41    Status403(models::GenericError),
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`rbac_permissions_assigned_by_users_assign_create`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum RbacPermissionsAssignedByUsersAssignCreateError {
49    Status400(models::ValidationError),
50    Status403(models::GenericError),
51    UnknownValue(serde_json::Value),
52}
53
54/// struct for typed errors of method [`rbac_permissions_assigned_by_users_list`]
55#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum RbacPermissionsAssignedByUsersListError {
58    Status400(models::ValidationError),
59    Status403(models::GenericError),
60    UnknownValue(serde_json::Value),
61}
62
63/// struct for typed errors of method [`rbac_permissions_assigned_by_users_unassign_partial_update`]
64#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(untagged)]
66pub enum RbacPermissionsAssignedByUsersUnassignPartialUpdateError {
67    Status400(models::ValidationError),
68    Status403(models::GenericError),
69    UnknownValue(serde_json::Value),
70}
71
72/// struct for typed errors of method [`rbac_permissions_list`]
73#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum RbacPermissionsListError {
76    Status400(models::ValidationError),
77    Status403(models::GenericError),
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`rbac_permissions_retrieve`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum RbacPermissionsRetrieveError {
85    Status400(models::ValidationError),
86    Status403(models::GenericError),
87    UnknownValue(serde_json::Value),
88}
89
90/// struct for typed errors of method [`rbac_permissions_roles_list`]
91#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum RbacPermissionsRolesListError {
94    Status400(models::ValidationError),
95    Status403(models::GenericError),
96    UnknownValue(serde_json::Value),
97}
98
99/// struct for typed errors of method [`rbac_permissions_users_list`]
100#[derive(Debug, Clone, Serialize, Deserialize)]
101#[serde(untagged)]
102pub enum RbacPermissionsUsersListError {
103    Status400(models::ValidationError),
104    Status403(models::GenericError),
105    UnknownValue(serde_json::Value),
106}
107
108/// struct for typed errors of method [`rbac_roles_create`]
109#[derive(Debug, Clone, Serialize, Deserialize)]
110#[serde(untagged)]
111pub enum RbacRolesCreateError {
112    Status400(models::ValidationError),
113    Status403(models::GenericError),
114    UnknownValue(serde_json::Value),
115}
116
117/// struct for typed errors of method [`rbac_roles_destroy`]
118#[derive(Debug, Clone, Serialize, Deserialize)]
119#[serde(untagged)]
120pub enum RbacRolesDestroyError {
121    Status400(models::ValidationError),
122    Status403(models::GenericError),
123    UnknownValue(serde_json::Value),
124}
125
126/// struct for typed errors of method [`rbac_roles_list`]
127#[derive(Debug, Clone, Serialize, Deserialize)]
128#[serde(untagged)]
129pub enum RbacRolesListError {
130    Status400(models::ValidationError),
131    Status403(models::GenericError),
132    UnknownValue(serde_json::Value),
133}
134
135/// struct for typed errors of method [`rbac_roles_partial_update`]
136#[derive(Debug, Clone, Serialize, Deserialize)]
137#[serde(untagged)]
138pub enum RbacRolesPartialUpdateError {
139    Status400(models::ValidationError),
140    Status403(models::GenericError),
141    UnknownValue(serde_json::Value),
142}
143
144/// struct for typed errors of method [`rbac_roles_retrieve`]
145#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum RbacRolesRetrieveError {
148    Status400(models::ValidationError),
149    Status403(models::GenericError),
150    UnknownValue(serde_json::Value),
151}
152
153/// struct for typed errors of method [`rbac_roles_update`]
154#[derive(Debug, Clone, Serialize, Deserialize)]
155#[serde(untagged)]
156pub enum RbacRolesUpdateError {
157    Status400(models::ValidationError),
158    Status403(models::GenericError),
159    UnknownValue(serde_json::Value),
160}
161
162/// struct for typed errors of method [`rbac_roles_used_by_list`]
163#[derive(Debug, Clone, Serialize, Deserialize)]
164#[serde(untagged)]
165pub enum RbacRolesUsedByListError {
166    Status400(models::ValidationError),
167    Status403(models::GenericError),
168    UnknownValue(serde_json::Value),
169}
170
171
172/// Assign permission(s) to role. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
173pub async fn rbac_permissions_assigned_by_roles_assign_create(configuration: &configuration::Configuration, uuid: &str, permission_assign_request: models::PermissionAssignRequest) -> Result<(), Error<RbacPermissionsAssignedByRolesAssignCreateError>> {
174    let local_var_configuration = configuration;
175
176    let local_var_client = &local_var_configuration.client;
177
178    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_roles/{uuid}/assign/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
179    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
180
181    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
182        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
183    }
184    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
185        let local_var_key = local_var_apikey.key.clone();
186        let local_var_value = match local_var_apikey.prefix {
187            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
188            None => local_var_key,
189        };
190        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
191    };
192    local_var_req_builder = local_var_req_builder.json(&permission_assign_request);
193
194    let local_var_req = local_var_req_builder.build()?;
195    let local_var_resp = local_var_client.execute(local_var_req).await?;
196
197    let local_var_status = local_var_resp.status();
198    let local_var_content = local_var_resp.text().await?;
199
200    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
201        Ok(())
202    } else {
203        let local_var_entity: Option<RbacPermissionsAssignedByRolesAssignCreateError> = serde_json::from_str(&local_var_content).ok();
204        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
205        Err(Error::ResponseError(local_var_error))
206    }
207}
208
209/// Get assigned object permissions for a single object
210pub async fn rbac_permissions_assigned_by_roles_list(configuration: &configuration::Configuration, model: &str, object_pk: Option<&str>, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, search: Option<&str>) -> Result<models::PaginatedRoleAssignedObjectPermissionList, Error<RbacPermissionsAssignedByRolesListError>> {
211    let local_var_configuration = configuration;
212
213    let local_var_client = &local_var_configuration.client;
214
215    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_roles/", local_var_configuration.base_path);
216    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
217
218    local_var_req_builder = local_var_req_builder.query(&[("model", &model.to_string())]);
219    if let Some(ref local_var_str) = object_pk {
220        local_var_req_builder = local_var_req_builder.query(&[("object_pk", &local_var_str.to_string())]);
221    }
222    if let Some(ref local_var_str) = ordering {
223        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
224    }
225    if let Some(ref local_var_str) = page {
226        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
227    }
228    if let Some(ref local_var_str) = page_size {
229        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
230    }
231    if let Some(ref local_var_str) = search {
232        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
233    }
234    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
235        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
236    }
237    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
238        let local_var_key = local_var_apikey.key.clone();
239        let local_var_value = match local_var_apikey.prefix {
240            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
241            None => local_var_key,
242        };
243        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
244    };
245
246    let local_var_req = local_var_req_builder.build()?;
247    let local_var_resp = local_var_client.execute(local_var_req).await?;
248
249    let local_var_status = local_var_resp.status();
250    let local_var_content = local_var_resp.text().await?;
251
252    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253        serde_json::from_str(&local_var_content).map_err(Error::from)
254    } else {
255        let local_var_entity: Option<RbacPermissionsAssignedByRolesListError> = serde_json::from_str(&local_var_content).ok();
256        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257        Err(Error::ResponseError(local_var_error))
258    }
259}
260
261/// Unassign permission(s) to role. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
262pub async fn rbac_permissions_assigned_by_roles_unassign_partial_update(configuration: &configuration::Configuration, uuid: &str, patched_permission_assign_request: Option<models::PatchedPermissionAssignRequest>) -> Result<(), Error<RbacPermissionsAssignedByRolesUnassignPartialUpdateError>> {
263    let local_var_configuration = configuration;
264
265    let local_var_client = &local_var_configuration.client;
266
267    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_roles/{uuid}/unassign/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
268    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
269
270    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
271        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
272    }
273    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
274        let local_var_key = local_var_apikey.key.clone();
275        let local_var_value = match local_var_apikey.prefix {
276            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
277            None => local_var_key,
278        };
279        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
280    };
281    local_var_req_builder = local_var_req_builder.json(&patched_permission_assign_request);
282
283    let local_var_req = local_var_req_builder.build()?;
284    let local_var_resp = local_var_client.execute(local_var_req).await?;
285
286    let local_var_status = local_var_resp.status();
287    let local_var_content = local_var_resp.text().await?;
288
289    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
290        Ok(())
291    } else {
292        let local_var_entity: Option<RbacPermissionsAssignedByRolesUnassignPartialUpdateError> = serde_json::from_str(&local_var_content).ok();
293        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
294        Err(Error::ResponseError(local_var_error))
295    }
296}
297
298/// Assign permission(s) to user
299pub async fn rbac_permissions_assigned_by_users_assign_create(configuration: &configuration::Configuration, id: i32, permission_assign_request: models::PermissionAssignRequest) -> Result<(), Error<RbacPermissionsAssignedByUsersAssignCreateError>> {
300    let local_var_configuration = configuration;
301
302    let local_var_client = &local_var_configuration.client;
303
304    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_users/{id}/assign/", local_var_configuration.base_path, id=id);
305    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
306
307    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
308        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
309    }
310    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
311        let local_var_key = local_var_apikey.key.clone();
312        let local_var_value = match local_var_apikey.prefix {
313            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
314            None => local_var_key,
315        };
316        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
317    };
318    local_var_req_builder = local_var_req_builder.json(&permission_assign_request);
319
320    let local_var_req = local_var_req_builder.build()?;
321    let local_var_resp = local_var_client.execute(local_var_req).await?;
322
323    let local_var_status = local_var_resp.status();
324    let local_var_content = local_var_resp.text().await?;
325
326    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
327        Ok(())
328    } else {
329        let local_var_entity: Option<RbacPermissionsAssignedByUsersAssignCreateError> = serde_json::from_str(&local_var_content).ok();
330        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
331        Err(Error::ResponseError(local_var_error))
332    }
333}
334
335/// Get assigned object permissions for a single object
336pub async fn rbac_permissions_assigned_by_users_list(configuration: &configuration::Configuration, model: &str, object_pk: Option<&str>, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, search: Option<&str>) -> Result<models::PaginatedUserAssignedObjectPermissionList, Error<RbacPermissionsAssignedByUsersListError>> {
337    let local_var_configuration = configuration;
338
339    let local_var_client = &local_var_configuration.client;
340
341    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_users/", local_var_configuration.base_path);
342    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
343
344    local_var_req_builder = local_var_req_builder.query(&[("model", &model.to_string())]);
345    if let Some(ref local_var_str) = object_pk {
346        local_var_req_builder = local_var_req_builder.query(&[("object_pk", &local_var_str.to_string())]);
347    }
348    if let Some(ref local_var_str) = ordering {
349        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
350    }
351    if let Some(ref local_var_str) = page {
352        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
353    }
354    if let Some(ref local_var_str) = page_size {
355        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
356    }
357    if let Some(ref local_var_str) = search {
358        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
359    }
360    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
361        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
362    }
363    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
364        let local_var_key = local_var_apikey.key.clone();
365        let local_var_value = match local_var_apikey.prefix {
366            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
367            None => local_var_key,
368        };
369        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
370    };
371
372    let local_var_req = local_var_req_builder.build()?;
373    let local_var_resp = local_var_client.execute(local_var_req).await?;
374
375    let local_var_status = local_var_resp.status();
376    let local_var_content = local_var_resp.text().await?;
377
378    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
379        serde_json::from_str(&local_var_content).map_err(Error::from)
380    } else {
381        let local_var_entity: Option<RbacPermissionsAssignedByUsersListError> = serde_json::from_str(&local_var_content).ok();
382        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
383        Err(Error::ResponseError(local_var_error))
384    }
385}
386
387/// Unassign permission(s) to user. When `object_pk` is set, the permissions are only assigned to the specific object, otherwise they are assigned globally.
388pub async fn rbac_permissions_assigned_by_users_unassign_partial_update(configuration: &configuration::Configuration, id: i32, patched_permission_assign_request: Option<models::PatchedPermissionAssignRequest>) -> Result<(), Error<RbacPermissionsAssignedByUsersUnassignPartialUpdateError>> {
389    let local_var_configuration = configuration;
390
391    let local_var_client = &local_var_configuration.client;
392
393    let local_var_uri_str = format!("{}/rbac/permissions/assigned_by_users/{id}/unassign/", local_var_configuration.base_path, id=id);
394    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
395
396    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
397        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
398    }
399    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
400        let local_var_key = local_var_apikey.key.clone();
401        let local_var_value = match local_var_apikey.prefix {
402            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
403            None => local_var_key,
404        };
405        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
406    };
407    local_var_req_builder = local_var_req_builder.json(&patched_permission_assign_request);
408
409    let local_var_req = local_var_req_builder.build()?;
410    let local_var_resp = local_var_client.execute(local_var_req).await?;
411
412    let local_var_status = local_var_resp.status();
413    let local_var_content = local_var_resp.text().await?;
414
415    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
416        Ok(())
417    } else {
418        let local_var_entity: Option<RbacPermissionsAssignedByUsersUnassignPartialUpdateError> = serde_json::from_str(&local_var_content).ok();
419        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
420        Err(Error::ResponseError(local_var_error))
421    }
422}
423
424/// Read-only list of all permissions, filterable by model and app
425pub async fn rbac_permissions_list(configuration: &configuration::Configuration, codename: Option<&str>, content_type__app_label: Option<&str>, content_type__model: Option<&str>, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, role: Option<&str>, search: Option<&str>, user: Option<i32>) -> Result<models::PaginatedPermissionList, Error<RbacPermissionsListError>> {
426    let local_var_configuration = configuration;
427
428    let local_var_client = &local_var_configuration.client;
429
430    let local_var_uri_str = format!("{}/rbac/permissions/", local_var_configuration.base_path);
431    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
432
433    if let Some(ref local_var_str) = codename {
434        local_var_req_builder = local_var_req_builder.query(&[("codename", &local_var_str.to_string())]);
435    }
436    if let Some(ref local_var_str) = content_type__app_label {
437        local_var_req_builder = local_var_req_builder.query(&[("content_type__app_label", &local_var_str.to_string())]);
438    }
439    if let Some(ref local_var_str) = content_type__model {
440        local_var_req_builder = local_var_req_builder.query(&[("content_type__model", &local_var_str.to_string())]);
441    }
442    if let Some(ref local_var_str) = ordering {
443        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
444    }
445    if let Some(ref local_var_str) = page {
446        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
447    }
448    if let Some(ref local_var_str) = page_size {
449        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
450    }
451    if let Some(ref local_var_str) = role {
452        local_var_req_builder = local_var_req_builder.query(&[("role", &local_var_str.to_string())]);
453    }
454    if let Some(ref local_var_str) = search {
455        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
456    }
457    if let Some(ref local_var_str) = user {
458        local_var_req_builder = local_var_req_builder.query(&[("user", &local_var_str.to_string())]);
459    }
460    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
461        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
462    }
463    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
464        let local_var_key = local_var_apikey.key.clone();
465        let local_var_value = match local_var_apikey.prefix {
466            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
467            None => local_var_key,
468        };
469        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
470    };
471
472    let local_var_req = local_var_req_builder.build()?;
473    let local_var_resp = local_var_client.execute(local_var_req).await?;
474
475    let local_var_status = local_var_resp.status();
476    let local_var_content = local_var_resp.text().await?;
477
478    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
479        serde_json::from_str(&local_var_content).map_err(Error::from)
480    } else {
481        let local_var_entity: Option<RbacPermissionsListError> = serde_json::from_str(&local_var_content).ok();
482        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
483        Err(Error::ResponseError(local_var_error))
484    }
485}
486
487/// Read-only list of all permissions, filterable by model and app
488pub async fn rbac_permissions_retrieve(configuration: &configuration::Configuration, id: i32) -> Result<models::Permission, Error<RbacPermissionsRetrieveError>> {
489    let local_var_configuration = configuration;
490
491    let local_var_client = &local_var_configuration.client;
492
493    let local_var_uri_str = format!("{}/rbac/permissions/{id}/", local_var_configuration.base_path, id=id);
494    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
495
496    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
497        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
498    }
499    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
500        let local_var_key = local_var_apikey.key.clone();
501        let local_var_value = match local_var_apikey.prefix {
502            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
503            None => local_var_key,
504        };
505        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
506    };
507
508    let local_var_req = local_var_req_builder.build()?;
509    let local_var_resp = local_var_client.execute(local_var_req).await?;
510
511    let local_var_status = local_var_resp.status();
512    let local_var_content = local_var_resp.text().await?;
513
514    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
515        serde_json::from_str(&local_var_content).map_err(Error::from)
516    } else {
517        let local_var_entity: Option<RbacPermissionsRetrieveError> = serde_json::from_str(&local_var_content).ok();
518        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
519        Err(Error::ResponseError(local_var_error))
520    }
521}
522
523/// Get a role's assigned object permissions
524pub async fn rbac_permissions_roles_list(configuration: &configuration::Configuration, uuid: &str, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, search: Option<&str>) -> Result<models::PaginatedExtraRoleObjectPermissionList, Error<RbacPermissionsRolesListError>> {
525    let local_var_configuration = configuration;
526
527    let local_var_client = &local_var_configuration.client;
528
529    let local_var_uri_str = format!("{}/rbac/permissions/roles/", local_var_configuration.base_path);
530    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
531
532    if let Some(ref local_var_str) = ordering {
533        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
534    }
535    if let Some(ref local_var_str) = page {
536        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
537    }
538    if let Some(ref local_var_str) = page_size {
539        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
540    }
541    if let Some(ref local_var_str) = search {
542        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
543    }
544    local_var_req_builder = local_var_req_builder.query(&[("uuid", &uuid.to_string())]);
545    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
546        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
547    }
548    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
549        let local_var_key = local_var_apikey.key.clone();
550        let local_var_value = match local_var_apikey.prefix {
551            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
552            None => local_var_key,
553        };
554        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
555    };
556
557    let local_var_req = local_var_req_builder.build()?;
558    let local_var_resp = local_var_client.execute(local_var_req).await?;
559
560    let local_var_status = local_var_resp.status();
561    let local_var_content = local_var_resp.text().await?;
562
563    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
564        serde_json::from_str(&local_var_content).map_err(Error::from)
565    } else {
566        let local_var_entity: Option<RbacPermissionsRolesListError> = serde_json::from_str(&local_var_content).ok();
567        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
568        Err(Error::ResponseError(local_var_error))
569    }
570}
571
572/// Get a users's assigned object permissions
573pub async fn rbac_permissions_users_list(configuration: &configuration::Configuration, user_id: i32, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, search: Option<&str>) -> Result<models::PaginatedExtraUserObjectPermissionList, Error<RbacPermissionsUsersListError>> {
574    let local_var_configuration = configuration;
575
576    let local_var_client = &local_var_configuration.client;
577
578    let local_var_uri_str = format!("{}/rbac/permissions/users/", local_var_configuration.base_path);
579    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
580
581    if let Some(ref local_var_str) = ordering {
582        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
583    }
584    if let Some(ref local_var_str) = page {
585        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
586    }
587    if let Some(ref local_var_str) = page_size {
588        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
589    }
590    if let Some(ref local_var_str) = search {
591        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
592    }
593    local_var_req_builder = local_var_req_builder.query(&[("user_id", &user_id.to_string())]);
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_apikey) = local_var_configuration.api_key {
598        let local_var_key = local_var_apikey.key.clone();
599        let local_var_value = match local_var_apikey.prefix {
600            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
601            None => local_var_key,
602        };
603        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
604    };
605
606    let local_var_req = local_var_req_builder.build()?;
607    let local_var_resp = local_var_client.execute(local_var_req).await?;
608
609    let local_var_status = local_var_resp.status();
610    let local_var_content = local_var_resp.text().await?;
611
612    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
613        serde_json::from_str(&local_var_content).map_err(Error::from)
614    } else {
615        let local_var_entity: Option<RbacPermissionsUsersListError> = serde_json::from_str(&local_var_content).ok();
616        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
617        Err(Error::ResponseError(local_var_error))
618    }
619}
620
621/// Role viewset
622pub async fn rbac_roles_create(configuration: &configuration::Configuration, role_request: models::RoleRequest) -> Result<models::Role, Error<RbacRolesCreateError>> {
623    let local_var_configuration = configuration;
624
625    let local_var_client = &local_var_configuration.client;
626
627    let local_var_uri_str = format!("{}/rbac/roles/", local_var_configuration.base_path);
628    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
629
630    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
631        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
632    }
633    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
634        let local_var_key = local_var_apikey.key.clone();
635        let local_var_value = match local_var_apikey.prefix {
636            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
637            None => local_var_key,
638        };
639        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
640    };
641    local_var_req_builder = local_var_req_builder.json(&role_request);
642
643    let local_var_req = local_var_req_builder.build()?;
644    let local_var_resp = local_var_client.execute(local_var_req).await?;
645
646    let local_var_status = local_var_resp.status();
647    let local_var_content = local_var_resp.text().await?;
648
649    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
650        serde_json::from_str(&local_var_content).map_err(Error::from)
651    } else {
652        let local_var_entity: Option<RbacRolesCreateError> = serde_json::from_str(&local_var_content).ok();
653        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
654        Err(Error::ResponseError(local_var_error))
655    }
656}
657
658/// Role viewset
659pub async fn rbac_roles_destroy(configuration: &configuration::Configuration, uuid: &str) -> Result<(), Error<RbacRolesDestroyError>> {
660    let local_var_configuration = configuration;
661
662    let local_var_client = &local_var_configuration.client;
663
664    let local_var_uri_str = format!("{}/rbac/roles/{uuid}/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
665    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
666
667    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
668        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
669    }
670    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
671        let local_var_key = local_var_apikey.key.clone();
672        let local_var_value = match local_var_apikey.prefix {
673            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
674            None => local_var_key,
675        };
676        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
677    };
678
679    let local_var_req = local_var_req_builder.build()?;
680    let local_var_resp = local_var_client.execute(local_var_req).await?;
681
682    let local_var_status = local_var_resp.status();
683    let local_var_content = local_var_resp.text().await?;
684
685    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
686        Ok(())
687    } else {
688        let local_var_entity: Option<RbacRolesDestroyError> = serde_json::from_str(&local_var_content).ok();
689        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
690        Err(Error::ResponseError(local_var_error))
691    }
692}
693
694/// Role viewset
695pub async fn rbac_roles_list(configuration: &configuration::Configuration, group__name: Option<&str>, ordering: Option<&str>, page: Option<i32>, page_size: Option<i32>, search: Option<&str>) -> Result<models::PaginatedRoleList, Error<RbacRolesListError>> {
696    let local_var_configuration = configuration;
697
698    let local_var_client = &local_var_configuration.client;
699
700    let local_var_uri_str = format!("{}/rbac/roles/", local_var_configuration.base_path);
701    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
702
703    if let Some(ref local_var_str) = group__name {
704        local_var_req_builder = local_var_req_builder.query(&[("group__name", &local_var_str.to_string())]);
705    }
706    if let Some(ref local_var_str) = ordering {
707        local_var_req_builder = local_var_req_builder.query(&[("ordering", &local_var_str.to_string())]);
708    }
709    if let Some(ref local_var_str) = page {
710        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
711    }
712    if let Some(ref local_var_str) = page_size {
713        local_var_req_builder = local_var_req_builder.query(&[("page_size", &local_var_str.to_string())]);
714    }
715    if let Some(ref local_var_str) = search {
716        local_var_req_builder = local_var_req_builder.query(&[("search", &local_var_str.to_string())]);
717    }
718    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
719        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
720    }
721    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
722        let local_var_key = local_var_apikey.key.clone();
723        let local_var_value = match local_var_apikey.prefix {
724            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
725            None => local_var_key,
726        };
727        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
728    };
729
730    let local_var_req = local_var_req_builder.build()?;
731    let local_var_resp = local_var_client.execute(local_var_req).await?;
732
733    let local_var_status = local_var_resp.status();
734    let local_var_content = local_var_resp.text().await?;
735
736    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
737        serde_json::from_str(&local_var_content).map_err(Error::from)
738    } else {
739        let local_var_entity: Option<RbacRolesListError> = serde_json::from_str(&local_var_content).ok();
740        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
741        Err(Error::ResponseError(local_var_error))
742    }
743}
744
745/// Role viewset
746pub async fn rbac_roles_partial_update(configuration: &configuration::Configuration, uuid: &str, patched_role_request: Option<models::PatchedRoleRequest>) -> Result<models::Role, Error<RbacRolesPartialUpdateError>> {
747    let local_var_configuration = configuration;
748
749    let local_var_client = &local_var_configuration.client;
750
751    let local_var_uri_str = format!("{}/rbac/roles/{uuid}/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
752    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
753
754    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
755        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
756    }
757    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
758        let local_var_key = local_var_apikey.key.clone();
759        let local_var_value = match local_var_apikey.prefix {
760            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
761            None => local_var_key,
762        };
763        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
764    };
765    local_var_req_builder = local_var_req_builder.json(&patched_role_request);
766
767    let local_var_req = local_var_req_builder.build()?;
768    let local_var_resp = local_var_client.execute(local_var_req).await?;
769
770    let local_var_status = local_var_resp.status();
771    let local_var_content = local_var_resp.text().await?;
772
773    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
774        serde_json::from_str(&local_var_content).map_err(Error::from)
775    } else {
776        let local_var_entity: Option<RbacRolesPartialUpdateError> = serde_json::from_str(&local_var_content).ok();
777        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
778        Err(Error::ResponseError(local_var_error))
779    }
780}
781
782/// Role viewset
783pub async fn rbac_roles_retrieve(configuration: &configuration::Configuration, uuid: &str) -> Result<models::Role, Error<RbacRolesRetrieveError>> {
784    let local_var_configuration = configuration;
785
786    let local_var_client = &local_var_configuration.client;
787
788    let local_var_uri_str = format!("{}/rbac/roles/{uuid}/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
789    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
790
791    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
792        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
793    }
794    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
795        let local_var_key = local_var_apikey.key.clone();
796        let local_var_value = match local_var_apikey.prefix {
797            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
798            None => local_var_key,
799        };
800        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
801    };
802
803    let local_var_req = local_var_req_builder.build()?;
804    let local_var_resp = local_var_client.execute(local_var_req).await?;
805
806    let local_var_status = local_var_resp.status();
807    let local_var_content = local_var_resp.text().await?;
808
809    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
810        serde_json::from_str(&local_var_content).map_err(Error::from)
811    } else {
812        let local_var_entity: Option<RbacRolesRetrieveError> = serde_json::from_str(&local_var_content).ok();
813        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
814        Err(Error::ResponseError(local_var_error))
815    }
816}
817
818/// Role viewset
819pub async fn rbac_roles_update(configuration: &configuration::Configuration, uuid: &str, role_request: models::RoleRequest) -> Result<models::Role, Error<RbacRolesUpdateError>> {
820    let local_var_configuration = configuration;
821
822    let local_var_client = &local_var_configuration.client;
823
824    let local_var_uri_str = format!("{}/rbac/roles/{uuid}/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
825    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
826
827    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
828        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
829    }
830    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
831        let local_var_key = local_var_apikey.key.clone();
832        let local_var_value = match local_var_apikey.prefix {
833            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
834            None => local_var_key,
835        };
836        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
837    };
838    local_var_req_builder = local_var_req_builder.json(&role_request);
839
840    let local_var_req = local_var_req_builder.build()?;
841    let local_var_resp = local_var_client.execute(local_var_req).await?;
842
843    let local_var_status = local_var_resp.status();
844    let local_var_content = local_var_resp.text().await?;
845
846    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
847        serde_json::from_str(&local_var_content).map_err(Error::from)
848    } else {
849        let local_var_entity: Option<RbacRolesUpdateError> = serde_json::from_str(&local_var_content).ok();
850        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
851        Err(Error::ResponseError(local_var_error))
852    }
853}
854
855/// Get a list of all objects that use this object
856pub async fn rbac_roles_used_by_list(configuration: &configuration::Configuration, uuid: &str) -> Result<Vec<models::UsedBy>, Error<RbacRolesUsedByListError>> {
857    let local_var_configuration = configuration;
858
859    let local_var_client = &local_var_configuration.client;
860
861    let local_var_uri_str = format!("{}/rbac/roles/{uuid}/used_by/", local_var_configuration.base_path, uuid=crate::apis::urlencode(uuid));
862    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
863
864    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
865        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
866    }
867    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
868        let local_var_key = local_var_apikey.key.clone();
869        let local_var_value = match local_var_apikey.prefix {
870            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
871            None => local_var_key,
872        };
873        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
874    };
875
876    let local_var_req = local_var_req_builder.build()?;
877    let local_var_resp = local_var_client.execute(local_var_req).await?;
878
879    let local_var_status = local_var_resp.status();
880    let local_var_content = local_var_resp.text().await?;
881
882    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
883        serde_json::from_str(&local_var_content).map_err(Error::from)
884    } else {
885        let local_var_entity: Option<RbacRolesUsedByListError> = serde_json::from_str(&local_var_content).ok();
886        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
887        Err(Error::ResponseError(local_var_error))
888    }
889}
890