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 SendsApi: Send + Sync {
29 async fn access<'a>(
31 &self,
32 id: &'a str,
33 send_access_request_model: Option<models::SendAccessRequestModel>,
34 ) -> Result<(), Error<AccessError>>;
35
36 async fn access_using_auth(&self) -> Result<(), Error<AccessUsingAuthError>>;
38
39 async fn azure_validate_file(&self) -> Result<(), Error<AzureValidateFileError>>;
41
42 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error<DeleteError>>;
44
45 async fn get<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error<GetError>>;
47
48 async fn get_all(
50 &self,
51 ) -> Result<models::SendResponseModelListResponseModel, Error<GetAllError>>;
52
53 async fn get_send_file_download_data<'a>(
55 &self,
56 encoded_send_id: &'a str,
57 file_id: &'a str,
58 send_access_request_model: Option<models::SendAccessRequestModel>,
59 ) -> Result<(), Error<GetSendFileDownloadDataError>>;
60
61 async fn get_send_file_download_data_using_auth<'a>(
63 &self,
64 file_id: &'a str,
65 ) -> Result<(), Error<GetSendFileDownloadDataUsingAuthError>>;
66
67 async fn post<'a>(
69 &self,
70 send_request_model: Option<models::SendRequestModel>,
71 ) -> Result<models::SendResponseModel, Error<PostError>>;
72
73 async fn post_file<'a>(
75 &self,
76 send_request_model: Option<models::SendRequestModel>,
77 ) -> Result<models::SendFileUploadDataResponseModel, Error<PostFileError>>;
78
79 async fn post_file_for_existing_send<'a>(
81 &self,
82 id: &'a str,
83 file_id: &'a str,
84 ) -> Result<(), Error<PostFileForExistingSendError>>;
85
86 async fn put<'a>(
88 &self,
89 id: &'a str,
90 send_request_model: Option<models::SendRequestModel>,
91 ) -> Result<models::SendResponseModel, Error<PutError>>;
92
93 async fn put_remove_auth<'a>(
95 &self,
96 id: &'a str,
97 ) -> Result<models::SendResponseModel, Error<PutRemoveAuthError>>;
98
99 async fn put_remove_password<'a>(
101 &self,
102 id: &'a str,
103 ) -> Result<models::SendResponseModel, Error<PutRemovePasswordError>>;
104
105 async fn renew_file_upload<'a>(
107 &self,
108 id: &'a str,
109 file_id: &'a str,
110 ) -> Result<models::SendFileUploadDataResponseModel, Error<RenewFileUploadError>>;
111}
112
113pub struct SendsApiClient {
114 configuration: Arc<configuration::Configuration>,
115}
116
117impl SendsApiClient {
118 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
119 Self { configuration }
120 }
121}
122
123#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
124#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
125impl SendsApi for SendsApiClient {
126 async fn access<'a>(
127 &self,
128 id: &'a str,
129 send_access_request_model: Option<models::SendAccessRequestModel>,
130 ) -> Result<(), Error<AccessError>> {
131 let local_var_configuration = &self.configuration;
132
133 let local_var_client = &local_var_configuration.client;
134
135 let local_var_uri_str = format!(
136 "{}/sends/access/{id}",
137 local_var_configuration.base_path,
138 id = crate::apis::urlencode(id)
139 );
140 let mut local_var_req_builder =
141 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
142
143 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
144 local_var_req_builder = local_var_req_builder.json(&send_access_request_model);
145
146 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
147 }
148
149 async fn access_using_auth(&self) -> Result<(), Error<AccessUsingAuthError>> {
150 let local_var_configuration = &self.configuration;
151
152 let local_var_client = &local_var_configuration.client;
153
154 let local_var_uri_str = format!("{}/sends/access", local_var_configuration.base_path);
155 let mut local_var_req_builder =
156 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
157
158 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
159
160 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
161 }
162
163 async fn azure_validate_file(&self) -> Result<(), Error<AzureValidateFileError>> {
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 "{}/sends/file/validate/azure",
170 local_var_configuration.base_path
171 );
172 let mut local_var_req_builder =
173 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
174
175 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
176
177 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
178 }
179
180 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error<DeleteError>> {
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 "{}/sends/{id}",
187 local_var_configuration.base_path,
188 id = crate::apis::urlencode(id)
189 );
190 let mut local_var_req_builder =
191 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
192
193 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
194
195 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
196 }
197
198 async fn get<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error<GetError>> {
199 let local_var_configuration = &self.configuration;
200
201 let local_var_client = &local_var_configuration.client;
202
203 let local_var_uri_str = format!(
204 "{}/sends/{id}",
205 local_var_configuration.base_path,
206 id = crate::apis::urlencode(id)
207 );
208 let mut local_var_req_builder =
209 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
210
211 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
212
213 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
214 }
215
216 async fn get_all(
217 &self,
218 ) -> Result<models::SendResponseModelListResponseModel, Error<GetAllError>> {
219 let local_var_configuration = &self.configuration;
220
221 let local_var_client = &local_var_configuration.client;
222
223 let local_var_uri_str = format!("{}/sends", local_var_configuration.base_path);
224 let mut local_var_req_builder =
225 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
226
227 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
228
229 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
230 }
231
232 async fn get_send_file_download_data<'a>(
233 &self,
234 encoded_send_id: &'a str,
235 file_id: &'a str,
236 send_access_request_model: Option<models::SendAccessRequestModel>,
237 ) -> Result<(), Error<GetSendFileDownloadDataError>> {
238 let local_var_configuration = &self.configuration;
239
240 let local_var_client = &local_var_configuration.client;
241
242 let local_var_uri_str = format!(
243 "{}/sends/{encodedSendId}/access/file/{fileId}",
244 local_var_configuration.base_path,
245 encodedSendId = crate::apis::urlencode(encoded_send_id),
246 fileId = crate::apis::urlencode(file_id)
247 );
248 let mut local_var_req_builder =
249 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
250
251 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
252 local_var_req_builder = local_var_req_builder.json(&send_access_request_model);
253
254 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
255 }
256
257 async fn get_send_file_download_data_using_auth<'a>(
258 &self,
259 file_id: &'a str,
260 ) -> Result<(), Error<GetSendFileDownloadDataUsingAuthError>> {
261 let local_var_configuration = &self.configuration;
262
263 let local_var_client = &local_var_configuration.client;
264
265 let local_var_uri_str = format!(
266 "{}/sends/access/file/{fileId}",
267 local_var_configuration.base_path,
268 fileId = crate::apis::urlencode(file_id)
269 );
270 let mut local_var_req_builder =
271 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
272
273 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
274
275 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
276 }
277
278 async fn post<'a>(
279 &self,
280 send_request_model: Option<models::SendRequestModel>,
281 ) -> Result<models::SendResponseModel, Error<PostError>> {
282 let local_var_configuration = &self.configuration;
283
284 let local_var_client = &local_var_configuration.client;
285
286 let local_var_uri_str = format!("{}/sends", local_var_configuration.base_path);
287 let mut local_var_req_builder =
288 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
289
290 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
291 local_var_req_builder = local_var_req_builder.json(&send_request_model);
292
293 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
294 }
295
296 async fn post_file<'a>(
297 &self,
298 send_request_model: Option<models::SendRequestModel>,
299 ) -> Result<models::SendFileUploadDataResponseModel, Error<PostFileError>> {
300 let local_var_configuration = &self.configuration;
301
302 let local_var_client = &local_var_configuration.client;
303
304 let local_var_uri_str = format!("{}/sends/file/v2", local_var_configuration.base_path);
305 let mut local_var_req_builder =
306 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
307
308 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
309 local_var_req_builder = local_var_req_builder.json(&send_request_model);
310
311 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
312 }
313
314 async fn post_file_for_existing_send<'a>(
315 &self,
316 id: &'a str,
317 file_id: &'a str,
318 ) -> Result<(), Error<PostFileForExistingSendError>> {
319 let local_var_configuration = &self.configuration;
320
321 let local_var_client = &local_var_configuration.client;
322
323 let local_var_uri_str = format!(
324 "{}/sends/{id}/file/{fileId}",
325 local_var_configuration.base_path,
326 id = crate::apis::urlencode(id),
327 fileId = crate::apis::urlencode(file_id)
328 );
329 let mut local_var_req_builder =
330 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
331
332 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
333
334 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
335 }
336
337 async fn put<'a>(
338 &self,
339 id: &'a str,
340 send_request_model: Option<models::SendRequestModel>,
341 ) -> Result<models::SendResponseModel, Error<PutError>> {
342 let local_var_configuration = &self.configuration;
343
344 let local_var_client = &local_var_configuration.client;
345
346 let local_var_uri_str = format!(
347 "{}/sends/{id}",
348 local_var_configuration.base_path,
349 id = crate::apis::urlencode(id)
350 );
351 let mut local_var_req_builder =
352 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
353
354 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
355 local_var_req_builder = local_var_req_builder.json(&send_request_model);
356
357 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
358 }
359
360 async fn put_remove_auth<'a>(
361 &self,
362 id: &'a str,
363 ) -> Result<models::SendResponseModel, Error<PutRemoveAuthError>> {
364 let local_var_configuration = &self.configuration;
365
366 let local_var_client = &local_var_configuration.client;
367
368 let local_var_uri_str = format!(
369 "{}/sends/{id}/remove-auth",
370 local_var_configuration.base_path,
371 id = crate::apis::urlencode(id)
372 );
373 let mut local_var_req_builder =
374 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
375
376 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
377
378 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
379 }
380
381 async fn put_remove_password<'a>(
382 &self,
383 id: &'a str,
384 ) -> Result<models::SendResponseModel, Error<PutRemovePasswordError>> {
385 let local_var_configuration = &self.configuration;
386
387 let local_var_client = &local_var_configuration.client;
388
389 let local_var_uri_str = format!(
390 "{}/sends/{id}/remove-password",
391 local_var_configuration.base_path,
392 id = crate::apis::urlencode(id)
393 );
394 let mut local_var_req_builder =
395 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
396
397 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
398
399 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
400 }
401
402 async fn renew_file_upload<'a>(
403 &self,
404 id: &'a str,
405 file_id: &'a str,
406 ) -> Result<models::SendFileUploadDataResponseModel, Error<RenewFileUploadError>> {
407 let local_var_configuration = &self.configuration;
408
409 let local_var_client = &local_var_configuration.client;
410
411 let local_var_uri_str = format!(
412 "{}/sends/{id}/file/{fileId}",
413 local_var_configuration.base_path,
414 id = crate::apis::urlencode(id),
415 fileId = crate::apis::urlencode(file_id)
416 );
417 let mut local_var_req_builder =
418 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
419
420 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
421
422 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
423 }
424}
425
426#[derive(Debug, Clone, Serialize, Deserialize)]
428#[serde(untagged)]
429pub enum AccessError {
430 UnknownValue(serde_json::Value),
431}
432#[derive(Debug, Clone, Serialize, Deserialize)]
434#[serde(untagged)]
435pub enum AccessUsingAuthError {
436 UnknownValue(serde_json::Value),
437}
438#[derive(Debug, Clone, Serialize, Deserialize)]
440#[serde(untagged)]
441pub enum AzureValidateFileError {
442 UnknownValue(serde_json::Value),
443}
444#[derive(Debug, Clone, Serialize, Deserialize)]
446#[serde(untagged)]
447pub enum DeleteError {
448 UnknownValue(serde_json::Value),
449}
450#[derive(Debug, Clone, Serialize, Deserialize)]
452#[serde(untagged)]
453pub enum GetError {
454 UnknownValue(serde_json::Value),
455}
456#[derive(Debug, Clone, Serialize, Deserialize)]
458#[serde(untagged)]
459pub enum GetAllError {
460 UnknownValue(serde_json::Value),
461}
462#[derive(Debug, Clone, Serialize, Deserialize)]
464#[serde(untagged)]
465pub enum GetSendFileDownloadDataError {
466 UnknownValue(serde_json::Value),
467}
468#[derive(Debug, Clone, Serialize, Deserialize)]
470#[serde(untagged)]
471pub enum GetSendFileDownloadDataUsingAuthError {
472 UnknownValue(serde_json::Value),
473}
474#[derive(Debug, Clone, Serialize, Deserialize)]
476#[serde(untagged)]
477pub enum PostError {
478 UnknownValue(serde_json::Value),
479}
480#[derive(Debug, Clone, Serialize, Deserialize)]
482#[serde(untagged)]
483pub enum PostFileError {
484 UnknownValue(serde_json::Value),
485}
486#[derive(Debug, Clone, Serialize, Deserialize)]
488#[serde(untagged)]
489pub enum PostFileForExistingSendError {
490 UnknownValue(serde_json::Value),
491}
492#[derive(Debug, Clone, Serialize, Deserialize)]
494#[serde(untagged)]
495pub enum PutError {
496 UnknownValue(serde_json::Value),
497}
498#[derive(Debug, Clone, Serialize, Deserialize)]
500#[serde(untagged)]
501pub enum PutRemoveAuthError {
502 UnknownValue(serde_json::Value),
503}
504#[derive(Debug, Clone, Serialize, Deserialize)]
506#[serde(untagged)]
507pub enum PutRemovePasswordError {
508 UnknownValue(serde_json::Value),
509}
510#[derive(Debug, Clone, Serialize, Deserialize)]
512#[serde(untagged)]
513pub enum RenewFileUploadError {
514 UnknownValue(serde_json::Value),
515}