1use 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 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 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 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 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", ¶m_value.to_string())]);
282 }
283 if let Some(ref param_value) = identifier {
284 local_var_req_builder =
285 local_var_req_builder.query(&[("identifier", ¶m_value.to_string())]);
286 }
287 if let Some(ref param_value) = name {
288 local_var_req_builder =
289 local_var_req_builder.query(&[("name", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
318 }
319 if let Some(ref param_value) = plan {
320 local_var_req_builder =
321 local_var_req_builder.query(&[("plan", ¶m_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", ¶m_value.to_string())]);
326 }
327 if let Some(ref param_value) = seats {
328 local_var_req_builder =
329 local_var_req_builder.query(&[("seats", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
366 }
367 if let Some(ref param_value) = use2fa {
368 local_var_req_builder =
369 local_var_req_builder.query(&[("use2fa", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
394 }
395 if let Some(ref param_value) = storage {
396 local_var_req_builder =
397 local_var_req_builder.query(&[("storage", ¶m_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", ¶m_value.to_string())]);
402 }
403 if let Some(ref param_value) = gateway {
404 local_var_req_builder =
405 local_var_req_builder.query(&[("gateway", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
418 }
419 if let Some(ref param_value) = enabled {
420 local_var_req_builder =
421 local_var_req_builder.query(&[("enabled", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
458 }
459 if let Some(ref param_value) = status {
460 local_var_req_builder =
461 local_var_req_builder.query(&[("status", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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 ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
685 }
686 if let Some(ref param_value) = identifier {
687 local_var_req_builder =
688 local_var_req_builder.query(&[("identifier", ¶m_value.to_string())]);
689 }
690 if let Some(ref param_value) = name {
691 local_var_req_builder =
692 local_var_req_builder.query(&[("name", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
721 }
722 if let Some(ref param_value) = plan {
723 local_var_req_builder =
724 local_var_req_builder.query(&[("plan", ¶m_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", ¶m_value.to_string())]);
729 }
730 if let Some(ref param_value) = seats {
731 local_var_req_builder =
732 local_var_req_builder.query(&[("seats", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
769 }
770 if let Some(ref param_value) = use2fa {
771 local_var_req_builder =
772 local_var_req_builder.query(&[("use2fa", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
797 }
798 if let Some(ref param_value) = storage {
799 local_var_req_builder =
800 local_var_req_builder.query(&[("storage", ¶m_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", ¶m_value.to_string())]);
805 }
806 if let Some(ref param_value) = gateway {
807 local_var_req_builder =
808 local_var_req_builder.query(&[("gateway", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
821 }
822 if let Some(ref param_value) = enabled {
823 local_var_req_builder =
824 local_var_req_builder.query(&[("enabled", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_value.to_string())]);
861 }
862 if let Some(ref param_value) = status {
863 local_var_req_builder =
864 local_var_req_builder.query(&[("status", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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 ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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", ¶m_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#[derive(Debug, Clone, Serialize, Deserialize)]
1008#[serde(untagged)]
1009pub enum PreviewOrganizationSubscriptionPlanChangeTaxError {
1010 UnknownValue(serde_json::Value),
1011}
1012#[derive(Debug, Clone, Serialize, Deserialize)]
1014#[serde(untagged)]
1015pub enum PreviewOrganizationSubscriptionPurchaseTaxError {
1016 UnknownValue(serde_json::Value),
1017}
1018#[derive(Debug, Clone, Serialize, Deserialize)]
1020#[serde(untagged)]
1021pub enum PreviewOrganizationSubscriptionUpdateTaxError {
1022 UnknownValue(serde_json::Value),
1023}
1024#[derive(Debug, Clone, Serialize, Deserialize)]
1026#[serde(untagged)]
1027pub enum PreviewPremiumSubscriptionPurchaseTaxError {
1028 UnknownValue(serde_json::Value),
1029}