Skip to main content

bitwarden_api_api/apis/
emergency_access_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 EmergencyAccessApi: Send + Sync {
29    /// POST /emergency-access/{id}/accept
30    async fn accept<'a>(
31        &self,
32        id: uuid::Uuid,
33        organization_user_accept_request_model: Option<models::OrganizationUserAcceptRequestModel>,
34    ) -> Result<(), Error>;
35
36    /// POST /emergency-access/{id}/approve
37    async fn approve<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
38
39    /// POST /emergency-access/{id}/confirm
40    async fn confirm<'a>(
41        &self,
42        id: uuid::Uuid,
43        organization_user_confirm_request_model: Option<
44            models::OrganizationUserConfirmRequestModel,
45        >,
46    ) -> Result<(), Error>;
47
48    /// DELETE /emergency-access/{id}
49    async fn delete<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
50
51    /// GET /emergency-access/{id}
52    async fn get<'a>(
53        &self,
54        id: uuid::Uuid,
55    ) -> Result<models::EmergencyAccessGranteeDetailsResponseModel, Error>;
56
57    /// GET /emergency-access/{id}/{cipherId}/attachment/{attachmentId}
58    async fn get_attachment_data<'a>(
59        &self,
60        id: uuid::Uuid,
61        cipher_id: uuid::Uuid,
62        attachment_id: &'a str,
63    ) -> Result<models::AttachmentResponseModel, Error>;
64
65    /// GET /emergency-access/trusted
66    async fn get_contacts(
67        &self,
68    ) -> Result<models::EmergencyAccessGranteeDetailsResponseModelListResponseModel, Error>;
69
70    /// GET /emergency-access/granted
71    async fn get_grantees(
72        &self,
73    ) -> Result<models::EmergencyAccessGrantorDetailsResponseModelListResponseModel, Error>;
74
75    /// POST /emergency-access/{id}/initiate
76    async fn initiate<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
77
78    /// POST /emergency-access/invite
79    async fn invite<'a>(
80        &self,
81        emergency_access_invite_request_model: Option<models::EmergencyAccessInviteRequestModel>,
82    ) -> Result<(), Error>;
83
84    /// POST /emergency-access/{id}/password
85    async fn password<'a>(
86        &self,
87        id: uuid::Uuid,
88        emergency_access_password_request_model: Option<
89            models::EmergencyAccessPasswordRequestModel,
90        >,
91    ) -> Result<(), Error>;
92
93    /// GET /emergency-access/{id}/policies
94    async fn policies<'a>(
95        &self,
96        id: uuid::Uuid,
97    ) -> Result<models::PolicyResponseModelListResponseModel, Error>;
98
99    /// PUT /emergency-access/{id}
100    async fn put<'a>(
101        &self,
102        id: uuid::Uuid,
103        emergency_access_update_request_model: Option<models::EmergencyAccessUpdateRequestModel>,
104    ) -> Result<(), Error>;
105
106    /// POST /emergency-access/{id}/reinvite
107    async fn reinvite<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
108
109    /// POST /emergency-access/{id}/reject
110    async fn reject<'a>(&self, id: uuid::Uuid) -> Result<(), Error>;
111
112    /// POST /emergency-access/{id}/takeover
113    async fn takeover<'a>(
114        &self,
115        id: uuid::Uuid,
116    ) -> Result<models::EmergencyAccessTakeoverResponseModel, Error>;
117
118    /// POST /emergency-access/{id}/view
119    /// Emergency access exposes the grantor's personal vault only, and a user-owned cipher is never
120    /// leasing-gated, so the gate authorizes all of them.
121    async fn view_ciphers<'a>(
122        &self,
123        id: uuid::Uuid,
124    ) -> Result<models::EmergencyAccessViewResponseModel, Error>;
125}
126
127pub struct EmergencyAccessApiClient {
128    configuration: Arc<configuration::Configuration>,
129}
130
131impl EmergencyAccessApiClient {
132    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
133        Self { configuration }
134    }
135}
136
137#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
138#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
139impl EmergencyAccessApi for EmergencyAccessApiClient {
140    async fn accept<'a>(
141        &self,
142        id: uuid::Uuid,
143        organization_user_accept_request_model: Option<models::OrganizationUserAcceptRequestModel>,
144    ) -> Result<(), Error> {
145        let local_var_configuration = &self.configuration;
146
147        let local_var_client = &local_var_configuration.client;
148
149        let local_var_uri_str = format!(
150            "{}/emergency-access/{id}/accept",
151            local_var_configuration.base_path,
152            id = id
153        );
154        let mut local_var_req_builder =
155            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
156
157        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
158        local_var_req_builder = local_var_req_builder.json(&organization_user_accept_request_model);
159
160        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
161    }
162
163    async fn approve<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
164        let local_var_configuration = &self.configuration;
165
166        let local_var_client = &local_var_configuration.client;
167
168        let local_var_uri_str = format!(
169            "{}/emergency-access/{id}/approve",
170            local_var_configuration.base_path,
171            id = id
172        );
173        let mut local_var_req_builder =
174            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
175
176        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
177
178        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
179    }
180
181    async fn confirm<'a>(
182        &self,
183        id: uuid::Uuid,
184        organization_user_confirm_request_model: Option<
185            models::OrganizationUserConfirmRequestModel,
186        >,
187    ) -> Result<(), Error> {
188        let local_var_configuration = &self.configuration;
189
190        let local_var_client = &local_var_configuration.client;
191
192        let local_var_uri_str = format!(
193            "{}/emergency-access/{id}/confirm",
194            local_var_configuration.base_path,
195            id = id
196        );
197        let mut local_var_req_builder =
198            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
199
200        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
201        local_var_req_builder =
202            local_var_req_builder.json(&organization_user_confirm_request_model);
203
204        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
205    }
206
207    async fn delete<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
208        let local_var_configuration = &self.configuration;
209
210        let local_var_client = &local_var_configuration.client;
211
212        let local_var_uri_str = format!(
213            "{}/emergency-access/{id}",
214            local_var_configuration.base_path,
215            id = id
216        );
217        let mut local_var_req_builder =
218            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
219
220        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
221
222        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
223    }
224
225    async fn get<'a>(
226        &self,
227        id: uuid::Uuid,
228    ) -> Result<models::EmergencyAccessGranteeDetailsResponseModel, Error> {
229        let local_var_configuration = &self.configuration;
230
231        let local_var_client = &local_var_configuration.client;
232
233        let local_var_uri_str = format!(
234            "{}/emergency-access/{id}",
235            local_var_configuration.base_path,
236            id = id
237        );
238        let mut local_var_req_builder =
239            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
240
241        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
242
243        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
244    }
245
246    async fn get_attachment_data<'a>(
247        &self,
248        id: uuid::Uuid,
249        cipher_id: uuid::Uuid,
250        attachment_id: &'a str,
251    ) -> Result<models::AttachmentResponseModel, Error> {
252        let local_var_configuration = &self.configuration;
253
254        let local_var_client = &local_var_configuration.client;
255
256        let local_var_uri_str = format!(
257            "{}/emergency-access/{id}/{cipherId}/attachment/{attachmentId}",
258            local_var_configuration.base_path,
259            id = id,
260            cipherId = cipher_id,
261            attachmentId = crate::apis::urlencode(attachment_id)
262        );
263        let mut local_var_req_builder =
264            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
265
266        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
267
268        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
269    }
270
271    async fn get_contacts(
272        &self,
273    ) -> Result<models::EmergencyAccessGranteeDetailsResponseModelListResponseModel, Error> {
274        let local_var_configuration = &self.configuration;
275
276        let local_var_client = &local_var_configuration.client;
277
278        let local_var_uri_str = format!(
279            "{}/emergency-access/trusted",
280            local_var_configuration.base_path
281        );
282        let mut local_var_req_builder =
283            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
284
285        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
286
287        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
288    }
289
290    async fn get_grantees(
291        &self,
292    ) -> Result<models::EmergencyAccessGrantorDetailsResponseModelListResponseModel, Error> {
293        let local_var_configuration = &self.configuration;
294
295        let local_var_client = &local_var_configuration.client;
296
297        let local_var_uri_str = format!(
298            "{}/emergency-access/granted",
299            local_var_configuration.base_path
300        );
301        let mut local_var_req_builder =
302            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
303
304        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
305
306        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
307    }
308
309    async fn initiate<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
310        let local_var_configuration = &self.configuration;
311
312        let local_var_client = &local_var_configuration.client;
313
314        let local_var_uri_str = format!(
315            "{}/emergency-access/{id}/initiate",
316            local_var_configuration.base_path,
317            id = id
318        );
319        let mut local_var_req_builder =
320            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
321
322        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
323
324        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
325    }
326
327    async fn invite<'a>(
328        &self,
329        emergency_access_invite_request_model: Option<models::EmergencyAccessInviteRequestModel>,
330    ) -> Result<(), Error> {
331        let local_var_configuration = &self.configuration;
332
333        let local_var_client = &local_var_configuration.client;
334
335        let local_var_uri_str = format!(
336            "{}/emergency-access/invite",
337            local_var_configuration.base_path
338        );
339        let mut local_var_req_builder =
340            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
341
342        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
343        local_var_req_builder = local_var_req_builder.json(&emergency_access_invite_request_model);
344
345        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
346    }
347
348    async fn password<'a>(
349        &self,
350        id: uuid::Uuid,
351        emergency_access_password_request_model: Option<
352            models::EmergencyAccessPasswordRequestModel,
353        >,
354    ) -> Result<(), Error> {
355        let local_var_configuration = &self.configuration;
356
357        let local_var_client = &local_var_configuration.client;
358
359        let local_var_uri_str = format!(
360            "{}/emergency-access/{id}/password",
361            local_var_configuration.base_path,
362            id = id
363        );
364        let mut local_var_req_builder =
365            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
366
367        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
368        local_var_req_builder =
369            local_var_req_builder.json(&emergency_access_password_request_model);
370
371        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
372    }
373
374    async fn policies<'a>(
375        &self,
376        id: uuid::Uuid,
377    ) -> Result<models::PolicyResponseModelListResponseModel, Error> {
378        let local_var_configuration = &self.configuration;
379
380        let local_var_client = &local_var_configuration.client;
381
382        let local_var_uri_str = format!(
383            "{}/emergency-access/{id}/policies",
384            local_var_configuration.base_path,
385            id = id
386        );
387        let mut local_var_req_builder =
388            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
389
390        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
391
392        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
393    }
394
395    async fn put<'a>(
396        &self,
397        id: uuid::Uuid,
398        emergency_access_update_request_model: Option<models::EmergencyAccessUpdateRequestModel>,
399    ) -> Result<(), Error> {
400        let local_var_configuration = &self.configuration;
401
402        let local_var_client = &local_var_configuration.client;
403
404        let local_var_uri_str = format!(
405            "{}/emergency-access/{id}",
406            local_var_configuration.base_path,
407            id = id
408        );
409        let mut local_var_req_builder =
410            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
411
412        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
413        local_var_req_builder = local_var_req_builder.json(&emergency_access_update_request_model);
414
415        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
416    }
417
418    async fn reinvite<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
419        let local_var_configuration = &self.configuration;
420
421        let local_var_client = &local_var_configuration.client;
422
423        let local_var_uri_str = format!(
424            "{}/emergency-access/{id}/reinvite",
425            local_var_configuration.base_path,
426            id = id
427        );
428        let mut local_var_req_builder =
429            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
430
431        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
432
433        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
434    }
435
436    async fn reject<'a>(&self, id: uuid::Uuid) -> Result<(), Error> {
437        let local_var_configuration = &self.configuration;
438
439        let local_var_client = &local_var_configuration.client;
440
441        let local_var_uri_str = format!(
442            "{}/emergency-access/{id}/reject",
443            local_var_configuration.base_path,
444            id = id
445        );
446        let mut local_var_req_builder =
447            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
448
449        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
450
451        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
452    }
453
454    async fn takeover<'a>(
455        &self,
456        id: uuid::Uuid,
457    ) -> Result<models::EmergencyAccessTakeoverResponseModel, Error> {
458        let local_var_configuration = &self.configuration;
459
460        let local_var_client = &local_var_configuration.client;
461
462        let local_var_uri_str = format!(
463            "{}/emergency-access/{id}/takeover",
464            local_var_configuration.base_path,
465            id = id
466        );
467        let mut local_var_req_builder =
468            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
469
470        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
471
472        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
473    }
474
475    /// Emergency access exposes the grantor's personal vault only, and a user-owned cipher is never
476    /// leasing-gated, so the gate authorizes all of them.
477    async fn view_ciphers<'a>(
478        &self,
479        id: uuid::Uuid,
480    ) -> Result<models::EmergencyAccessViewResponseModel, Error> {
481        let local_var_configuration = &self.configuration;
482
483        let local_var_client = &local_var_configuration.client;
484
485        let local_var_uri_str = format!(
486            "{}/emergency-access/{id}/view",
487            local_var_configuration.base_path,
488            id = id
489        );
490        let mut local_var_req_builder =
491            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
492
493        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
494
495        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
496    }
497}