kanidm_client/
application.rs
1use crate::{ClientError, KanidmClient};
2use kanidm_proto::scim_v1::{
3 client::{ScimEntryApplication, ScimEntryApplicationPost, ScimListApplication},
4 ScimApplicationPassword, ScimApplicationPasswordCreate, ScimEntryGetQuery,
5};
6use uuid::Uuid;
7
8impl KanidmClient {
9 pub async fn idm_application_delete(&self, id: &str) -> Result<(), ClientError> {
11 self.perform_delete_request(format!("/scim/v1/Application/{id}").as_str())
12 .await
13 }
14
15 pub async fn idm_application_create(
17 &self,
18 application: &ScimEntryApplicationPost,
19 ) -> Result<ScimEntryApplication, ClientError> {
20 self.perform_post_request("/scim/v1/Application", application)
21 .await
22 }
23
24 pub async fn idm_application_list(
25 &self,
26 query: Option<ScimEntryGetQuery>,
27 ) -> Result<ScimListApplication, ClientError> {
28 self.perform_get_request_query("/scim/v1/Application", query)
29 .await
30 }
31
32 pub async fn idm_application_get(
33 &self,
34 name_or_uuid: &str,
35 query: Option<ScimEntryGetQuery>,
36 ) -> Result<ScimEntryApplication, ClientError> {
37 self.perform_get_request_query(
38 format!("/scim/v1/Application/{name_or_uuid}").as_str(),
39 query,
40 )
41 .await
42 }
43
44 pub async fn idm_application_password_create(
59 &self,
60 name_or_uuid: &str,
61 request: &ScimApplicationPasswordCreate,
62 ) -> Result<ScimApplicationPassword, ClientError> {
63 self.perform_post_request(
64 format!("/scim/v1/Person/{name_or_uuid}/Application/_create_password",).as_str(),
65 request,
66 )
67 .await
68 }
69
70 pub async fn idm_application_password_delete(
71 &self,
72 name_or_uuid: &str,
73 password_id: Uuid,
74 ) -> Result<(), ClientError> {
75 self.perform_delete_request(
76 format!("/scim/v1/Person/{name_or_uuid}/Application/{password_id}",).as_str(),
77 )
78 .await
79 }
80}