kanidm_client/
application.rs1use 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_person_application_list(
45 &self,
46 name_or_uuid: &str,
47 query: Option<ScimEntryGetQuery>,
48 ) -> Result<ScimListApplication, ClientError> {
49 self.perform_get_request_query(
50 format!("/scim/v1/Person/{}/Application", name_or_uuid).as_str(),
51 query,
52 )
53 .await
54 }
55
56 pub async fn idm_person_application_password_create(
57 &self,
58 name_or_uuid: &str,
59 request: &ScimApplicationPasswordCreate,
60 ) -> Result<ScimApplicationPassword, ClientError> {
61 self.perform_post_request(
62 format!("/scim/v1/Person/{name_or_uuid}/Application/_create_password",).as_str(),
63 request,
64 )
65 .await
66 }
67
68 pub async fn idm_person_application_password_delete(
69 &self,
70 name_or_uuid: &str,
71 password_id: Uuid,
72 ) -> Result<(), ClientError> {
73 self.perform_delete_request(
74 format!("/scim/v1/Person/{name_or_uuid}/Application/{password_id}",).as_str(),
75 )
76 .await
77 }
78}