Skip to main content

bitwarden_api_api/apis/
organization_subscriptions_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 OrganizationSubscriptionsApi: Send + Sync {
29    /// PUT /organizations/{organizationId}/billing/subscription/privileged-controls
30    /// Adds or removes the given number of Privileged Controls seats from the organization's
31    /// current count and sets the autoscale limit.
32    async fn change_privileged_controls_seats<'a>(
33        &self,
34        organization_id: uuid::Uuid,
35        privileged_controls_seats_request: models::PrivilegedControlsSeatsRequest,
36    ) -> Result<(), Error>;
37
38    /// GET /organizations/{organizationId}/billing/subscription/preview
39    /// Previews the organization's upcoming subscription renewal.
40    async fn get_organization_subscription_preview<'a>(
41        &self,
42        organization_id: uuid::Uuid,
43    ) -> Result<models::SubscriptionPreview, Error>;
44
45    /// POST /organizations/{organizationId}/billing/subscription/plan-change/preview
46    /// Previews the cost of changing the organization's plan.
47    async fn preview_organization_plan_change<'a>(
48        &self,
49        organization_id: uuid::Uuid,
50        preview_organization_plan_change_request: models::PreviewOrganizationPlanChangeRequest,
51    ) -> Result<models::InvoicePreview, Error>;
52
53    /// POST /organizations/{organizationId}/billing/subscription/restart/preview
54    /// Previews the cost of restarting the organization's canceled subscription.
55    async fn preview_organization_restart<'a>(
56        &self,
57        organization_id: uuid::Uuid,
58        preview_organization_restart_request: models::PreviewOrganizationRestartRequest,
59    ) -> Result<models::InvoicePreview, Error>;
60
61    /// POST /organizations/billing/subscription/purchase/preview
62    /// Previews the invoice for purchasing an organization subscription.
63    async fn preview_organization_subscription_purchase<'a>(
64        &self,
65        preview_organization_subscription_purchase_request: models::PreviewOrganizationSubscriptionPurchaseRequest,
66    ) -> Result<models::InvoicePreview, Error>;
67
68    /// POST /organizations/{organizationId}/billing/subscription/privileged-controls/purchase
69    /// Purchases Privileged Controls seats for an organization that does not have them yet.
70    async fn purchase_privileged_controls<'a>(
71        &self,
72        organization_id: uuid::Uuid,
73        purchase_privileged_controls_request: models::PurchasePrivilegedControlsRequest,
74    ) -> Result<(), Error>;
75
76    /// DELETE /organizations/{organizationId}/billing/subscription/privileged-controls
77    /// Removes Privileged Controls from the organization's subscription.
78    async fn remove_privileged_controls<'a>(
79        &self,
80        organization_id: uuid::Uuid,
81    ) -> Result<(), Error>;
82}
83
84pub struct OrganizationSubscriptionsApiClient {
85    configuration: Arc<configuration::Configuration>,
86}
87
88impl OrganizationSubscriptionsApiClient {
89    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
90        Self { configuration }
91    }
92}
93
94#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
95#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
96impl OrganizationSubscriptionsApi for OrganizationSubscriptionsApiClient {
97    /// Adds or removes the given number of Privileged Controls seats from the organization's
98    /// current count and sets the autoscale limit.
99    async fn change_privileged_controls_seats<'a>(
100        &self,
101        organization_id: uuid::Uuid,
102        privileged_controls_seats_request: models::PrivilegedControlsSeatsRequest,
103    ) -> Result<(), Error> {
104        let local_var_configuration = &self.configuration;
105
106        let local_var_client = &local_var_configuration.client;
107
108        let local_var_uri_str = format!(
109            "{}/organizations/{organizationId}/billing/subscription/privileged-controls",
110            local_var_configuration.base_path,
111            organizationId = organization_id
112        );
113        let mut local_var_req_builder =
114            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
115
116        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
117        local_var_req_builder = local_var_req_builder.json(&privileged_controls_seats_request);
118
119        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
120    }
121
122    /// Previews the organization's upcoming subscription renewal.
123    async fn get_organization_subscription_preview<'a>(
124        &self,
125        organization_id: uuid::Uuid,
126    ) -> Result<models::SubscriptionPreview, Error> {
127        let local_var_configuration = &self.configuration;
128
129        let local_var_client = &local_var_configuration.client;
130
131        let local_var_uri_str = format!(
132            "{}/organizations/{organizationId}/billing/subscription/preview",
133            local_var_configuration.base_path,
134            organizationId = organization_id
135        );
136        let mut local_var_req_builder =
137            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
138
139        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
140
141        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
142    }
143
144    /// Previews the cost of changing the organization's plan.
145    async fn preview_organization_plan_change<'a>(
146        &self,
147        organization_id: uuid::Uuid,
148        preview_organization_plan_change_request: models::PreviewOrganizationPlanChangeRequest,
149    ) -> Result<models::InvoicePreview, Error> {
150        let local_var_configuration = &self.configuration;
151
152        let local_var_client = &local_var_configuration.client;
153
154        let local_var_uri_str = format!(
155            "{}/organizations/{organizationId}/billing/subscription/plan-change/preview",
156            local_var_configuration.base_path,
157            organizationId = organization_id
158        );
159        let mut local_var_req_builder =
160            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
161
162        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
163        local_var_req_builder =
164            local_var_req_builder.json(&preview_organization_plan_change_request);
165
166        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
167    }
168
169    /// Previews the cost of restarting the organization's canceled subscription.
170    async fn preview_organization_restart<'a>(
171        &self,
172        organization_id: uuid::Uuid,
173        preview_organization_restart_request: models::PreviewOrganizationRestartRequest,
174    ) -> Result<models::InvoicePreview, Error> {
175        let local_var_configuration = &self.configuration;
176
177        let local_var_client = &local_var_configuration.client;
178
179        let local_var_uri_str = format!(
180            "{}/organizations/{organizationId}/billing/subscription/restart/preview",
181            local_var_configuration.base_path,
182            organizationId = organization_id
183        );
184        let mut local_var_req_builder =
185            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
186
187        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
188        local_var_req_builder = local_var_req_builder.json(&preview_organization_restart_request);
189
190        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
191    }
192
193    /// Previews the invoice for purchasing an organization subscription.
194    async fn preview_organization_subscription_purchase<'a>(
195        &self,
196        preview_organization_subscription_purchase_request: models::PreviewOrganizationSubscriptionPurchaseRequest,
197    ) -> Result<models::InvoicePreview, Error> {
198        let local_var_configuration = &self.configuration;
199
200        let local_var_client = &local_var_configuration.client;
201
202        let local_var_uri_str = format!(
203            "{}/organizations/billing/subscription/purchase/preview",
204            local_var_configuration.base_path
205        );
206        let mut local_var_req_builder =
207            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
208
209        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
210        local_var_req_builder =
211            local_var_req_builder.json(&preview_organization_subscription_purchase_request);
212
213        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
214    }
215
216    /// Purchases Privileged Controls seats for an organization that does not have them yet.
217    async fn purchase_privileged_controls<'a>(
218        &self,
219        organization_id: uuid::Uuid,
220        purchase_privileged_controls_request: models::PurchasePrivilegedControlsRequest,
221    ) -> Result<(), Error> {
222        let local_var_configuration = &self.configuration;
223
224        let local_var_client = &local_var_configuration.client;
225
226        let local_var_uri_str = format!(
227            "{}/organizations/{organizationId}/billing/subscription/privileged-controls/purchase",
228            local_var_configuration.base_path,
229            organizationId = organization_id
230        );
231        let mut local_var_req_builder =
232            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
233
234        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
235        local_var_req_builder = local_var_req_builder.json(&purchase_privileged_controls_request);
236
237        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
238    }
239
240    /// Removes Privileged Controls from the organization's subscription.
241    async fn remove_privileged_controls<'a>(
242        &self,
243        organization_id: uuid::Uuid,
244    ) -> Result<(), Error> {
245        let local_var_configuration = &self.configuration;
246
247        let local_var_client = &local_var_configuration.client;
248
249        let local_var_uri_str = format!(
250            "{}/organizations/{organizationId}/billing/subscription/privileged-controls",
251            local_var_configuration.base_path,
252            organizationId = organization_id
253        );
254        let mut local_var_req_builder =
255            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
256
257        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
258
259        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
260    }
261}