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