Skip to main content

bitwarden_api_api/apis/
accounts_key_management_api.rs

1/*
2 * Bitwarden Internal API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: latest
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use 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    /// GET /accounts/key-connector/confirmation-details/{orgSsoIdentifier}
30    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    /// POST /accounts/convert-to-key-connector
39    async fn post_convert_to_key_connector(
40        &self,
41    ) -> Result<(), Error<PostConvertToKeyConnectorError>>;
42
43    /// POST /accounts/set-key-connector-key
44    async fn post_set_key_connector_key<'a>(
45        &self,
46        set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
47    ) -> Result<(), Error<PostSetKeyConnectorKeyError>>;
48
49    /// POST /accounts/key-management/regenerate-keys
50    async fn regenerate_keys<'a>(
51        &self,
52        key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
53    ) -> Result<(), Error<RegenerateKeysError>>;
54
55    /// POST /accounts/key-management/rotate-user-account-keys
56    async fn rotate_user_account_keys<'a>(
57        &self,
58        rotate_user_account_keys_and_data_request_model: Option<
59            models::RotateUserAccountKeysAndDataRequestModel,
60        >,
61    ) -> Result<(), Error<RotateUserAccountKeysError>>;
62}
63
64pub struct AccountsKeyManagementApiClient {
65    configuration: Arc<configuration::Configuration>,
66}
67
68impl AccountsKeyManagementApiClient {
69    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
70        Self { configuration }
71    }
72}
73
74#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
75#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
76impl AccountsKeyManagementApi for AccountsKeyManagementApiClient {
77    async fn get_key_connector_confirmation_details<'a>(
78        &self,
79        org_sso_identifier: &'a str,
80    ) -> Result<
81        models::KeyConnectorConfirmationDetailsResponseModel,
82        Error<GetKeyConnectorConfirmationDetailsError>,
83    > {
84        let local_var_configuration = &self.configuration;
85
86        let local_var_client = &local_var_configuration.client;
87
88        let local_var_uri_str = format!(
89            "{}/accounts/key-connector/confirmation-details/{orgSsoIdentifier}",
90            local_var_configuration.base_path,
91            orgSsoIdentifier = crate::apis::urlencode(org_sso_identifier)
92        );
93        let mut local_var_req_builder =
94            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
95
96        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
97
98        let local_var_resp = local_var_req_builder.send().await?;
99
100        let local_var_status = local_var_resp.status();
101        let local_var_content_type = local_var_resp
102            .headers()
103            .get("content-type")
104            .and_then(|v| v.to_str().ok())
105            .unwrap_or("application/octet-stream");
106        let local_var_content_type = super::ContentType::from(local_var_content_type);
107        let local_var_content = local_var_resp.text().await?;
108
109        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
110            match local_var_content_type {
111                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
112                ContentType::Text => {
113                    return Err(Error::from(serde_json::Error::custom(
114                        "Received `text/plain` content type response that cannot be converted to `models::KeyConnectorConfirmationDetailsResponseModel`",
115                    )));
116                }
117                ContentType::Unsupported(local_var_unknown_type) => {
118                    return Err(Error::from(serde_json::Error::custom(format!(
119                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::KeyConnectorConfirmationDetailsResponseModel`"
120                    ))));
121                }
122            }
123        } else {
124            let local_var_entity: Option<GetKeyConnectorConfirmationDetailsError> =
125                serde_json::from_str(&local_var_content).ok();
126            let local_var_error = ResponseContent {
127                status: local_var_status,
128                content: local_var_content,
129                entity: local_var_entity,
130            };
131            Err(Error::ResponseError(local_var_error))
132        }
133    }
134
135    async fn post_convert_to_key_connector(
136        &self,
137    ) -> Result<(), Error<PostConvertToKeyConnectorError>> {
138        let local_var_configuration = &self.configuration;
139
140        let local_var_client = &local_var_configuration.client;
141
142        let local_var_uri_str = format!(
143            "{}/accounts/convert-to-key-connector",
144            local_var_configuration.base_path
145        );
146        let mut local_var_req_builder =
147            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
148
149        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
150
151        let local_var_resp = local_var_req_builder.send().await?;
152
153        let local_var_status = local_var_resp.status();
154        let local_var_content = local_var_resp.text().await?;
155
156        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
157            Ok(())
158        } else {
159            let local_var_entity: Option<PostConvertToKeyConnectorError> =
160                serde_json::from_str(&local_var_content).ok();
161            let local_var_error = ResponseContent {
162                status: local_var_status,
163                content: local_var_content,
164                entity: local_var_entity,
165            };
166            Err(Error::ResponseError(local_var_error))
167        }
168    }
169
170    async fn post_set_key_connector_key<'a>(
171        &self,
172        set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
173    ) -> Result<(), Error<PostSetKeyConnectorKeyError>> {
174        let local_var_configuration = &self.configuration;
175
176        let local_var_client = &local_var_configuration.client;
177
178        let local_var_uri_str = format!(
179            "{}/accounts/set-key-connector-key",
180            local_var_configuration.base_path
181        );
182        let mut local_var_req_builder =
183            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
184
185        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
186        local_var_req_builder = local_var_req_builder.json(&set_key_connector_key_request_model);
187
188        let local_var_resp = local_var_req_builder.send().await?;
189
190        let local_var_status = local_var_resp.status();
191        let local_var_content = local_var_resp.text().await?;
192
193        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
194            Ok(())
195        } else {
196            let local_var_entity: Option<PostSetKeyConnectorKeyError> =
197                serde_json::from_str(&local_var_content).ok();
198            let local_var_error = ResponseContent {
199                status: local_var_status,
200                content: local_var_content,
201                entity: local_var_entity,
202            };
203            Err(Error::ResponseError(local_var_error))
204        }
205    }
206
207    async fn regenerate_keys<'a>(
208        &self,
209        key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
210    ) -> Result<(), Error<RegenerateKeysError>> {
211        let local_var_configuration = &self.configuration;
212
213        let local_var_client = &local_var_configuration.client;
214
215        let local_var_uri_str = format!(
216            "{}/accounts/key-management/regenerate-keys",
217            local_var_configuration.base_path
218        );
219        let mut local_var_req_builder =
220            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
221
222        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
223        local_var_req_builder = local_var_req_builder.json(&key_regeneration_request_model);
224
225        let local_var_resp = local_var_req_builder.send().await?;
226
227        let local_var_status = local_var_resp.status();
228        let local_var_content = local_var_resp.text().await?;
229
230        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
231            Ok(())
232        } else {
233            let local_var_entity: Option<RegenerateKeysError> =
234                serde_json::from_str(&local_var_content).ok();
235            let local_var_error = ResponseContent {
236                status: local_var_status,
237                content: local_var_content,
238                entity: local_var_entity,
239            };
240            Err(Error::ResponseError(local_var_error))
241        }
242    }
243
244    async fn rotate_user_account_keys<'a>(
245        &self,
246        rotate_user_account_keys_and_data_request_model: Option<
247            models::RotateUserAccountKeysAndDataRequestModel,
248        >,
249    ) -> Result<(), Error<RotateUserAccountKeysError>> {
250        let local_var_configuration = &self.configuration;
251
252        let local_var_client = &local_var_configuration.client;
253
254        let local_var_uri_str = format!(
255            "{}/accounts/key-management/rotate-user-account-keys",
256            local_var_configuration.base_path
257        );
258        let mut local_var_req_builder =
259            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
260
261        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
262        local_var_req_builder =
263            local_var_req_builder.json(&rotate_user_account_keys_and_data_request_model);
264
265        let local_var_resp = local_var_req_builder.send().await?;
266
267        let local_var_status = local_var_resp.status();
268        let local_var_content = local_var_resp.text().await?;
269
270        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
271            Ok(())
272        } else {
273            let local_var_entity: Option<RotateUserAccountKeysError> =
274                serde_json::from_str(&local_var_content).ok();
275            let local_var_error = ResponseContent {
276                status: local_var_status,
277                content: local_var_content,
278                entity: local_var_entity,
279            };
280            Err(Error::ResponseError(local_var_error))
281        }
282    }
283}
284
285/// struct for typed errors of method
286/// [`AccountsKeyManagementApi::get_key_connector_confirmation_details`]
287#[derive(Debug, Clone, Serialize, Deserialize)]
288#[serde(untagged)]
289pub enum GetKeyConnectorConfirmationDetailsError {
290    UnknownValue(serde_json::Value),
291}
292/// struct for typed errors of method [`AccountsKeyManagementApi::post_convert_to_key_connector`]
293#[derive(Debug, Clone, Serialize, Deserialize)]
294#[serde(untagged)]
295pub enum PostConvertToKeyConnectorError {
296    UnknownValue(serde_json::Value),
297}
298/// struct for typed errors of method [`AccountsKeyManagementApi::post_set_key_connector_key`]
299#[derive(Debug, Clone, Serialize, Deserialize)]
300#[serde(untagged)]
301pub enum PostSetKeyConnectorKeyError {
302    UnknownValue(serde_json::Value),
303}
304/// struct for typed errors of method [`AccountsKeyManagementApi::regenerate_keys`]
305#[derive(Debug, Clone, Serialize, Deserialize)]
306#[serde(untagged)]
307pub enum RegenerateKeysError {
308    UnknownValue(serde_json::Value),
309}
310/// struct for typed errors of method [`AccountsKeyManagementApi::rotate_user_account_keys`]
311#[derive(Debug, Clone, Serialize, Deserialize)]
312#[serde(untagged)]
313pub enum RotateUserAccountKeysError {
314    UnknownValue(serde_json::Value),
315}