bitwarden_api_api/apis/
tax_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 TaxApi: Send + Sync {
29    /// POST /billing/tax/organizations/{organizationId}/subscription/plan-change
30    async fn preview_organization_subscription_plan_change_tax<'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        preview_organization_subscription_plan_change_tax_request: Option<
93            models::PreviewOrganizationSubscriptionPlanChangeTaxRequest,
94        >,
95    ) -> Result<(), Error<PreviewOrganizationSubscriptionPlanChangeTaxError>>;
96
97    /// POST /billing/tax/organizations/subscriptions/purchase
98    async fn preview_organization_subscription_purchase_tax<'a>(
99        &self,
100        preview_organization_subscription_purchase_tax_request: Option<
101            models::PreviewOrganizationSubscriptionPurchaseTaxRequest,
102        >,
103    ) -> Result<(), Error<PreviewOrganizationSubscriptionPurchaseTaxError>>;
104
105    /// PUT /billing/tax/organizations/{organizationId}/subscription/update
106    async fn preview_organization_subscription_update_tax<'a>(
107        &self,
108        organization_id: &'a str,
109        id: Option<uuid::Uuid>,
110        identifier: Option<&'a str>,
111        name: Option<&'a str>,
112        business_name: Option<&'a str>,
113        business_address1: Option<&'a str>,
114        business_address2: Option<&'a str>,
115        business_address3: Option<&'a str>,
116        business_country: Option<&'a str>,
117        business_tax_number: Option<&'a str>,
118        billing_email: Option<&'a str>,
119        plan: Option<&'a str>,
120        plan_type: Option<models::PlanType>,
121        seats: Option<i32>,
122        max_collections: Option<i32>,
123        use_policies: Option<bool>,
124        use_sso: Option<bool>,
125        use_key_connector: Option<bool>,
126        use_scim: Option<bool>,
127        use_groups: Option<bool>,
128        use_directory: Option<bool>,
129        use_events: Option<bool>,
130        use_totp: Option<bool>,
131        use2fa: Option<bool>,
132        use_api: Option<bool>,
133        use_reset_password: Option<bool>,
134        use_secrets_manager: Option<bool>,
135        self_host: Option<bool>,
136        users_get_premium: Option<bool>,
137        use_custom_permissions: Option<bool>,
138        storage: Option<i64>,
139        max_storage_gb: Option<i32>,
140        gateway: Option<models::GatewayType>,
141        gateway_customer_id: Option<&'a str>,
142        gateway_subscription_id: Option<&'a str>,
143        reference_data: Option<&'a str>,
144        enabled: Option<bool>,
145        license_key: Option<&'a str>,
146        public_key: Option<&'a str>,
147        private_key: Option<&'a str>,
148        two_factor_providers: Option<&'a str>,
149        expiration_date: Option<String>,
150        creation_date: Option<String>,
151        revision_date: Option<String>,
152        max_autoscale_seats: Option<i32>,
153        owners_notified_of_autoscaling: Option<String>,
154        status: Option<models::OrganizationStatusType>,
155        use_password_manager: Option<bool>,
156        sm_seats: Option<i32>,
157        sm_service_accounts: Option<i32>,
158        max_autoscale_sm_seats: Option<i32>,
159        max_autoscale_sm_service_accounts: Option<i32>,
160        limit_collection_creation: Option<bool>,
161        limit_collection_deletion: Option<bool>,
162        allow_admin_access_to_all_collection_items: Option<bool>,
163        limit_item_deletion: Option<bool>,
164        use_risk_insights: Option<bool>,
165        use_organization_domains: Option<bool>,
166        use_admin_sponsored_families: Option<bool>,
167        sync_seats: Option<bool>,
168        preview_organization_subscription_update_tax_request: Option<
169            models::PreviewOrganizationSubscriptionUpdateTaxRequest,
170        >,
171    ) -> Result<(), Error<PreviewOrganizationSubscriptionUpdateTaxError>>;
172
173    /// POST /billing/tax/premium/subscriptions/purchase
174    async fn preview_premium_subscription_purchase_tax<'a>(
175        &self,
176        preview_premium_subscription_purchase_tax_request: Option<
177            models::PreviewPremiumSubscriptionPurchaseTaxRequest,
178        >,
179    ) -> Result<(), Error<PreviewPremiumSubscriptionPurchaseTaxError>>;
180}
181
182pub struct TaxApiClient {
183    configuration: Arc<configuration::Configuration>,
184}
185
186impl TaxApiClient {
187    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
188        Self { configuration }
189    }
190}
191
192#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
193#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
194impl TaxApi for TaxApiClient {
195    async fn preview_organization_subscription_plan_change_tax<'a>(
196        &self,
197        organization_id: &'a str,
198        id: Option<uuid::Uuid>,
199        identifier: Option<&'a str>,
200        name: Option<&'a str>,
201        business_name: Option<&'a str>,
202        business_address1: Option<&'a str>,
203        business_address2: Option<&'a str>,
204        business_address3: Option<&'a str>,
205        business_country: Option<&'a str>,
206        business_tax_number: Option<&'a str>,
207        billing_email: Option<&'a str>,
208        plan: Option<&'a str>,
209        plan_type: Option<models::PlanType>,
210        seats: Option<i32>,
211        max_collections: Option<i32>,
212        use_policies: Option<bool>,
213        use_sso: Option<bool>,
214        use_key_connector: Option<bool>,
215        use_scim: Option<bool>,
216        use_groups: Option<bool>,
217        use_directory: Option<bool>,
218        use_events: Option<bool>,
219        use_totp: Option<bool>,
220        use2fa: Option<bool>,
221        use_api: Option<bool>,
222        use_reset_password: Option<bool>,
223        use_secrets_manager: Option<bool>,
224        self_host: Option<bool>,
225        users_get_premium: Option<bool>,
226        use_custom_permissions: Option<bool>,
227        storage: Option<i64>,
228        max_storage_gb: Option<i32>,
229        gateway: Option<models::GatewayType>,
230        gateway_customer_id: Option<&'a str>,
231        gateway_subscription_id: Option<&'a str>,
232        reference_data: Option<&'a str>,
233        enabled: Option<bool>,
234        license_key: Option<&'a str>,
235        public_key: Option<&'a str>,
236        private_key: Option<&'a str>,
237        two_factor_providers: Option<&'a str>,
238        expiration_date: Option<String>,
239        creation_date: Option<String>,
240        revision_date: Option<String>,
241        max_autoscale_seats: Option<i32>,
242        owners_notified_of_autoscaling: Option<String>,
243        status: Option<models::OrganizationStatusType>,
244        use_password_manager: Option<bool>,
245        sm_seats: Option<i32>,
246        sm_service_accounts: Option<i32>,
247        max_autoscale_sm_seats: Option<i32>,
248        max_autoscale_sm_service_accounts: Option<i32>,
249        limit_collection_creation: Option<bool>,
250        limit_collection_deletion: Option<bool>,
251        allow_admin_access_to_all_collection_items: Option<bool>,
252        limit_item_deletion: Option<bool>,
253        use_risk_insights: Option<bool>,
254        use_organization_domains: Option<bool>,
255        use_admin_sponsored_families: Option<bool>,
256        sync_seats: Option<bool>,
257        preview_organization_subscription_plan_change_tax_request: Option<
258            models::PreviewOrganizationSubscriptionPlanChangeTaxRequest,
259        >,
260    ) -> Result<(), Error<PreviewOrganizationSubscriptionPlanChangeTaxError>> {
261        let local_var_configuration = &self.configuration;
262
263        let local_var_client = &local_var_configuration.client;
264
265        let local_var_uri_str = format!(
266            "{}/billing/tax/organizations/{organizationId}/subscription/plan-change",
267            local_var_configuration.base_path,
268            organizationId = crate::apis::urlencode(organization_id)
269        );
270        let mut local_var_req_builder =
271            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
272
273        if let Some(ref param_value) = id {
274            local_var_req_builder =
275                local_var_req_builder.query(&[("id", &param_value.to_string())]);
276        }
277        if let Some(ref param_value) = identifier {
278            local_var_req_builder =
279                local_var_req_builder.query(&[("identifier", &param_value.to_string())]);
280        }
281        if let Some(ref param_value) = name {
282            local_var_req_builder =
283                local_var_req_builder.query(&[("name", &param_value.to_string())]);
284        }
285        if let Some(ref param_value) = business_name {
286            local_var_req_builder =
287                local_var_req_builder.query(&[("businessName", &param_value.to_string())]);
288        }
289        if let Some(ref param_value) = business_address1 {
290            local_var_req_builder =
291                local_var_req_builder.query(&[("businessAddress1", &param_value.to_string())]);
292        }
293        if let Some(ref param_value) = business_address2 {
294            local_var_req_builder =
295                local_var_req_builder.query(&[("businessAddress2", &param_value.to_string())]);
296        }
297        if let Some(ref param_value) = business_address3 {
298            local_var_req_builder =
299                local_var_req_builder.query(&[("businessAddress3", &param_value.to_string())]);
300        }
301        if let Some(ref param_value) = business_country {
302            local_var_req_builder =
303                local_var_req_builder.query(&[("businessCountry", &param_value.to_string())]);
304        }
305        if let Some(ref param_value) = business_tax_number {
306            local_var_req_builder =
307                local_var_req_builder.query(&[("businessTaxNumber", &param_value.to_string())]);
308        }
309        if let Some(ref param_value) = billing_email {
310            local_var_req_builder =
311                local_var_req_builder.query(&[("billingEmail", &param_value.to_string())]);
312        }
313        if let Some(ref param_value) = plan {
314            local_var_req_builder =
315                local_var_req_builder.query(&[("plan", &param_value.to_string())]);
316        }
317        if let Some(ref param_value) = plan_type {
318            local_var_req_builder =
319                local_var_req_builder.query(&[("planType", &param_value.to_string())]);
320        }
321        if let Some(ref param_value) = seats {
322            local_var_req_builder =
323                local_var_req_builder.query(&[("seats", &param_value.to_string())]);
324        }
325        if let Some(ref param_value) = max_collections {
326            local_var_req_builder =
327                local_var_req_builder.query(&[("maxCollections", &param_value.to_string())]);
328        }
329        if let Some(ref param_value) = use_policies {
330            local_var_req_builder =
331                local_var_req_builder.query(&[("usePolicies", &param_value.to_string())]);
332        }
333        if let Some(ref param_value) = use_sso {
334            local_var_req_builder =
335                local_var_req_builder.query(&[("useSso", &param_value.to_string())]);
336        }
337        if let Some(ref param_value) = use_key_connector {
338            local_var_req_builder =
339                local_var_req_builder.query(&[("useKeyConnector", &param_value.to_string())]);
340        }
341        if let Some(ref param_value) = use_scim {
342            local_var_req_builder =
343                local_var_req_builder.query(&[("useScim", &param_value.to_string())]);
344        }
345        if let Some(ref param_value) = use_groups {
346            local_var_req_builder =
347                local_var_req_builder.query(&[("useGroups", &param_value.to_string())]);
348        }
349        if let Some(ref param_value) = use_directory {
350            local_var_req_builder =
351                local_var_req_builder.query(&[("useDirectory", &param_value.to_string())]);
352        }
353        if let Some(ref param_value) = use_events {
354            local_var_req_builder =
355                local_var_req_builder.query(&[("useEvents", &param_value.to_string())]);
356        }
357        if let Some(ref param_value) = use_totp {
358            local_var_req_builder =
359                local_var_req_builder.query(&[("useTotp", &param_value.to_string())]);
360        }
361        if let Some(ref param_value) = use2fa {
362            local_var_req_builder =
363                local_var_req_builder.query(&[("use2fa", &param_value.to_string())]);
364        }
365        if let Some(ref param_value) = use_api {
366            local_var_req_builder =
367                local_var_req_builder.query(&[("useApi", &param_value.to_string())]);
368        }
369        if let Some(ref param_value) = use_reset_password {
370            local_var_req_builder =
371                local_var_req_builder.query(&[("useResetPassword", &param_value.to_string())]);
372        }
373        if let Some(ref param_value) = use_secrets_manager {
374            local_var_req_builder =
375                local_var_req_builder.query(&[("useSecretsManager", &param_value.to_string())]);
376        }
377        if let Some(ref param_value) = self_host {
378            local_var_req_builder =
379                local_var_req_builder.query(&[("selfHost", &param_value.to_string())]);
380        }
381        if let Some(ref param_value) = users_get_premium {
382            local_var_req_builder =
383                local_var_req_builder.query(&[("usersGetPremium", &param_value.to_string())]);
384        }
385        if let Some(ref param_value) = use_custom_permissions {
386            local_var_req_builder =
387                local_var_req_builder.query(&[("useCustomPermissions", &param_value.to_string())]);
388        }
389        if let Some(ref param_value) = storage {
390            local_var_req_builder =
391                local_var_req_builder.query(&[("storage", &param_value.to_string())]);
392        }
393        if let Some(ref param_value) = max_storage_gb {
394            local_var_req_builder =
395                local_var_req_builder.query(&[("maxStorageGb", &param_value.to_string())]);
396        }
397        if let Some(ref param_value) = gateway {
398            local_var_req_builder =
399                local_var_req_builder.query(&[("gateway", &param_value.to_string())]);
400        }
401        if let Some(ref param_value) = gateway_customer_id {
402            local_var_req_builder =
403                local_var_req_builder.query(&[("gatewayCustomerId", &param_value.to_string())]);
404        }
405        if let Some(ref param_value) = gateway_subscription_id {
406            local_var_req_builder =
407                local_var_req_builder.query(&[("gatewaySubscriptionId", &param_value.to_string())]);
408        }
409        if let Some(ref param_value) = reference_data {
410            local_var_req_builder =
411                local_var_req_builder.query(&[("referenceData", &param_value.to_string())]);
412        }
413        if let Some(ref param_value) = enabled {
414            local_var_req_builder =
415                local_var_req_builder.query(&[("enabled", &param_value.to_string())]);
416        }
417        if let Some(ref param_value) = license_key {
418            local_var_req_builder =
419                local_var_req_builder.query(&[("licenseKey", &param_value.to_string())]);
420        }
421        if let Some(ref param_value) = public_key {
422            local_var_req_builder =
423                local_var_req_builder.query(&[("publicKey", &param_value.to_string())]);
424        }
425        if let Some(ref param_value) = private_key {
426            local_var_req_builder =
427                local_var_req_builder.query(&[("privateKey", &param_value.to_string())]);
428        }
429        if let Some(ref param_value) = two_factor_providers {
430            local_var_req_builder =
431                local_var_req_builder.query(&[("twoFactorProviders", &param_value.to_string())]);
432        }
433        if let Some(ref param_value) = expiration_date {
434            local_var_req_builder =
435                local_var_req_builder.query(&[("expirationDate", &param_value.to_string())]);
436        }
437        if let Some(ref param_value) = creation_date {
438            local_var_req_builder =
439                local_var_req_builder.query(&[("creationDate", &param_value.to_string())]);
440        }
441        if let Some(ref param_value) = revision_date {
442            local_var_req_builder =
443                local_var_req_builder.query(&[("revisionDate", &param_value.to_string())]);
444        }
445        if let Some(ref param_value) = max_autoscale_seats {
446            local_var_req_builder =
447                local_var_req_builder.query(&[("maxAutoscaleSeats", &param_value.to_string())]);
448        }
449        if let Some(ref param_value) = owners_notified_of_autoscaling {
450            local_var_req_builder = local_var_req_builder
451                .query(&[("ownersNotifiedOfAutoscaling", &param_value.to_string())]);
452        }
453        if let Some(ref param_value) = status {
454            local_var_req_builder =
455                local_var_req_builder.query(&[("status", &param_value.to_string())]);
456        }
457        if let Some(ref param_value) = use_password_manager {
458            local_var_req_builder =
459                local_var_req_builder.query(&[("usePasswordManager", &param_value.to_string())]);
460        }
461        if let Some(ref param_value) = sm_seats {
462            local_var_req_builder =
463                local_var_req_builder.query(&[("smSeats", &param_value.to_string())]);
464        }
465        if let Some(ref param_value) = sm_service_accounts {
466            local_var_req_builder =
467                local_var_req_builder.query(&[("smServiceAccounts", &param_value.to_string())]);
468        }
469        if let Some(ref param_value) = max_autoscale_sm_seats {
470            local_var_req_builder =
471                local_var_req_builder.query(&[("maxAutoscaleSmSeats", &param_value.to_string())]);
472        }
473        if let Some(ref param_value) = max_autoscale_sm_service_accounts {
474            local_var_req_builder = local_var_req_builder
475                .query(&[("maxAutoscaleSmServiceAccounts", &param_value.to_string())]);
476        }
477        if let Some(ref param_value) = limit_collection_creation {
478            local_var_req_builder = local_var_req_builder
479                .query(&[("limitCollectionCreation", &param_value.to_string())]);
480        }
481        if let Some(ref param_value) = limit_collection_deletion {
482            local_var_req_builder = local_var_req_builder
483                .query(&[("limitCollectionDeletion", &param_value.to_string())]);
484        }
485        if let Some(ref param_value) = allow_admin_access_to_all_collection_items {
486            local_var_req_builder = local_var_req_builder.query(&[(
487                "allowAdminAccessToAllCollectionItems",
488                &param_value.to_string(),
489            )]);
490        }
491        if let Some(ref param_value) = limit_item_deletion {
492            local_var_req_builder =
493                local_var_req_builder.query(&[("limitItemDeletion", &param_value.to_string())]);
494        }
495        if let Some(ref param_value) = use_risk_insights {
496            local_var_req_builder =
497                local_var_req_builder.query(&[("useRiskInsights", &param_value.to_string())]);
498        }
499        if let Some(ref param_value) = use_organization_domains {
500            local_var_req_builder = local_var_req_builder
501                .query(&[("useOrganizationDomains", &param_value.to_string())]);
502        }
503        if let Some(ref param_value) = use_admin_sponsored_families {
504            local_var_req_builder = local_var_req_builder
505                .query(&[("useAdminSponsoredFamilies", &param_value.to_string())]);
506        }
507        if let Some(ref param_value) = sync_seats {
508            local_var_req_builder =
509                local_var_req_builder.query(&[("syncSeats", &param_value.to_string())]);
510        }
511        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
512            local_var_req_builder = local_var_req_builder
513                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
514        }
515        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
516            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
517        };
518        local_var_req_builder =
519            local_var_req_builder.json(&preview_organization_subscription_plan_change_tax_request);
520
521        let local_var_req = local_var_req_builder.build()?;
522        let local_var_resp = local_var_client.execute(local_var_req).await?;
523
524        let local_var_status = local_var_resp.status();
525        let local_var_content = local_var_resp.text().await?;
526
527        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
528            Ok(())
529        } else {
530            let local_var_entity: Option<PreviewOrganizationSubscriptionPlanChangeTaxError> =
531                serde_json::from_str(&local_var_content).ok();
532            let local_var_error = ResponseContent {
533                status: local_var_status,
534                content: local_var_content,
535                entity: local_var_entity,
536            };
537            Err(Error::ResponseError(local_var_error))
538        }
539    }
540
541    async fn preview_organization_subscription_purchase_tax<'a>(
542        &self,
543        preview_organization_subscription_purchase_tax_request: Option<
544            models::PreviewOrganizationSubscriptionPurchaseTaxRequest,
545        >,
546    ) -> Result<(), Error<PreviewOrganizationSubscriptionPurchaseTaxError>> {
547        let local_var_configuration = &self.configuration;
548
549        let local_var_client = &local_var_configuration.client;
550
551        let local_var_uri_str = format!(
552            "{}/billing/tax/organizations/subscriptions/purchase",
553            local_var_configuration.base_path
554        );
555        let mut local_var_req_builder =
556            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
557
558        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
559            local_var_req_builder = local_var_req_builder
560                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
561        }
562        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
563            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
564        };
565        local_var_req_builder =
566            local_var_req_builder.json(&preview_organization_subscription_purchase_tax_request);
567
568        let local_var_req = local_var_req_builder.build()?;
569        let local_var_resp = local_var_client.execute(local_var_req).await?;
570
571        let local_var_status = local_var_resp.status();
572        let local_var_content = local_var_resp.text().await?;
573
574        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
575            Ok(())
576        } else {
577            let local_var_entity: Option<PreviewOrganizationSubscriptionPurchaseTaxError> =
578                serde_json::from_str(&local_var_content).ok();
579            let local_var_error = ResponseContent {
580                status: local_var_status,
581                content: local_var_content,
582                entity: local_var_entity,
583            };
584            Err(Error::ResponseError(local_var_error))
585        }
586    }
587
588    async fn preview_organization_subscription_update_tax<'a>(
589        &self,
590        organization_id: &'a str,
591        id: Option<uuid::Uuid>,
592        identifier: Option<&'a str>,
593        name: Option<&'a str>,
594        business_name: Option<&'a str>,
595        business_address1: Option<&'a str>,
596        business_address2: Option<&'a str>,
597        business_address3: Option<&'a str>,
598        business_country: Option<&'a str>,
599        business_tax_number: Option<&'a str>,
600        billing_email: Option<&'a str>,
601        plan: Option<&'a str>,
602        plan_type: Option<models::PlanType>,
603        seats: Option<i32>,
604        max_collections: Option<i32>,
605        use_policies: Option<bool>,
606        use_sso: Option<bool>,
607        use_key_connector: Option<bool>,
608        use_scim: Option<bool>,
609        use_groups: Option<bool>,
610        use_directory: Option<bool>,
611        use_events: Option<bool>,
612        use_totp: Option<bool>,
613        use2fa: Option<bool>,
614        use_api: Option<bool>,
615        use_reset_password: Option<bool>,
616        use_secrets_manager: Option<bool>,
617        self_host: Option<bool>,
618        users_get_premium: Option<bool>,
619        use_custom_permissions: Option<bool>,
620        storage: Option<i64>,
621        max_storage_gb: Option<i32>,
622        gateway: Option<models::GatewayType>,
623        gateway_customer_id: Option<&'a str>,
624        gateway_subscription_id: Option<&'a str>,
625        reference_data: Option<&'a str>,
626        enabled: Option<bool>,
627        license_key: Option<&'a str>,
628        public_key: Option<&'a str>,
629        private_key: Option<&'a str>,
630        two_factor_providers: Option<&'a str>,
631        expiration_date: Option<String>,
632        creation_date: Option<String>,
633        revision_date: Option<String>,
634        max_autoscale_seats: Option<i32>,
635        owners_notified_of_autoscaling: Option<String>,
636        status: Option<models::OrganizationStatusType>,
637        use_password_manager: Option<bool>,
638        sm_seats: Option<i32>,
639        sm_service_accounts: Option<i32>,
640        max_autoscale_sm_seats: Option<i32>,
641        max_autoscale_sm_service_accounts: Option<i32>,
642        limit_collection_creation: Option<bool>,
643        limit_collection_deletion: Option<bool>,
644        allow_admin_access_to_all_collection_items: Option<bool>,
645        limit_item_deletion: Option<bool>,
646        use_risk_insights: Option<bool>,
647        use_organization_domains: Option<bool>,
648        use_admin_sponsored_families: Option<bool>,
649        sync_seats: Option<bool>,
650        preview_organization_subscription_update_tax_request: Option<
651            models::PreviewOrganizationSubscriptionUpdateTaxRequest,
652        >,
653    ) -> Result<(), Error<PreviewOrganizationSubscriptionUpdateTaxError>> {
654        let local_var_configuration = &self.configuration;
655
656        let local_var_client = &local_var_configuration.client;
657
658        let local_var_uri_str = format!(
659            "{}/billing/tax/organizations/{organizationId}/subscription/update",
660            local_var_configuration.base_path,
661            organizationId = crate::apis::urlencode(organization_id)
662        );
663        let mut local_var_req_builder =
664            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
665
666        if let Some(ref param_value) = id {
667            local_var_req_builder =
668                local_var_req_builder.query(&[("id", &param_value.to_string())]);
669        }
670        if let Some(ref param_value) = identifier {
671            local_var_req_builder =
672                local_var_req_builder.query(&[("identifier", &param_value.to_string())]);
673        }
674        if let Some(ref param_value) = name {
675            local_var_req_builder =
676                local_var_req_builder.query(&[("name", &param_value.to_string())]);
677        }
678        if let Some(ref param_value) = business_name {
679            local_var_req_builder =
680                local_var_req_builder.query(&[("businessName", &param_value.to_string())]);
681        }
682        if let Some(ref param_value) = business_address1 {
683            local_var_req_builder =
684                local_var_req_builder.query(&[("businessAddress1", &param_value.to_string())]);
685        }
686        if let Some(ref param_value) = business_address2 {
687            local_var_req_builder =
688                local_var_req_builder.query(&[("businessAddress2", &param_value.to_string())]);
689        }
690        if let Some(ref param_value) = business_address3 {
691            local_var_req_builder =
692                local_var_req_builder.query(&[("businessAddress3", &param_value.to_string())]);
693        }
694        if let Some(ref param_value) = business_country {
695            local_var_req_builder =
696                local_var_req_builder.query(&[("businessCountry", &param_value.to_string())]);
697        }
698        if let Some(ref param_value) = business_tax_number {
699            local_var_req_builder =
700                local_var_req_builder.query(&[("businessTaxNumber", &param_value.to_string())]);
701        }
702        if let Some(ref param_value) = billing_email {
703            local_var_req_builder =
704                local_var_req_builder.query(&[("billingEmail", &param_value.to_string())]);
705        }
706        if let Some(ref param_value) = plan {
707            local_var_req_builder =
708                local_var_req_builder.query(&[("plan", &param_value.to_string())]);
709        }
710        if let Some(ref param_value) = plan_type {
711            local_var_req_builder =
712                local_var_req_builder.query(&[("planType", &param_value.to_string())]);
713        }
714        if let Some(ref param_value) = seats {
715            local_var_req_builder =
716                local_var_req_builder.query(&[("seats", &param_value.to_string())]);
717        }
718        if let Some(ref param_value) = max_collections {
719            local_var_req_builder =
720                local_var_req_builder.query(&[("maxCollections", &param_value.to_string())]);
721        }
722        if let Some(ref param_value) = use_policies {
723            local_var_req_builder =
724                local_var_req_builder.query(&[("usePolicies", &param_value.to_string())]);
725        }
726        if let Some(ref param_value) = use_sso {
727            local_var_req_builder =
728                local_var_req_builder.query(&[("useSso", &param_value.to_string())]);
729        }
730        if let Some(ref param_value) = use_key_connector {
731            local_var_req_builder =
732                local_var_req_builder.query(&[("useKeyConnector", &param_value.to_string())]);
733        }
734        if let Some(ref param_value) = use_scim {
735            local_var_req_builder =
736                local_var_req_builder.query(&[("useScim", &param_value.to_string())]);
737        }
738        if let Some(ref param_value) = use_groups {
739            local_var_req_builder =
740                local_var_req_builder.query(&[("useGroups", &param_value.to_string())]);
741        }
742        if let Some(ref param_value) = use_directory {
743            local_var_req_builder =
744                local_var_req_builder.query(&[("useDirectory", &param_value.to_string())]);
745        }
746        if let Some(ref param_value) = use_events {
747            local_var_req_builder =
748                local_var_req_builder.query(&[("useEvents", &param_value.to_string())]);
749        }
750        if let Some(ref param_value) = use_totp {
751            local_var_req_builder =
752                local_var_req_builder.query(&[("useTotp", &param_value.to_string())]);
753        }
754        if let Some(ref param_value) = use2fa {
755            local_var_req_builder =
756                local_var_req_builder.query(&[("use2fa", &param_value.to_string())]);
757        }
758        if let Some(ref param_value) = use_api {
759            local_var_req_builder =
760                local_var_req_builder.query(&[("useApi", &param_value.to_string())]);
761        }
762        if let Some(ref param_value) = use_reset_password {
763            local_var_req_builder =
764                local_var_req_builder.query(&[("useResetPassword", &param_value.to_string())]);
765        }
766        if let Some(ref param_value) = use_secrets_manager {
767            local_var_req_builder =
768                local_var_req_builder.query(&[("useSecretsManager", &param_value.to_string())]);
769        }
770        if let Some(ref param_value) = self_host {
771            local_var_req_builder =
772                local_var_req_builder.query(&[("selfHost", &param_value.to_string())]);
773        }
774        if let Some(ref param_value) = users_get_premium {
775            local_var_req_builder =
776                local_var_req_builder.query(&[("usersGetPremium", &param_value.to_string())]);
777        }
778        if let Some(ref param_value) = use_custom_permissions {
779            local_var_req_builder =
780                local_var_req_builder.query(&[("useCustomPermissions", &param_value.to_string())]);
781        }
782        if let Some(ref param_value) = storage {
783            local_var_req_builder =
784                local_var_req_builder.query(&[("storage", &param_value.to_string())]);
785        }
786        if let Some(ref param_value) = max_storage_gb {
787            local_var_req_builder =
788                local_var_req_builder.query(&[("maxStorageGb", &param_value.to_string())]);
789        }
790        if let Some(ref param_value) = gateway {
791            local_var_req_builder =
792                local_var_req_builder.query(&[("gateway", &param_value.to_string())]);
793        }
794        if let Some(ref param_value) = gateway_customer_id {
795            local_var_req_builder =
796                local_var_req_builder.query(&[("gatewayCustomerId", &param_value.to_string())]);
797        }
798        if let Some(ref param_value) = gateway_subscription_id {
799            local_var_req_builder =
800                local_var_req_builder.query(&[("gatewaySubscriptionId", &param_value.to_string())]);
801        }
802        if let Some(ref param_value) = reference_data {
803            local_var_req_builder =
804                local_var_req_builder.query(&[("referenceData", &param_value.to_string())]);
805        }
806        if let Some(ref param_value) = enabled {
807            local_var_req_builder =
808                local_var_req_builder.query(&[("enabled", &param_value.to_string())]);
809        }
810        if let Some(ref param_value) = license_key {
811            local_var_req_builder =
812                local_var_req_builder.query(&[("licenseKey", &param_value.to_string())]);
813        }
814        if let Some(ref param_value) = public_key {
815            local_var_req_builder =
816                local_var_req_builder.query(&[("publicKey", &param_value.to_string())]);
817        }
818        if let Some(ref param_value) = private_key {
819            local_var_req_builder =
820                local_var_req_builder.query(&[("privateKey", &param_value.to_string())]);
821        }
822        if let Some(ref param_value) = two_factor_providers {
823            local_var_req_builder =
824                local_var_req_builder.query(&[("twoFactorProviders", &param_value.to_string())]);
825        }
826        if let Some(ref param_value) = expiration_date {
827            local_var_req_builder =
828                local_var_req_builder.query(&[("expirationDate", &param_value.to_string())]);
829        }
830        if let Some(ref param_value) = creation_date {
831            local_var_req_builder =
832                local_var_req_builder.query(&[("creationDate", &param_value.to_string())]);
833        }
834        if let Some(ref param_value) = revision_date {
835            local_var_req_builder =
836                local_var_req_builder.query(&[("revisionDate", &param_value.to_string())]);
837        }
838        if let Some(ref param_value) = max_autoscale_seats {
839            local_var_req_builder =
840                local_var_req_builder.query(&[("maxAutoscaleSeats", &param_value.to_string())]);
841        }
842        if let Some(ref param_value) = owners_notified_of_autoscaling {
843            local_var_req_builder = local_var_req_builder
844                .query(&[("ownersNotifiedOfAutoscaling", &param_value.to_string())]);
845        }
846        if let Some(ref param_value) = status {
847            local_var_req_builder =
848                local_var_req_builder.query(&[("status", &param_value.to_string())]);
849        }
850        if let Some(ref param_value) = use_password_manager {
851            local_var_req_builder =
852                local_var_req_builder.query(&[("usePasswordManager", &param_value.to_string())]);
853        }
854        if let Some(ref param_value) = sm_seats {
855            local_var_req_builder =
856                local_var_req_builder.query(&[("smSeats", &param_value.to_string())]);
857        }
858        if let Some(ref param_value) = sm_service_accounts {
859            local_var_req_builder =
860                local_var_req_builder.query(&[("smServiceAccounts", &param_value.to_string())]);
861        }
862        if let Some(ref param_value) = max_autoscale_sm_seats {
863            local_var_req_builder =
864                local_var_req_builder.query(&[("maxAutoscaleSmSeats", &param_value.to_string())]);
865        }
866        if let Some(ref param_value) = max_autoscale_sm_service_accounts {
867            local_var_req_builder = local_var_req_builder
868                .query(&[("maxAutoscaleSmServiceAccounts", &param_value.to_string())]);
869        }
870        if let Some(ref param_value) = limit_collection_creation {
871            local_var_req_builder = local_var_req_builder
872                .query(&[("limitCollectionCreation", &param_value.to_string())]);
873        }
874        if let Some(ref param_value) = limit_collection_deletion {
875            local_var_req_builder = local_var_req_builder
876                .query(&[("limitCollectionDeletion", &param_value.to_string())]);
877        }
878        if let Some(ref param_value) = allow_admin_access_to_all_collection_items {
879            local_var_req_builder = local_var_req_builder.query(&[(
880                "allowAdminAccessToAllCollectionItems",
881                &param_value.to_string(),
882            )]);
883        }
884        if let Some(ref param_value) = limit_item_deletion {
885            local_var_req_builder =
886                local_var_req_builder.query(&[("limitItemDeletion", &param_value.to_string())]);
887        }
888        if let Some(ref param_value) = use_risk_insights {
889            local_var_req_builder =
890                local_var_req_builder.query(&[("useRiskInsights", &param_value.to_string())]);
891        }
892        if let Some(ref param_value) = use_organization_domains {
893            local_var_req_builder = local_var_req_builder
894                .query(&[("useOrganizationDomains", &param_value.to_string())]);
895        }
896        if let Some(ref param_value) = use_admin_sponsored_families {
897            local_var_req_builder = local_var_req_builder
898                .query(&[("useAdminSponsoredFamilies", &param_value.to_string())]);
899        }
900        if let Some(ref param_value) = sync_seats {
901            local_var_req_builder =
902                local_var_req_builder.query(&[("syncSeats", &param_value.to_string())]);
903        }
904        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
905            local_var_req_builder = local_var_req_builder
906                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
907        }
908        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
909            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
910        };
911        local_var_req_builder =
912            local_var_req_builder.json(&preview_organization_subscription_update_tax_request);
913
914        let local_var_req = local_var_req_builder.build()?;
915        let local_var_resp = local_var_client.execute(local_var_req).await?;
916
917        let local_var_status = local_var_resp.status();
918        let local_var_content = local_var_resp.text().await?;
919
920        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
921            Ok(())
922        } else {
923            let local_var_entity: Option<PreviewOrganizationSubscriptionUpdateTaxError> =
924                serde_json::from_str(&local_var_content).ok();
925            let local_var_error = ResponseContent {
926                status: local_var_status,
927                content: local_var_content,
928                entity: local_var_entity,
929            };
930            Err(Error::ResponseError(local_var_error))
931        }
932    }
933
934    async fn preview_premium_subscription_purchase_tax<'a>(
935        &self,
936        preview_premium_subscription_purchase_tax_request: Option<
937            models::PreviewPremiumSubscriptionPurchaseTaxRequest,
938        >,
939    ) -> Result<(), Error<PreviewPremiumSubscriptionPurchaseTaxError>> {
940        let local_var_configuration = &self.configuration;
941
942        let local_var_client = &local_var_configuration.client;
943
944        let local_var_uri_str = format!(
945            "{}/billing/tax/premium/subscriptions/purchase",
946            local_var_configuration.base_path
947        );
948        let mut local_var_req_builder =
949            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
950
951        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
952            local_var_req_builder = local_var_req_builder
953                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
954        }
955        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
956            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
957        };
958        local_var_req_builder =
959            local_var_req_builder.json(&preview_premium_subscription_purchase_tax_request);
960
961        let local_var_req = local_var_req_builder.build()?;
962        let local_var_resp = local_var_client.execute(local_var_req).await?;
963
964        let local_var_status = local_var_resp.status();
965        let local_var_content = local_var_resp.text().await?;
966
967        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
968            Ok(())
969        } else {
970            let local_var_entity: Option<PreviewPremiumSubscriptionPurchaseTaxError> =
971                serde_json::from_str(&local_var_content).ok();
972            let local_var_error = ResponseContent {
973                status: local_var_status,
974                content: local_var_content,
975                entity: local_var_entity,
976            };
977            Err(Error::ResponseError(local_var_error))
978        }
979    }
980}
981
982/// struct for typed errors of method [`TaxApi::preview_organization_subscription_plan_change_tax`]
983#[derive(Debug, Clone, Serialize, Deserialize)]
984#[serde(untagged)]
985pub enum PreviewOrganizationSubscriptionPlanChangeTaxError {
986    UnknownValue(serde_json::Value),
987}
988/// struct for typed errors of method [`TaxApi::preview_organization_subscription_purchase_tax`]
989#[derive(Debug, Clone, Serialize, Deserialize)]
990#[serde(untagged)]
991pub enum PreviewOrganizationSubscriptionPurchaseTaxError {
992    UnknownValue(serde_json::Value),
993}
994/// struct for typed errors of method [`TaxApi::preview_organization_subscription_update_tax`]
995#[derive(Debug, Clone, Serialize, Deserialize)]
996#[serde(untagged)]
997pub enum PreviewOrganizationSubscriptionUpdateTaxError {
998    UnknownValue(serde_json::Value),
999}
1000/// struct for typed errors of method [`TaxApi::preview_premium_subscription_purchase_tax`]
1001#[derive(Debug, Clone, Serialize, Deserialize)]
1002#[serde(untagged)]
1003pub enum PreviewPremiumSubscriptionPurchaseTaxError {
1004    UnknownValue(serde_json::Value),
1005}