Skip to main content

uptrakit_openapi_client/
roles.rs

1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::roles::{CreateRoleRequest, RoleResponse, UpdateRoleRequest};
4use uuid::Uuid;
5
6impl UptrakitClient {
7    /// List roles for the active tenant plus the global built-ins.
8    pub async fn list_roles(&self) -> Result<Vec<RoleResponse>> {
9        self.get(crate::paths::roles::BASE).await
10    }
11
12    /// Get a single role by ID.
13    pub async fn get_role(&self, id: &Uuid) -> Result<RoleResponse> {
14        self.get(&crate::paths::roles::by_id(id)).await
15    }
16
17    /// Create a tenant-scoped custom role.
18    pub async fn create_role(&self, req: &CreateRoleRequest) -> Result<RoleResponse> {
19        self.post_json(crate::paths::roles::BASE, req).await
20    }
21
22    /// Rename/re-describe an own-tenant custom role.
23    pub async fn update_role(&self, id: &Uuid, req: &UpdateRoleRequest) -> Result<RoleResponse> {
24        self.put_json(&crate::paths::roles::by_id(id), req).await
25    }
26
27    /// Delete an own-tenant custom role.
28    pub async fn delete_role(&self, id: &Uuid) -> Result<()> {
29        self.delete(&crate::paths::roles::by_id(id)).await
30    }
31}