covert_sdk/
lib.rs

1use std::sync::Arc;
2
3use base::BaseClient;
4
5pub(crate) mod base;
6pub mod entity;
7pub mod kv;
8pub mod lease;
9pub mod mounts;
10pub mod namespace;
11pub mod operator;
12pub mod policy;
13pub mod psql;
14pub mod status;
15pub mod userpass;
16pub(crate) mod utils;
17
18pub struct Client {
19    pub entity: crate::entity::Client,
20    pub policy: crate::policy::Client,
21    pub operator: crate::operator::Client,
22    pub status: crate::status::Client,
23    pub mount: crate::mounts::Client,
24    pub kv: crate::kv::Client,
25    pub psql: crate::psql::Client,
26    pub userpass: crate::userpass::Client,
27    pub lease: crate::lease::Client,
28    pub namespace: crate::namespace::Client,
29    base: Arc<BaseClient>,
30}
31
32impl Client {
33    pub fn new(api_url: impl ToString) -> Self {
34        let base_client = Arc::new(BaseClient::new(api_url));
35
36        let entity = crate::entity::Client::new(Arc::clone(&base_client));
37        let policy = crate::policy::Client::new(Arc::clone(&base_client));
38        let operator = crate::operator::Client::new(Arc::clone(&base_client));
39        let status = crate::status::Client::new(Arc::clone(&base_client));
40        let mounts = crate::mounts::Client::new(Arc::clone(&base_client));
41        let kv = crate::kv::Client::new(Arc::clone(&base_client));
42        let psql = crate::psql::Client::new(Arc::clone(&base_client));
43        let userpass = crate::userpass::Client::new(Arc::clone(&base_client));
44        let lease = crate::lease::Client::new(Arc::clone(&base_client));
45        let namespace = crate::namespace::Client::new(Arc::clone(&base_client));
46
47        Self {
48            entity,
49            policy,
50            operator,
51            status,
52            mount: mounts,
53            kv,
54            psql,
55            userpass,
56            lease,
57            namespace,
58            base: base_client,
59        }
60    }
61
62    pub async fn set_token(&self, token: Option<String>) {
63        self.base.set_token(token).await
64    }
65
66    pub async fn set_namespace(&self, namespace: Option<String>) {
67        self.base.set_namespace(namespace).await
68    }
69}