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