1use crate::{
2 api::{
3 self,
4 auth::cert::requests::{
5 ConfigureTlsCertificateMethod, ConfigureTlsCertificateMethodBuilder, LoginRequest,
6 },
7 AuthInfo,
8 },
9 client::Client,
10 error::ClientError,
11};
12
13pub async fn login(
17 client: &impl Client,
18 mount: &str,
19 cert_name: &str,
20) -> Result<AuthInfo, ClientError> {
21 let endpoint = LoginRequest::builder()
22 .mount(mount)
23 .cert_name(cert_name)
24 .build()
25 .unwrap();
26 api::auth(client, endpoint).await
27}
28
29pub async fn configure_tls_certificate_method(
33 client: &impl Client,
34 mount: &str,
35 opts: Option<&mut ConfigureTlsCertificateMethodBuilder>,
36) -> Result<(), ClientError> {
37 let mut t = ConfigureTlsCertificateMethod::builder();
38 let endpoint = opts.unwrap_or(&mut t).mount(mount).build().unwrap();
39 api::exec_with_empty(client, endpoint).await
40}
41
42pub mod ca_cert_role {
43 use crate::{
44 api::{
45 self,
46 auth::cert::{
47 requests::{
48 CreateCaCertificateRoleRequest, CreateCaCertificateRoleRequestBuilder,
49 DeleteCaCertificateRoleRequest, ListCaCertificateRoleRequest,
50 ReadCaCertificateRoleRequest,
51 },
52 responses::{ListCaCertificateRoleResponse, ReadCaCertificateRoleResponse},
53 },
54 },
55 client::Client,
56 error::ClientError,
57 };
58
59 pub async fn delete(client: &impl Client, mount: &str, name: &str) -> Result<(), ClientError> {
63 let endpoint = DeleteCaCertificateRoleRequest::builder()
64 .mount(mount)
65 .name(name)
66 .build()
67 .unwrap();
68 api::exec_with_empty(client, endpoint).await
69 }
70
71 pub async fn list(
75 client: &impl Client,
76 mount: &str,
77 ) -> Result<ListCaCertificateRoleResponse, ClientError> {
78 let endpoint = ListCaCertificateRoleRequest::builder()
79 .mount(mount)
80 .build()
81 .unwrap();
82 api::exec_with_result(client, endpoint).await
83 }
84
85 pub async fn read(
89 client: &impl Client,
90 mount: &str,
91 username: &str,
92 ) -> Result<ReadCaCertificateRoleResponse, ClientError> {
93 let endpoint = ReadCaCertificateRoleRequest::builder()
94 .mount(mount)
95 .name(username)
96 .build()
97 .unwrap();
98 api::exec_with_result(client, endpoint).await
99 }
100
101 pub async fn set(
105 client: &impl Client,
106 mount: &str,
107 name: &str,
108 certificate: &str,
109 opts: Option<&mut CreateCaCertificateRoleRequestBuilder>,
110 ) -> Result<(), ClientError> {
111 let mut t = CreateCaCertificateRoleRequest::builder();
112 let endpoint = opts
113 .unwrap_or(&mut t)
114 .mount(mount)
115 .name(name)
116 .certificate(certificate)
117 .build()
118 .unwrap();
119 api::exec_with_empty(client, endpoint).await
120 }
121}