Skip to main content

bitwarden_api_api/apis/
organization_billing_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 OrganizationBillingApi: Send + Sync {
29    /// POST /organizations/{organizationId}/billing/change-frequency
30    async fn change_plan_subscription_frequency<'a>(
31        &self,
32        organization_id: uuid::Uuid,
33        change_plan_frequency_request: Option<models::ChangePlanFrequencyRequest>,
34    ) -> Result<(), Error<ChangePlanSubscriptionFrequencyError>>;
35
36    /// GET /organizations/{organizationId}/billing
37    async fn get_billing<'a>(
38        &self,
39        organization_id: uuid::Uuid,
40    ) -> Result<(), Error<GetBillingError>>;
41
42    /// GET /organizations/{organizationId}/billing/history
43    async fn get_history<'a>(
44        &self,
45        organization_id: uuid::Uuid,
46    ) -> Result<(), Error<GetHistoryError>>;
47
48    /// GET /organizations/{organizationId}/billing/invoices
49    async fn get_invoices<'a>(
50        &self,
51        organization_id: uuid::Uuid,
52        status: Option<&'a str>,
53        start_after: Option<&'a str>,
54    ) -> Result<(), Error<GetInvoicesError>>;
55
56    /// GET /organizations/{organizationId}/billing/transactions
57    async fn get_transactions<'a>(
58        &self,
59        organization_id: uuid::Uuid,
60        start_after: Option<String>,
61    ) -> Result<(), Error<GetTransactionsError>>;
62
63    /// POST /organizations/{organizationId}/billing/setup-business-unit
64    async fn setup_business_unit<'a>(
65        &self,
66        organization_id: uuid::Uuid,
67        setup_business_unit_request_body: Option<models::SetupBusinessUnitRequestBody>,
68    ) -> Result<(), Error<SetupBusinessUnitError>>;
69}
70
71pub struct OrganizationBillingApiClient {
72    configuration: Arc<configuration::Configuration>,
73}
74
75impl OrganizationBillingApiClient {
76    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
77        Self { configuration }
78    }
79}
80
81#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
82#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
83impl OrganizationBillingApi for OrganizationBillingApiClient {
84    async fn change_plan_subscription_frequency<'a>(
85        &self,
86        organization_id: uuid::Uuid,
87        change_plan_frequency_request: Option<models::ChangePlanFrequencyRequest>,
88    ) -> Result<(), Error<ChangePlanSubscriptionFrequencyError>> {
89        let local_var_configuration = &self.configuration;
90
91        let local_var_client = &local_var_configuration.client;
92
93        let local_var_uri_str = format!(
94            "{}/organizations/{organizationId}/billing/change-frequency",
95            local_var_configuration.base_path,
96            organizationId = organization_id
97        );
98        let mut local_var_req_builder =
99            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
100
101        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
102        local_var_req_builder = local_var_req_builder.json(&change_plan_frequency_request);
103
104        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
105    }
106
107    async fn get_billing<'a>(
108        &self,
109        organization_id: uuid::Uuid,
110    ) -> Result<(), Error<GetBillingError>> {
111        let local_var_configuration = &self.configuration;
112
113        let local_var_client = &local_var_configuration.client;
114
115        let local_var_uri_str = format!(
116            "{}/organizations/{organizationId}/billing",
117            local_var_configuration.base_path,
118            organizationId = organization_id
119        );
120        let mut local_var_req_builder =
121            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
122
123        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
124
125        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
126    }
127
128    async fn get_history<'a>(
129        &self,
130        organization_id: uuid::Uuid,
131    ) -> Result<(), Error<GetHistoryError>> {
132        let local_var_configuration = &self.configuration;
133
134        let local_var_client = &local_var_configuration.client;
135
136        let local_var_uri_str = format!(
137            "{}/organizations/{organizationId}/billing/history",
138            local_var_configuration.base_path,
139            organizationId = organization_id
140        );
141        let mut local_var_req_builder =
142            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
143
144        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
145
146        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
147    }
148
149    async fn get_invoices<'a>(
150        &self,
151        organization_id: uuid::Uuid,
152        status: Option<&'a str>,
153        start_after: Option<&'a str>,
154    ) -> Result<(), Error<GetInvoicesError>> {
155        let local_var_configuration = &self.configuration;
156
157        let local_var_client = &local_var_configuration.client;
158
159        let local_var_uri_str = format!(
160            "{}/organizations/{organizationId}/billing/invoices",
161            local_var_configuration.base_path,
162            organizationId = organization_id
163        );
164        let mut local_var_req_builder =
165            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
166
167        if let Some(ref param_value) = status {
168            local_var_req_builder =
169                local_var_req_builder.query(&[("status", &param_value.to_string())]);
170        }
171        if let Some(ref param_value) = start_after {
172            local_var_req_builder =
173                local_var_req_builder.query(&[("startAfter", &param_value.to_string())]);
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 get_transactions<'a>(
181        &self,
182        organization_id: uuid::Uuid,
183        start_after: Option<String>,
184    ) -> Result<(), Error<GetTransactionsError>> {
185        let local_var_configuration = &self.configuration;
186
187        let local_var_client = &local_var_configuration.client;
188
189        let local_var_uri_str = format!(
190            "{}/organizations/{organizationId}/billing/transactions",
191            local_var_configuration.base_path,
192            organizationId = organization_id
193        );
194        let mut local_var_req_builder =
195            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
196
197        if let Some(ref param_value) = start_after {
198            local_var_req_builder =
199                local_var_req_builder.query(&[("startAfter", &param_value.to_string())]);
200        }
201        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
202
203        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
204    }
205
206    async fn setup_business_unit<'a>(
207        &self,
208        organization_id: uuid::Uuid,
209        setup_business_unit_request_body: Option<models::SetupBusinessUnitRequestBody>,
210    ) -> Result<(), Error<SetupBusinessUnitError>> {
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            "{}/organizations/{organizationId}/billing/setup-business-unit",
217            local_var_configuration.base_path,
218            organizationId = organization_id
219        );
220        let mut local_var_req_builder =
221            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
222
223        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
224        local_var_req_builder = local_var_req_builder.json(&setup_business_unit_request_body);
225
226        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
227    }
228}
229
230/// struct for typed errors of method [`OrganizationBillingApi::change_plan_subscription_frequency`]
231#[derive(Debug, Clone, Serialize, Deserialize)]
232#[serde(untagged)]
233pub enum ChangePlanSubscriptionFrequencyError {
234    UnknownValue(serde_json::Value),
235}
236/// struct for typed errors of method [`OrganizationBillingApi::get_billing`]
237#[derive(Debug, Clone, Serialize, Deserialize)]
238#[serde(untagged)]
239pub enum GetBillingError {
240    UnknownValue(serde_json::Value),
241}
242/// struct for typed errors of method [`OrganizationBillingApi::get_history`]
243#[derive(Debug, Clone, Serialize, Deserialize)]
244#[serde(untagged)]
245pub enum GetHistoryError {
246    UnknownValue(serde_json::Value),
247}
248/// struct for typed errors of method [`OrganizationBillingApi::get_invoices`]
249#[derive(Debug, Clone, Serialize, Deserialize)]
250#[serde(untagged)]
251pub enum GetInvoicesError {
252    UnknownValue(serde_json::Value),
253}
254/// struct for typed errors of method [`OrganizationBillingApi::get_transactions`]
255#[derive(Debug, Clone, Serialize, Deserialize)]
256#[serde(untagged)]
257pub enum GetTransactionsError {
258    UnknownValue(serde_json::Value),
259}
260/// struct for typed errors of method [`OrganizationBillingApi::setup_business_unit`]
261#[derive(Debug, Clone, Serialize, Deserialize)]
262#[serde(untagged)]
263pub enum SetupBusinessUnitError {
264    UnknownValue(serde_json::Value),
265}