vaultrs/auth/
kubernetes.rs1use crate::{
2 api::{
3 self, auth::kubernetes::requests::ConfigureKubernetesAuthRequest,
4 auth::kubernetes::requests::ConfigureKubernetesAuthRequestBuilder,
5 auth::kubernetes::requests::LoginWithKubernetesRequest,
6 auth::kubernetes::requests::ReadKubernetesAuthConfigRequest,
7 auth::kubernetes::responses::ReadKubernetesAuthConfigResponse, AuthInfo,
8 },
9 client::Client,
10 error::ClientError,
11};
12
13pub async fn configure(
17 client: &impl Client,
18 mount: &str,
19 kubernetes_host: &str,
20 opts: Option<&mut ConfigureKubernetesAuthRequestBuilder>,
21) -> Result<(), ClientError> {
22 let mut t = ConfigureKubernetesAuthRequest::builder();
23 let endpoint = opts
24 .unwrap_or(&mut t)
25 .mount(mount)
26 .kubernetes_host(kubernetes_host)
27 .build()
28 .unwrap();
29
30 api::exec_with_empty(client, endpoint).await
31}
32
33pub async fn read_config(
37 client: &impl Client,
38 mount: &str,
39) -> Result<ReadKubernetesAuthConfigResponse, ClientError> {
40 let endpoint = ReadKubernetesAuthConfigRequest::builder()
41 .mount(mount)
42 .build()
43 .unwrap();
44
45 api::exec_with_result(client, endpoint).await
46}
47
48pub async fn login(
52 client: &impl Client,
53 mount: &str,
54 role: &str,
55 jwt: &str,
56) -> Result<AuthInfo, ClientError> {
57 let endpoint = LoginWithKubernetesRequest::builder()
58 .mount(mount)
59 .role(role)
60 .jwt(jwt)
61 .build()
62 .unwrap();
63 api::auth(client, endpoint).await
64}
65
66pub mod role {
67 use crate::api;
68 use crate::api::auth::kubernetes::{
69 requests::{
70 CreateKubernetesRoleRequest, CreateKubernetesRoleRequestBuilder,
71 DeleteKubernetesRoleRequest, ListRolesRequest, ReadKubernetesRoleRequest,
72 },
73 responses::{ListRolesResponse, ReadKubernetesRoleResponse},
74 };
75 use crate::client::Client;
76 use crate::error::ClientError;
77
78 pub async fn list(client: &impl Client, mount: &str) -> Result<ListRolesResponse, ClientError> {
83 let endpoint = ListRolesRequest::builder().mount(mount).build().unwrap();
84 api::exec_with_result(client, endpoint).await
85 }
86
87 pub async fn read(
91 client: &impl Client,
92 mount: &str,
93 name: &str,
94 ) -> Result<ReadKubernetesRoleResponse, ClientError> {
95 let endpoint = ReadKubernetesRoleRequest::builder()
96 .mount(mount)
97 .name(name)
98 .build()
99 .unwrap();
100 api::exec_with_result(client, endpoint).await
101 }
102
103 pub async fn create(
107 client: &impl Client,
108 mount: &str,
109 name: &str,
110 opts: Option<&mut CreateKubernetesRoleRequestBuilder>,
111 ) -> Result<(), ClientError> {
112 let mut t = CreateKubernetesRoleRequest::builder();
113 let endpoint = opts
114 .unwrap_or(&mut t)
115 .mount(mount)
116 .name(name)
117 .build()
118 .unwrap();
119 api::exec_with_empty(client, endpoint).await
120 }
121
122 pub async fn delete(client: &impl Client, mount: &str, name: &str) -> Result<(), ClientError> {
126 let endpoint = DeleteKubernetesRoleRequest::builder()
127 .mount(mount)
128 .name(name)
129 .build()
130 .unwrap();
131 api::exec_with_empty(client, endpoint).await
132 }
133}