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