Skip to main content

bitwarden_api_api/apis/
organization_billing_v_next_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 OrganizationBillingVNextApi: Send + Sync {
29    /// POST /organizations/{organizationId}/billing/vnext/credit/bitpay
30    async fn add_credit_via_bit_pay<'a>(
31        &self,
32        organization_id: &'a str,
33        bit_pay_credit_request: Option<models::BitPayCreditRequest>,
34    ) -> Result<(), Error>;
35
36    /// GET /organizations/{organizationId}/billing/vnext/annual-upgrade-offer
37    async fn get_annual_upgrade_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
38
39    /// GET /organizations/{organizationId}/billing/vnext/address
40    async fn get_billing_address<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
41
42    /// GET /organizations/{organizationId}/billing/vnext/churn-mitigation-offer
43    async fn get_churn_mitigation_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
44
45    /// GET /organizations/{organizationId}/billing/vnext/credit
46    async fn get_credit<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
47
48    /// GET /organizations/{organizationId}/billing/vnext/metadata
49    async fn get_metadata<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
50
51    /// GET /organizations/{organizationId}/billing/vnext/payment-method
52    async fn get_payment_method<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
53
54    /// GET /organizations/{organizationId}/billing/vnext/warnings
55    async fn get_warnings<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
56
57    /// POST /organizations/{organizationId}/billing/vnext/annual-upgrade-offer/redeem
58    async fn redeem_annual_upgrade_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
59
60    /// POST /organizations/{organizationId}/billing/vnext/churn-mitigation-offer/redeem
61    async fn redeem_churn_mitigation_offer<'a>(
62        &self,
63        organization_id: &'a str,
64    ) -> Result<(), Error>;
65
66    /// POST /organizations/{organizationId}/billing/vnext/subscription/restart
67    async fn restart_subscription<'a>(
68        &self,
69        organization_id: &'a str,
70        restart_subscription_request: Option<models::RestartSubscriptionRequest>,
71    ) -> Result<(), Error>;
72
73    /// PUT /organizations/{organizationId}/billing/vnext/address
74    async fn update_billing_address<'a>(
75        &self,
76        organization_id: &'a str,
77        billing_address_request: Option<models::BillingAddressRequest>,
78    ) -> Result<(), Error>;
79
80    /// PUT /organizations/{organizationId}/billing/vnext/payment-method
81    async fn update_payment_method<'a>(
82        &self,
83        organization_id: &'a str,
84        tokenized_payment_method_request: Option<models::TokenizedPaymentMethodRequest>,
85    ) -> Result<(), Error>;
86}
87
88pub struct OrganizationBillingVNextApiClient {
89    configuration: Arc<configuration::Configuration>,
90}
91
92impl OrganizationBillingVNextApiClient {
93    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
94        Self { configuration }
95    }
96}
97
98#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
99#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
100impl OrganizationBillingVNextApi for OrganizationBillingVNextApiClient {
101    async fn add_credit_via_bit_pay<'a>(
102        &self,
103        organization_id: &'a str,
104        bit_pay_credit_request: Option<models::BitPayCreditRequest>,
105    ) -> Result<(), Error> {
106        let local_var_configuration = &self.configuration;
107
108        let local_var_client = &local_var_configuration.client;
109
110        let local_var_uri_str = format!(
111            "{}/organizations/{organizationId}/billing/vnext/credit/bitpay",
112            local_var_configuration.base_path,
113            organizationId = crate::apis::urlencode(organization_id)
114        );
115        let mut local_var_req_builder =
116            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
117
118        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
119        local_var_req_builder = local_var_req_builder.json(&bit_pay_credit_request);
120
121        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
122    }
123
124    async fn get_annual_upgrade_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
125        let local_var_configuration = &self.configuration;
126
127        let local_var_client = &local_var_configuration.client;
128
129        let local_var_uri_str = format!(
130            "{}/organizations/{organizationId}/billing/vnext/annual-upgrade-offer",
131            local_var_configuration.base_path,
132            organizationId = crate::apis::urlencode(organization_id)
133        );
134        let mut local_var_req_builder =
135            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
136
137        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
138
139        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
140    }
141
142    async fn get_billing_address<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
143        let local_var_configuration = &self.configuration;
144
145        let local_var_client = &local_var_configuration.client;
146
147        let local_var_uri_str = format!(
148            "{}/organizations/{organizationId}/billing/vnext/address",
149            local_var_configuration.base_path,
150            organizationId = crate::apis::urlencode(organization_id)
151        );
152        let mut local_var_req_builder =
153            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
154
155        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
156
157        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
158    }
159
160    async fn get_churn_mitigation_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
161        let local_var_configuration = &self.configuration;
162
163        let local_var_client = &local_var_configuration.client;
164
165        let local_var_uri_str = format!(
166            "{}/organizations/{organizationId}/billing/vnext/churn-mitigation-offer",
167            local_var_configuration.base_path,
168            organizationId = crate::apis::urlencode(organization_id)
169        );
170        let mut local_var_req_builder =
171            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
172
173        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
174
175        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
176    }
177
178    async fn get_credit<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
179        let local_var_configuration = &self.configuration;
180
181        let local_var_client = &local_var_configuration.client;
182
183        let local_var_uri_str = format!(
184            "{}/organizations/{organizationId}/billing/vnext/credit",
185            local_var_configuration.base_path,
186            organizationId = crate::apis::urlencode(organization_id)
187        );
188        let mut local_var_req_builder =
189            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
190
191        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
192
193        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
194    }
195
196    async fn get_metadata<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
197        let local_var_configuration = &self.configuration;
198
199        let local_var_client = &local_var_configuration.client;
200
201        let local_var_uri_str = format!(
202            "{}/organizations/{organizationId}/billing/vnext/metadata",
203            local_var_configuration.base_path,
204            organizationId = crate::apis::urlencode(organization_id)
205        );
206        let mut local_var_req_builder =
207            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
208
209        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
210
211        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
212    }
213
214    async fn get_payment_method<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
215        let local_var_configuration = &self.configuration;
216
217        let local_var_client = &local_var_configuration.client;
218
219        let local_var_uri_str = format!(
220            "{}/organizations/{organizationId}/billing/vnext/payment-method",
221            local_var_configuration.base_path,
222            organizationId = crate::apis::urlencode(organization_id)
223        );
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_empty_response(local_var_req_builder).await
230    }
231
232    async fn get_warnings<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
233        let local_var_configuration = &self.configuration;
234
235        let local_var_client = &local_var_configuration.client;
236
237        let local_var_uri_str = format!(
238            "{}/organizations/{organizationId}/billing/vnext/warnings",
239            local_var_configuration.base_path,
240            organizationId = crate::apis::urlencode(organization_id)
241        );
242        let mut local_var_req_builder =
243            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
244
245        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
246
247        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
248    }
249
250    async fn redeem_annual_upgrade_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
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            "{}/organizations/{organizationId}/billing/vnext/annual-upgrade-offer/redeem",
257            local_var_configuration.base_path,
258            organizationId = crate::apis::urlencode(organization_id)
259        );
260        let mut local_var_req_builder =
261            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
262
263        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
264
265        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
266    }
267
268    async fn redeem_churn_mitigation_offer<'a>(
269        &self,
270        organization_id: &'a str,
271    ) -> Result<(), Error> {
272        let local_var_configuration = &self.configuration;
273
274        let local_var_client = &local_var_configuration.client;
275
276        let local_var_uri_str = format!(
277            "{}/organizations/{organizationId}/billing/vnext/churn-mitigation-offer/redeem",
278            local_var_configuration.base_path,
279            organizationId = crate::apis::urlencode(organization_id)
280        );
281        let mut local_var_req_builder =
282            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
283
284        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
285
286        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
287    }
288
289    async fn restart_subscription<'a>(
290        &self,
291        organization_id: &'a str,
292        restart_subscription_request: Option<models::RestartSubscriptionRequest>,
293    ) -> Result<(), Error> {
294        let local_var_configuration = &self.configuration;
295
296        let local_var_client = &local_var_configuration.client;
297
298        let local_var_uri_str = format!(
299            "{}/organizations/{organizationId}/billing/vnext/subscription/restart",
300            local_var_configuration.base_path,
301            organizationId = crate::apis::urlencode(organization_id)
302        );
303        let mut local_var_req_builder =
304            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
305
306        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
307        local_var_req_builder = local_var_req_builder.json(&restart_subscription_request);
308
309        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
310    }
311
312    async fn update_billing_address<'a>(
313        &self,
314        organization_id: &'a str,
315        billing_address_request: Option<models::BillingAddressRequest>,
316    ) -> Result<(), Error> {
317        let local_var_configuration = &self.configuration;
318
319        let local_var_client = &local_var_configuration.client;
320
321        let local_var_uri_str = format!(
322            "{}/organizations/{organizationId}/billing/vnext/address",
323            local_var_configuration.base_path,
324            organizationId = crate::apis::urlencode(organization_id)
325        );
326        let mut local_var_req_builder =
327            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
328
329        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
330        local_var_req_builder = local_var_req_builder.json(&billing_address_request);
331
332        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
333    }
334
335    async fn update_payment_method<'a>(
336        &self,
337        organization_id: &'a str,
338        tokenized_payment_method_request: Option<models::TokenizedPaymentMethodRequest>,
339    ) -> Result<(), Error> {
340        let local_var_configuration = &self.configuration;
341
342        let local_var_client = &local_var_configuration.client;
343
344        let local_var_uri_str = format!(
345            "{}/organizations/{organizationId}/billing/vnext/payment-method",
346            local_var_configuration.base_path,
347            organizationId = crate::apis::urlencode(organization_id)
348        );
349        let mut local_var_req_builder =
350            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
351
352        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
353        local_var_req_builder = local_var_req_builder.json(&tokenized_payment_method_request);
354
355        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
356    }
357}