bitwarden_api_api/apis/
self_hosted_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::{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 SelfHostedBillingApi: Send + Sync {
29    /// GET /organizations/{organizationId}/billing/vnext/self-host/metadata
30    async fn get_metadata<'a>(
31        &self,
32        organization_id: &'a str,
33        id: Option<uuid::Uuid>,
34        identifier: Option<&'a str>,
35        name: Option<&'a str>,
36        business_name: Option<&'a str>,
37        business_address1: Option<&'a str>,
38        business_address2: Option<&'a str>,
39        business_address3: Option<&'a str>,
40        business_country: Option<&'a str>,
41        business_tax_number: Option<&'a str>,
42        billing_email: Option<&'a str>,
43        plan: Option<&'a str>,
44        plan_type: Option<models::PlanType>,
45        seats: Option<i32>,
46        max_collections: Option<i32>,
47        use_policies: Option<bool>,
48        use_sso: Option<bool>,
49        use_key_connector: Option<bool>,
50        use_scim: Option<bool>,
51        use_groups: Option<bool>,
52        use_directory: Option<bool>,
53        use_events: Option<bool>,
54        use_totp: Option<bool>,
55        use2fa: Option<bool>,
56        use_api: Option<bool>,
57        use_reset_password: Option<bool>,
58        use_secrets_manager: Option<bool>,
59        self_host: Option<bool>,
60        users_get_premium: Option<bool>,
61        use_custom_permissions: Option<bool>,
62        storage: Option<i64>,
63        max_storage_gb: Option<i32>,
64        gateway: Option<models::GatewayType>,
65        gateway_customer_id: Option<&'a str>,
66        gateway_subscription_id: Option<&'a str>,
67        reference_data: Option<&'a str>,
68        enabled: Option<bool>,
69        license_key: Option<&'a str>,
70        public_key: Option<&'a str>,
71        private_key: Option<&'a str>,
72        two_factor_providers: Option<&'a str>,
73        expiration_date: Option<String>,
74        creation_date: Option<String>,
75        revision_date: Option<String>,
76        max_autoscale_seats: Option<i32>,
77        owners_notified_of_autoscaling: Option<String>,
78        status: Option<models::OrganizationStatusType>,
79        use_password_manager: Option<bool>,
80        sm_seats: Option<i32>,
81        sm_service_accounts: Option<i32>,
82        max_autoscale_sm_seats: Option<i32>,
83        max_autoscale_sm_service_accounts: Option<i32>,
84        limit_collection_creation: Option<bool>,
85        limit_collection_deletion: Option<bool>,
86        allow_admin_access_to_all_collection_items: Option<bool>,
87        limit_item_deletion: Option<bool>,
88        use_risk_insights: Option<bool>,
89        use_organization_domains: Option<bool>,
90        use_admin_sponsored_families: Option<bool>,
91        sync_seats: Option<bool>,
92        use_automatic_user_confirmation: Option<bool>,
93    ) -> Result<(), Error<GetMetadataError>>;
94}
95
96pub struct SelfHostedBillingApiClient {
97    configuration: Arc<configuration::Configuration>,
98}
99
100impl SelfHostedBillingApiClient {
101    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
102        Self { configuration }
103    }
104}
105
106#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
107#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
108impl SelfHostedBillingApi for SelfHostedBillingApiClient {
109    async fn get_metadata<'a>(
110        &self,
111        organization_id: &'a str,
112        id: Option<uuid::Uuid>,
113        identifier: Option<&'a str>,
114        name: Option<&'a str>,
115        business_name: Option<&'a str>,
116        business_address1: Option<&'a str>,
117        business_address2: Option<&'a str>,
118        business_address3: Option<&'a str>,
119        business_country: Option<&'a str>,
120        business_tax_number: Option<&'a str>,
121        billing_email: Option<&'a str>,
122        plan: Option<&'a str>,
123        plan_type: Option<models::PlanType>,
124        seats: Option<i32>,
125        max_collections: Option<i32>,
126        use_policies: Option<bool>,
127        use_sso: Option<bool>,
128        use_key_connector: Option<bool>,
129        use_scim: Option<bool>,
130        use_groups: Option<bool>,
131        use_directory: Option<bool>,
132        use_events: Option<bool>,
133        use_totp: Option<bool>,
134        use2fa: Option<bool>,
135        use_api: Option<bool>,
136        use_reset_password: Option<bool>,
137        use_secrets_manager: Option<bool>,
138        self_host: Option<bool>,
139        users_get_premium: Option<bool>,
140        use_custom_permissions: Option<bool>,
141        storage: Option<i64>,
142        max_storage_gb: Option<i32>,
143        gateway: Option<models::GatewayType>,
144        gateway_customer_id: Option<&'a str>,
145        gateway_subscription_id: Option<&'a str>,
146        reference_data: Option<&'a str>,
147        enabled: Option<bool>,
148        license_key: Option<&'a str>,
149        public_key: Option<&'a str>,
150        private_key: Option<&'a str>,
151        two_factor_providers: Option<&'a str>,
152        expiration_date: Option<String>,
153        creation_date: Option<String>,
154        revision_date: Option<String>,
155        max_autoscale_seats: Option<i32>,
156        owners_notified_of_autoscaling: Option<String>,
157        status: Option<models::OrganizationStatusType>,
158        use_password_manager: Option<bool>,
159        sm_seats: Option<i32>,
160        sm_service_accounts: Option<i32>,
161        max_autoscale_sm_seats: Option<i32>,
162        max_autoscale_sm_service_accounts: Option<i32>,
163        limit_collection_creation: Option<bool>,
164        limit_collection_deletion: Option<bool>,
165        allow_admin_access_to_all_collection_items: Option<bool>,
166        limit_item_deletion: Option<bool>,
167        use_risk_insights: Option<bool>,
168        use_organization_domains: Option<bool>,
169        use_admin_sponsored_families: Option<bool>,
170        sync_seats: Option<bool>,
171        use_automatic_user_confirmation: Option<bool>,
172    ) -> Result<(), Error<GetMetadataError>> {
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/self-host/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        if let Some(ref param_value) = id {
186            local_var_req_builder =
187                local_var_req_builder.query(&[("id", &param_value.to_string())]);
188        }
189        if let Some(ref param_value) = identifier {
190            local_var_req_builder =
191                local_var_req_builder.query(&[("identifier", &param_value.to_string())]);
192        }
193        if let Some(ref param_value) = name {
194            local_var_req_builder =
195                local_var_req_builder.query(&[("name", &param_value.to_string())]);
196        }
197        if let Some(ref param_value) = business_name {
198            local_var_req_builder =
199                local_var_req_builder.query(&[("businessName", &param_value.to_string())]);
200        }
201        if let Some(ref param_value) = business_address1 {
202            local_var_req_builder =
203                local_var_req_builder.query(&[("businessAddress1", &param_value.to_string())]);
204        }
205        if let Some(ref param_value) = business_address2 {
206            local_var_req_builder =
207                local_var_req_builder.query(&[("businessAddress2", &param_value.to_string())]);
208        }
209        if let Some(ref param_value) = business_address3 {
210            local_var_req_builder =
211                local_var_req_builder.query(&[("businessAddress3", &param_value.to_string())]);
212        }
213        if let Some(ref param_value) = business_country {
214            local_var_req_builder =
215                local_var_req_builder.query(&[("businessCountry", &param_value.to_string())]);
216        }
217        if let Some(ref param_value) = business_tax_number {
218            local_var_req_builder =
219                local_var_req_builder.query(&[("businessTaxNumber", &param_value.to_string())]);
220        }
221        if let Some(ref param_value) = billing_email {
222            local_var_req_builder =
223                local_var_req_builder.query(&[("billingEmail", &param_value.to_string())]);
224        }
225        if let Some(ref param_value) = plan {
226            local_var_req_builder =
227                local_var_req_builder.query(&[("plan", &param_value.to_string())]);
228        }
229        if let Some(ref param_value) = plan_type {
230            local_var_req_builder =
231                local_var_req_builder.query(&[("planType", &param_value.to_string())]);
232        }
233        if let Some(ref param_value) = seats {
234            local_var_req_builder =
235                local_var_req_builder.query(&[("seats", &param_value.to_string())]);
236        }
237        if let Some(ref param_value) = max_collections {
238            local_var_req_builder =
239                local_var_req_builder.query(&[("maxCollections", &param_value.to_string())]);
240        }
241        if let Some(ref param_value) = use_policies {
242            local_var_req_builder =
243                local_var_req_builder.query(&[("usePolicies", &param_value.to_string())]);
244        }
245        if let Some(ref param_value) = use_sso {
246            local_var_req_builder =
247                local_var_req_builder.query(&[("useSso", &param_value.to_string())]);
248        }
249        if let Some(ref param_value) = use_key_connector {
250            local_var_req_builder =
251                local_var_req_builder.query(&[("useKeyConnector", &param_value.to_string())]);
252        }
253        if let Some(ref param_value) = use_scim {
254            local_var_req_builder =
255                local_var_req_builder.query(&[("useScim", &param_value.to_string())]);
256        }
257        if let Some(ref param_value) = use_groups {
258            local_var_req_builder =
259                local_var_req_builder.query(&[("useGroups", &param_value.to_string())]);
260        }
261        if let Some(ref param_value) = use_directory {
262            local_var_req_builder =
263                local_var_req_builder.query(&[("useDirectory", &param_value.to_string())]);
264        }
265        if let Some(ref param_value) = use_events {
266            local_var_req_builder =
267                local_var_req_builder.query(&[("useEvents", &param_value.to_string())]);
268        }
269        if let Some(ref param_value) = use_totp {
270            local_var_req_builder =
271                local_var_req_builder.query(&[("useTotp", &param_value.to_string())]);
272        }
273        if let Some(ref param_value) = use2fa {
274            local_var_req_builder =
275                local_var_req_builder.query(&[("use2fa", &param_value.to_string())]);
276        }
277        if let Some(ref param_value) = use_api {
278            local_var_req_builder =
279                local_var_req_builder.query(&[("useApi", &param_value.to_string())]);
280        }
281        if let Some(ref param_value) = use_reset_password {
282            local_var_req_builder =
283                local_var_req_builder.query(&[("useResetPassword", &param_value.to_string())]);
284        }
285        if let Some(ref param_value) = use_secrets_manager {
286            local_var_req_builder =
287                local_var_req_builder.query(&[("useSecretsManager", &param_value.to_string())]);
288        }
289        if let Some(ref param_value) = self_host {
290            local_var_req_builder =
291                local_var_req_builder.query(&[("selfHost", &param_value.to_string())]);
292        }
293        if let Some(ref param_value) = users_get_premium {
294            local_var_req_builder =
295                local_var_req_builder.query(&[("usersGetPremium", &param_value.to_string())]);
296        }
297        if let Some(ref param_value) = use_custom_permissions {
298            local_var_req_builder =
299                local_var_req_builder.query(&[("useCustomPermissions", &param_value.to_string())]);
300        }
301        if let Some(ref param_value) = storage {
302            local_var_req_builder =
303                local_var_req_builder.query(&[("storage", &param_value.to_string())]);
304        }
305        if let Some(ref param_value) = max_storage_gb {
306            local_var_req_builder =
307                local_var_req_builder.query(&[("maxStorageGb", &param_value.to_string())]);
308        }
309        if let Some(ref param_value) = gateway {
310            local_var_req_builder =
311                local_var_req_builder.query(&[("gateway", &param_value.to_string())]);
312        }
313        if let Some(ref param_value) = gateway_customer_id {
314            local_var_req_builder =
315                local_var_req_builder.query(&[("gatewayCustomerId", &param_value.to_string())]);
316        }
317        if let Some(ref param_value) = gateway_subscription_id {
318            local_var_req_builder =
319                local_var_req_builder.query(&[("gatewaySubscriptionId", &param_value.to_string())]);
320        }
321        if let Some(ref param_value) = reference_data {
322            local_var_req_builder =
323                local_var_req_builder.query(&[("referenceData", &param_value.to_string())]);
324        }
325        if let Some(ref param_value) = enabled {
326            local_var_req_builder =
327                local_var_req_builder.query(&[("enabled", &param_value.to_string())]);
328        }
329        if let Some(ref param_value) = license_key {
330            local_var_req_builder =
331                local_var_req_builder.query(&[("licenseKey", &param_value.to_string())]);
332        }
333        if let Some(ref param_value) = public_key {
334            local_var_req_builder =
335                local_var_req_builder.query(&[("publicKey", &param_value.to_string())]);
336        }
337        if let Some(ref param_value) = private_key {
338            local_var_req_builder =
339                local_var_req_builder.query(&[("privateKey", &param_value.to_string())]);
340        }
341        if let Some(ref param_value) = two_factor_providers {
342            local_var_req_builder =
343                local_var_req_builder.query(&[("twoFactorProviders", &param_value.to_string())]);
344        }
345        if let Some(ref param_value) = expiration_date {
346            local_var_req_builder =
347                local_var_req_builder.query(&[("expirationDate", &param_value.to_string())]);
348        }
349        if let Some(ref param_value) = creation_date {
350            local_var_req_builder =
351                local_var_req_builder.query(&[("creationDate", &param_value.to_string())]);
352        }
353        if let Some(ref param_value) = revision_date {
354            local_var_req_builder =
355                local_var_req_builder.query(&[("revisionDate", &param_value.to_string())]);
356        }
357        if let Some(ref param_value) = max_autoscale_seats {
358            local_var_req_builder =
359                local_var_req_builder.query(&[("maxAutoscaleSeats", &param_value.to_string())]);
360        }
361        if let Some(ref param_value) = owners_notified_of_autoscaling {
362            local_var_req_builder = local_var_req_builder
363                .query(&[("ownersNotifiedOfAutoscaling", &param_value.to_string())]);
364        }
365        if let Some(ref param_value) = status {
366            local_var_req_builder =
367                local_var_req_builder.query(&[("status", &param_value.to_string())]);
368        }
369        if let Some(ref param_value) = use_password_manager {
370            local_var_req_builder =
371                local_var_req_builder.query(&[("usePasswordManager", &param_value.to_string())]);
372        }
373        if let Some(ref param_value) = sm_seats {
374            local_var_req_builder =
375                local_var_req_builder.query(&[("smSeats", &param_value.to_string())]);
376        }
377        if let Some(ref param_value) = sm_service_accounts {
378            local_var_req_builder =
379                local_var_req_builder.query(&[("smServiceAccounts", &param_value.to_string())]);
380        }
381        if let Some(ref param_value) = max_autoscale_sm_seats {
382            local_var_req_builder =
383                local_var_req_builder.query(&[("maxAutoscaleSmSeats", &param_value.to_string())]);
384        }
385        if let Some(ref param_value) = max_autoscale_sm_service_accounts {
386            local_var_req_builder = local_var_req_builder
387                .query(&[("maxAutoscaleSmServiceAccounts", &param_value.to_string())]);
388        }
389        if let Some(ref param_value) = limit_collection_creation {
390            local_var_req_builder = local_var_req_builder
391                .query(&[("limitCollectionCreation", &param_value.to_string())]);
392        }
393        if let Some(ref param_value) = limit_collection_deletion {
394            local_var_req_builder = local_var_req_builder
395                .query(&[("limitCollectionDeletion", &param_value.to_string())]);
396        }
397        if let Some(ref param_value) = allow_admin_access_to_all_collection_items {
398            local_var_req_builder = local_var_req_builder.query(&[(
399                "allowAdminAccessToAllCollectionItems",
400                &param_value.to_string(),
401            )]);
402        }
403        if let Some(ref param_value) = limit_item_deletion {
404            local_var_req_builder =
405                local_var_req_builder.query(&[("limitItemDeletion", &param_value.to_string())]);
406        }
407        if let Some(ref param_value) = use_risk_insights {
408            local_var_req_builder =
409                local_var_req_builder.query(&[("useRiskInsights", &param_value.to_string())]);
410        }
411        if let Some(ref param_value) = use_organization_domains {
412            local_var_req_builder = local_var_req_builder
413                .query(&[("useOrganizationDomains", &param_value.to_string())]);
414        }
415        if let Some(ref param_value) = use_admin_sponsored_families {
416            local_var_req_builder = local_var_req_builder
417                .query(&[("useAdminSponsoredFamilies", &param_value.to_string())]);
418        }
419        if let Some(ref param_value) = sync_seats {
420            local_var_req_builder =
421                local_var_req_builder.query(&[("syncSeats", &param_value.to_string())]);
422        }
423        if let Some(ref param_value) = use_automatic_user_confirmation {
424            local_var_req_builder = local_var_req_builder
425                .query(&[("useAutomaticUserConfirmation", &param_value.to_string())]);
426        }
427        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
428            local_var_req_builder = local_var_req_builder
429                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
430        }
431        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
432            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
433        };
434
435        let local_var_req = local_var_req_builder.build()?;
436        let local_var_resp = local_var_client.execute(local_var_req).await?;
437
438        let local_var_status = local_var_resp.status();
439        let local_var_content = local_var_resp.text().await?;
440
441        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
442            Ok(())
443        } else {
444            let local_var_entity: Option<GetMetadataError> =
445                serde_json::from_str(&local_var_content).ok();
446            let local_var_error = ResponseContent {
447                status: local_var_status,
448                content: local_var_content,
449                entity: local_var_entity,
450            };
451            Err(Error::ResponseError(local_var_error))
452        }
453    }
454}
455
456/// struct for typed errors of method [`SelfHostedBillingApi::get_metadata`]
457#[derive(Debug, Clone, Serialize, Deserialize)]
458#[serde(untagged)]
459pub enum GetMetadataError {
460    UnknownValue(serde_json::Value),
461}