bitwarden_api_api/apis/
accounts_key_management_api.rs1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait AccountsKeyManagementApi: Send + Sync {
29 async fn get_key_connector_confirmation_details<'a>(
31 &self,
32 org_sso_identifier: &'a str,
33 ) -> Result<models::KeyConnectorConfirmationDetailsResponseModel, Error>;
34
35 async fn get_key_rotation_data(&self) -> Result<models::KeyRotationDataResponseModel, Error>;
37
38 async fn password_change_and_rotate_user_account_keys<'a>(
40 &self,
41 rotate_user_account_keys_and_data_request_model: Option<
42 models::RotateUserAccountKeysAndDataRequestModel,
43 >,
44 ) -> Result<(), Error>;
45
46 async fn post_convert_to_key_connector(&self) -> Result<(), Error>;
48
49 async fn post_enroll_to_key_connector<'a>(
51 &self,
52 key_connector_enrollment_request_model: Option<models::KeyConnectorEnrollmentRequestModel>,
53 ) -> Result<(), Error>;
54
55 async fn post_set_key_connector_key<'a>(
57 &self,
58 set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
59 ) -> Result<(), Error>;
60
61 async fn regenerate_keys<'a>(
63 &self,
64 key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
65 ) -> Result<(), Error>;
66
67 async fn rotate_user_keys<'a>(
69 &self,
70 rotate_user_keys_request_model: Option<models::RotateUserKeysRequestModel>,
71 ) -> Result<(), Error>;
72}
73
74pub struct AccountsKeyManagementApiClient {
75 configuration: Arc<configuration::Configuration>,
76}
77
78impl AccountsKeyManagementApiClient {
79 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
80 Self { configuration }
81 }
82}
83
84#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
85#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
86impl AccountsKeyManagementApi for AccountsKeyManagementApiClient {
87 async fn get_key_connector_confirmation_details<'a>(
88 &self,
89 org_sso_identifier: &'a str,
90 ) -> Result<models::KeyConnectorConfirmationDetailsResponseModel, Error> {
91 let local_var_configuration = &self.configuration;
92
93 let local_var_client = &local_var_configuration.client;
94
95 let local_var_uri_str = format!(
96 "{}/accounts/key-connector/confirmation-details/{orgSsoIdentifier}",
97 local_var_configuration.base_path,
98 orgSsoIdentifier = crate::apis::urlencode(org_sso_identifier)
99 );
100 let mut local_var_req_builder =
101 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
102
103 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
104
105 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
106 }
107
108 async fn get_key_rotation_data(&self) -> Result<models::KeyRotationDataResponseModel, Error> {
109 let local_var_configuration = &self.configuration;
110
111 let local_var_client = &local_var_configuration.client;
112
113 let local_var_uri_str = format!(
114 "{}/accounts/key-management/key-rotation-data",
115 local_var_configuration.base_path
116 );
117 let mut local_var_req_builder =
118 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
119
120 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
121
122 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
123 }
124
125 async fn password_change_and_rotate_user_account_keys<'a>(
126 &self,
127 rotate_user_account_keys_and_data_request_model: Option<
128 models::RotateUserAccountKeysAndDataRequestModel,
129 >,
130 ) -> Result<(), Error> {
131 let local_var_configuration = &self.configuration;
132
133 let local_var_client = &local_var_configuration.client;
134
135 let local_var_uri_str = format!(
136 "{}/accounts/key-management/rotate-user-account-keys",
137 local_var_configuration.base_path
138 );
139 let mut local_var_req_builder =
140 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
141
142 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
143 local_var_req_builder =
144 local_var_req_builder.json(&rotate_user_account_keys_and_data_request_model);
145
146 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
147 }
148
149 async fn post_convert_to_key_connector(&self) -> Result<(), Error> {
150 let local_var_configuration = &self.configuration;
151
152 let local_var_client = &local_var_configuration.client;
153
154 let local_var_uri_str = format!(
155 "{}/accounts/convert-to-key-connector",
156 local_var_configuration.base_path
157 );
158 let mut local_var_req_builder =
159 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
160
161 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
162
163 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
164 }
165
166 async fn post_enroll_to_key_connector<'a>(
167 &self,
168 key_connector_enrollment_request_model: Option<models::KeyConnectorEnrollmentRequestModel>,
169 ) -> Result<(), Error> {
170 let local_var_configuration = &self.configuration;
171
172 let local_var_client = &local_var_configuration.client;
173
174 let local_var_uri_str = format!(
175 "{}/accounts/key-connector/enroll",
176 local_var_configuration.base_path
177 );
178 let mut local_var_req_builder =
179 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
180
181 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
182 local_var_req_builder = local_var_req_builder.json(&key_connector_enrollment_request_model);
183
184 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
185 }
186
187 async fn post_set_key_connector_key<'a>(
188 &self,
189 set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
190 ) -> Result<(), Error> {
191 let local_var_configuration = &self.configuration;
192
193 let local_var_client = &local_var_configuration.client;
194
195 let local_var_uri_str = format!(
196 "{}/accounts/set-key-connector-key",
197 local_var_configuration.base_path
198 );
199 let mut local_var_req_builder =
200 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
201
202 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
203 local_var_req_builder = local_var_req_builder.json(&set_key_connector_key_request_model);
204
205 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
206 }
207
208 async fn regenerate_keys<'a>(
209 &self,
210 key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
211 ) -> Result<(), Error> {
212 let local_var_configuration = &self.configuration;
213
214 let local_var_client = &local_var_configuration.client;
215
216 let local_var_uri_str = format!(
217 "{}/accounts/key-management/regenerate-keys",
218 local_var_configuration.base_path
219 );
220 let mut local_var_req_builder =
221 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
222
223 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
224 local_var_req_builder = local_var_req_builder.json(&key_regeneration_request_model);
225
226 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
227 }
228
229 async fn rotate_user_keys<'a>(
230 &self,
231 rotate_user_keys_request_model: Option<models::RotateUserKeysRequestModel>,
232 ) -> Result<(), Error> {
233 let local_var_configuration = &self.configuration;
234
235 let local_var_client = &local_var_configuration.client;
236
237 let local_var_uri_str = format!(
238 "{}/accounts/key-management/rotate-user-keys",
239 local_var_configuration.base_path
240 );
241 let mut local_var_req_builder =
242 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
243
244 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
245 local_var_req_builder = local_var_req_builder.json(&rotate_user_keys_request_model);
246
247 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
248 }
249}