Skip to main content

bitwarden_api_api/apis/
organization_reports_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 OrganizationReportsApi: Send + Sync {
29    /// POST /reports/organizations/{organizationId}
30    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    /// GET /reports/organizations/{organizationId}/latest
37    async fn get_latest_organization_report<'a>(
38        &self,
39        organization_id: uuid::Uuid,
40    ) -> Result<(), Error<GetLatestOrganizationReportError>>;
41
42    /// GET /reports/organizations/{organizationId}/{reportId}
43    async fn get_organization_report<'a>(
44        &self,
45        organization_id: uuid::Uuid,
46        report_id: uuid::Uuid,
47    ) -> Result<(), Error<GetOrganizationReportError>>;
48
49    /// GET /reports/organizations/{organizationId}/data/application/{reportId}
50    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    /// GET /reports/organizations/{organizationId}/data/report/{reportId}
57    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    /// GET /reports/organizations/{organizationId}/data/summary/{reportId}
64    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    /// GET /reports/organizations/{organizationId}/data/summary
71    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<(), Error<GetOrganizationReportSummaryDataByDateRangeError>>;
77
78    /// PATCH /reports/organizations/{organizationId}/{reportId}
79    async fn update_organization_report<'a>(
80        &self,
81        organization_id: uuid::Uuid,
82        report_id: &'a str,
83        update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
84    ) -> Result<(), Error<UpdateOrganizationReportError>>;
85
86    /// PATCH /reports/organizations/{organizationId}/data/application/{reportId}
87    async fn update_organization_report_application_data<'a>(
88        &self,
89        organization_id: uuid::Uuid,
90        report_id: uuid::Uuid,
91        update_organization_report_application_data_request: Option<
92            models::UpdateOrganizationReportApplicationDataRequest,
93        >,
94    ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>>;
95
96    /// PATCH /reports/organizations/{organizationId}/data/report/{reportId}
97    async fn update_organization_report_data<'a>(
98        &self,
99        organization_id: uuid::Uuid,
100        report_id: uuid::Uuid,
101        update_organization_report_data_request: Option<
102            models::UpdateOrganizationReportDataRequest,
103        >,
104    ) -> Result<(), Error<UpdateOrganizationReportDataError>>;
105
106    /// PATCH /reports/organizations/{organizationId}/data/summary/{reportId}
107    async fn update_organization_report_summary<'a>(
108        &self,
109        organization_id: uuid::Uuid,
110        report_id: uuid::Uuid,
111        update_organization_report_summary_request: Option<
112            models::UpdateOrganizationReportSummaryRequest,
113        >,
114    ) -> Result<(), Error<UpdateOrganizationReportSummaryError>>;
115}
116
117pub struct OrganizationReportsApiClient {
118    configuration: Arc<configuration::Configuration>,
119}
120
121impl OrganizationReportsApiClient {
122    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
123        Self { configuration }
124    }
125}
126
127#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
128#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
129impl OrganizationReportsApi for OrganizationReportsApiClient {
130    async fn create_organization_report<'a>(
131        &self,
132        organization_id: uuid::Uuid,
133        add_organization_report_request: Option<models::AddOrganizationReportRequest>,
134    ) -> Result<(), Error<CreateOrganizationReportError>> {
135        let local_var_configuration = &self.configuration;
136
137        let local_var_client = &local_var_configuration.client;
138
139        let local_var_uri_str = format!(
140            "{}/reports/organizations/{organizationId}",
141            local_var_configuration.base_path,
142            organizationId = organization_id
143        );
144        let mut local_var_req_builder =
145            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
146
147        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
148        local_var_req_builder = local_var_req_builder.json(&add_organization_report_request);
149
150        let local_var_resp = local_var_req_builder.send().await?;
151
152        let local_var_status = local_var_resp.status();
153        let local_var_content = local_var_resp.text().await?;
154
155        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
156            Ok(())
157        } else {
158            let local_var_entity: Option<CreateOrganizationReportError> =
159                serde_json::from_str(&local_var_content).ok();
160            let local_var_error = ResponseContent {
161                status: local_var_status,
162                content: local_var_content,
163                entity: local_var_entity,
164            };
165            Err(Error::ResponseError(local_var_error))
166        }
167    }
168
169    async fn get_latest_organization_report<'a>(
170        &self,
171        organization_id: uuid::Uuid,
172    ) -> Result<(), Error<GetLatestOrganizationReportError>> {
173        let local_var_configuration = &self.configuration;
174
175        let local_var_client = &local_var_configuration.client;
176
177        let local_var_uri_str = format!(
178            "{}/reports/organizations/{organizationId}/latest",
179            local_var_configuration.base_path,
180            organizationId = organization_id
181        );
182        let mut local_var_req_builder =
183            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
184
185        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
186
187        let local_var_resp = local_var_req_builder.send().await?;
188
189        let local_var_status = local_var_resp.status();
190        let local_var_content = local_var_resp.text().await?;
191
192        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
193            Ok(())
194        } else {
195            let local_var_entity: Option<GetLatestOrganizationReportError> =
196                serde_json::from_str(&local_var_content).ok();
197            let local_var_error = ResponseContent {
198                status: local_var_status,
199                content: local_var_content,
200                entity: local_var_entity,
201            };
202            Err(Error::ResponseError(local_var_error))
203        }
204    }
205
206    async fn get_organization_report<'a>(
207        &self,
208        organization_id: uuid::Uuid,
209        report_id: uuid::Uuid,
210    ) -> Result<(), Error<GetOrganizationReportError>> {
211        let local_var_configuration = &self.configuration;
212
213        let local_var_client = &local_var_configuration.client;
214
215        let local_var_uri_str = format!(
216            "{}/reports/organizations/{organizationId}/{reportId}",
217            local_var_configuration.base_path,
218            organizationId = organization_id,
219            reportId = report_id
220        );
221        let mut local_var_req_builder =
222            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
223
224        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
225
226        let local_var_resp = local_var_req_builder.send().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<GetOrganizationReportError> =
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    async fn get_organization_report_application_data<'a>(
246        &self,
247        organization_id: uuid::Uuid,
248        report_id: uuid::Uuid,
249    ) -> Result<(), Error<GetOrganizationReportApplicationDataError>> {
250        let local_var_configuration = &self.configuration;
251
252        let local_var_client = &local_var_configuration.client;
253
254        let local_var_uri_str = format!(
255            "{}/reports/organizations/{organizationId}/data/application/{reportId}",
256            local_var_configuration.base_path,
257            organizationId = organization_id,
258            reportId = report_id
259        );
260        let mut local_var_req_builder =
261            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
262
263        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
264
265        let local_var_resp = local_var_req_builder.send().await?;
266
267        let local_var_status = local_var_resp.status();
268        let local_var_content = local_var_resp.text().await?;
269
270        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
271            Ok(())
272        } else {
273            let local_var_entity: Option<GetOrganizationReportApplicationDataError> =
274                serde_json::from_str(&local_var_content).ok();
275            let local_var_error = ResponseContent {
276                status: local_var_status,
277                content: local_var_content,
278                entity: local_var_entity,
279            };
280            Err(Error::ResponseError(local_var_error))
281        }
282    }
283
284    async fn get_organization_report_data<'a>(
285        &self,
286        organization_id: uuid::Uuid,
287        report_id: uuid::Uuid,
288    ) -> Result<(), Error<GetOrganizationReportDataError>> {
289        let local_var_configuration = &self.configuration;
290
291        let local_var_client = &local_var_configuration.client;
292
293        let local_var_uri_str = format!(
294            "{}/reports/organizations/{organizationId}/data/report/{reportId}",
295            local_var_configuration.base_path,
296            organizationId = organization_id,
297            reportId = report_id
298        );
299        let mut local_var_req_builder =
300            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
301
302        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
303
304        let local_var_resp = local_var_req_builder.send().await?;
305
306        let local_var_status = local_var_resp.status();
307        let local_var_content = local_var_resp.text().await?;
308
309        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
310            Ok(())
311        } else {
312            let local_var_entity: Option<GetOrganizationReportDataError> =
313                serde_json::from_str(&local_var_content).ok();
314            let local_var_error = ResponseContent {
315                status: local_var_status,
316                content: local_var_content,
317                entity: local_var_entity,
318            };
319            Err(Error::ResponseError(local_var_error))
320        }
321    }
322
323    async fn get_organization_report_summary<'a>(
324        &self,
325        organization_id: uuid::Uuid,
326        report_id: uuid::Uuid,
327    ) -> Result<(), Error<GetOrganizationReportSummaryError>> {
328        let local_var_configuration = &self.configuration;
329
330        let local_var_client = &local_var_configuration.client;
331
332        let local_var_uri_str = format!(
333            "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
334            local_var_configuration.base_path,
335            organizationId = organization_id,
336            reportId = report_id
337        );
338        let mut local_var_req_builder =
339            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
340
341        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
342
343        let local_var_resp = local_var_req_builder.send().await?;
344
345        let local_var_status = local_var_resp.status();
346        let local_var_content = local_var_resp.text().await?;
347
348        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
349            Ok(())
350        } else {
351            let local_var_entity: Option<GetOrganizationReportSummaryError> =
352                serde_json::from_str(&local_var_content).ok();
353            let local_var_error = ResponseContent {
354                status: local_var_status,
355                content: local_var_content,
356                entity: local_var_entity,
357            };
358            Err(Error::ResponseError(local_var_error))
359        }
360    }
361
362    async fn get_organization_report_summary_data_by_date_range<'a>(
363        &self,
364        organization_id: uuid::Uuid,
365        start_date: Option<String>,
366        end_date: Option<String>,
367    ) -> Result<(), Error<GetOrganizationReportSummaryDataByDateRangeError>> {
368        let local_var_configuration = &self.configuration;
369
370        let local_var_client = &local_var_configuration.client;
371
372        let local_var_uri_str = format!(
373            "{}/reports/organizations/{organizationId}/data/summary",
374            local_var_configuration.base_path,
375            organizationId = organization_id
376        );
377        let mut local_var_req_builder =
378            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
379
380        if let Some(ref param_value) = start_date {
381            local_var_req_builder =
382                local_var_req_builder.query(&[("startDate", &param_value.to_string())]);
383        }
384        if let Some(ref param_value) = end_date {
385            local_var_req_builder =
386                local_var_req_builder.query(&[("endDate", &param_value.to_string())]);
387        }
388        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
389
390        let local_var_resp = local_var_req_builder.send().await?;
391
392        let local_var_status = local_var_resp.status();
393        let local_var_content = local_var_resp.text().await?;
394
395        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
396            Ok(())
397        } else {
398            let local_var_entity: Option<GetOrganizationReportSummaryDataByDateRangeError> =
399                serde_json::from_str(&local_var_content).ok();
400            let local_var_error = ResponseContent {
401                status: local_var_status,
402                content: local_var_content,
403                entity: local_var_entity,
404            };
405            Err(Error::ResponseError(local_var_error))
406        }
407    }
408
409    async fn update_organization_report<'a>(
410        &self,
411        organization_id: uuid::Uuid,
412        report_id: &'a str,
413        update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
414    ) -> Result<(), Error<UpdateOrganizationReportError>> {
415        let local_var_configuration = &self.configuration;
416
417        let local_var_client = &local_var_configuration.client;
418
419        let local_var_uri_str = format!(
420            "{}/reports/organizations/{organizationId}/{reportId}",
421            local_var_configuration.base_path,
422            organizationId = organization_id,
423            reportId = crate::apis::urlencode(report_id)
424        );
425        let mut local_var_req_builder =
426            local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
427
428        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
429        local_var_req_builder = local_var_req_builder.json(&update_organization_report_request);
430
431        let local_var_resp = local_var_req_builder.send().await?;
432
433        let local_var_status = local_var_resp.status();
434        let local_var_content = local_var_resp.text().await?;
435
436        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
437            Ok(())
438        } else {
439            let local_var_entity: Option<UpdateOrganizationReportError> =
440                serde_json::from_str(&local_var_content).ok();
441            let local_var_error = ResponseContent {
442                status: local_var_status,
443                content: local_var_content,
444                entity: local_var_entity,
445            };
446            Err(Error::ResponseError(local_var_error))
447        }
448    }
449
450    async fn update_organization_report_application_data<'a>(
451        &self,
452        organization_id: uuid::Uuid,
453        report_id: uuid::Uuid,
454        update_organization_report_application_data_request: Option<
455            models::UpdateOrganizationReportApplicationDataRequest,
456        >,
457    ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>> {
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            "{}/reports/organizations/{organizationId}/data/application/{reportId}",
464            local_var_configuration.base_path,
465            organizationId = organization_id,
466            reportId = report_id
467        );
468        let mut local_var_req_builder =
469            local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
470
471        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
472        local_var_req_builder =
473            local_var_req_builder.json(&update_organization_report_application_data_request);
474
475        let local_var_resp = local_var_req_builder.send().await?;
476
477        let local_var_status = local_var_resp.status();
478        let local_var_content = local_var_resp.text().await?;
479
480        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
481            Ok(())
482        } else {
483            let local_var_entity: Option<UpdateOrganizationReportApplicationDataError> =
484                serde_json::from_str(&local_var_content).ok();
485            let local_var_error = ResponseContent {
486                status: local_var_status,
487                content: local_var_content,
488                entity: local_var_entity,
489            };
490            Err(Error::ResponseError(local_var_error))
491        }
492    }
493
494    async fn update_organization_report_data<'a>(
495        &self,
496        organization_id: uuid::Uuid,
497        report_id: uuid::Uuid,
498        update_organization_report_data_request: Option<
499            models::UpdateOrganizationReportDataRequest,
500        >,
501    ) -> Result<(), Error<UpdateOrganizationReportDataError>> {
502        let local_var_configuration = &self.configuration;
503
504        let local_var_client = &local_var_configuration.client;
505
506        let local_var_uri_str = format!(
507            "{}/reports/organizations/{organizationId}/data/report/{reportId}",
508            local_var_configuration.base_path,
509            organizationId = organization_id,
510            reportId = report_id
511        );
512        let mut local_var_req_builder =
513            local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
514
515        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
516        local_var_req_builder =
517            local_var_req_builder.json(&update_organization_report_data_request);
518
519        let local_var_resp = local_var_req_builder.send().await?;
520
521        let local_var_status = local_var_resp.status();
522        let local_var_content = local_var_resp.text().await?;
523
524        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
525            Ok(())
526        } else {
527            let local_var_entity: Option<UpdateOrganizationReportDataError> =
528                serde_json::from_str(&local_var_content).ok();
529            let local_var_error = ResponseContent {
530                status: local_var_status,
531                content: local_var_content,
532                entity: local_var_entity,
533            };
534            Err(Error::ResponseError(local_var_error))
535        }
536    }
537
538    async fn update_organization_report_summary<'a>(
539        &self,
540        organization_id: uuid::Uuid,
541        report_id: uuid::Uuid,
542        update_organization_report_summary_request: Option<
543            models::UpdateOrganizationReportSummaryRequest,
544        >,
545    ) -> Result<(), Error<UpdateOrganizationReportSummaryError>> {
546        let local_var_configuration = &self.configuration;
547
548        let local_var_client = &local_var_configuration.client;
549
550        let local_var_uri_str = format!(
551            "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
552            local_var_configuration.base_path,
553            organizationId = organization_id,
554            reportId = report_id
555        );
556        let mut local_var_req_builder =
557            local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
558
559        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
560        local_var_req_builder =
561            local_var_req_builder.json(&update_organization_report_summary_request);
562
563        let local_var_resp = local_var_req_builder.send().await?;
564
565        let local_var_status = local_var_resp.status();
566        let local_var_content = local_var_resp.text().await?;
567
568        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
569            Ok(())
570        } else {
571            let local_var_entity: Option<UpdateOrganizationReportSummaryError> =
572                serde_json::from_str(&local_var_content).ok();
573            let local_var_error = ResponseContent {
574                status: local_var_status,
575                content: local_var_content,
576                entity: local_var_entity,
577            };
578            Err(Error::ResponseError(local_var_error))
579        }
580    }
581}
582
583/// struct for typed errors of method [`OrganizationReportsApi::create_organization_report`]
584#[derive(Debug, Clone, Serialize, Deserialize)]
585#[serde(untagged)]
586pub enum CreateOrganizationReportError {
587    UnknownValue(serde_json::Value),
588}
589/// struct for typed errors of method [`OrganizationReportsApi::get_latest_organization_report`]
590#[derive(Debug, Clone, Serialize, Deserialize)]
591#[serde(untagged)]
592pub enum GetLatestOrganizationReportError {
593    UnknownValue(serde_json::Value),
594}
595/// struct for typed errors of method [`OrganizationReportsApi::get_organization_report`]
596#[derive(Debug, Clone, Serialize, Deserialize)]
597#[serde(untagged)]
598pub enum GetOrganizationReportError {
599    UnknownValue(serde_json::Value),
600}
601/// struct for typed errors of method
602/// [`OrganizationReportsApi::get_organization_report_application_data`]
603#[derive(Debug, Clone, Serialize, Deserialize)]
604#[serde(untagged)]
605pub enum GetOrganizationReportApplicationDataError {
606    UnknownValue(serde_json::Value),
607}
608/// struct for typed errors of method [`OrganizationReportsApi::get_organization_report_data`]
609#[derive(Debug, Clone, Serialize, Deserialize)]
610#[serde(untagged)]
611pub enum GetOrganizationReportDataError {
612    UnknownValue(serde_json::Value),
613}
614/// struct for typed errors of method [`OrganizationReportsApi::get_organization_report_summary`]
615#[derive(Debug, Clone, Serialize, Deserialize)]
616#[serde(untagged)]
617pub enum GetOrganizationReportSummaryError {
618    UnknownValue(serde_json::Value),
619}
620/// struct for typed errors of method
621/// [`OrganizationReportsApi::get_organization_report_summary_data_by_date_range`]
622#[derive(Debug, Clone, Serialize, Deserialize)]
623#[serde(untagged)]
624pub enum GetOrganizationReportSummaryDataByDateRangeError {
625    UnknownValue(serde_json::Value),
626}
627/// struct for typed errors of method [`OrganizationReportsApi::update_organization_report`]
628#[derive(Debug, Clone, Serialize, Deserialize)]
629#[serde(untagged)]
630pub enum UpdateOrganizationReportError {
631    UnknownValue(serde_json::Value),
632}
633/// struct for typed errors of method
634/// [`OrganizationReportsApi::update_organization_report_application_data`]
635#[derive(Debug, Clone, Serialize, Deserialize)]
636#[serde(untagged)]
637pub enum UpdateOrganizationReportApplicationDataError {
638    UnknownValue(serde_json::Value),
639}
640/// struct for typed errors of method [`OrganizationReportsApi::update_organization_report_data`]
641#[derive(Debug, Clone, Serialize, Deserialize)]
642#[serde(untagged)]
643pub enum UpdateOrganizationReportDataError {
644    UnknownValue(serde_json::Value),
645}
646/// struct for typed errors of method [`OrganizationReportsApi::update_organization_report_summary`]
647#[derive(Debug, Clone, Serialize, Deserialize)]
648#[serde(untagged)]
649pub enum UpdateOrganizationReportSummaryError {
650    UnknownValue(serde_json::Value),
651}