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/address
37    async fn get_billing_address<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
38
39    /// GET /organizations/{organizationId}/billing/vnext/churn-mitigation-offer
40    async fn get_churn_mitigation_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
41
42    /// GET /organizations/{organizationId}/billing/vnext/credit
43    async fn get_credit<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
44
45    /// GET /organizations/{organizationId}/billing/vnext/metadata
46    async fn get_metadata<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
47
48    /// GET /organizations/{organizationId}/billing/vnext/payment-method
49    async fn get_payment_method<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
50
51    /// GET /organizations/{organizationId}/billing/vnext/warnings
52    async fn get_warnings<'a>(&self, organization_id: &'a str) -> Result<(), Error>;
53
54    /// POST /organizations/{organizationId}/billing/vnext/churn-mitigation-offer/redeem
55    async fn redeem_churn_mitigation_offer<'a>(
56        &self,
57        organization_id: &'a str,
58    ) -> Result<(), Error>;
59
60    /// POST /organizations/{organizationId}/billing/vnext/subscription/restart
61    async fn restart_subscription<'a>(
62        &self,
63        organization_id: &'a str,
64        restart_subscription_request: Option<models::RestartSubscriptionRequest>,
65    ) -> Result<(), Error>;
66
67    /// PUT /organizations/{organizationId}/billing/vnext/address
68    async fn update_billing_address<'a>(
69        &self,
70        organization_id: &'a str,
71        billing_address_request: Option<models::BillingAddressRequest>,
72    ) -> Result<(), Error>;
73
74    /// PUT /organizations/{organizationId}/billing/vnext/payment-method
75    async fn update_payment_method<'a>(
76        &self,
77        organization_id: &'a str,
78        tokenized_payment_method_request: Option<models::TokenizedPaymentMethodRequest>,
79    ) -> Result<(), Error>;
80}
81
82pub struct OrganizationBillingVNextApiClient {
83    configuration: Arc<configuration::Configuration>,
84}
85
86impl OrganizationBillingVNextApiClient {
87    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
88        Self { configuration }
89    }
90}
91
92#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
93#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
94impl OrganizationBillingVNextApi for OrganizationBillingVNextApiClient {
95    async fn add_credit_via_bit_pay<'a>(
96        &self,
97        organization_id: &'a str,
98        bit_pay_credit_request: Option<models::BitPayCreditRequest>,
99    ) -> Result<(), Error> {
100        let local_var_configuration = &self.configuration;
101
102        let local_var_client = &local_var_configuration.client;
103
104        let local_var_uri_str = format!(
105            "{}/organizations/{organizationId}/billing/vnext/credit/bitpay",
106            local_var_configuration.base_path,
107            organizationId = crate::apis::urlencode(organization_id)
108        );
109        let mut local_var_req_builder =
110            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
111
112        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
113        local_var_req_builder = local_var_req_builder.json(&bit_pay_credit_request);
114
115        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
116    }
117
118    async fn get_billing_address<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
119        let local_var_configuration = &self.configuration;
120
121        let local_var_client = &local_var_configuration.client;
122
123        let local_var_uri_str = format!(
124            "{}/organizations/{organizationId}/billing/vnext/address",
125            local_var_configuration.base_path,
126            organizationId = crate::apis::urlencode(organization_id)
127        );
128        let mut local_var_req_builder =
129            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
130
131        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
132
133        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
134    }
135
136    async fn get_churn_mitigation_offer<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
137        let local_var_configuration = &self.configuration;
138
139        let local_var_client = &local_var_configuration.client;
140
141        let local_var_uri_str = format!(
142            "{}/organizations/{organizationId}/billing/vnext/churn-mitigation-offer",
143            local_var_configuration.base_path,
144            organizationId = crate::apis::urlencode(organization_id)
145        );
146        let mut local_var_req_builder =
147            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
148
149        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
150
151        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
152    }
153
154    async fn get_credit<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
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/vnext/credit",
161            local_var_configuration.base_path,
162            organizationId = crate::apis::urlencode(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        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
168
169        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
170    }
171
172    async fn get_metadata<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
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            "{}/organizations/{organizationId}/billing/vnext/metadata",
179            local_var_configuration.base_path,
180            organizationId = crate::apis::urlencode(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        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
188    }
189
190    async fn get_payment_method<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
191        let local_var_configuration = &self.configuration;
192
193        let local_var_client = &local_var_configuration.client;
194
195        let local_var_uri_str = format!(
196            "{}/organizations/{organizationId}/billing/vnext/payment-method",
197            local_var_configuration.base_path,
198            organizationId = crate::apis::urlencode(organization_id)
199        );
200        let mut local_var_req_builder =
201            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
202
203        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
204
205        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
206    }
207
208    async fn get_warnings<'a>(&self, organization_id: &'a str) -> Result<(), Error> {
209        let local_var_configuration = &self.configuration;
210
211        let local_var_client = &local_var_configuration.client;
212
213        let local_var_uri_str = format!(
214            "{}/organizations/{organizationId}/billing/vnext/warnings",
215            local_var_configuration.base_path,
216            organizationId = crate::apis::urlencode(organization_id)
217        );
218        let mut local_var_req_builder =
219            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
220
221        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
222
223        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
224    }
225
226    async fn redeem_churn_mitigation_offer<'a>(
227        &self,
228        organization_id: &'a str,
229    ) -> Result<(), Error> {
230        let local_var_configuration = &self.configuration;
231
232        let local_var_client = &local_var_configuration.client;
233
234        let local_var_uri_str = format!(
235            "{}/organizations/{organizationId}/billing/vnext/churn-mitigation-offer/redeem",
236            local_var_configuration.base_path,
237            organizationId = crate::apis::urlencode(organization_id)
238        );
239        let mut local_var_req_builder =
240            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
241
242        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
243
244        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
245    }
246
247    async fn restart_subscription<'a>(
248        &self,
249        organization_id: &'a str,
250        restart_subscription_request: Option<models::RestartSubscriptionRequest>,
251    ) -> Result<(), Error> {
252        let local_var_configuration = &self.configuration;
253
254        let local_var_client = &local_var_configuration.client;
255
256        let local_var_uri_str = format!(
257            "{}/organizations/{organizationId}/billing/vnext/subscription/restart",
258            local_var_configuration.base_path,
259            organizationId = crate::apis::urlencode(organization_id)
260        );
261        let mut local_var_req_builder =
262            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
263
264        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
265        local_var_req_builder = local_var_req_builder.json(&restart_subscription_request);
266
267        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
268    }
269
270    async fn update_billing_address<'a>(
271        &self,
272        organization_id: &'a str,
273        billing_address_request: Option<models::BillingAddressRequest>,
274    ) -> Result<(), Error> {
275        let local_var_configuration = &self.configuration;
276
277        let local_var_client = &local_var_configuration.client;
278
279        let local_var_uri_str = format!(
280            "{}/organizations/{organizationId}/billing/vnext/address",
281            local_var_configuration.base_path,
282            organizationId = crate::apis::urlencode(organization_id)
283        );
284        let mut local_var_req_builder =
285            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
286
287        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
288        local_var_req_builder = local_var_req_builder.json(&billing_address_request);
289
290        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
291    }
292
293    async fn update_payment_method<'a>(
294        &self,
295        organization_id: &'a str,
296        tokenized_payment_method_request: Option<models::TokenizedPaymentMethodRequest>,
297    ) -> Result<(), Error> {
298        let local_var_configuration = &self.configuration;
299
300        let local_var_client = &local_var_configuration.client;
301
302        let local_var_uri_str = format!(
303            "{}/organizations/{organizationId}/billing/vnext/payment-method",
304            local_var_configuration.base_path,
305            organizationId = crate::apis::urlencode(organization_id)
306        );
307        let mut local_var_req_builder =
308            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
309
310        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
311        local_var_req_builder = local_var_req_builder.json(&tokenized_payment_method_request);
312
313        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
314    }
315}