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::{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    /// POST /accounts/convert-to-key-connector
30    async fn post_convert_to_key_connector(
31        &self,
32    ) -> Result<(), Error<PostConvertToKeyConnectorError>>;
33
34    /// POST /accounts/set-key-connector-key
35    async fn post_set_key_connector_key<'a>(
36        &self,
37        set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
38    ) -> Result<(), Error<PostSetKeyConnectorKeyError>>;
39
40    /// POST /accounts/key-management/regenerate-keys
41    async fn regenerate_keys<'a>(
42        &self,
43        key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
44    ) -> Result<(), Error<RegenerateKeysError>>;
45
46    /// POST /accounts/key-management/rotate-user-account-keys
47    async fn rotate_user_account_keys<'a>(
48        &self,
49        rotate_user_account_keys_and_data_request_model: Option<
50            models::RotateUserAccountKeysAndDataRequestModel,
51        >,
52    ) -> Result<(), Error<RotateUserAccountKeysError>>;
53}
54
55pub struct AccountsKeyManagementApiClient {
56    configuration: Arc<configuration::Configuration>,
57}
58
59impl AccountsKeyManagementApiClient {
60    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
61        Self { configuration }
62    }
63}
64
65#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
66#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
67impl AccountsKeyManagementApi for AccountsKeyManagementApiClient {
68    async fn post_convert_to_key_connector(
69        &self,
70    ) -> Result<(), Error<PostConvertToKeyConnectorError>> {
71        let local_var_configuration = &self.configuration;
72
73        let local_var_client = &local_var_configuration.client;
74
75        let local_var_uri_str = format!(
76            "{}/accounts/convert-to-key-connector",
77            local_var_configuration.base_path
78        );
79        let mut local_var_req_builder =
80            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
81
82        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
83            local_var_req_builder = local_var_req_builder
84                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
85        }
86        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
87            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
88        };
89
90        let local_var_req = local_var_req_builder.build()?;
91        let local_var_resp = local_var_client.execute(local_var_req).await?;
92
93        let local_var_status = local_var_resp.status();
94        let local_var_content = local_var_resp.text().await?;
95
96        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
97            Ok(())
98        } else {
99            let local_var_entity: Option<PostConvertToKeyConnectorError> =
100                serde_json::from_str(&local_var_content).ok();
101            let local_var_error = ResponseContent {
102                status: local_var_status,
103                content: local_var_content,
104                entity: local_var_entity,
105            };
106            Err(Error::ResponseError(local_var_error))
107        }
108    }
109
110    async fn post_set_key_connector_key<'a>(
111        &self,
112        set_key_connector_key_request_model: Option<models::SetKeyConnectorKeyRequestModel>,
113    ) -> Result<(), Error<PostSetKeyConnectorKeyError>> {
114        let local_var_configuration = &self.configuration;
115
116        let local_var_client = &local_var_configuration.client;
117
118        let local_var_uri_str = format!(
119            "{}/accounts/set-key-connector-key",
120            local_var_configuration.base_path
121        );
122        let mut local_var_req_builder =
123            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
124
125        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126            local_var_req_builder = local_var_req_builder
127                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128        }
129        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
130            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
131        };
132        local_var_req_builder = local_var_req_builder.json(&set_key_connector_key_request_model);
133
134        let local_var_req = local_var_req_builder.build()?;
135        let local_var_resp = local_var_client.execute(local_var_req).await?;
136
137        let local_var_status = local_var_resp.status();
138        let local_var_content = local_var_resp.text().await?;
139
140        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141            Ok(())
142        } else {
143            let local_var_entity: Option<PostSetKeyConnectorKeyError> =
144                serde_json::from_str(&local_var_content).ok();
145            let local_var_error = ResponseContent {
146                status: local_var_status,
147                content: local_var_content,
148                entity: local_var_entity,
149            };
150            Err(Error::ResponseError(local_var_error))
151        }
152    }
153
154    async fn regenerate_keys<'a>(
155        &self,
156        key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
157    ) -> Result<(), Error<RegenerateKeysError>> {
158        let local_var_configuration = &self.configuration;
159
160        let local_var_client = &local_var_configuration.client;
161
162        let local_var_uri_str = format!(
163            "{}/accounts/key-management/regenerate-keys",
164            local_var_configuration.base_path
165        );
166        let mut local_var_req_builder =
167            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
168
169        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
170            local_var_req_builder = local_var_req_builder
171                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
172        }
173        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
174            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
175        };
176        local_var_req_builder = local_var_req_builder.json(&key_regeneration_request_model);
177
178        let local_var_req = local_var_req_builder.build()?;
179        let local_var_resp = local_var_client.execute(local_var_req).await?;
180
181        let local_var_status = local_var_resp.status();
182        let local_var_content = local_var_resp.text().await?;
183
184        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
185            Ok(())
186        } else {
187            let local_var_entity: Option<RegenerateKeysError> =
188                serde_json::from_str(&local_var_content).ok();
189            let local_var_error = ResponseContent {
190                status: local_var_status,
191                content: local_var_content,
192                entity: local_var_entity,
193            };
194            Err(Error::ResponseError(local_var_error))
195        }
196    }
197
198    async fn rotate_user_account_keys<'a>(
199        &self,
200        rotate_user_account_keys_and_data_request_model: Option<
201            models::RotateUserAccountKeysAndDataRequestModel,
202        >,
203    ) -> Result<(), Error<RotateUserAccountKeysError>> {
204        let local_var_configuration = &self.configuration;
205
206        let local_var_client = &local_var_configuration.client;
207
208        let local_var_uri_str = format!(
209            "{}/accounts/key-management/rotate-user-account-keys",
210            local_var_configuration.base_path
211        );
212        let mut local_var_req_builder =
213            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
214
215        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
216            local_var_req_builder = local_var_req_builder
217                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
218        }
219        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
220            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
221        };
222        local_var_req_builder =
223            local_var_req_builder.json(&rotate_user_account_keys_and_data_request_model);
224
225        let local_var_req = local_var_req_builder.build()?;
226        let local_var_resp = local_var_client.execute(local_var_req).await?;
227
228        let local_var_status = local_var_resp.status();
229        let local_var_content = local_var_resp.text().await?;
230
231        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
232            Ok(())
233        } else {
234            let local_var_entity: Option<RotateUserAccountKeysError> =
235                serde_json::from_str(&local_var_content).ok();
236            let local_var_error = ResponseContent {
237                status: local_var_status,
238                content: local_var_content,
239                entity: local_var_entity,
240            };
241            Err(Error::ResponseError(local_var_error))
242        }
243    }
244}
245
246/// struct for typed errors of method [`AccountsKeyManagementApi::post_convert_to_key_connector`]
247#[derive(Debug, Clone, Serialize, Deserialize)]
248#[serde(untagged)]
249pub enum PostConvertToKeyConnectorError {
250    UnknownValue(serde_json::Value),
251}
252/// struct for typed errors of method [`AccountsKeyManagementApi::post_set_key_connector_key`]
253#[derive(Debug, Clone, Serialize, Deserialize)]
254#[serde(untagged)]
255pub enum PostSetKeyConnectorKeyError {
256    UnknownValue(serde_json::Value),
257}
258/// struct for typed errors of method [`AccountsKeyManagementApi::regenerate_keys`]
259#[derive(Debug, Clone, Serialize, Deserialize)]
260#[serde(untagged)]
261pub enum RegenerateKeysError {
262    UnknownValue(serde_json::Value),
263}
264/// struct for typed errors of method [`AccountsKeyManagementApi::rotate_user_account_keys`]
265#[derive(Debug, Clone, Serialize, Deserialize)]
266#[serde(untagged)]
267pub enum RotateUserAccountKeysError {
268    UnknownValue(serde_json::Value),
269}