1use 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<
34 models::KeyConnectorConfirmationDetailsResponseModel,
35 Error<GetKeyConnectorConfirmationDetailsError>,
36 >;
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<PasswordChangeAndRotateUserAccountKeysError>>;
45
46 async fn post_convert_to_key_connector(
48 &self,
49 ) -> Result<(), Error<PostConvertToKeyConnectorError>>;
50
51 async fn post_enroll_to_key_connector<'a>(
53 &self,
54 key_connector_enrollment_request_model: Option<models::KeyConnectorEnrollmentRequestModel>,
55 ) -> Result<(), Error<PostEnrollToKeyConnectorError>>;
56
57 async fn post_set_key_connector_key<'a>(
59 &self,
60 set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
61 ) -> Result<(), Error<PostSetKeyConnectorKeyError>>;
62
63 async fn regenerate_keys<'a>(
65 &self,
66 key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
67 ) -> Result<(), Error<RegenerateKeysError>>;
68
69 async fn rotate_user_keys<'a>(
71 &self,
72 rotate_user_keys_request_model: Option<models::RotateUserKeysRequestModel>,
73 ) -> Result<(), Error<RotateUserKeysError>>;
74}
75
76pub struct AccountsKeyManagementApiClient {
77 configuration: Arc<configuration::Configuration>,
78}
79
80impl AccountsKeyManagementApiClient {
81 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
82 Self { configuration }
83 }
84}
85
86#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
87#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
88impl AccountsKeyManagementApi for AccountsKeyManagementApiClient {
89 async fn get_key_connector_confirmation_details<'a>(
90 &self,
91 org_sso_identifier: &'a str,
92 ) -> Result<
93 models::KeyConnectorConfirmationDetailsResponseModel,
94 Error<GetKeyConnectorConfirmationDetailsError>,
95 > {
96 let local_var_configuration = &self.configuration;
97
98 let local_var_client = &local_var_configuration.client;
99
100 let local_var_uri_str = format!(
101 "{}/accounts/key-connector/confirmation-details/{orgSsoIdentifier}",
102 local_var_configuration.base_path,
103 orgSsoIdentifier = crate::apis::urlencode(org_sso_identifier)
104 );
105 let mut local_var_req_builder =
106 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
107
108 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
109
110 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
111 }
112
113 async fn password_change_and_rotate_user_account_keys<'a>(
114 &self,
115 rotate_user_account_keys_and_data_request_model: Option<
116 models::RotateUserAccountKeysAndDataRequestModel,
117 >,
118 ) -> Result<(), Error<PasswordChangeAndRotateUserAccountKeysError>> {
119 let local_var_configuration = &self.configuration;
120
121 let local_var_client = &local_var_configuration.client;
122
123 let local_var_uri_str = format!(
124 "{}/accounts/key-management/rotate-user-account-keys",
125 local_var_configuration.base_path
126 );
127 let mut local_var_req_builder =
128 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
129
130 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
131 local_var_req_builder =
132 local_var_req_builder.json(&rotate_user_account_keys_and_data_request_model);
133
134 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
135 }
136
137 async fn post_convert_to_key_connector(
138 &self,
139 ) -> Result<(), Error<PostConvertToKeyConnectorError>> {
140 let local_var_configuration = &self.configuration;
141
142 let local_var_client = &local_var_configuration.client;
143
144 let local_var_uri_str = format!(
145 "{}/accounts/convert-to-key-connector",
146 local_var_configuration.base_path
147 );
148 let mut local_var_req_builder =
149 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
150
151 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
152
153 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
154 }
155
156 async fn post_enroll_to_key_connector<'a>(
157 &self,
158 key_connector_enrollment_request_model: Option<models::KeyConnectorEnrollmentRequestModel>,
159 ) -> Result<(), Error<PostEnrollToKeyConnectorError>> {
160 let local_var_configuration = &self.configuration;
161
162 let local_var_client = &local_var_configuration.client;
163
164 let local_var_uri_str = format!(
165 "{}/accounts/key-connector/enroll",
166 local_var_configuration.base_path
167 );
168 let mut local_var_req_builder =
169 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
170
171 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
172 local_var_req_builder = local_var_req_builder.json(&key_connector_enrollment_request_model);
173
174 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
175 }
176
177 async fn post_set_key_connector_key<'a>(
178 &self,
179 set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
180 ) -> Result<(), Error<PostSetKeyConnectorKeyError>> {
181 let local_var_configuration = &self.configuration;
182
183 let local_var_client = &local_var_configuration.client;
184
185 let local_var_uri_str = format!(
186 "{}/accounts/set-key-connector-key",
187 local_var_configuration.base_path
188 );
189 let mut local_var_req_builder =
190 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
191
192 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
193 local_var_req_builder = local_var_req_builder.json(&set_key_connector_key_request_model);
194
195 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
196 }
197
198 async fn regenerate_keys<'a>(
199 &self,
200 key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
201 ) -> Result<(), Error<RegenerateKeysError>> {
202 let local_var_configuration = &self.configuration;
203
204 let local_var_client = &local_var_configuration.client;
205
206 let local_var_uri_str = format!(
207 "{}/accounts/key-management/regenerate-keys",
208 local_var_configuration.base_path
209 );
210 let mut local_var_req_builder =
211 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
212
213 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
214 local_var_req_builder = local_var_req_builder.json(&key_regeneration_request_model);
215
216 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
217 }
218
219 async fn rotate_user_keys<'a>(
220 &self,
221 rotate_user_keys_request_model: Option<models::RotateUserKeysRequestModel>,
222 ) -> Result<(), Error<RotateUserKeysError>> {
223 let local_var_configuration = &self.configuration;
224
225 let local_var_client = &local_var_configuration.client;
226
227 let local_var_uri_str = format!(
228 "{}/accounts/key-management/rotate-user-keys",
229 local_var_configuration.base_path
230 );
231 let mut local_var_req_builder =
232 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
233
234 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
235 local_var_req_builder = local_var_req_builder.json(&rotate_user_keys_request_model);
236
237 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
238 }
239}
240
241#[derive(Debug, Clone, Serialize, Deserialize)]
244#[serde(untagged)]
245pub enum GetKeyConnectorConfirmationDetailsError {
246 UnknownValue(serde_json::Value),
247}
248#[derive(Debug, Clone, Serialize, Deserialize)]
251#[serde(untagged)]
252pub enum PasswordChangeAndRotateUserAccountKeysError {
253 UnknownValue(serde_json::Value),
254}
255#[derive(Debug, Clone, Serialize, Deserialize)]
257#[serde(untagged)]
258pub enum PostConvertToKeyConnectorError {
259 UnknownValue(serde_json::Value),
260}
261#[derive(Debug, Clone, Serialize, Deserialize)]
263#[serde(untagged)]
264pub enum PostEnrollToKeyConnectorError {
265 UnknownValue(serde_json::Value),
266}
267#[derive(Debug, Clone, Serialize, Deserialize)]
269#[serde(untagged)]
270pub enum PostSetKeyConnectorKeyError {
271 UnknownValue(serde_json::Value),
272}
273#[derive(Debug, Clone, Serialize, Deserialize)]
275#[serde(untagged)]
276pub enum RegenerateKeysError {
277 UnknownValue(serde_json::Value),
278}
279#[derive(Debug, Clone, Serialize, Deserialize)]
281#[serde(untagged)]
282pub enum RotateUserKeysError {
283 UnknownValue(serde_json::Value),
284}