kanidm_client/
scim.rs
1use crate::{ClientError, KanidmClient};
2use kanidm_proto::scim_v1::{ScimEntryGeneric, ScimEntryGetQuery, ScimSyncRequest, ScimSyncState};
3
4impl KanidmClient {
5 pub async fn scim_v1_sync_status(&self) -> Result<ScimSyncState, ClientError> {
6 self.perform_get_request("/scim/v1/Sync").await
7 }
8
9 pub async fn scim_v1_sync_update(
10 &self,
11 scim_sync_request: &ScimSyncRequest,
12 ) -> Result<(), ClientError> {
13 self.perform_post_request("/scim/v1/Sync", scim_sync_request)
14 .await
15 }
16
17 pub async fn scim_v1_entry_get(
20 &self,
21 name_or_uuid: &str,
22 query: Option<ScimEntryGetQuery>,
23 ) -> Result<ScimEntryGeneric, ClientError> {
24 self.perform_get_request_query(format!("/scim/v1/Entry/{}", name_or_uuid).as_str(), query)
25 .await
26 }
27
28 pub async fn scim_v1_person_get(
30 &self,
31 name_or_uuid: &str,
32 query: Option<ScimEntryGetQuery>,
33 ) -> Result<ScimEntryGeneric, ClientError> {
34 self.perform_get_request_query(format!("/scim/v1/Person/{}", name_or_uuid).as_str(), query)
35 .await
36 }
37}