bitwarden_pam/
pam_client.rs1use std::sync::Arc;
2
3use bitwarden_core::{Client, FromClient, client::ApiConfigurations};
4#[cfg(feature = "wasm")]
5use wasm_bindgen::prelude::*;
6
7use crate::{
8 access_requests::AccessRequestsClient, access_rules::AccessRulesClient, leases::LeasesClient,
9};
10
11#[derive(Clone, FromClient)]
13#[cfg_attr(feature = "wasm", wasm_bindgen)]
14pub struct PamClient {
15 pub(crate) api_configurations: Arc<ApiConfigurations>,
16}
17
18#[cfg_attr(feature = "wasm", wasm_bindgen)]
19impl PamClient {
20 pub fn access_rules(&self) -> AccessRulesClient {
22 AccessRulesClient {
23 api_configurations: self.api_configurations.clone(),
24 }
25 }
26
27 pub fn access_requests(&self) -> AccessRequestsClient {
29 AccessRequestsClient {
30 api_configurations: self.api_configurations.clone(),
31 }
32 }
33
34 pub fn leases(&self) -> LeasesClient {
36 LeasesClient {
37 api_configurations: self.api_configurations.clone(),
38 }
39 }
40}
41
42pub trait PamClientExt {
44 fn pam(&self) -> PamClient;
46}
47
48impl PamClientExt for Client {
49 fn pam(&self) -> PamClient {
50 PamClient::from_client(self)
51 }
52}