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::{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 post_convert_to_key_connector(
31 &self,
32 ) -> Result<(), Error<PostConvertToKeyConnectorError>>;
33
34 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 async fn regenerate_keys<'a>(
42 &self,
43 key_regeneration_request_model: Option<models::KeyRegenerationRequestModel>,
44 ) -> Result<(), Error<RegenerateKeysError>>;
45
46 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#[derive(Debug, Clone, Serialize, Deserialize)]
248#[serde(untagged)]
249pub enum PostConvertToKeyConnectorError {
250 UnknownValue(serde_json::Value),
251}
252#[derive(Debug, Clone, Serialize, Deserialize)]
254#[serde(untagged)]
255pub enum PostSetKeyConnectorKeyError {
256 UnknownValue(serde_json::Value),
257}
258#[derive(Debug, Clone, Serialize, Deserialize)]
260#[serde(untagged)]
261pub enum RegenerateKeysError {
262 UnknownValue(serde_json::Value),
263}
264#[derive(Debug, Clone, Serialize, Deserialize)]
266#[serde(untagged)]
267pub enum RotateUserAccountKeysError {
268 UnknownValue(serde_json::Value),
269}