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 OrganizationReportsApi: Send + Sync {
29 async fn create_organization_report<'a>(
31 &self,
32 organization_id: uuid::Uuid,
33 add_organization_report_request: Option<models::AddOrganizationReportRequest>,
34 ) -> Result<(), Error<CreateOrganizationReportError>>;
35
36 async fn get_latest_organization_report<'a>(
38 &self,
39 organization_id: uuid::Uuid,
40 ) -> Result<(), Error<GetLatestOrganizationReportError>>;
41
42 async fn get_organization_report<'a>(
44 &self,
45 organization_id: uuid::Uuid,
46 report_id: uuid::Uuid,
47 ) -> Result<(), Error<GetOrganizationReportError>>;
48
49 async fn get_organization_report_application_data<'a>(
51 &self,
52 organization_id: uuid::Uuid,
53 report_id: uuid::Uuid,
54 ) -> Result<(), Error<GetOrganizationReportApplicationDataError>>;
55
56 async fn get_organization_report_data<'a>(
58 &self,
59 organization_id: uuid::Uuid,
60 report_id: uuid::Uuid,
61 ) -> Result<(), Error<GetOrganizationReportDataError>>;
62
63 async fn get_organization_report_summary<'a>(
65 &self,
66 organization_id: uuid::Uuid,
67 report_id: uuid::Uuid,
68 ) -> Result<(), Error<GetOrganizationReportSummaryError>>;
69
70 async fn get_organization_report_summary_data_by_date_range<'a>(
72 &self,
73 organization_id: uuid::Uuid,
74 start_date: Option<String>,
75 end_date: Option<String>,
76 ) -> Result<
77 Vec<models::OrganizationReportSummaryDataResponse>,
78 Error<GetOrganizationReportSummaryDataByDateRangeError>,
79 >;
80
81 async fn update_organization_report<'a>(
83 &self,
84 organization_id: uuid::Uuid,
85 report_id: &'a str,
86 update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
87 ) -> Result<(), Error<UpdateOrganizationReportError>>;
88
89 async fn update_organization_report_application_data<'a>(
91 &self,
92 organization_id: uuid::Uuid,
93 report_id: uuid::Uuid,
94 update_organization_report_application_data_request: Option<
95 models::UpdateOrganizationReportApplicationDataRequest,
96 >,
97 ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>>;
98
99 async fn update_organization_report_data<'a>(
101 &self,
102 organization_id: uuid::Uuid,
103 report_id: uuid::Uuid,
104 update_organization_report_data_request: Option<
105 models::UpdateOrganizationReportDataRequest,
106 >,
107 ) -> Result<(), Error<UpdateOrganizationReportDataError>>;
108
109 async fn update_organization_report_summary<'a>(
111 &self,
112 organization_id: uuid::Uuid,
113 report_id: uuid::Uuid,
114 update_organization_report_summary_request: Option<
115 models::UpdateOrganizationReportSummaryRequest,
116 >,
117 ) -> Result<(), Error<UpdateOrganizationReportSummaryError>>;
118}
119
120pub struct OrganizationReportsApiClient {
121 configuration: Arc<configuration::Configuration>,
122}
123
124impl OrganizationReportsApiClient {
125 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
126 Self { configuration }
127 }
128}
129
130#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
131#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
132impl OrganizationReportsApi for OrganizationReportsApiClient {
133 async fn create_organization_report<'a>(
134 &self,
135 organization_id: uuid::Uuid,
136 add_organization_report_request: Option<models::AddOrganizationReportRequest>,
137 ) -> Result<(), Error<CreateOrganizationReportError>> {
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 "{}/reports/organizations/{organizationId}",
144 local_var_configuration.base_path,
145 organizationId = organization_id
146 );
147 let mut local_var_req_builder =
148 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
149
150 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
151 local_var_req_builder = local_var_req_builder.json(&add_organization_report_request);
152
153 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
154 }
155
156 async fn get_latest_organization_report<'a>(
157 &self,
158 organization_id: uuid::Uuid,
159 ) -> Result<(), Error<GetLatestOrganizationReportError>> {
160 let local_var_configuration = &self.configuration;
161
162 let local_var_client = &local_var_configuration.client;
163
164 let local_var_uri_str = format!(
165 "{}/reports/organizations/{organizationId}/latest",
166 local_var_configuration.base_path,
167 organizationId = organization_id
168 );
169 let mut local_var_req_builder =
170 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
171
172 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
173
174 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
175 }
176
177 async fn get_organization_report<'a>(
178 &self,
179 organization_id: uuid::Uuid,
180 report_id: uuid::Uuid,
181 ) -> Result<(), Error<GetOrganizationReportError>> {
182 let local_var_configuration = &self.configuration;
183
184 let local_var_client = &local_var_configuration.client;
185
186 let local_var_uri_str = format!(
187 "{}/reports/organizations/{organizationId}/{reportId}",
188 local_var_configuration.base_path,
189 organizationId = organization_id,
190 reportId = report_id
191 );
192 let mut local_var_req_builder =
193 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
194
195 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
196
197 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
198 }
199
200 async fn get_organization_report_application_data<'a>(
201 &self,
202 organization_id: uuid::Uuid,
203 report_id: uuid::Uuid,
204 ) -> Result<(), Error<GetOrganizationReportApplicationDataError>> {
205 let local_var_configuration = &self.configuration;
206
207 let local_var_client = &local_var_configuration.client;
208
209 let local_var_uri_str = format!(
210 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
211 local_var_configuration.base_path,
212 organizationId = organization_id,
213 reportId = report_id
214 );
215 let mut local_var_req_builder =
216 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
217
218 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
219
220 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
221 }
222
223 async fn get_organization_report_data<'a>(
224 &self,
225 organization_id: uuid::Uuid,
226 report_id: uuid::Uuid,
227 ) -> Result<(), Error<GetOrganizationReportDataError>> {
228 let local_var_configuration = &self.configuration;
229
230 let local_var_client = &local_var_configuration.client;
231
232 let local_var_uri_str = format!(
233 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
234 local_var_configuration.base_path,
235 organizationId = organization_id,
236 reportId = report_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_empty_response(local_var_req_builder).await
244 }
245
246 async fn get_organization_report_summary<'a>(
247 &self,
248 organization_id: uuid::Uuid,
249 report_id: uuid::Uuid,
250 ) -> Result<(), Error<GetOrganizationReportSummaryError>> {
251 let local_var_configuration = &self.configuration;
252
253 let local_var_client = &local_var_configuration.client;
254
255 let local_var_uri_str = format!(
256 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
257 local_var_configuration.base_path,
258 organizationId = organization_id,
259 reportId = report_id
260 );
261 let mut local_var_req_builder =
262 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
263
264 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
265
266 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
267 }
268
269 async fn get_organization_report_summary_data_by_date_range<'a>(
270 &self,
271 organization_id: uuid::Uuid,
272 start_date: Option<String>,
273 end_date: Option<String>,
274 ) -> Result<
275 Vec<models::OrganizationReportSummaryDataResponse>,
276 Error<GetOrganizationReportSummaryDataByDateRangeError>,
277 > {
278 let local_var_configuration = &self.configuration;
279
280 let local_var_client = &local_var_configuration.client;
281
282 let local_var_uri_str = format!(
283 "{}/reports/organizations/{organizationId}/data/summary",
284 local_var_configuration.base_path,
285 organizationId = organization_id
286 );
287 let mut local_var_req_builder =
288 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
289
290 if let Some(ref param_value) = start_date {
291 local_var_req_builder =
292 local_var_req_builder.query(&[("startDate", ¶m_value.to_string())]);
293 }
294 if let Some(ref param_value) = end_date {
295 local_var_req_builder =
296 local_var_req_builder.query(&[("endDate", ¶m_value.to_string())]);
297 }
298 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
299
300 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
301 }
302
303 async fn update_organization_report<'a>(
304 &self,
305 organization_id: uuid::Uuid,
306 report_id: &'a str,
307 update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
308 ) -> Result<(), Error<UpdateOrganizationReportError>> {
309 let local_var_configuration = &self.configuration;
310
311 let local_var_client = &local_var_configuration.client;
312
313 let local_var_uri_str = format!(
314 "{}/reports/organizations/{organizationId}/{reportId}",
315 local_var_configuration.base_path,
316 organizationId = organization_id,
317 reportId = crate::apis::urlencode(report_id)
318 );
319 let mut local_var_req_builder =
320 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
321
322 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
323 local_var_req_builder = local_var_req_builder.json(&update_organization_report_request);
324
325 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
326 }
327
328 async fn update_organization_report_application_data<'a>(
329 &self,
330 organization_id: uuid::Uuid,
331 report_id: uuid::Uuid,
332 update_organization_report_application_data_request: Option<
333 models::UpdateOrganizationReportApplicationDataRequest,
334 >,
335 ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>> {
336 let local_var_configuration = &self.configuration;
337
338 let local_var_client = &local_var_configuration.client;
339
340 let local_var_uri_str = format!(
341 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
342 local_var_configuration.base_path,
343 organizationId = organization_id,
344 reportId = report_id
345 );
346 let mut local_var_req_builder =
347 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
348
349 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
350 local_var_req_builder =
351 local_var_req_builder.json(&update_organization_report_application_data_request);
352
353 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
354 }
355
356 async fn update_organization_report_data<'a>(
357 &self,
358 organization_id: uuid::Uuid,
359 report_id: uuid::Uuid,
360 update_organization_report_data_request: Option<
361 models::UpdateOrganizationReportDataRequest,
362 >,
363 ) -> Result<(), Error<UpdateOrganizationReportDataError>> {
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 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
370 local_var_configuration.base_path,
371 organizationId = organization_id,
372 reportId = report_id
373 );
374 let mut local_var_req_builder =
375 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
376
377 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
378 local_var_req_builder =
379 local_var_req_builder.json(&update_organization_report_data_request);
380
381 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
382 }
383
384 async fn update_organization_report_summary<'a>(
385 &self,
386 organization_id: uuid::Uuid,
387 report_id: uuid::Uuid,
388 update_organization_report_summary_request: Option<
389 models::UpdateOrganizationReportSummaryRequest,
390 >,
391 ) -> Result<(), Error<UpdateOrganizationReportSummaryError>> {
392 let local_var_configuration = &self.configuration;
393
394 let local_var_client = &local_var_configuration.client;
395
396 let local_var_uri_str = format!(
397 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
398 local_var_configuration.base_path,
399 organizationId = organization_id,
400 reportId = report_id
401 );
402 let mut local_var_req_builder =
403 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
404
405 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
406 local_var_req_builder =
407 local_var_req_builder.json(&update_organization_report_summary_request);
408
409 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
410 }
411}
412
413#[derive(Debug, Clone, Serialize, Deserialize)]
415#[serde(untagged)]
416pub enum CreateOrganizationReportError {
417 UnknownValue(serde_json::Value),
418}
419#[derive(Debug, Clone, Serialize, Deserialize)]
421#[serde(untagged)]
422pub enum GetLatestOrganizationReportError {
423 UnknownValue(serde_json::Value),
424}
425#[derive(Debug, Clone, Serialize, Deserialize)]
427#[serde(untagged)]
428pub enum GetOrganizationReportError {
429 UnknownValue(serde_json::Value),
430}
431#[derive(Debug, Clone, Serialize, Deserialize)]
434#[serde(untagged)]
435pub enum GetOrganizationReportApplicationDataError {
436 UnknownValue(serde_json::Value),
437}
438#[derive(Debug, Clone, Serialize, Deserialize)]
440#[serde(untagged)]
441pub enum GetOrganizationReportDataError {
442 UnknownValue(serde_json::Value),
443}
444#[derive(Debug, Clone, Serialize, Deserialize)]
446#[serde(untagged)]
447pub enum GetOrganizationReportSummaryError {
448 UnknownValue(serde_json::Value),
449}
450#[derive(Debug, Clone, Serialize, Deserialize)]
453#[serde(untagged)]
454pub enum GetOrganizationReportSummaryDataByDateRangeError {
455 Status400(),
456 Status404(),
457 UnknownValue(serde_json::Value),
458}
459#[derive(Debug, Clone, Serialize, Deserialize)]
461#[serde(untagged)]
462pub enum UpdateOrganizationReportError {
463 UnknownValue(serde_json::Value),
464}
465#[derive(Debug, Clone, Serialize, Deserialize)]
468#[serde(untagged)]
469pub enum UpdateOrganizationReportApplicationDataError {
470 UnknownValue(serde_json::Value),
471}
472#[derive(Debug, Clone, Serialize, Deserialize)]
474#[serde(untagged)]
475pub enum UpdateOrganizationReportDataError {
476 UnknownValue(serde_json::Value),
477}
478#[derive(Debug, Clone, Serialize, Deserialize)]
480#[serde(untagged)]
481pub enum UpdateOrganizationReportSummaryError {
482 UnknownValue(serde_json::Value),
483}