stripe/resources/generated/
checkout_session.rs

1// ======================================
2// This file was automatically generated.
3// ======================================
4
5use crate::client::{Client, Response};
6use crate::ids::{
7    CheckoutSessionId, CustomerId, PaymentIntentId, PaymentLinkId, PaymentMethodConfigurationId,
8    SubscriptionId,
9};
10use crate::params::{
11    CurrencyMap, Expand, Expandable, List, Metadata, Object, Paginable, RangeQuery, Timestamp,
12};
13use crate::resources::{
14    Address, CheckoutSessionItem, ConnectAccountReference, Currency, Customer, Discount, Invoice,
15    InvoiceSettingRenderingOptions, LinkedAccountOptionsUsBankAccount, PaymentIntent, PaymentLink,
16    PaymentMethodConfigBizPaymentMethodConfigurationDetails,
17    PaymentMethodOptionsCustomerBalanceEuBankAccount, SetupIntent, Shipping, ShippingRate,
18    Subscription, TaxId, TaxRate,
19};
20use serde::{Deserialize, Serialize};
21
22/// The resource representing a Stripe "Session".
23///
24/// For more details see <https://stripe.com/docs/api/checkout/sessions/object>
25#[derive(Clone, Debug, Default, Deserialize, Serialize)]
26pub struct CheckoutSession {
27    /// Unique identifier for the object.
28    pub id: CheckoutSessionId,
29
30    /// When set, provides configuration for actions to take if this Checkout Session expires.
31    pub after_expiration: Option<PaymentPagesCheckoutSessionAfterExpiration>,
32
33    /// Enables user redeemable promotion codes.
34    pub allow_promotion_codes: Option<bool>,
35
36    /// Total of all items before discounts or taxes are applied.
37    pub amount_subtotal: Option<i64>,
38
39    /// Total of all items after discounts and taxes are applied.
40    pub amount_total: Option<i64>,
41
42    pub automatic_tax: PaymentPagesCheckoutSessionAutomaticTax,
43
44    /// Describes whether Checkout should collect the customer's billing address.
45    pub billing_address_collection: Option<CheckoutSessionBillingAddressCollection>,
46
47    /// If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.
48    pub cancel_url: Option<String>,
49
50    /// A unique string to reference the Checkout Session.
51    ///
52    /// This can be a customer ID, a cart ID, or similar, and can be used to reconcile the Session with your internal systems.
53    pub client_reference_id: Option<String>,
54
55    /// Client secret to be used when initializing Stripe.js embedded checkout.
56    pub client_secret: Option<String>,
57
58    /// Results of `consent_collection` for this session.
59    pub consent: Option<PaymentPagesCheckoutSessionConsent>,
60
61    /// When set, provides configuration for the Checkout Session to gather active consent from customers.
62    pub consent_collection: Option<PaymentPagesCheckoutSessionConsentCollection>,
63
64    /// Time at which the object was created.
65    ///
66    /// Measured in seconds since the Unix epoch.
67    pub created: Timestamp,
68
69    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
70    ///
71    /// Must be a [supported currency](https://stripe.com/docs/currencies).
72    pub currency: Option<Currency>,
73
74    /// Currency conversion details for automatic currency conversion sessions.
75    pub currency_conversion: Option<PaymentPagesCheckoutSessionCurrencyConversion>,
76
77    /// Collect additional information from your customer using custom fields.
78    ///
79    /// Up to 3 fields are supported.
80    pub custom_fields: Vec<PaymentPagesCheckoutSessionCustomFields>,
81
82    pub custom_text: PaymentPagesCheckoutSessionCustomText,
83
84    /// The ID of the customer for this Session.
85    /// For Checkout Sessions in `subscription` mode or Checkout Sessions with `customer_creation` set as `always` in `payment` mode, Checkout
86    /// will create a new customer object based on information provided
87    /// during the payment flow unless an existing customer was provided when
88    /// the Session was created.
89    pub customer: Option<Expandable<Customer>>,
90
91    /// Configure whether a Checkout Session creates a Customer when the Checkout Session completes.
92    pub customer_creation: Option<CheckoutSessionCustomerCreation>,
93
94    /// The customer details including the customer's tax exempt status and the customer's tax IDs.
95    ///
96    /// Only the customer's email is present on Sessions in `setup` mode.
97    pub customer_details: Option<PaymentPagesCheckoutSessionCustomerDetails>,
98
99    /// If provided, this value will be used when the Customer object is created.
100    /// If not provided, customers will be asked to enter their email address.
101    /// Use this parameter to prefill customer data if you already have an email
102    /// on file.
103    ///
104    /// To access information about the customer once the payment flow is complete, use the `customer` attribute.
105    pub customer_email: Option<String>,
106
107    /// The timestamp at which the Checkout Session will expire.
108    pub expires_at: Timestamp,
109
110    /// ID of the invoice created by the Checkout Session, if it exists.
111    pub invoice: Option<Expandable<Invoice>>,
112
113    /// Details on the state of invoice creation for the Checkout Session.
114    pub invoice_creation: Option<PaymentPagesCheckoutSessionInvoiceCreation>,
115
116    /// The line items purchased by the customer.
117    #[serde(skip_serializing_if = "Option::is_none")]
118    pub line_items: Option<List<CheckoutSessionItem>>,
119
120    /// Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
121    pub livemode: bool,
122
123    /// The IETF language tag of the locale Checkout is displayed in.
124    ///
125    /// If blank or `auto`, the browser's locale is used.
126    pub locale: Option<CheckoutSessionLocale>,
127
128    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
129    ///
130    /// This can be useful for storing additional information about the object in a structured format.
131    pub metadata: Option<Metadata>,
132
133    /// The mode of the Checkout Session.
134    pub mode: CheckoutSessionMode,
135
136    /// The ID of the PaymentIntent for Checkout Sessions in `payment` mode.
137    pub payment_intent: Option<Expandable<PaymentIntent>>,
138
139    /// The ID of the Payment Link that created this Session.
140    pub payment_link: Option<Expandable<PaymentLink>>,
141
142    /// Configure whether a Checkout Session should collect a payment method.
143    pub payment_method_collection: Option<CheckoutSessionPaymentMethodCollection>,
144
145    /// Information about the payment method configuration used for this Checkout session if using dynamic payment methods.
146    pub payment_method_configuration_details:
147        Option<PaymentMethodConfigBizPaymentMethodConfigurationDetails>,
148
149    /// Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.
150    pub payment_method_options: Option<CheckoutSessionPaymentMethodOptions>,
151
152    /// A list of the types of payment methods (e.g.
153    ///
154    /// card) this Checkout Session is allowed to accept.
155    pub payment_method_types: Vec<String>,
156
157    /// The payment status of the Checkout Session, one of `paid`, `unpaid`, or `no_payment_required`.
158    /// You can use this value to decide when to fulfill your customer's order.
159    pub payment_status: CheckoutSessionPaymentStatus,
160
161    #[serde(skip_serializing_if = "Option::is_none")]
162    pub phone_number_collection: Option<PaymentPagesCheckoutSessionPhoneNumberCollection>,
163
164    /// The ID of the original expired Checkout Session that triggered the recovery flow.
165    pub recovered_from: Option<String>,
166
167    /// Applies to Checkout Sessions with `ui_mode: embedded`.
168    ///
169    /// By default, Stripe will always redirect to your return_url after a successful confirmation.
170    /// If you set `redirect_on_completion: 'if_required'`, then we will only redirect if your user chooses a redirect-based payment method.
171    #[serde(skip_serializing_if = "Option::is_none")]
172    pub redirect_on_completion: Option<CheckoutSessionRedirectOnCompletion>,
173
174    /// Applies to Checkout Sessions with `ui_mode: embedded`.
175    ///
176    /// The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site.
177    #[serde(skip_serializing_if = "Option::is_none")]
178    pub return_url: Option<String>,
179
180    /// The ID of the SetupIntent for Checkout Sessions in `setup` mode.
181    pub setup_intent: Option<Expandable<SetupIntent>>,
182
183    /// When set, provides configuration for Checkout to collect a shipping address from a customer.
184    pub shipping_address_collection: Option<PaymentPagesCheckoutSessionShippingAddressCollection>,
185
186    /// The details of the customer cost of shipping, including the customer chosen ShippingRate.
187    pub shipping_cost: Option<PaymentPagesCheckoutSessionShippingCost>,
188
189    /// Shipping information for this Checkout Session.
190    pub shipping_details: Option<Shipping>,
191
192    /// The shipping rate options applied to this Session.
193    pub shipping_options: Vec<PaymentPagesCheckoutSessionShippingOption>,
194
195    /// The status of the Checkout Session, one of `open`, `complete`, or `expired`.
196    pub status: Option<CheckoutSessionStatus>,
197
198    /// Describes the type of transaction being performed by Checkout in order to customize
199    /// relevant text on the page, such as the submit button.
200    ///
201    /// `submit_type` can only be specified on Checkout Sessions in `payment` mode.
202    /// If blank or `auto`, `pay` is used.
203    pub submit_type: Option<CheckoutSessionSubmitType>,
204
205    /// The ID of the subscription for Checkout Sessions in `subscription` mode.
206    pub subscription: Option<Expandable<Subscription>>,
207
208    /// The URL the customer will be directed to after the payment or
209    /// subscription creation is successful.
210    pub success_url: Option<String>,
211
212    #[serde(skip_serializing_if = "Option::is_none")]
213    pub tax_id_collection: Option<PaymentPagesCheckoutSessionTaxIdCollection>,
214
215    /// Tax and discount details for the computed total amount.
216    pub total_details: Option<PaymentPagesCheckoutSessionTotalDetails>,
217
218    /// The UI mode of the Session.
219    ///
220    /// Can be `hosted` (default) or `embedded`.
221    pub ui_mode: Option<CheckoutSessionUiMode>,
222
223    /// The URL to the Checkout Session.
224    ///
225    /// Redirect customers to this URL to take them to Checkout.
226    /// If you’re using [Custom Domains](https://stripe.com/docs/payments/checkout/custom-domains), the URL will use your subdomain.
227    /// Otherwise, it’ll use `checkout.stripe.com.` This value is only present when the session is active.
228    pub url: Option<String>,
229}
230
231impl CheckoutSession {
232    /// Returns a list of Checkout Sessions.
233    pub fn list(
234        client: &Client,
235        params: &ListCheckoutSessions<'_>,
236    ) -> Response<List<CheckoutSession>> {
237        client.get_query("/checkout/sessions", params)
238    }
239
240    /// Creates a Session object.
241    pub fn create(client: &Client, params: CreateCheckoutSession<'_>) -> Response<CheckoutSession> {
242        #[allow(clippy::needless_borrows_for_generic_args)]
243        client.post_form("/checkout/sessions", &params)
244    }
245}
246
247impl Object for CheckoutSession {
248    type Id = CheckoutSessionId;
249    fn id(&self) -> Self::Id {
250        self.id.clone()
251    }
252    fn object(&self) -> &'static str {
253        "checkout.session"
254    }
255}
256
257#[derive(Clone, Debug, Default, Deserialize, Serialize)]
258pub struct CheckoutSessionPaymentMethodOptions {
259    #[serde(skip_serializing_if = "Option::is_none")]
260    pub acss_debit: Option<CheckoutAcssDebitPaymentMethodOptions>,
261
262    #[serde(skip_serializing_if = "Option::is_none")]
263    pub affirm: Option<CheckoutAffirmPaymentMethodOptions>,
264
265    #[serde(skip_serializing_if = "Option::is_none")]
266    pub afterpay_clearpay: Option<CheckoutAfterpayClearpayPaymentMethodOptions>,
267
268    #[serde(skip_serializing_if = "Option::is_none")]
269    pub alipay: Option<CheckoutAlipayPaymentMethodOptions>,
270
271    #[serde(skip_serializing_if = "Option::is_none")]
272    pub au_becs_debit: Option<CheckoutAuBecsDebitPaymentMethodOptions>,
273
274    #[serde(skip_serializing_if = "Option::is_none")]
275    pub bacs_debit: Option<CheckoutBacsDebitPaymentMethodOptions>,
276
277    #[serde(skip_serializing_if = "Option::is_none")]
278    pub bancontact: Option<CheckoutBancontactPaymentMethodOptions>,
279
280    #[serde(skip_serializing_if = "Option::is_none")]
281    pub boleto: Option<CheckoutBoletoPaymentMethodOptions>,
282
283    #[serde(skip_serializing_if = "Option::is_none")]
284    pub card: Option<CheckoutCardPaymentMethodOptions>,
285
286    #[serde(skip_serializing_if = "Option::is_none")]
287    pub cashapp: Option<CheckoutCashappPaymentMethodOptions>,
288
289    #[serde(skip_serializing_if = "Option::is_none")]
290    pub customer_balance: Option<CheckoutCustomerBalancePaymentMethodOptions>,
291
292    #[serde(skip_serializing_if = "Option::is_none")]
293    pub eps: Option<CheckoutEpsPaymentMethodOptions>,
294
295    #[serde(skip_serializing_if = "Option::is_none")]
296    pub fpx: Option<CheckoutFpxPaymentMethodOptions>,
297
298    #[serde(skip_serializing_if = "Option::is_none")]
299    pub giropay: Option<CheckoutGiropayPaymentMethodOptions>,
300
301    #[serde(skip_serializing_if = "Option::is_none")]
302    pub grabpay: Option<CheckoutGrabPayPaymentMethodOptions>,
303
304    #[serde(skip_serializing_if = "Option::is_none")]
305    pub ideal: Option<CheckoutIdealPaymentMethodOptions>,
306
307    #[serde(skip_serializing_if = "Option::is_none")]
308    pub klarna: Option<CheckoutKlarnaPaymentMethodOptions>,
309
310    #[serde(skip_serializing_if = "Option::is_none")]
311    pub konbini: Option<CheckoutKonbiniPaymentMethodOptions>,
312
313    #[serde(skip_serializing_if = "Option::is_none")]
314    pub link: Option<CheckoutLinkPaymentMethodOptions>,
315
316    #[serde(skip_serializing_if = "Option::is_none")]
317    pub oxxo: Option<CheckoutOxxoPaymentMethodOptions>,
318
319    #[serde(skip_serializing_if = "Option::is_none")]
320    pub p24: Option<CheckoutP24PaymentMethodOptions>,
321
322    #[serde(skip_serializing_if = "Option::is_none")]
323    pub paynow: Option<CheckoutPaynowPaymentMethodOptions>,
324
325    #[serde(skip_serializing_if = "Option::is_none")]
326    pub paypal: Option<CheckoutPaypalPaymentMethodOptions>,
327
328    #[serde(skip_serializing_if = "Option::is_none")]
329    pub pix: Option<CheckoutPixPaymentMethodOptions>,
330
331    #[serde(skip_serializing_if = "Option::is_none")]
332    pub revolut_pay: Option<CheckoutRevolutPayPaymentMethodOptions>,
333
334    #[serde(skip_serializing_if = "Option::is_none")]
335    pub sepa_debit: Option<CheckoutSepaDebitPaymentMethodOptions>,
336
337    #[serde(skip_serializing_if = "Option::is_none")]
338    pub sofort: Option<CheckoutSofortPaymentMethodOptions>,
339
340    #[serde(skip_serializing_if = "Option::is_none")]
341    pub swish: Option<CheckoutSwishPaymentMethodOptions>,
342
343    #[serde(skip_serializing_if = "Option::is_none")]
344    pub us_bank_account: Option<CheckoutUsBankAccountPaymentMethodOptions>,
345}
346
347#[derive(Clone, Debug, Default, Deserialize, Serialize)]
348pub struct CheckoutAcssDebitPaymentMethodOptions {
349    /// Currency supported by the bank account.
350    ///
351    /// Returned when the Session is in `setup` mode.
352    #[serde(skip_serializing_if = "Option::is_none")]
353    pub currency: Option<Currency>,
354
355    #[serde(skip_serializing_if = "Option::is_none")]
356    pub mandate_options: Option<CheckoutAcssDebitMandateOptions>,
357
358    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
359    ///
360    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
361    ///
362    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
363    #[serde(skip_serializing_if = "Option::is_none")]
364    pub setup_future_usage: Option<CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage>,
365
366    /// Bank account verification method.
367    #[serde(skip_serializing_if = "Option::is_none")]
368    pub verification_method: Option<CheckoutAcssDebitPaymentMethodOptionsVerificationMethod>,
369}
370
371#[derive(Clone, Debug, Default, Deserialize, Serialize)]
372pub struct CheckoutAcssDebitMandateOptions {
373    /// A URL for custom mandate text.
374    #[serde(skip_serializing_if = "Option::is_none")]
375    pub custom_mandate_url: Option<String>,
376
377    /// List of Stripe products where this mandate can be selected automatically.
378    ///
379    /// Returned when the Session is in `setup` mode.
380    #[serde(skip_serializing_if = "Option::is_none")]
381    pub default_for: Option<Vec<CheckoutAcssDebitMandateOptionsDefaultFor>>,
382
383    /// Description of the interval.
384    ///
385    /// Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.
386    pub interval_description: Option<String>,
387
388    /// Payment schedule for the mandate.
389    pub payment_schedule: Option<CheckoutAcssDebitMandateOptionsPaymentSchedule>,
390
391    /// Transaction type of the mandate.
392    pub transaction_type: Option<CheckoutAcssDebitMandateOptionsTransactionType>,
393}
394
395#[derive(Clone, Debug, Default, Deserialize, Serialize)]
396pub struct CheckoutAffirmPaymentMethodOptions {
397    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
398    ///
399    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
400    ///
401    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
402    #[serde(skip_serializing_if = "Option::is_none")]
403    pub setup_future_usage: Option<CheckoutAffirmPaymentMethodOptionsSetupFutureUsage>,
404}
405
406#[derive(Clone, Debug, Default, Deserialize, Serialize)]
407pub struct CheckoutAfterpayClearpayPaymentMethodOptions {
408    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
409    ///
410    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
411    ///
412    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
413    #[serde(skip_serializing_if = "Option::is_none")]
414    pub setup_future_usage: Option<CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage>,
415}
416
417#[derive(Clone, Debug, Default, Deserialize, Serialize)]
418pub struct CheckoutAlipayPaymentMethodOptions {
419    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
420    ///
421    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
422    ///
423    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
424    #[serde(skip_serializing_if = "Option::is_none")]
425    pub setup_future_usage: Option<CheckoutAlipayPaymentMethodOptionsSetupFutureUsage>,
426}
427
428#[derive(Clone, Debug, Default, Deserialize, Serialize)]
429pub struct CheckoutAuBecsDebitPaymentMethodOptions {
430    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
431    ///
432    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
433    ///
434    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
435    #[serde(skip_serializing_if = "Option::is_none")]
436    pub setup_future_usage: Option<CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage>,
437}
438
439#[derive(Clone, Debug, Default, Deserialize, Serialize)]
440pub struct CheckoutBacsDebitPaymentMethodOptions {
441    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
442    ///
443    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
444    ///
445    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
446    #[serde(skip_serializing_if = "Option::is_none")]
447    pub setup_future_usage: Option<CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage>,
448}
449
450#[derive(Clone, Debug, Default, Deserialize, Serialize)]
451pub struct CheckoutBancontactPaymentMethodOptions {
452    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
453    ///
454    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
455    ///
456    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
457    #[serde(skip_serializing_if = "Option::is_none")]
458    pub setup_future_usage: Option<CheckoutBancontactPaymentMethodOptionsSetupFutureUsage>,
459}
460
461#[derive(Clone, Debug, Default, Deserialize, Serialize)]
462pub struct CheckoutBoletoPaymentMethodOptions {
463    /// The number of calendar days before a Boleto voucher expires.
464    ///
465    /// For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time.
466    pub expires_after_days: u32,
467
468    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
469    ///
470    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
471    ///
472    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
473    #[serde(skip_serializing_if = "Option::is_none")]
474    pub setup_future_usage: Option<CheckoutBoletoPaymentMethodOptionsSetupFutureUsage>,
475}
476
477#[derive(Clone, Debug, Default, Deserialize, Serialize)]
478pub struct CheckoutCardPaymentMethodOptions {
479    #[serde(skip_serializing_if = "Option::is_none")]
480    pub installments: Option<CheckoutCardInstallmentsOptions>,
481
482    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
483    ///
484    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
485    ///
486    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
487    #[serde(skip_serializing_if = "Option::is_none")]
488    pub setup_future_usage: Option<CheckoutCardPaymentMethodOptionsSetupFutureUsage>,
489
490    /// Provides information about a card payment that customers see on their statements.
491    ///
492    /// Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor.
493    /// Maximum 22 characters.
494    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
495    #[serde(skip_serializing_if = "Option::is_none")]
496    pub statement_descriptor_suffix_kana: Option<String>,
497
498    /// Provides information about a card payment that customers see on their statements.
499    ///
500    /// Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor.
501    /// Maximum 17 characters.
502    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
503    #[serde(skip_serializing_if = "Option::is_none")]
504    pub statement_descriptor_suffix_kanji: Option<String>,
505}
506
507#[derive(Clone, Debug, Default, Deserialize, Serialize)]
508pub struct CheckoutCardInstallmentsOptions {
509    /// Indicates if installments are enabled.
510    #[serde(skip_serializing_if = "Option::is_none")]
511    pub enabled: Option<bool>,
512}
513
514#[derive(Clone, Debug, Default, Deserialize, Serialize)]
515pub struct CheckoutCashappPaymentMethodOptions {
516    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
517    ///
518    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
519    ///
520    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
521    #[serde(skip_serializing_if = "Option::is_none")]
522    pub setup_future_usage: Option<CheckoutCashappPaymentMethodOptionsSetupFutureUsage>,
523}
524
525#[derive(Clone, Debug, Default, Deserialize, Serialize)]
526pub struct CheckoutCustomerBalancePaymentMethodOptions {
527    #[serde(skip_serializing_if = "Option::is_none")]
528    pub bank_transfer: Option<CheckoutCustomerBalanceBankTransferPaymentMethodOptions>,
529
530    /// The funding method type to be used when there are not enough funds in the customer balance.
531    ///
532    /// Permitted values include: `bank_transfer`.
533    pub funding_type: Option<CheckoutCustomerBalancePaymentMethodOptionsFundingType>,
534
535    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
536    ///
537    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
538    ///
539    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
540    #[serde(skip_serializing_if = "Option::is_none")]
541    pub setup_future_usage: Option<CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage>,
542}
543
544#[derive(Clone, Debug, Default, Deserialize, Serialize)]
545pub struct CheckoutCustomerBalanceBankTransferPaymentMethodOptions {
546    #[serde(skip_serializing_if = "Option::is_none")]
547    pub eu_bank_transfer: Option<PaymentMethodOptionsCustomerBalanceEuBankAccount>,
548
549    /// List of address types that should be returned in the financial_addresses response.
550    ///
551    /// If not specified, all valid types will be returned.  Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
552    #[serde(skip_serializing_if = "Option::is_none")]
553    pub requested_address_types:
554        Option<Vec<CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes>>,
555
556    /// The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.
557    #[serde(rename = "type")]
558    pub type_: Option<CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType>,
559}
560
561#[derive(Clone, Debug, Default, Deserialize, Serialize)]
562pub struct CheckoutEpsPaymentMethodOptions {
563    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
564    ///
565    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
566    ///
567    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
568    #[serde(skip_serializing_if = "Option::is_none")]
569    pub setup_future_usage: Option<CheckoutEpsPaymentMethodOptionsSetupFutureUsage>,
570}
571
572#[derive(Clone, Debug, Default, Deserialize, Serialize)]
573pub struct CheckoutFpxPaymentMethodOptions {
574    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
575    ///
576    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
577    ///
578    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
579    #[serde(skip_serializing_if = "Option::is_none")]
580    pub setup_future_usage: Option<CheckoutFpxPaymentMethodOptionsSetupFutureUsage>,
581}
582
583#[derive(Clone, Debug, Default, Deserialize, Serialize)]
584pub struct CheckoutGiropayPaymentMethodOptions {
585    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
586    ///
587    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
588    ///
589    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
590    #[serde(skip_serializing_if = "Option::is_none")]
591    pub setup_future_usage: Option<CheckoutGiropayPaymentMethodOptionsSetupFutureUsage>,
592}
593
594#[derive(Clone, Debug, Default, Deserialize, Serialize)]
595pub struct CheckoutGrabPayPaymentMethodOptions {
596    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
597    ///
598    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
599    ///
600    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
601    #[serde(skip_serializing_if = "Option::is_none")]
602    pub setup_future_usage: Option<CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage>,
603}
604
605#[derive(Clone, Debug, Default, Deserialize, Serialize)]
606pub struct CheckoutIdealPaymentMethodOptions {
607    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
608    ///
609    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
610    ///
611    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
612    #[serde(skip_serializing_if = "Option::is_none")]
613    pub setup_future_usage: Option<CheckoutIdealPaymentMethodOptionsSetupFutureUsage>,
614}
615
616#[derive(Clone, Debug, Default, Deserialize, Serialize)]
617pub struct CheckoutKlarnaPaymentMethodOptions {
618    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
619    ///
620    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
621    ///
622    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
623    #[serde(skip_serializing_if = "Option::is_none")]
624    pub setup_future_usage: Option<CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage>,
625}
626
627#[derive(Clone, Debug, Default, Deserialize, Serialize)]
628pub struct CheckoutKonbiniPaymentMethodOptions {
629    /// The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire.
630    ///
631    /// For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.
632    pub expires_after_days: Option<u32>,
633
634    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
635    ///
636    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
637    ///
638    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
639    #[serde(skip_serializing_if = "Option::is_none")]
640    pub setup_future_usage: Option<CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage>,
641}
642
643#[derive(Clone, Debug, Default, Deserialize, Serialize)]
644pub struct CheckoutLinkPaymentMethodOptions {
645    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
646    ///
647    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
648    ///
649    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
650    #[serde(skip_serializing_if = "Option::is_none")]
651    pub setup_future_usage: Option<CheckoutLinkPaymentMethodOptionsSetupFutureUsage>,
652}
653
654#[derive(Clone, Debug, Default, Deserialize, Serialize)]
655pub struct CheckoutOxxoPaymentMethodOptions {
656    /// The number of calendar days before an OXXO invoice expires.
657    ///
658    /// For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.
659    pub expires_after_days: u32,
660
661    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
662    ///
663    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
664    ///
665    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
666    #[serde(skip_serializing_if = "Option::is_none")]
667    pub setup_future_usage: Option<CheckoutOxxoPaymentMethodOptionsSetupFutureUsage>,
668}
669
670#[derive(Clone, Debug, Default, Deserialize, Serialize)]
671pub struct CheckoutP24PaymentMethodOptions {
672    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
673    ///
674    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
675    ///
676    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
677    #[serde(skip_serializing_if = "Option::is_none")]
678    pub setup_future_usage: Option<CheckoutP24PaymentMethodOptionsSetupFutureUsage>,
679}
680
681#[derive(Clone, Debug, Default, Deserialize, Serialize)]
682pub struct CheckoutPaynowPaymentMethodOptions {
683    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
684    ///
685    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
686    ///
687    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
688    #[serde(skip_serializing_if = "Option::is_none")]
689    pub setup_future_usage: Option<CheckoutPaynowPaymentMethodOptionsSetupFutureUsage>,
690}
691
692#[derive(Clone, Debug, Default, Deserialize, Serialize)]
693pub struct CheckoutPaypalPaymentMethodOptions {
694    /// Controls when the funds will be captured from the customer's account.
695    #[serde(skip_serializing_if = "Option::is_none")]
696    pub capture_method: Option<CheckoutPaypalPaymentMethodOptionsCaptureMethod>,
697
698    /// Preferred locale of the PayPal checkout page that the customer is redirected to.
699    pub preferred_locale: Option<String>,
700
701    /// A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID.
702    ///
703    /// This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
704    pub reference: Option<String>,
705
706    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
707    ///
708    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
709    ///
710    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
711    #[serde(skip_serializing_if = "Option::is_none")]
712    pub setup_future_usage: Option<CheckoutPaypalPaymentMethodOptionsSetupFutureUsage>,
713}
714
715#[derive(Clone, Debug, Default, Deserialize, Serialize)]
716pub struct CheckoutPixPaymentMethodOptions {
717    /// The number of seconds after which Pix payment will expire.
718    pub expires_after_seconds: Option<i64>,
719}
720
721#[derive(Clone, Debug, Default, Deserialize, Serialize)]
722pub struct CheckoutRevolutPayPaymentMethodOptions {}
723
724#[derive(Clone, Debug, Default, Deserialize, Serialize)]
725pub struct CheckoutSepaDebitPaymentMethodOptions {
726    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
727    ///
728    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
729    ///
730    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
731    #[serde(skip_serializing_if = "Option::is_none")]
732    pub setup_future_usage: Option<CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage>,
733}
734
735#[derive(Clone, Debug, Default, Deserialize, Serialize)]
736pub struct CheckoutSofortPaymentMethodOptions {
737    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
738    ///
739    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
740    ///
741    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
742    #[serde(skip_serializing_if = "Option::is_none")]
743    pub setup_future_usage: Option<CheckoutSofortPaymentMethodOptionsSetupFutureUsage>,
744}
745
746#[derive(Clone, Debug, Default, Deserialize, Serialize)]
747pub struct CheckoutSwishPaymentMethodOptions {
748    /// The order reference that will be displayed to customers in the Swish application.
749    ///
750    /// Defaults to the `id` of the Payment Intent.
751    pub reference: Option<String>,
752}
753
754#[derive(Clone, Debug, Default, Deserialize, Serialize)]
755pub struct CheckoutUsBankAccountPaymentMethodOptions {
756    #[serde(skip_serializing_if = "Option::is_none")]
757    pub financial_connections: Option<LinkedAccountOptionsUsBankAccount>,
758
759    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
760    ///
761    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
762    ///
763    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
764    #[serde(skip_serializing_if = "Option::is_none")]
765    pub setup_future_usage: Option<CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage>,
766
767    /// Bank account verification method.
768    #[serde(skip_serializing_if = "Option::is_none")]
769    pub verification_method: Option<CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod>,
770}
771
772#[derive(Clone, Debug, Default, Deserialize, Serialize)]
773pub struct PaymentPagesCheckoutSessionAfterExpiration {
774    /// When set, configuration used to recover the Checkout Session on expiry.
775    pub recovery: Option<PaymentPagesCheckoutSessionAfterExpirationRecovery>,
776}
777
778#[derive(Clone, Debug, Default, Deserialize, Serialize)]
779pub struct PaymentPagesCheckoutSessionAfterExpirationRecovery {
780    /// Enables user redeemable promotion codes on the recovered Checkout Sessions.
781    ///
782    /// Defaults to `false`.
783    pub allow_promotion_codes: bool,
784
785    /// If `true`, a recovery url will be generated to recover this Checkout Session if it
786    /// expires before a transaction is completed.
787    ///
788    /// It will be attached to the Checkout Session object upon expiration.
789    pub enabled: bool,
790
791    /// The timestamp at which the recovery URL will expire.
792    pub expires_at: Option<Timestamp>,
793
794    /// URL that creates a new Checkout Session when clicked that is a copy of this expired Checkout Session.
795    pub url: Option<String>,
796}
797
798#[derive(Clone, Debug, Default, Deserialize, Serialize)]
799pub struct PaymentPagesCheckoutSessionAutomaticTax {
800    /// Indicates whether automatic tax is enabled for the session.
801    pub enabled: bool,
802
803    /// The account that's liable for tax.
804    ///
805    /// If set, the business address and tax registrations required to perform the tax calculation are loaded from this account.
806    /// The tax transaction is returned in the report of the connected account.
807    pub liability: Option<ConnectAccountReference>,
808
809    /// The status of the most recent automated tax calculation for this session.
810    pub status: Option<PaymentPagesCheckoutSessionAutomaticTaxStatus>,
811}
812
813#[derive(Clone, Debug, Default, Deserialize, Serialize)]
814pub struct PaymentPagesCheckoutSessionConsent {
815    /// If `opt_in`, the customer consents to receiving promotional communications
816    /// from the merchant about this Checkout Session.
817    pub promotions: Option<PaymentPagesCheckoutSessionConsentPromotions>,
818
819    /// If `accepted`, the customer in this Checkout Session has agreed to the merchant's terms of service.
820    pub terms_of_service: Option<PaymentPagesCheckoutSessionConsentTermsOfService>,
821}
822
823#[derive(Clone, Debug, Default, Deserialize, Serialize)]
824pub struct PaymentPagesCheckoutSessionConsentCollection {
825    /// If set to `hidden`, it will hide legal text related to the reuse of a payment method.
826    pub payment_method_reuse_agreement:
827        Option<PaymentPagesCheckoutSessionPaymentMethodReuseAgreement>,
828
829    /// If set to `auto`, enables the collection of customer consent for promotional communications.
830    ///
831    /// The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on the customer's locale.
832    /// Only available to US merchants.
833    pub promotions: Option<PaymentPagesCheckoutSessionConsentCollectionPromotions>,
834
835    /// If set to `required`, it requires customers to accept the terms of service before being able to pay.
836    pub terms_of_service: Option<PaymentPagesCheckoutSessionConsentCollectionTermsOfService>,
837}
838
839#[derive(Clone, Debug, Default, Deserialize, Serialize)]
840pub struct PaymentPagesCheckoutSessionCurrencyConversion {
841    /// Total of all items in source currency before discounts or taxes are applied.
842    pub amount_subtotal: i64,
843
844    /// Total of all items in source currency after discounts and taxes are applied.
845    pub amount_total: i64,
846
847    /// Exchange rate used to convert source currency amounts to customer currency amounts.
848    pub fx_rate: String,
849
850    /// Creation currency of the CheckoutSession before localization.
851    pub source_currency: Currency,
852}
853
854#[derive(Clone, Debug, Default, Deserialize, Serialize)]
855pub struct PaymentPagesCheckoutSessionCustomFields {
856    #[serde(skip_serializing_if = "Option::is_none")]
857    pub dropdown: Option<PaymentPagesCheckoutSessionCustomFieldsDropdown>,
858
859    /// String of your choice that your integration can use to reconcile this field.
860    ///
861    /// Must be unique to this field, alphanumeric, and up to 200 characters.
862    pub key: String,
863
864    pub label: PaymentPagesCheckoutSessionCustomFieldsLabel,
865
866    #[serde(skip_serializing_if = "Option::is_none")]
867    pub numeric: Option<PaymentPagesCheckoutSessionCustomFieldsNumeric>,
868
869    /// Whether the customer is required to complete the field before completing the Checkout Session.
870    ///
871    /// Defaults to `false`.
872    pub optional: bool,
873
874    #[serde(skip_serializing_if = "Option::is_none")]
875    pub text: Option<PaymentPagesCheckoutSessionCustomFieldsText>,
876
877    /// The type of the field.
878    #[serde(rename = "type")]
879    pub type_: PaymentPagesCheckoutSessionCustomFieldsType,
880}
881
882#[derive(Clone, Debug, Default, Deserialize, Serialize)]
883pub struct PaymentPagesCheckoutSessionCustomFieldsDropdown {
884    /// The options available for the customer to select.
885    ///
886    /// Up to 200 options allowed.
887    pub options: Vec<PaymentPagesCheckoutSessionCustomFieldsOption>,
888
889    /// The option selected by the customer.
890    ///
891    /// This will be the `value` for the option.
892    pub value: Option<String>,
893}
894
895#[derive(Clone, Debug, Default, Deserialize, Serialize)]
896pub struct PaymentPagesCheckoutSessionCustomFieldsLabel {
897    /// Custom text for the label, displayed to the customer.
898    ///
899    /// Up to 50 characters.
900    pub custom: Option<String>,
901
902    /// The type of the label.
903    #[serde(rename = "type")]
904    pub type_: PaymentPagesCheckoutSessionCustomFieldsLabelType,
905}
906
907#[derive(Clone, Debug, Default, Deserialize, Serialize)]
908pub struct PaymentPagesCheckoutSessionCustomFieldsNumeric {
909    /// The maximum character length constraint for the customer's input.
910    pub maximum_length: Option<i64>,
911
912    /// The minimum character length requirement for the customer's input.
913    pub minimum_length: Option<i64>,
914
915    /// The value entered by the customer, containing only digits.
916    pub value: Option<String>,
917}
918
919#[derive(Clone, Debug, Default, Deserialize, Serialize)]
920pub struct PaymentPagesCheckoutSessionCustomFieldsOption {
921    /// The label for the option, displayed to the customer.
922    ///
923    /// Up to 100 characters.
924    pub label: String,
925
926    /// The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer.
927    ///
928    /// Must be unique to this option, alphanumeric, and up to 100 characters.
929    pub value: String,
930}
931
932#[derive(Clone, Debug, Default, Deserialize, Serialize)]
933pub struct PaymentPagesCheckoutSessionCustomFieldsText {
934    /// The maximum character length constraint for the customer's input.
935    pub maximum_length: Option<i64>,
936
937    /// The minimum character length requirement for the customer's input.
938    pub minimum_length: Option<i64>,
939
940    /// The value entered by the customer.
941    pub value: Option<String>,
942}
943
944#[derive(Clone, Debug, Default, Deserialize, Serialize)]
945pub struct PaymentPagesCheckoutSessionCustomText {
946    /// Custom text that should be displayed after the payment confirmation button.
947    pub after_submit: Option<PaymentPagesCheckoutSessionCustomTextPosition>,
948
949    /// Custom text that should be displayed alongside shipping address collection.
950    pub shipping_address: Option<PaymentPagesCheckoutSessionCustomTextPosition>,
951
952    /// Custom text that should be displayed alongside the payment confirmation button.
953    pub submit: Option<PaymentPagesCheckoutSessionCustomTextPosition>,
954
955    /// Custom text that should be displayed in place of the default terms of service agreement text.
956    pub terms_of_service_acceptance: Option<PaymentPagesCheckoutSessionCustomTextPosition>,
957}
958
959#[derive(Clone, Debug, Default, Deserialize, Serialize)]
960pub struct PaymentPagesCheckoutSessionCustomTextPosition {
961    /// Text may be up to 1200 characters in length.
962    pub message: String,
963}
964
965#[derive(Clone, Debug, Default, Deserialize, Serialize)]
966pub struct PaymentPagesCheckoutSessionCustomerDetails {
967    /// The customer's address after a completed Checkout Session.
968    ///
969    /// Note: This property is populated only for sessions on or after March 30, 2022.
970    pub address: Option<Address>,
971
972    /// The email associated with the Customer, if one exists, on the Checkout Session after a completed Checkout Session or at time of session expiry.
973    /// Otherwise, if the customer has consented to promotional content, this value is the most recent valid email provided by the customer on the Checkout form.
974    pub email: Option<String>,
975
976    /// The customer's name after a completed Checkout Session.
977    ///
978    /// Note: This property is populated only for sessions on or after March 30, 2022.
979    pub name: Option<String>,
980
981    /// The customer's phone number after a completed Checkout Session.
982    pub phone: Option<String>,
983
984    /// The customer’s tax exempt status after a completed Checkout Session.
985    pub tax_exempt: Option<PaymentPagesCheckoutSessionCustomerDetailsTaxExempt>,
986
987    /// The customer’s tax IDs after a completed Checkout Session.
988    pub tax_ids: Option<Vec<PaymentPagesCheckoutSessionTaxId>>,
989}
990
991#[derive(Clone, Debug, Default, Deserialize, Serialize)]
992pub struct PaymentPagesCheckoutSessionInvoiceCreation {
993    /// Indicates whether invoice creation is enabled for the Checkout Session.
994    pub enabled: bool,
995
996    pub invoice_data: PaymentPagesCheckoutSessionInvoiceSettings,
997}
998
999#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1000pub struct PaymentPagesCheckoutSessionInvoiceSettings {
1001    /// The account tax IDs associated with the invoice.
1002    pub account_tax_ids: Option<Vec<Expandable<TaxId>>>,
1003
1004    /// Custom fields displayed on the invoice.
1005    pub custom_fields: Option<Vec<InvoiceSettingCustomField>>,
1006
1007    /// An arbitrary string attached to the object.
1008    ///
1009    /// Often useful for displaying to users.
1010    pub description: Option<String>,
1011
1012    /// Footer displayed on the invoice.
1013    pub footer: Option<String>,
1014
1015    /// The connected account that issues the invoice.
1016    ///
1017    /// The invoice is presented with the branding and support information of the specified account.
1018    pub issuer: Option<ConnectAccountReference>,
1019
1020    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1021    ///
1022    /// This can be useful for storing additional information about the object in a structured format.
1023    pub metadata: Option<Metadata>,
1024
1025    /// Options for invoice PDF rendering.
1026    pub rendering_options: Option<InvoiceSettingRenderingOptions>,
1027}
1028
1029#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1030pub struct InvoiceSettingCustomField {
1031    /// The name of the custom field.
1032    pub name: String,
1033
1034    /// The value of the custom field.
1035    pub value: String,
1036}
1037
1038#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1039pub struct PaymentPagesCheckoutSessionPaymentMethodReuseAgreement {
1040    /// Determines the position and visibility of the payment method reuse agreement in the UI.
1041    ///
1042    /// When set to `auto`, Stripe's defaults will be used.  When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI.
1043    pub position: PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition,
1044}
1045
1046#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1047pub struct PaymentPagesCheckoutSessionPhoneNumberCollection {
1048    /// Indicates whether phone number collection is enabled for the session.
1049    pub enabled: bool,
1050}
1051
1052#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1053pub struct PaymentPagesCheckoutSessionShippingAddressCollection {
1054    /// An array of two-letter ISO country codes representing which countries Checkout should provide as options for
1055    /// shipping locations.
1056    ///
1057    /// Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.
1058    pub allowed_countries:
1059        Vec<PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries>,
1060}
1061
1062#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1063pub struct PaymentPagesCheckoutSessionShippingCost {
1064    /// Total shipping cost before any discounts or taxes are applied.
1065    pub amount_subtotal: i64,
1066
1067    /// Total tax amount applied due to shipping costs.
1068    ///
1069    /// If no tax was applied, defaults to 0.
1070    pub amount_tax: i64,
1071
1072    /// Total shipping cost after discounts and taxes are applied.
1073    pub amount_total: i64,
1074
1075    /// The ID of the ShippingRate for this order.
1076    pub shipping_rate: Option<Expandable<ShippingRate>>,
1077
1078    /// The taxes applied to the shipping rate.
1079    #[serde(skip_serializing_if = "Option::is_none")]
1080    pub taxes: Option<Vec<LineItemsTaxAmount>>,
1081}
1082
1083#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1084pub struct LineItemsTaxAmount {
1085    /// Amount of tax applied for this rate.
1086    pub amount: i64,
1087
1088    pub rate: TaxRate,
1089
1090    /// The reasoning behind this tax, for example, if the product is tax exempt.
1091    ///
1092    /// The possible values for this field may be extended as new tax rules are supported.
1093    pub taxability_reason: Option<LineItemsTaxAmountTaxabilityReason>,
1094
1095    /// The amount on which tax is calculated, in cents (or local equivalent).
1096    pub taxable_amount: Option<i64>,
1097}
1098
1099#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1100pub struct PaymentPagesCheckoutSessionShippingOption {
1101    /// A non-negative integer in cents representing how much to charge.
1102    pub shipping_amount: i64,
1103
1104    /// The shipping rate.
1105    pub shipping_rate: Expandable<ShippingRate>,
1106}
1107
1108#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1109pub struct PaymentPagesCheckoutSessionTaxId {
1110    /// The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, or `unknown`.
1111    #[serde(rename = "type")]
1112    pub type_: PaymentPagesCheckoutSessionTaxIdType,
1113
1114    /// The value of the tax ID.
1115    pub value: Option<String>,
1116}
1117
1118#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1119pub struct PaymentPagesCheckoutSessionTaxIdCollection {
1120    /// Indicates whether tax ID collection is enabled for the session.
1121    pub enabled: bool,
1122}
1123
1124#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1125pub struct PaymentPagesCheckoutSessionTotalDetails {
1126    /// This is the sum of all the discounts.
1127    pub amount_discount: i64,
1128
1129    /// This is the sum of all the shipping amounts.
1130    pub amount_shipping: Option<i64>,
1131
1132    /// This is the sum of all the tax amounts.
1133    pub amount_tax: i64,
1134
1135    #[serde(skip_serializing_if = "Option::is_none")]
1136    pub breakdown: Option<PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown>,
1137}
1138
1139#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1140pub struct PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown {
1141    /// The aggregated discounts.
1142    pub discounts: Vec<LineItemsDiscountAmount>,
1143
1144    /// The aggregated tax amounts by rate.
1145    pub taxes: Vec<LineItemsTaxAmount>,
1146}
1147
1148#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1149pub struct LineItemsDiscountAmount {
1150    /// The amount discounted.
1151    pub amount: i64,
1152
1153    pub discount: Discount,
1154}
1155
1156/// The parameters for `CheckoutSession::create`.
1157#[derive(Clone, Debug, Serialize, Default)]
1158pub struct CreateCheckoutSession<'a> {
1159    /// Configure actions after a Checkout Session has expired.
1160    #[serde(skip_serializing_if = "Option::is_none")]
1161    pub after_expiration: Option<CreateCheckoutSessionAfterExpiration>,
1162
1163    /// Enables user redeemable promotion codes.
1164    #[serde(skip_serializing_if = "Option::is_none")]
1165    pub allow_promotion_codes: Option<bool>,
1166
1167    /// Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions.
1168    #[serde(skip_serializing_if = "Option::is_none")]
1169    pub automatic_tax: Option<CreateCheckoutSessionAutomaticTax>,
1170
1171    /// Specify whether Checkout should collect the customer's billing address.
1172    #[serde(skip_serializing_if = "Option::is_none")]
1173    pub billing_address_collection: Option<CheckoutSessionBillingAddressCollection>,
1174
1175    /// If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.
1176    #[serde(skip_serializing_if = "Option::is_none")]
1177    pub cancel_url: Option<&'a str>,
1178
1179    /// A unique string to reference the Checkout Session.
1180    ///
1181    /// This can be a customer ID, a cart ID, or similar, and can be used to reconcile the session with your internal systems.
1182    #[serde(skip_serializing_if = "Option::is_none")]
1183    pub client_reference_id: Option<&'a str>,
1184
1185    /// Configure fields for the Checkout Session to gather active consent from customers.
1186    #[serde(skip_serializing_if = "Option::is_none")]
1187    pub consent_collection: Option<CreateCheckoutSessionConsentCollection>,
1188
1189    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
1190    ///
1191    /// Must be a [supported currency](https://stripe.com/docs/currencies).
1192    /// Required in `setup` mode when `payment_method_types` is not set.
1193    #[serde(skip_serializing_if = "Option::is_none")]
1194    pub currency: Option<Currency>,
1195
1196    /// Collect additional information from your customer using custom fields.
1197    ///
1198    /// Up to 3 fields are supported.
1199    #[serde(skip_serializing_if = "Option::is_none")]
1200    pub custom_fields: Option<Vec<CreateCheckoutSessionCustomFields>>,
1201
1202    /// Display additional text for your customers using custom text.
1203    #[serde(skip_serializing_if = "Option::is_none")]
1204    pub custom_text: Option<CreateCheckoutSessionCustomText>,
1205
1206    /// ID of an existing Customer, if one exists.
1207    ///
1208    /// In `payment` mode, the customer’s most recently saved card payment method will be used to prefill the email, name, card details, and billing address on the Checkout page.
1209    /// In `subscription` mode, the customer’s [default payment method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) will be used if it’s a card, otherwise the most recently saved card will be used.
1210    /// A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer's card details.  If the Customer already has a valid [email](https://stripe.com/docs/api/customers/object#customer_object-email) set, the email will be prefilled and not editable in Checkout. If the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer.  If blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow.  You can set [`payment_intent_data.setup_future_usage`](https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse.
1211    #[serde(skip_serializing_if = "Option::is_none")]
1212    pub customer: Option<CustomerId>,
1213
1214    /// Configure whether a Checkout Session creates a [Customer](https://stripe.com/docs/api/customers) during Session confirmation.
1215    ///
1216    /// When a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout
1217    /// with [customer_details](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details).
1218    ///
1219    /// Sessions that don't create Customers instead are grouped by [guest customers](https://stripe.com/docs/payments/checkout/guest-customers)
1220    /// in the Dashboard.
1221    ///
1222    /// Promotion codes limited to first time customers will return invalid for these Sessions.  Can only be set in `payment` and `setup` mode.
1223    #[serde(skip_serializing_if = "Option::is_none")]
1224    pub customer_creation: Option<CheckoutSessionCustomerCreation>,
1225
1226    /// If provided, this value will be used when the Customer object is created.
1227    /// If not provided, customers will be asked to enter their email address.
1228    /// Use this parameter to prefill customer data if you already have an email
1229    /// on file.
1230    ///
1231    /// To access information about the customer once a session is complete, use the `customer` field.
1232    #[serde(skip_serializing_if = "Option::is_none")]
1233    pub customer_email: Option<&'a str>,
1234
1235    /// Controls what fields on Customer can be updated by the Checkout Session.
1236    ///
1237    /// Can only be provided when `customer` is provided.
1238    #[serde(skip_serializing_if = "Option::is_none")]
1239    pub customer_update: Option<CreateCheckoutSessionCustomerUpdate>,
1240
1241    /// The coupon or promotion code to apply to this Session.
1242    ///
1243    /// Currently, only up to one may be specified.
1244    #[serde(skip_serializing_if = "Option::is_none")]
1245    pub discounts: Option<Vec<CreateCheckoutSessionDiscounts>>,
1246
1247    /// Specifies which fields in the response should be expanded.
1248    #[serde(skip_serializing_if = "Expand::is_empty")]
1249    pub expand: &'a [&'a str],
1250
1251    /// The Epoch time in seconds at which the Checkout Session will expire.
1252    ///
1253    /// It can be anywhere from 30 minutes to 24 hours after Checkout Session creation.
1254    /// By default, this value is 24 hours from creation.
1255    #[serde(skip_serializing_if = "Option::is_none")]
1256    pub expires_at: Option<Timestamp>,
1257
1258    /// Generate a post-purchase Invoice for one-time payments.
1259    #[serde(skip_serializing_if = "Option::is_none")]
1260    pub invoice_creation: Option<CreateCheckoutSessionInvoiceCreation>,
1261
1262    /// A list of items the customer is purchasing.
1263    ///
1264    /// Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices).  For `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen.  For `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices.
1265    /// Line items with one-time Prices will be on the initial invoice only.
1266    #[serde(skip_serializing_if = "Option::is_none")]
1267    pub line_items: Option<Vec<CreateCheckoutSessionLineItems>>,
1268
1269    /// The IETF language tag of the locale Checkout is displayed in.
1270    ///
1271    /// If blank or `auto`, the browser's locale is used.
1272    #[serde(skip_serializing_if = "Option::is_none")]
1273    pub locale: Option<CheckoutSessionLocale>,
1274
1275    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1276    ///
1277    /// This can be useful for storing additional information about the object in a structured format.
1278    /// Individual keys can be unset by posting an empty value to them.
1279    /// All keys can be unset by posting an empty value to `metadata`.
1280    #[serde(skip_serializing_if = "Option::is_none")]
1281    pub metadata: Option<Metadata>,
1282
1283    /// The mode of the Checkout Session.
1284    ///
1285    /// Pass `subscription` if the Checkout Session includes at least one recurring item.
1286    #[serde(skip_serializing_if = "Option::is_none")]
1287    pub mode: Option<CheckoutSessionMode>,
1288
1289    /// A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.
1290    #[serde(skip_serializing_if = "Option::is_none")]
1291    pub payment_intent_data: Option<CreateCheckoutSessionPaymentIntentData>,
1292
1293    /// Specify whether Checkout should collect a payment method.
1294    ///
1295    /// When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0. This may occur if the Checkout Session includes a free trial or a discount.  Can only be set in `subscription` mode.  If you'd like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials).
1296    #[serde(skip_serializing_if = "Option::is_none")]
1297    pub payment_method_collection: Option<CheckoutSessionPaymentMethodCollection>,
1298
1299    /// The ID of the payment method configuration to use with this Checkout session.
1300    #[serde(skip_serializing_if = "Option::is_none")]
1301    pub payment_method_configuration: Option<PaymentMethodConfigurationId>,
1302
1303    /// Payment-method-specific configuration.
1304    #[serde(skip_serializing_if = "Option::is_none")]
1305    pub payment_method_options: Option<CreateCheckoutSessionPaymentMethodOptions>,
1306
1307    /// A list of the types of payment methods (e.g., `card`) this Checkout Session can accept.
1308    ///
1309    /// You can omit this attribute to manage your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
1310    /// See [Dynamic Payment Methods](https://stripe.com/docs/payments/payment-methods/integration-options#using-dynamic-payment-methods) for more details.
1311    ///
1312    /// Read more about the supported payment methods and their requirements in our [payment
1313    /// method details guide](/docs/payments/checkout/payment-methods).
1314    ///
1315    /// If multiple payment methods are passed, Checkout will dynamically reorder them to
1316    /// prioritize the most relevant payment methods based on the customer's location and
1317    /// other characteristics.
1318    #[serde(skip_serializing_if = "Option::is_none")]
1319    pub payment_method_types: Option<Vec<CreateCheckoutSessionPaymentMethodTypes>>,
1320
1321    /// Controls phone number collection settings for the session.
1322    ///
1323    /// We recommend that you review your privacy policy and check with your legal contacts
1324    /// before using this feature.
1325    ///
1326    /// Learn more about [collecting phone numbers with Checkout](https://stripe.com/docs/payments/checkout/phone-numbers).
1327    #[serde(skip_serializing_if = "Option::is_none")]
1328    pub phone_number_collection: Option<CreateCheckoutSessionPhoneNumberCollection>,
1329
1330    /// This parameter applies to `ui_mode: embedded`.
1331    ///
1332    /// By default, Stripe will always redirect to your return_url after a successful confirmation.
1333    /// If you set `redirect_on_completion: 'if_required'`, then we will only redirect if your user chooses a redirect-based payment method.
1334    #[serde(skip_serializing_if = "Option::is_none")]
1335    pub redirect_on_completion: Option<CheckoutSessionRedirectOnCompletion>,
1336
1337    /// The URL to redirect your customer back to after they authenticate or cancel their payment on the
1338    /// payment method's app or site.
1339    ///
1340    /// This parameter is required if ui_mode is `embedded` and redirect-based payment methods are enabled on the session.
1341    #[serde(skip_serializing_if = "Option::is_none")]
1342    pub return_url: Option<&'a str>,
1343
1344    /// A subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode.
1345    #[serde(skip_serializing_if = "Option::is_none")]
1346    pub setup_intent_data: Option<CreateCheckoutSessionSetupIntentData>,
1347
1348    /// When set, provides configuration for Checkout to collect a shipping address from a customer.
1349    #[serde(skip_serializing_if = "Option::is_none")]
1350    pub shipping_address_collection: Option<CreateCheckoutSessionShippingAddressCollection>,
1351
1352    /// The shipping rate options to apply to this Session.
1353    ///
1354    /// Up to a maximum of 5.
1355    #[serde(skip_serializing_if = "Option::is_none")]
1356    pub shipping_options: Option<Vec<CreateCheckoutSessionShippingOptions>>,
1357
1358    /// Describes the type of transaction being performed by Checkout in order to customize
1359    /// relevant text on the page, such as the submit button.
1360    ///
1361    /// `submit_type` can only be specified on Checkout Sessions in `payment` mode.
1362    /// If blank or `auto`, `pay` is used.
1363    #[serde(skip_serializing_if = "Option::is_none")]
1364    pub submit_type: Option<CheckoutSessionSubmitType>,
1365
1366    /// A subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode.
1367    #[serde(skip_serializing_if = "Option::is_none")]
1368    pub subscription_data: Option<CreateCheckoutSessionSubscriptionData>,
1369
1370    /// The URL to which Stripe should send customers when payment or setup
1371    /// is complete.
1372    /// This parameter is not allowed if ui_mode is `embedded`.
1373    ///
1374    /// If you’d like to use information from the successful Checkout Session on your page, read the guide on [customizing your success page](https://stripe.com/docs/payments/checkout/custom-success-page).
1375    #[serde(skip_serializing_if = "Option::is_none")]
1376    pub success_url: Option<&'a str>,
1377
1378    /// Controls tax ID collection settings for the session.
1379    #[serde(skip_serializing_if = "Option::is_none")]
1380    pub tax_id_collection: Option<CreateCheckoutSessionTaxIdCollection>,
1381
1382    /// `ui_mode` can be `hosted` or `embedded`.
1383    ///
1384    /// The default is `hosted`.
1385    #[serde(skip_serializing_if = "Option::is_none")]
1386    pub ui_mode: Option<CheckoutSessionUiMode>,
1387}
1388
1389impl<'a> CreateCheckoutSession<'a> {
1390    pub fn new() -> Self {
1391        CreateCheckoutSession {
1392            after_expiration: Default::default(),
1393            allow_promotion_codes: Default::default(),
1394            automatic_tax: Default::default(),
1395            billing_address_collection: Default::default(),
1396            cancel_url: Default::default(),
1397            client_reference_id: Default::default(),
1398            consent_collection: Default::default(),
1399            currency: Default::default(),
1400            custom_fields: Default::default(),
1401            custom_text: Default::default(),
1402            customer: Default::default(),
1403            customer_creation: Default::default(),
1404            customer_email: Default::default(),
1405            customer_update: Default::default(),
1406            discounts: Default::default(),
1407            expand: Default::default(),
1408            expires_at: Default::default(),
1409            invoice_creation: Default::default(),
1410            line_items: Default::default(),
1411            locale: Default::default(),
1412            metadata: Default::default(),
1413            mode: Default::default(),
1414            payment_intent_data: Default::default(),
1415            payment_method_collection: Default::default(),
1416            payment_method_configuration: Default::default(),
1417            payment_method_options: Default::default(),
1418            payment_method_types: Default::default(),
1419            phone_number_collection: Default::default(),
1420            redirect_on_completion: Default::default(),
1421            return_url: Default::default(),
1422            setup_intent_data: Default::default(),
1423            shipping_address_collection: Default::default(),
1424            shipping_options: Default::default(),
1425            submit_type: Default::default(),
1426            subscription_data: Default::default(),
1427            success_url: Default::default(),
1428            tax_id_collection: Default::default(),
1429            ui_mode: Default::default(),
1430        }
1431    }
1432}
1433
1434/// The parameters for `CheckoutSession::list`.
1435#[derive(Clone, Debug, Serialize, Default)]
1436pub struct ListCheckoutSessions<'a> {
1437    /// Only return the Checkout Sessions that were created during the given date interval.
1438    #[serde(skip_serializing_if = "Option::is_none")]
1439    pub created: Option<RangeQuery<Timestamp>>,
1440
1441    /// Only return the Checkout Sessions for the Customer specified.
1442    #[serde(skip_serializing_if = "Option::is_none")]
1443    pub customer: Option<CustomerId>,
1444
1445    /// Only return the Checkout Sessions for the Customer details specified.
1446    #[serde(skip_serializing_if = "Option::is_none")]
1447    pub customer_details: Option<ListCheckoutSessionsCustomerDetails>,
1448
1449    /// A cursor for use in pagination.
1450    ///
1451    /// `ending_before` is an object ID that defines your place in the list.
1452    /// For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
1453    #[serde(skip_serializing_if = "Option::is_none")]
1454    pub ending_before: Option<CheckoutSessionId>,
1455
1456    /// Specifies which fields in the response should be expanded.
1457    #[serde(skip_serializing_if = "Expand::is_empty")]
1458    pub expand: &'a [&'a str],
1459
1460    /// A limit on the number of objects to be returned.
1461    ///
1462    /// Limit can range between 1 and 100, and the default is 10.
1463    #[serde(skip_serializing_if = "Option::is_none")]
1464    pub limit: Option<u64>,
1465
1466    /// Only return the Checkout Session for the PaymentIntent specified.
1467    #[serde(skip_serializing_if = "Option::is_none")]
1468    pub payment_intent: Option<PaymentIntentId>,
1469
1470    /// Only return the Checkout Sessions for the Payment Link specified.
1471    #[serde(skip_serializing_if = "Option::is_none")]
1472    pub payment_link: Option<PaymentLinkId>,
1473
1474    /// A cursor for use in pagination.
1475    ///
1476    /// `starting_after` is an object ID that defines your place in the list.
1477    /// For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
1478    #[serde(skip_serializing_if = "Option::is_none")]
1479    pub starting_after: Option<CheckoutSessionId>,
1480
1481    /// Only return the Checkout Sessions matching the given status.
1482    #[serde(skip_serializing_if = "Option::is_none")]
1483    pub status: Option<CheckoutSessionStatus>,
1484
1485    /// Only return the Checkout Session for the subscription specified.
1486    #[serde(skip_serializing_if = "Option::is_none")]
1487    pub subscription: Option<SubscriptionId>,
1488}
1489
1490impl<'a> ListCheckoutSessions<'a> {
1491    pub fn new() -> Self {
1492        ListCheckoutSessions {
1493            created: Default::default(),
1494            customer: Default::default(),
1495            customer_details: Default::default(),
1496            ending_before: Default::default(),
1497            expand: Default::default(),
1498            limit: Default::default(),
1499            payment_intent: Default::default(),
1500            payment_link: Default::default(),
1501            starting_after: Default::default(),
1502            status: Default::default(),
1503            subscription: Default::default(),
1504        }
1505    }
1506}
1507impl Paginable for ListCheckoutSessions<'_> {
1508    type O = CheckoutSession;
1509    fn set_last(&mut self, item: Self::O) {
1510        self.starting_after = Some(item.id());
1511    }
1512}
1513#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1514pub struct CreateCheckoutSessionAfterExpiration {
1515    /// Configure a Checkout Session that can be used to recover an expired session.
1516    #[serde(skip_serializing_if = "Option::is_none")]
1517    pub recovery: Option<CreateCheckoutSessionAfterExpirationRecovery>,
1518}
1519
1520#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1521pub struct CreateCheckoutSessionAutomaticTax {
1522    /// Set to true to enable automatic taxes.
1523    pub enabled: bool,
1524
1525    /// The account that's liable for tax.
1526    ///
1527    /// If set, the business address and tax registrations required to perform the tax calculation are loaded from this account.
1528    /// The tax transaction is returned in the report of the connected account.
1529    #[serde(skip_serializing_if = "Option::is_none")]
1530    pub liability: Option<CreateCheckoutSessionAutomaticTaxLiability>,
1531}
1532
1533#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1534pub struct CreateCheckoutSessionConsentCollection {
1535    /// Determines the display of payment method reuse agreement text in the UI.
1536    ///
1537    /// If set to `hidden`, it will hide legal text related to the reuse of a payment method.
1538    #[serde(skip_serializing_if = "Option::is_none")]
1539    pub payment_method_reuse_agreement:
1540        Option<CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement>,
1541
1542    /// If set to `auto`, enables the collection of customer consent for promotional communications.
1543    ///
1544    /// The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on the customer's locale.
1545    /// Only available to US merchants.
1546    #[serde(skip_serializing_if = "Option::is_none")]
1547    pub promotions: Option<CreateCheckoutSessionConsentCollectionPromotions>,
1548
1549    /// If set to `required`, it requires customers to check a terms of service checkbox before being able to pay.
1550    /// There must be a valid terms of service URL set in your [Dashboard settings](https://dashboard.stripe.com/settings/public).
1551    #[serde(skip_serializing_if = "Option::is_none")]
1552    pub terms_of_service: Option<CreateCheckoutSessionConsentCollectionTermsOfService>,
1553}
1554
1555#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1556pub struct CreateCheckoutSessionCustomFields {
1557    /// Configuration for `type=dropdown` fields.
1558    #[serde(skip_serializing_if = "Option::is_none")]
1559    pub dropdown: Option<CreateCheckoutSessionCustomFieldsDropdown>,
1560
1561    /// String of your choice that your integration can use to reconcile this field.
1562    ///
1563    /// Must be unique to this field, alphanumeric, and up to 200 characters.
1564    pub key: String,
1565
1566    /// The label for the field, displayed to the customer.
1567    pub label: CreateCheckoutSessionCustomFieldsLabel,
1568
1569    /// Configuration for `type=numeric` fields.
1570    #[serde(skip_serializing_if = "Option::is_none")]
1571    pub numeric: Option<CreateCheckoutSessionCustomFieldsNumeric>,
1572
1573    /// Whether the customer is required to complete the field before completing the Checkout Session.
1574    ///
1575    /// Defaults to `false`.
1576    #[serde(skip_serializing_if = "Option::is_none")]
1577    pub optional: Option<bool>,
1578
1579    /// Configuration for `type=text` fields.
1580    #[serde(skip_serializing_if = "Option::is_none")]
1581    pub text: Option<CreateCheckoutSessionCustomFieldsText>,
1582
1583    /// The type of the field.
1584    #[serde(rename = "type")]
1585    pub type_: CreateCheckoutSessionCustomFieldsType,
1586}
1587
1588#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1589pub struct CreateCheckoutSessionCustomText {
1590    /// Custom text that should be displayed after the payment confirmation button.
1591    #[serde(skip_serializing_if = "Option::is_none")]
1592    pub after_submit: Option<CreateCheckoutSessionCustomTextAfterSubmit>,
1593
1594    /// Custom text that should be displayed alongside shipping address collection.
1595    #[serde(skip_serializing_if = "Option::is_none")]
1596    pub shipping_address: Option<CreateCheckoutSessionCustomTextShippingAddress>,
1597
1598    /// Custom text that should be displayed alongside the payment confirmation button.
1599    #[serde(skip_serializing_if = "Option::is_none")]
1600    pub submit: Option<CreateCheckoutSessionCustomTextSubmit>,
1601
1602    /// Custom text that should be displayed in place of the default terms of service agreement text.
1603    #[serde(skip_serializing_if = "Option::is_none")]
1604    pub terms_of_service_acceptance:
1605        Option<CreateCheckoutSessionCustomTextTermsOfServiceAcceptance>,
1606}
1607
1608#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1609pub struct CreateCheckoutSessionCustomerUpdate {
1610    /// Describes whether Checkout saves the billing address onto `customer.address`.
1611    /// To always collect a full billing address, use `billing_address_collection`.
1612    ///
1613    /// Defaults to `never`.
1614    #[serde(skip_serializing_if = "Option::is_none")]
1615    pub address: Option<CreateCheckoutSessionCustomerUpdateAddress>,
1616
1617    /// Describes whether Checkout saves the name onto `customer.name`.
1618    ///
1619    /// Defaults to `never`.
1620    #[serde(skip_serializing_if = "Option::is_none")]
1621    pub name: Option<CreateCheckoutSessionCustomerUpdateName>,
1622
1623    /// Describes whether Checkout saves shipping information onto `customer.shipping`.
1624    /// To collect shipping information, use `shipping_address_collection`.
1625    ///
1626    /// Defaults to `never`.
1627    #[serde(skip_serializing_if = "Option::is_none")]
1628    pub shipping: Option<CreateCheckoutSessionCustomerUpdateShipping>,
1629}
1630
1631#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1632pub struct CreateCheckoutSessionDiscounts {
1633    /// The ID of the coupon to apply to this Session.
1634    #[serde(skip_serializing_if = "Option::is_none")]
1635    pub coupon: Option<String>,
1636
1637    /// The ID of a promotion code to apply to this Session.
1638    #[serde(skip_serializing_if = "Option::is_none")]
1639    pub promotion_code: Option<String>,
1640}
1641
1642#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1643pub struct CreateCheckoutSessionInvoiceCreation {
1644    /// Set to `true` to enable invoice creation.
1645    pub enabled: bool,
1646
1647    /// Parameters passed when creating invoices for payment-mode Checkout Sessions.
1648    #[serde(skip_serializing_if = "Option::is_none")]
1649    pub invoice_data: Option<CreateCheckoutSessionInvoiceCreationInvoiceData>,
1650}
1651
1652#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1653pub struct CreateCheckoutSessionLineItems {
1654    /// When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout.
1655    #[serde(skip_serializing_if = "Option::is_none")]
1656    pub adjustable_quantity: Option<CreateCheckoutSessionLineItemsAdjustableQuantity>,
1657
1658    /// The [tax rates](https://stripe.com/docs/api/tax_rates) that will be applied to this line item depending on the customer's billing/shipping address.
1659    ///
1660    /// We currently support the following countries: US, GB, AU, and all countries in the EU.
1661    #[serde(skip_serializing_if = "Option::is_none")]
1662    pub dynamic_tax_rates: Option<Vec<String>>,
1663
1664    /// The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object.
1665    ///
1666    /// One of `price` or `price_data` is required.
1667    #[serde(skip_serializing_if = "Option::is_none")]
1668    pub price: Option<String>,
1669
1670    /// Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1671    ///
1672    /// One of `price` or `price_data` is required.
1673    #[serde(skip_serializing_if = "Option::is_none")]
1674    pub price_data: Option<CreateCheckoutSessionLineItemsPriceData>,
1675
1676    /// The quantity of the line item being purchased.
1677    ///
1678    /// Quantity should not be defined when `recurring.usage_type=metered`.
1679    #[serde(skip_serializing_if = "Option::is_none")]
1680    pub quantity: Option<u64>,
1681
1682    /// The [tax rates](https://stripe.com/docs/api/tax_rates) which apply to this line item.
1683    #[serde(skip_serializing_if = "Option::is_none")]
1684    pub tax_rates: Option<Vec<String>>,
1685}
1686
1687#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1688pub struct CreateCheckoutSessionPaymentIntentData {
1689    /// The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account.
1690    ///
1691    /// The amount of the application fee collected will be capped at the total payment amount.
1692    /// For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1693    #[serde(skip_serializing_if = "Option::is_none")]
1694    pub application_fee_amount: Option<i64>,
1695
1696    /// Controls when the funds will be captured from the customer's account.
1697    #[serde(skip_serializing_if = "Option::is_none")]
1698    pub capture_method: Option<CreateCheckoutSessionPaymentIntentDataCaptureMethod>,
1699
1700    /// An arbitrary string attached to the object.
1701    ///
1702    /// Often useful for displaying to users.
1703    #[serde(skip_serializing_if = "Option::is_none")]
1704    pub description: Option<String>,
1705
1706    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1707    ///
1708    /// This can be useful for storing additional information about the object in a structured format.
1709    /// Individual keys can be unset by posting an empty value to them.
1710    /// All keys can be unset by posting an empty value to `metadata`.
1711    #[serde(skip_serializing_if = "Option::is_none")]
1712    pub metadata: Option<Metadata>,
1713
1714    /// The Stripe account ID for which these funds are intended.
1715    ///
1716    /// For details, see the PaymentIntents [use case for connected accounts](/docs/payments/connected-accounts).
1717    #[serde(skip_serializing_if = "Option::is_none")]
1718    pub on_behalf_of: Option<String>,
1719
1720    /// Email address that the receipt for the resulting payment will be sent to.
1721    ///
1722    /// If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).
1723    #[serde(skip_serializing_if = "Option::is_none")]
1724    pub receipt_email: Option<String>,
1725
1726    /// Indicates that you intend to [make future payments](https://stripe.com/docs/payments/payment-intents#future-usage) with the payment
1727    /// method collected by this Checkout Session.
1728    ///
1729    /// When setting this to `on_session`, Checkout will show a notice to the
1730    /// customer that their payment details will be saved.
1731    ///
1732    /// When setting this to `off_session`, Checkout will show a notice to the
1733    /// customer that their payment details will be saved and used for future
1734    /// payments.
1735    ///
1736    /// If a Customer has been provided or Checkout creates a new Customer,
1737    /// Checkout will attach the payment method to the Customer.
1738    ///
1739    /// If Checkout does not create a Customer, the payment method is not attached
1740    /// to a Customer.
1741    ///
1742    /// To reuse the payment method, you can retrieve it from the Checkout Session's PaymentIntent.  When processing card payments, Checkout also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.
1743    #[serde(skip_serializing_if = "Option::is_none")]
1744    pub setup_future_usage: Option<CreateCheckoutSessionPaymentIntentDataSetupFutureUsage>,
1745
1746    /// Shipping information for this payment.
1747    #[serde(skip_serializing_if = "Option::is_none")]
1748    pub shipping: Option<CreateCheckoutSessionPaymentIntentDataShipping>,
1749
1750    /// Extra information about the payment.
1751    ///
1752    /// This will appear on your customer's statement when this payment succeeds in creating a charge.
1753    #[serde(skip_serializing_if = "Option::is_none")]
1754    pub statement_descriptor: Option<String>,
1755
1756    /// Provides information about the charge that customers see on their statements.
1757    ///
1758    /// Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor.
1759    /// Maximum 22 characters for the concatenated descriptor.
1760    #[serde(skip_serializing_if = "Option::is_none")]
1761    pub statement_descriptor_suffix: Option<String>,
1762
1763    /// The parameters used to automatically create a Transfer when the payment succeeds.
1764    /// For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1765    #[serde(skip_serializing_if = "Option::is_none")]
1766    pub transfer_data: Option<CreateCheckoutSessionPaymentIntentDataTransferData>,
1767
1768    /// A string that identifies the resulting payment as part of a group.
1769    ///
1770    /// See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details.
1771    #[serde(skip_serializing_if = "Option::is_none")]
1772    pub transfer_group: Option<String>,
1773}
1774
1775#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1776pub struct CreateCheckoutSessionPaymentMethodOptions {
1777    /// contains details about the ACSS Debit payment method options.
1778    #[serde(skip_serializing_if = "Option::is_none")]
1779    pub acss_debit: Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebit>,
1780
1781    /// contains details about the Affirm payment method options.
1782    #[serde(skip_serializing_if = "Option::is_none")]
1783    pub affirm: Option<CreateCheckoutSessionPaymentMethodOptionsAffirm>,
1784
1785    /// contains details about the Afterpay Clearpay payment method options.
1786    #[serde(skip_serializing_if = "Option::is_none")]
1787    pub afterpay_clearpay: Option<CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpay>,
1788
1789    /// contains details about the Alipay payment method options.
1790    #[serde(skip_serializing_if = "Option::is_none")]
1791    pub alipay: Option<CreateCheckoutSessionPaymentMethodOptionsAlipay>,
1792
1793    /// contains details about the AU Becs Debit payment method options.
1794    #[serde(skip_serializing_if = "Option::is_none")]
1795    pub au_becs_debit: Option<CreateCheckoutSessionPaymentMethodOptionsAuBecsDebit>,
1796
1797    /// contains details about the Bacs Debit payment method options.
1798    #[serde(skip_serializing_if = "Option::is_none")]
1799    pub bacs_debit: Option<CreateCheckoutSessionPaymentMethodOptionsBacsDebit>,
1800
1801    /// contains details about the Bancontact payment method options.
1802    #[serde(skip_serializing_if = "Option::is_none")]
1803    pub bancontact: Option<CreateCheckoutSessionPaymentMethodOptionsBancontact>,
1804
1805    /// contains details about the Boleto payment method options.
1806    #[serde(skip_serializing_if = "Option::is_none")]
1807    pub boleto: Option<CreateCheckoutSessionPaymentMethodOptionsBoleto>,
1808
1809    /// contains details about the Card payment method options.
1810    #[serde(skip_serializing_if = "Option::is_none")]
1811    pub card: Option<CreateCheckoutSessionPaymentMethodOptionsCard>,
1812
1813    /// contains details about the Cashapp Pay payment method options.
1814    #[serde(skip_serializing_if = "Option::is_none")]
1815    pub cashapp: Option<CreateCheckoutSessionPaymentMethodOptionsCashapp>,
1816
1817    /// contains details about the Customer Balance payment method options.
1818    #[serde(skip_serializing_if = "Option::is_none")]
1819    pub customer_balance: Option<CreateCheckoutSessionPaymentMethodOptionsCustomerBalance>,
1820
1821    /// contains details about the EPS payment method options.
1822    #[serde(skip_serializing_if = "Option::is_none")]
1823    pub eps: Option<CreateCheckoutSessionPaymentMethodOptionsEps>,
1824
1825    /// contains details about the FPX payment method options.
1826    #[serde(skip_serializing_if = "Option::is_none")]
1827    pub fpx: Option<CreateCheckoutSessionPaymentMethodOptionsFpx>,
1828
1829    /// contains details about the Giropay payment method options.
1830    #[serde(skip_serializing_if = "Option::is_none")]
1831    pub giropay: Option<CreateCheckoutSessionPaymentMethodOptionsGiropay>,
1832
1833    /// contains details about the Grabpay payment method options.
1834    #[serde(skip_serializing_if = "Option::is_none")]
1835    pub grabpay: Option<CreateCheckoutSessionPaymentMethodOptionsGrabpay>,
1836
1837    /// contains details about the Ideal payment method options.
1838    #[serde(skip_serializing_if = "Option::is_none")]
1839    pub ideal: Option<CreateCheckoutSessionPaymentMethodOptionsIdeal>,
1840
1841    /// contains details about the Klarna payment method options.
1842    #[serde(skip_serializing_if = "Option::is_none")]
1843    pub klarna: Option<CreateCheckoutSessionPaymentMethodOptionsKlarna>,
1844
1845    /// contains details about the Konbini payment method options.
1846    #[serde(skip_serializing_if = "Option::is_none")]
1847    pub konbini: Option<CreateCheckoutSessionPaymentMethodOptionsKonbini>,
1848
1849    /// contains details about the Link payment method options.
1850    #[serde(skip_serializing_if = "Option::is_none")]
1851    pub link: Option<CreateCheckoutSessionPaymentMethodOptionsLink>,
1852
1853    /// contains details about the OXXO payment method options.
1854    #[serde(skip_serializing_if = "Option::is_none")]
1855    pub oxxo: Option<CreateCheckoutSessionPaymentMethodOptionsOxxo>,
1856
1857    /// contains details about the P24 payment method options.
1858    #[serde(skip_serializing_if = "Option::is_none")]
1859    pub p24: Option<CreateCheckoutSessionPaymentMethodOptionsP24>,
1860
1861    /// contains details about the PayNow payment method options.
1862    #[serde(skip_serializing_if = "Option::is_none")]
1863    pub paynow: Option<CreateCheckoutSessionPaymentMethodOptionsPaynow>,
1864
1865    /// contains details about the PayPal payment method options.
1866    #[serde(skip_serializing_if = "Option::is_none")]
1867    pub paypal: Option<CreateCheckoutSessionPaymentMethodOptionsPaypal>,
1868
1869    /// contains details about the Pix payment method options.
1870    #[serde(skip_serializing_if = "Option::is_none")]
1871    pub pix: Option<CreateCheckoutSessionPaymentMethodOptionsPix>,
1872
1873    /// contains details about the RevolutPay payment method options.
1874    #[serde(skip_serializing_if = "Option::is_none")]
1875    pub revolut_pay: Option<CreateCheckoutSessionPaymentMethodOptionsRevolutPay>,
1876
1877    /// contains details about the Sepa Debit payment method options.
1878    #[serde(skip_serializing_if = "Option::is_none")]
1879    pub sepa_debit: Option<CreateCheckoutSessionPaymentMethodOptionsSepaDebit>,
1880
1881    /// contains details about the Sofort payment method options.
1882    #[serde(skip_serializing_if = "Option::is_none")]
1883    pub sofort: Option<CreateCheckoutSessionPaymentMethodOptionsSofort>,
1884
1885    /// contains details about the Swish payment method options.
1886    #[serde(skip_serializing_if = "Option::is_none")]
1887    pub swish: Option<CreateCheckoutSessionPaymentMethodOptionsSwish>,
1888
1889    /// contains details about the Us Bank Account payment method options.
1890    #[serde(skip_serializing_if = "Option::is_none")]
1891    pub us_bank_account: Option<CreateCheckoutSessionPaymentMethodOptionsUsBankAccount>,
1892
1893    /// contains details about the WeChat Pay payment method options.
1894    #[serde(skip_serializing_if = "Option::is_none")]
1895    pub wechat_pay: Option<CreateCheckoutSessionPaymentMethodOptionsWechatPay>,
1896}
1897
1898#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1899pub struct CreateCheckoutSessionPhoneNumberCollection {
1900    /// Set to `true` to enable phone number collection.
1901    pub enabled: bool,
1902}
1903
1904#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1905pub struct CreateCheckoutSessionSetupIntentData {
1906    /// An arbitrary string attached to the object.
1907    ///
1908    /// Often useful for displaying to users.
1909    #[serde(skip_serializing_if = "Option::is_none")]
1910    pub description: Option<String>,
1911
1912    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1913    ///
1914    /// This can be useful for storing additional information about the object in a structured format.
1915    /// Individual keys can be unset by posting an empty value to them.
1916    /// All keys can be unset by posting an empty value to `metadata`.
1917    #[serde(skip_serializing_if = "Option::is_none")]
1918    pub metadata: Option<Metadata>,
1919
1920    /// The Stripe account for which the setup is intended.
1921    #[serde(skip_serializing_if = "Option::is_none")]
1922    pub on_behalf_of: Option<String>,
1923}
1924
1925#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1926pub struct CreateCheckoutSessionShippingAddressCollection {
1927    /// An array of two-letter ISO country codes representing which countries Checkout should provide as options for
1928    /// shipping locations.
1929    ///
1930    /// Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.
1931    pub allowed_countries: Vec<CreateCheckoutSessionShippingAddressCollectionAllowedCountries>,
1932}
1933
1934#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1935pub struct CreateCheckoutSessionShippingOptions {
1936    /// The ID of the Shipping Rate to use for this shipping option.
1937    #[serde(skip_serializing_if = "Option::is_none")]
1938    pub shipping_rate: Option<String>,
1939
1940    /// Parameters to be passed to Shipping Rate creation for this shipping option.
1941    #[serde(skip_serializing_if = "Option::is_none")]
1942    pub shipping_rate_data: Option<CreateCheckoutSessionShippingOptionsShippingRateData>,
1943}
1944
1945#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1946pub struct CreateCheckoutSessionSubscriptionData {
1947    /// A non-negative decimal between 0 and 100, with at most two decimal places.
1948    ///
1949    /// This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account.
1950    /// To use an application fee percent, the request must be made on behalf of another account, using the `Stripe-Account` header or an OAuth key.
1951    /// For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
1952    #[serde(skip_serializing_if = "Option::is_none")]
1953    pub application_fee_percent: Option<f64>,
1954
1955    /// A future timestamp to anchor the subscription's billing cycle for new subscriptions.
1956    #[serde(skip_serializing_if = "Option::is_none")]
1957    pub billing_cycle_anchor: Option<Timestamp>,
1958
1959    /// The tax rates that will apply to any subscription item that does not have
1960    /// `tax_rates` set.
1961    ///
1962    /// Invoices created will have their `default_tax_rates` populated from the subscription.
1963    #[serde(skip_serializing_if = "Option::is_none")]
1964    pub default_tax_rates: Option<Vec<String>>,
1965
1966    /// The subscription's description, meant to be displayable to the customer.
1967    /// Use this field to optionally store an explanation of the subscription
1968    /// for rendering in the [customer portal](https://stripe.com/docs/customer-management).
1969    #[serde(skip_serializing_if = "Option::is_none")]
1970    pub description: Option<String>,
1971
1972    /// All invoices will be billed using the specified settings.
1973    #[serde(skip_serializing_if = "Option::is_none")]
1974    pub invoice_settings: Option<CreateCheckoutSessionSubscriptionDataInvoiceSettings>,
1975
1976    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1977    ///
1978    /// This can be useful for storing additional information about the object in a structured format.
1979    /// Individual keys can be unset by posting an empty value to them.
1980    /// All keys can be unset by posting an empty value to `metadata`.
1981    #[serde(skip_serializing_if = "Option::is_none")]
1982    pub metadata: Option<Metadata>,
1983
1984    /// The account on behalf of which to charge, for each of the subscription's invoices.
1985    #[serde(skip_serializing_if = "Option::is_none")]
1986    pub on_behalf_of: Option<String>,
1987
1988    /// Determines how to handle prorations resulting from the `billing_cycle_anchor`.
1989    ///
1990    /// If no value is passed, the default is `create_prorations`.
1991    #[serde(skip_serializing_if = "Option::is_none")]
1992    pub proration_behavior: Option<CreateCheckoutSessionSubscriptionDataProrationBehavior>,
1993
1994    /// If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges.
1995    #[serde(skip_serializing_if = "Option::is_none")]
1996    pub transfer_data: Option<CreateCheckoutSessionSubscriptionDataTransferData>,
1997
1998    /// Unix timestamp representing the end of the trial period the customer
1999    /// will get before being charged for the first time.
2000    ///
2001    /// Has to be at least 48 hours in the future.
2002    #[serde(skip_serializing_if = "Option::is_none")]
2003    pub trial_end: Option<Timestamp>,
2004
2005    /// Integer representing the number of trial period days before the
2006    /// customer is charged for the first time.
2007    ///
2008    /// Has to be at least 1.
2009    #[serde(skip_serializing_if = "Option::is_none")]
2010    pub trial_period_days: Option<u32>,
2011
2012    /// Settings related to subscription trials.
2013    #[serde(skip_serializing_if = "Option::is_none")]
2014    pub trial_settings: Option<CreateCheckoutSessionSubscriptionDataTrialSettings>,
2015}
2016
2017#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2018pub struct CreateCheckoutSessionTaxIdCollection {
2019    /// Set to true to enable Tax ID collection.
2020    pub enabled: bool,
2021}
2022
2023#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2024pub struct ListCheckoutSessionsCustomerDetails {
2025    /// Customer's email address.
2026    pub email: String,
2027}
2028
2029#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2030pub struct CreateCheckoutSessionAfterExpirationRecovery {
2031    /// Enables user redeemable promotion codes on the recovered Checkout Sessions.
2032    ///
2033    /// Defaults to `false`.
2034    #[serde(skip_serializing_if = "Option::is_none")]
2035    pub allow_promotion_codes: Option<bool>,
2036
2037    /// If `true`, a recovery URL will be generated to recover this Checkout Session if it
2038    /// expires before a successful transaction is completed.
2039    ///
2040    /// It will be attached to the Checkout Session object upon expiration.
2041    pub enabled: bool,
2042}
2043
2044#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2045pub struct CreateCheckoutSessionAutomaticTaxLiability {
2046    /// The connected account being referenced when `type` is `account`.
2047    #[serde(skip_serializing_if = "Option::is_none")]
2048    pub account: Option<String>,
2049
2050    /// Type of the account referenced in the request.
2051    #[serde(rename = "type")]
2052    pub type_: CreateCheckoutSessionAutomaticTaxLiabilityType,
2053}
2054
2055#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2056pub struct CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement {
2057    /// Determines the position and visibility of the payment method reuse agreement in the UI.
2058    ///
2059    /// When set to `auto`, Stripe's defaults will be used.
2060    /// When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI.
2061    pub position: CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition,
2062}
2063
2064#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2065pub struct CreateCheckoutSessionCustomFieldsDropdown {
2066    /// The options available for the customer to select.
2067    ///
2068    /// Up to 200 options allowed.
2069    pub options: Vec<CreateCheckoutSessionCustomFieldsDropdownOptions>,
2070}
2071
2072#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2073pub struct CreateCheckoutSessionCustomFieldsLabel {
2074    /// Custom text for the label, displayed to the customer.
2075    ///
2076    /// Up to 50 characters.
2077    pub custom: String,
2078
2079    /// The type of the label.
2080    #[serde(rename = "type")]
2081    pub type_: CreateCheckoutSessionCustomFieldsLabelType,
2082}
2083
2084#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2085pub struct CreateCheckoutSessionCustomFieldsNumeric {
2086    /// The maximum character length constraint for the customer's input.
2087    #[serde(skip_serializing_if = "Option::is_none")]
2088    pub maximum_length: Option<i64>,
2089
2090    /// The minimum character length requirement for the customer's input.
2091    #[serde(skip_serializing_if = "Option::is_none")]
2092    pub minimum_length: Option<i64>,
2093}
2094
2095#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2096pub struct CreateCheckoutSessionCustomFieldsText {
2097    /// The maximum character length constraint for the customer's input.
2098    #[serde(skip_serializing_if = "Option::is_none")]
2099    pub maximum_length: Option<i64>,
2100
2101    /// The minimum character length requirement for the customer's input.
2102    #[serde(skip_serializing_if = "Option::is_none")]
2103    pub minimum_length: Option<i64>,
2104}
2105
2106#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2107pub struct CreateCheckoutSessionCustomTextAfterSubmit {
2108    /// Text may be up to 1200 characters in length.
2109    pub message: String,
2110}
2111
2112#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2113pub struct CreateCheckoutSessionCustomTextShippingAddress {
2114    /// Text may be up to 1200 characters in length.
2115    pub message: String,
2116}
2117
2118#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2119pub struct CreateCheckoutSessionCustomTextSubmit {
2120    /// Text may be up to 1200 characters in length.
2121    pub message: String,
2122}
2123
2124#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2125pub struct CreateCheckoutSessionCustomTextTermsOfServiceAcceptance {
2126    /// Text may be up to 1200 characters in length.
2127    pub message: String,
2128}
2129
2130#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2131pub struct CreateCheckoutSessionInvoiceCreationInvoiceData {
2132    /// The account tax IDs associated with the invoice.
2133    #[serde(skip_serializing_if = "Option::is_none")]
2134    pub account_tax_ids: Option<Vec<String>>,
2135
2136    /// Default custom fields to be displayed on invoices for this customer.
2137    #[serde(skip_serializing_if = "Option::is_none")]
2138    pub custom_fields: Option<Vec<CreateCheckoutSessionInvoiceCreationInvoiceDataCustomFields>>,
2139
2140    /// An arbitrary string attached to the object.
2141    ///
2142    /// Often useful for displaying to users.
2143    #[serde(skip_serializing_if = "Option::is_none")]
2144    pub description: Option<String>,
2145
2146    /// Default footer to be displayed on invoices for this customer.
2147    #[serde(skip_serializing_if = "Option::is_none")]
2148    pub footer: Option<String>,
2149
2150    /// The connected account that issues the invoice.
2151    ///
2152    /// The invoice is presented with the branding and support information of the specified account.
2153    #[serde(skip_serializing_if = "Option::is_none")]
2154    pub issuer: Option<CreateCheckoutSessionInvoiceCreationInvoiceDataIssuer>,
2155
2156    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
2157    ///
2158    /// This can be useful for storing additional information about the object in a structured format.
2159    /// Individual keys can be unset by posting an empty value to them.
2160    /// All keys can be unset by posting an empty value to `metadata`.
2161    #[serde(skip_serializing_if = "Option::is_none")]
2162    pub metadata: Option<Metadata>,
2163
2164    /// Default options for invoice PDF rendering for this customer.
2165    #[serde(skip_serializing_if = "Option::is_none")]
2166    pub rendering_options: Option<CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptions>,
2167}
2168
2169#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2170pub struct CreateCheckoutSessionLineItemsAdjustableQuantity {
2171    /// Set to true if the quantity can be adjusted to any non-negative integer.
2172    ///
2173    /// By default customers will be able to remove the line item by setting the quantity to 0.
2174    pub enabled: bool,
2175
2176    /// The maximum quantity the customer can purchase for the Checkout Session.
2177    ///
2178    /// By default this value is 99.
2179    /// You can specify a value up to 999999.
2180    #[serde(skip_serializing_if = "Option::is_none")]
2181    pub maximum: Option<i64>,
2182
2183    /// The minimum quantity the customer must purchase for the Checkout Session.
2184    ///
2185    /// By default this value is 0.
2186    #[serde(skip_serializing_if = "Option::is_none")]
2187    pub minimum: Option<i64>,
2188}
2189
2190#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2191pub struct CreateCheckoutSessionLineItemsPriceData {
2192    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
2193    ///
2194    /// Must be a [supported currency](https://stripe.com/docs/currencies).
2195    pub currency: Currency,
2196
2197    /// The ID of the product that this price will belong to.
2198    ///
2199    /// One of `product` or `product_data` is required.
2200    #[serde(skip_serializing_if = "Option::is_none")]
2201    pub product: Option<String>,
2202
2203    /// Data used to generate a new product object inline.
2204    ///
2205    /// One of `product` or `product_data` is required.
2206    #[serde(skip_serializing_if = "Option::is_none")]
2207    pub product_data: Option<CreateCheckoutSessionLineItemsPriceDataProductData>,
2208
2209    /// The recurring components of a price such as `interval` and `interval_count`.
2210    #[serde(skip_serializing_if = "Option::is_none")]
2211    pub recurring: Option<CreateCheckoutSessionLineItemsPriceDataRecurring>,
2212
2213    /// Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings.
2214    ///
2215    /// Specifies whether the price is considered inclusive of taxes or exclusive of taxes.
2216    /// One of `inclusive`, `exclusive`, or `unspecified`.
2217    /// Once specified as either `inclusive` or `exclusive`, it cannot be changed.
2218    #[serde(skip_serializing_if = "Option::is_none")]
2219    pub tax_behavior: Option<CreateCheckoutSessionLineItemsPriceDataTaxBehavior>,
2220
2221    /// A non-negative integer in cents (or local equivalent) representing how much to charge.
2222    ///
2223    /// One of `unit_amount` or `unit_amount_decimal` is required.
2224    #[serde(skip_serializing_if = "Option::is_none")]
2225    pub unit_amount: Option<i64>,
2226
2227    /// Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places.
2228    ///
2229    /// Only one of `unit_amount` and `unit_amount_decimal` can be set.
2230    #[serde(skip_serializing_if = "Option::is_none")]
2231    pub unit_amount_decimal: Option<String>,
2232}
2233
2234#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2235pub struct CreateCheckoutSessionPaymentIntentDataShipping {
2236    /// Shipping address.
2237    pub address: CreateCheckoutSessionPaymentIntentDataShippingAddress,
2238
2239    /// The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
2240    #[serde(skip_serializing_if = "Option::is_none")]
2241    pub carrier: Option<String>,
2242
2243    /// Recipient name.
2244    pub name: String,
2245
2246    /// Recipient phone (including extension).
2247    #[serde(skip_serializing_if = "Option::is_none")]
2248    pub phone: Option<String>,
2249
2250    /// The tracking number for a physical product, obtained from the delivery service.
2251    ///
2252    /// If multiple tracking numbers were generated for this purchase, please separate them with commas.
2253    #[serde(skip_serializing_if = "Option::is_none")]
2254    pub tracking_number: Option<String>,
2255}
2256
2257#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2258pub struct CreateCheckoutSessionPaymentIntentDataTransferData {
2259    /// The amount that will be transferred automatically when a charge succeeds.
2260    #[serde(skip_serializing_if = "Option::is_none")]
2261    pub amount: Option<i64>,
2262
2263    /// If specified, successful charges will be attributed to the destination
2264    /// account for tax reporting, and the funds from charges will be transferred
2265    /// to the destination account.
2266    ///
2267    /// The ID of the resulting transfer will be returned on the successful charge's `transfer` field.
2268    pub destination: String,
2269}
2270
2271#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2272pub struct CreateCheckoutSessionPaymentMethodOptionsAcssDebit {
2273    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
2274    ///
2275    /// Must be a [supported currency](https://stripe.com/docs/currencies).
2276    /// This is only accepted for Checkout Sessions in `setup` mode.
2277    #[serde(skip_serializing_if = "Option::is_none")]
2278    pub currency: Option<Currency>,
2279
2280    /// Additional fields for Mandate creation.
2281    #[serde(skip_serializing_if = "Option::is_none")]
2282    pub mandate_options: Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptions>,
2283
2284    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2285    ///
2286    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2287    ///
2288    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2289    #[serde(skip_serializing_if = "Option::is_none")]
2290    pub setup_future_usage:
2291        Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage>,
2292
2293    /// Verification method for the intent.
2294    #[serde(skip_serializing_if = "Option::is_none")]
2295    pub verification_method:
2296        Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod>,
2297}
2298
2299#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2300pub struct CreateCheckoutSessionPaymentMethodOptionsAffirm {
2301    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2302    ///
2303    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2304    ///
2305    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2306    #[serde(skip_serializing_if = "Option::is_none")]
2307    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage>,
2308}
2309
2310#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2311pub struct CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpay {
2312    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2313    ///
2314    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2315    ///
2316    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2317    #[serde(skip_serializing_if = "Option::is_none")]
2318    pub setup_future_usage:
2319        Option<CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage>,
2320}
2321
2322#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2323pub struct CreateCheckoutSessionPaymentMethodOptionsAlipay {
2324    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2325    ///
2326    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2327    ///
2328    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2329    #[serde(skip_serializing_if = "Option::is_none")]
2330    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage>,
2331}
2332
2333#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2334pub struct CreateCheckoutSessionPaymentMethodOptionsAuBecsDebit {
2335    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2336    ///
2337    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2338    ///
2339    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2340    #[serde(skip_serializing_if = "Option::is_none")]
2341    pub setup_future_usage:
2342        Option<CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage>,
2343}
2344
2345#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2346pub struct CreateCheckoutSessionPaymentMethodOptionsBacsDebit {
2347    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2348    ///
2349    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2350    ///
2351    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2352    #[serde(skip_serializing_if = "Option::is_none")]
2353    pub setup_future_usage:
2354        Option<CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage>,
2355}
2356
2357#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2358pub struct CreateCheckoutSessionPaymentMethodOptionsBancontact {
2359    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2360    ///
2361    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2362    ///
2363    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2364    #[serde(skip_serializing_if = "Option::is_none")]
2365    pub setup_future_usage:
2366        Option<CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage>,
2367}
2368
2369#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2370pub struct CreateCheckoutSessionPaymentMethodOptionsBoleto {
2371    /// The number of calendar days before a Boleto voucher expires.
2372    ///
2373    /// For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time.
2374    #[serde(skip_serializing_if = "Option::is_none")]
2375    pub expires_after_days: Option<u32>,
2376
2377    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2378    ///
2379    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2380    ///
2381    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2382    #[serde(skip_serializing_if = "Option::is_none")]
2383    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage>,
2384}
2385
2386#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2387pub struct CreateCheckoutSessionPaymentMethodOptionsCard {
2388    /// Installment options for card payments.
2389    #[serde(skip_serializing_if = "Option::is_none")]
2390    pub installments: Option<CreateCheckoutSessionPaymentMethodOptionsCardInstallments>,
2391
2392    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2393    ///
2394    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2395    ///
2396    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2397    #[serde(skip_serializing_if = "Option::is_none")]
2398    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage>,
2399
2400    /// Provides information about a card payment that customers see on their statements.
2401    ///
2402    /// Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor.
2403    /// Maximum 22 characters.
2404    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
2405    #[serde(skip_serializing_if = "Option::is_none")]
2406    pub statement_descriptor_suffix_kana: Option<String>,
2407
2408    /// Provides information about a card payment that customers see on their statements.
2409    ///
2410    /// Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor.
2411    /// Maximum 17 characters.
2412    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
2413    #[serde(skip_serializing_if = "Option::is_none")]
2414    pub statement_descriptor_suffix_kanji: Option<String>,
2415}
2416
2417#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2418pub struct CreateCheckoutSessionPaymentMethodOptionsCashapp {
2419    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2420    ///
2421    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2422    ///
2423    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2424    #[serde(skip_serializing_if = "Option::is_none")]
2425    pub setup_future_usage:
2426        Option<CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage>,
2427}
2428
2429#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2430pub struct CreateCheckoutSessionPaymentMethodOptionsCustomerBalance {
2431    /// Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`.
2432    #[serde(skip_serializing_if = "Option::is_none")]
2433    pub bank_transfer: Option<CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransfer>,
2434
2435    /// The funding method type to be used when there are not enough funds in the customer balance.
2436    ///
2437    /// Permitted values include: `bank_transfer`.
2438    #[serde(skip_serializing_if = "Option::is_none")]
2439    pub funding_type: Option<CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType>,
2440
2441    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2442    ///
2443    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2444    ///
2445    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2446    #[serde(skip_serializing_if = "Option::is_none")]
2447    pub setup_future_usage:
2448        Option<CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage>,
2449}
2450
2451#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2452pub struct CreateCheckoutSessionPaymentMethodOptionsEps {
2453    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2454    ///
2455    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2456    ///
2457    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2458    #[serde(skip_serializing_if = "Option::is_none")]
2459    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage>,
2460}
2461
2462#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2463pub struct CreateCheckoutSessionPaymentMethodOptionsFpx {
2464    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2465    ///
2466    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2467    ///
2468    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2469    #[serde(skip_serializing_if = "Option::is_none")]
2470    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage>,
2471}
2472
2473#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2474pub struct CreateCheckoutSessionPaymentMethodOptionsGiropay {
2475    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2476    ///
2477    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2478    ///
2479    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2480    #[serde(skip_serializing_if = "Option::is_none")]
2481    pub setup_future_usage:
2482        Option<CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage>,
2483}
2484
2485#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2486pub struct CreateCheckoutSessionPaymentMethodOptionsGrabpay {
2487    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2488    ///
2489    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2490    ///
2491    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2492    #[serde(skip_serializing_if = "Option::is_none")]
2493    pub setup_future_usage:
2494        Option<CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage>,
2495}
2496
2497#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2498pub struct CreateCheckoutSessionPaymentMethodOptionsIdeal {
2499    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2500    ///
2501    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2502    ///
2503    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2504    #[serde(skip_serializing_if = "Option::is_none")]
2505    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage>,
2506}
2507
2508#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2509pub struct CreateCheckoutSessionPaymentMethodOptionsKlarna {
2510    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2511    ///
2512    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2513    ///
2514    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2515    #[serde(skip_serializing_if = "Option::is_none")]
2516    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage>,
2517}
2518
2519#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2520pub struct CreateCheckoutSessionPaymentMethodOptionsKonbini {
2521    /// The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire.
2522    ///
2523    /// For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.
2524    /// Defaults to 3 days.
2525    #[serde(skip_serializing_if = "Option::is_none")]
2526    pub expires_after_days: Option<u32>,
2527
2528    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2529    ///
2530    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2531    ///
2532    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2533    #[serde(skip_serializing_if = "Option::is_none")]
2534    pub setup_future_usage:
2535        Option<CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage>,
2536}
2537
2538#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2539pub struct CreateCheckoutSessionPaymentMethodOptionsLink {
2540    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2541    ///
2542    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2543    ///
2544    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2545    #[serde(skip_serializing_if = "Option::is_none")]
2546    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage>,
2547}
2548
2549#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2550pub struct CreateCheckoutSessionPaymentMethodOptionsOxxo {
2551    /// The number of calendar days before an OXXO voucher expires.
2552    ///
2553    /// For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.
2554    #[serde(skip_serializing_if = "Option::is_none")]
2555    pub expires_after_days: Option<u32>,
2556
2557    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2558    ///
2559    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2560    ///
2561    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2562    #[serde(skip_serializing_if = "Option::is_none")]
2563    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage>,
2564}
2565
2566#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2567pub struct CreateCheckoutSessionPaymentMethodOptionsP24 {
2568    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2569    ///
2570    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2571    ///
2572    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2573    #[serde(skip_serializing_if = "Option::is_none")]
2574    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage>,
2575
2576    /// Confirm that the payer has accepted the P24 terms and conditions.
2577    #[serde(skip_serializing_if = "Option::is_none")]
2578    pub tos_shown_and_accepted: Option<bool>,
2579}
2580
2581#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2582pub struct CreateCheckoutSessionPaymentMethodOptionsPaynow {
2583    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2584    ///
2585    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2586    ///
2587    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2588    #[serde(skip_serializing_if = "Option::is_none")]
2589    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage>,
2590}
2591
2592#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2593pub struct CreateCheckoutSessionPaymentMethodOptionsPaypal {
2594    /// Controls when the funds will be captured from the customer's account.
2595    #[serde(skip_serializing_if = "Option::is_none")]
2596    pub capture_method: Option<CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod>,
2597
2598    /// [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to.
2599    #[serde(skip_serializing_if = "Option::is_none")]
2600    pub preferred_locale: Option<CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale>,
2601
2602    /// A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID.
2603    ///
2604    /// This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
2605    #[serde(skip_serializing_if = "Option::is_none")]
2606    pub reference: Option<String>,
2607
2608    /// The risk correlation ID for an on-session payment using a saved PayPal payment method.
2609    #[serde(skip_serializing_if = "Option::is_none")]
2610    pub risk_correlation_id: Option<String>,
2611
2612    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2613    ///
2614    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2615    ///
2616    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).  If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`.
2617    #[serde(skip_serializing_if = "Option::is_none")]
2618    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage>,
2619}
2620
2621#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2622pub struct CreateCheckoutSessionPaymentMethodOptionsPix {
2623    /// The number of seconds (between 10 and 1209600) after which Pix payment will expire.
2624    ///
2625    /// Defaults to 86400 seconds.
2626    #[serde(skip_serializing_if = "Option::is_none")]
2627    pub expires_after_seconds: Option<i64>,
2628}
2629
2630#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2631pub struct CreateCheckoutSessionPaymentMethodOptionsRevolutPay {
2632    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2633    ///
2634    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2635    ///
2636    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2637    #[serde(skip_serializing_if = "Option::is_none")]
2638    pub setup_future_usage:
2639        Option<CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage>,
2640}
2641
2642#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2643pub struct CreateCheckoutSessionPaymentMethodOptionsSepaDebit {
2644    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2645    ///
2646    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2647    ///
2648    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2649    #[serde(skip_serializing_if = "Option::is_none")]
2650    pub setup_future_usage:
2651        Option<CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage>,
2652}
2653
2654#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2655pub struct CreateCheckoutSessionPaymentMethodOptionsSofort {
2656    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2657    ///
2658    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2659    ///
2660    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2661    #[serde(skip_serializing_if = "Option::is_none")]
2662    pub setup_future_usage: Option<CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage>,
2663}
2664
2665#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2666pub struct CreateCheckoutSessionPaymentMethodOptionsSwish {
2667    /// The order reference that will be displayed to customers in the Swish application.
2668    ///
2669    /// Defaults to the `id` of the Payment Intent.
2670    #[serde(skip_serializing_if = "Option::is_none")]
2671    pub reference: Option<String>,
2672}
2673
2674#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2675pub struct CreateCheckoutSessionPaymentMethodOptionsUsBankAccount {
2676    /// Additional fields for Financial Connections Session creation.
2677    #[serde(skip_serializing_if = "Option::is_none")]
2678    pub financial_connections:
2679        Option<CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnections>,
2680
2681    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2682    ///
2683    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2684    ///
2685    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2686    #[serde(skip_serializing_if = "Option::is_none")]
2687    pub setup_future_usage:
2688        Option<CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage>,
2689
2690    /// Verification method for the intent.
2691    #[serde(skip_serializing_if = "Option::is_none")]
2692    pub verification_method:
2693        Option<CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod>,
2694}
2695
2696#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2697pub struct CreateCheckoutSessionPaymentMethodOptionsWechatPay {
2698    /// The app ID registered with WeChat Pay.
2699    ///
2700    /// Only required when client is ios or android.
2701    #[serde(skip_serializing_if = "Option::is_none")]
2702    pub app_id: Option<String>,
2703
2704    /// The client type that the end customer will pay from.
2705    pub client: CreateCheckoutSessionPaymentMethodOptionsWechatPayClient,
2706
2707    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2708    ///
2709    /// Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.
2710    ///
2711    /// If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.  When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).
2712    #[serde(skip_serializing_if = "Option::is_none")]
2713    pub setup_future_usage:
2714        Option<CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage>,
2715}
2716
2717#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2718pub struct CreateCheckoutSessionShippingOptionsShippingRateData {
2719    /// The estimated range for how long shipping will take, meant to be displayable to the customer.
2720    ///
2721    /// This will appear on CheckoutSessions.
2722    #[serde(skip_serializing_if = "Option::is_none")]
2723    pub delivery_estimate:
2724        Option<CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimate>,
2725
2726    /// The name of the shipping rate, meant to be displayable to the customer.
2727    ///
2728    /// This will appear on CheckoutSessions.
2729    pub display_name: String,
2730
2731    /// Describes a fixed amount to charge for shipping.
2732    ///
2733    /// Must be present if type is `fixed_amount`.
2734    #[serde(skip_serializing_if = "Option::is_none")]
2735    pub fixed_amount: Option<CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmount>,
2736
2737    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
2738    ///
2739    /// This can be useful for storing additional information about the object in a structured format.
2740    /// Individual keys can be unset by posting an empty value to them.
2741    /// All keys can be unset by posting an empty value to `metadata`.
2742    #[serde(skip_serializing_if = "Option::is_none")]
2743    pub metadata: Option<Metadata>,
2744
2745    /// Specifies whether the rate is considered inclusive of taxes or exclusive of taxes.
2746    ///
2747    /// One of `inclusive`, `exclusive`, or `unspecified`.
2748    #[serde(skip_serializing_if = "Option::is_none")]
2749    pub tax_behavior: Option<CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior>,
2750
2751    /// A [tax code](https://stripe.com/docs/tax/tax-categories) ID.
2752    ///
2753    /// The Shipping tax code is `txcd_92010001`.
2754    #[serde(skip_serializing_if = "Option::is_none")]
2755    pub tax_code: Option<String>,
2756
2757    /// The type of calculation to use on the shipping rate.
2758    ///
2759    /// Can only be `fixed_amount` for now.
2760    #[serde(rename = "type")]
2761    #[serde(skip_serializing_if = "Option::is_none")]
2762    pub type_: Option<CreateCheckoutSessionShippingOptionsShippingRateDataType>,
2763}
2764
2765#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2766pub struct CreateCheckoutSessionSubscriptionDataInvoiceSettings {
2767    /// The connected account that issues the invoice.
2768    ///
2769    /// The invoice is presented with the branding and support information of the specified account.
2770    #[serde(skip_serializing_if = "Option::is_none")]
2771    pub issuer: Option<CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuer>,
2772}
2773
2774#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2775pub struct CreateCheckoutSessionSubscriptionDataTransferData {
2776    /// A non-negative decimal between 0 and 100, with at most two decimal places.
2777    ///
2778    /// This represents the percentage of the subscription invoice total that will be transferred to the destination account.
2779    /// By default, the entire amount is transferred to the destination.
2780    #[serde(skip_serializing_if = "Option::is_none")]
2781    pub amount_percent: Option<f64>,
2782
2783    /// ID of an existing, connected Stripe account.
2784    pub destination: String,
2785}
2786
2787#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2788pub struct CreateCheckoutSessionSubscriptionDataTrialSettings {
2789    /// Defines how the subscription should behave when the user's free trial ends.
2790    pub end_behavior: CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehavior,
2791}
2792
2793#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2794pub struct CreateCheckoutSessionCustomFieldsDropdownOptions {
2795    /// The label for the option, displayed to the customer.
2796    ///
2797    /// Up to 100 characters.
2798    pub label: String,
2799
2800    /// The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer.
2801    ///
2802    /// Must be unique to this option, alphanumeric, and up to 100 characters.
2803    pub value: String,
2804}
2805
2806#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2807pub struct CreateCheckoutSessionInvoiceCreationInvoiceDataCustomFields {
2808    /// The name of the custom field.
2809    ///
2810    /// This may be up to 30 characters.
2811    pub name: String,
2812
2813    /// The value of the custom field.
2814    ///
2815    /// This may be up to 30 characters.
2816    pub value: String,
2817}
2818
2819#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2820pub struct CreateCheckoutSessionInvoiceCreationInvoiceDataIssuer {
2821    /// The connected account being referenced when `type` is `account`.
2822    #[serde(skip_serializing_if = "Option::is_none")]
2823    pub account: Option<String>,
2824
2825    /// Type of the account referenced in the request.
2826    #[serde(rename = "type")]
2827    pub type_: CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType,
2828}
2829
2830#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2831pub struct CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptions {
2832    /// How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
2833    ///
2834    /// One of `exclude_tax` or `include_inclusive_tax`.
2835    /// `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts.
2836    /// `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.
2837    #[serde(skip_serializing_if = "Option::is_none")]
2838    pub amount_tax_display:
2839        Option<CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay>,
2840}
2841
2842#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2843pub struct CreateCheckoutSessionLineItemsPriceDataProductData {
2844    /// The product's description, meant to be displayable to the customer.
2845    ///
2846    /// Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
2847    #[serde(skip_serializing_if = "Option::is_none")]
2848    pub description: Option<String>,
2849
2850    /// A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
2851    #[serde(skip_serializing_if = "Option::is_none")]
2852    pub images: Option<Vec<String>>,
2853
2854    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
2855    ///
2856    /// This can be useful for storing additional information about the object in a structured format.
2857    /// Individual keys can be unset by posting an empty value to them.
2858    /// All keys can be unset by posting an empty value to `metadata`.
2859    #[serde(skip_serializing_if = "Option::is_none")]
2860    pub metadata: Option<Metadata>,
2861
2862    /// The product's name, meant to be displayable to the customer.
2863    pub name: String,
2864
2865    /// A [tax code](https://stripe.com/docs/tax/tax-categories) ID.
2866    #[serde(skip_serializing_if = "Option::is_none")]
2867    pub tax_code: Option<String>,
2868}
2869
2870#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2871pub struct CreateCheckoutSessionLineItemsPriceDataRecurring {
2872    /// Specifies billing frequency.
2873    ///
2874    /// Either `day`, `week`, `month` or `year`.
2875    pub interval: CreateCheckoutSessionLineItemsPriceDataRecurringInterval,
2876
2877    /// The number of intervals between subscription billings.
2878    ///
2879    /// For example, `interval=month` and `interval_count=3` bills every 3 months.
2880    /// Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).
2881    #[serde(skip_serializing_if = "Option::is_none")]
2882    pub interval_count: Option<u64>,
2883}
2884
2885#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2886pub struct CreateCheckoutSessionPaymentIntentDataShippingAddress {
2887    /// City, district, suburb, town, or village.
2888    #[serde(skip_serializing_if = "Option::is_none")]
2889    pub city: Option<String>,
2890
2891    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
2892    #[serde(skip_serializing_if = "Option::is_none")]
2893    pub country: Option<String>,
2894
2895    /// Address line 1 (e.g., street, PO Box, or company name).
2896    pub line1: String,
2897
2898    /// Address line 2 (e.g., apartment, suite, unit, or building).
2899    #[serde(skip_serializing_if = "Option::is_none")]
2900    pub line2: Option<String>,
2901
2902    /// ZIP or postal code.
2903    #[serde(skip_serializing_if = "Option::is_none")]
2904    pub postal_code: Option<String>,
2905
2906    /// State, county, province, or region.
2907    #[serde(skip_serializing_if = "Option::is_none")]
2908    pub state: Option<String>,
2909}
2910
2911#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2912pub struct CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptions {
2913    /// A URL for custom mandate text to render during confirmation step.
2914    /// The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
2915    /// or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
2916    #[serde(skip_serializing_if = "Option::is_none")]
2917    pub custom_mandate_url: Option<String>,
2918
2919    /// List of Stripe products where this mandate can be selected automatically.
2920    ///
2921    /// Only usable in `setup` mode.
2922    #[serde(skip_serializing_if = "Option::is_none")]
2923    pub default_for:
2924        Option<Vec<CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor>>,
2925
2926    /// Description of the mandate interval.
2927    ///
2928    /// Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
2929    #[serde(skip_serializing_if = "Option::is_none")]
2930    pub interval_description: Option<String>,
2931
2932    /// Payment schedule for the mandate.
2933    #[serde(skip_serializing_if = "Option::is_none")]
2934    pub payment_schedule:
2935        Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule>,
2936
2937    /// Transaction type of the mandate.
2938    #[serde(skip_serializing_if = "Option::is_none")]
2939    pub transaction_type:
2940        Option<CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType>,
2941}
2942
2943#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2944pub struct CreateCheckoutSessionPaymentMethodOptionsCardInstallments {
2945    /// Setting to true enables installments for this Checkout Session.
2946    /// Setting to false will prevent any installment plan from applying to a payment.
2947    #[serde(skip_serializing_if = "Option::is_none")]
2948    pub enabled: Option<bool>,
2949}
2950
2951#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2952pub struct CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransfer {
2953
2954    /// Configuration for eu_bank_transfer funding type.
2955    #[serde(skip_serializing_if = "Option::is_none")]
2956    pub eu_bank_transfer: Option<CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>,
2957
2958    /// List of address types that should be returned in the financial_addresses response.
2959    ///
2960    /// If not specified, all valid types will be returned.  Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
2961    #[serde(skip_serializing_if = "Option::is_none")]
2962    pub requested_address_types: Option<Vec<CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes>>,
2963
2964    /// The list of bank transfer types that this PaymentIntent is allowed to use for funding.
2965    #[serde(rename = "type")]
2966    pub type_: CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType,
2967}
2968
2969#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2970pub struct CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnections {
2971    /// The list of permissions to request.
2972    ///
2973    /// If this parameter is passed, the `payment_method` permission must be included.
2974    /// Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
2975    #[serde(skip_serializing_if = "Option::is_none")]
2976    pub permissions: Option<
2977        Vec<CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions>,
2978    >,
2979
2980    /// List of data features that you would like to retrieve upon account creation.
2981    #[serde(skip_serializing_if = "Option::is_none")]
2982    pub prefetch: Option<
2983        Vec<CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch>,
2984    >,
2985}
2986
2987#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2988pub struct CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimate {
2989    /// The upper bound of the estimated range.
2990    ///
2991    /// If empty, represents no upper bound i.e., infinite.
2992    #[serde(skip_serializing_if = "Option::is_none")]
2993    pub maximum:
2994        Option<CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximum>,
2995
2996    /// The lower bound of the estimated range.
2997    ///
2998    /// If empty, represents no lower bound.
2999    #[serde(skip_serializing_if = "Option::is_none")]
3000    pub minimum:
3001        Option<CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimum>,
3002}
3003
3004#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3005pub struct CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmount {
3006    /// A non-negative integer in cents representing how much to charge.
3007    pub amount: i64,
3008
3009    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
3010    ///
3011    /// Must be a [supported currency](https://stripe.com/docs/currencies).
3012    pub currency: Currency,
3013
3014    /// Shipping rates defined in each available currency option.
3015    ///
3016    /// Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
3017    #[serde(skip_serializing_if = "Option::is_none")]
3018    pub currency_options: Option<
3019        CurrencyMap<CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptions>,
3020    >,
3021}
3022
3023#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3024pub struct CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuer {
3025    /// The connected account being referenced when `type` is `account`.
3026    #[serde(skip_serializing_if = "Option::is_none")]
3027    pub account: Option<String>,
3028
3029    /// Type of the account referenced in the request.
3030    #[serde(rename = "type")]
3031    pub type_: CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType,
3032}
3033
3034#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3035pub struct CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehavior {
3036    /// Indicates how the subscription should change when the trial ends if the user did not provide a payment method.
3037    pub missing_payment_method:
3038        CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod,
3039}
3040
3041#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3042pub struct CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer {
3043    /// The desired country code of the bank account information.
3044    ///
3045    /// Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
3046    pub country: String,
3047}
3048
3049#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3050pub struct CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximum {
3051    /// A unit of time.
3052    pub unit: CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit,
3053
3054    /// Must be greater than 0.
3055    pub value: i64,
3056}
3057
3058#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3059pub struct CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimum {
3060    /// A unit of time.
3061    pub unit: CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit,
3062
3063    /// Must be greater than 0.
3064    pub value: i64,
3065}
3066
3067#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3068pub struct CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptions {
3069    /// A non-negative integer in cents representing how much to charge.
3070    pub amount: i64,
3071
3072    /// Specifies whether the rate is considered inclusive of taxes or exclusive of taxes.
3073    ///
3074    /// One of `inclusive`, `exclusive`, or `unspecified`.
3075    #[serde(skip_serializing_if = "Option::is_none")]
3076    pub tax_behavior: Option<
3077        CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior,
3078    >,
3079}
3080
3081/// An enum representing the possible values of an `CheckoutAcssDebitMandateOptions`'s `default_for` field.
3082#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3083#[serde(rename_all = "snake_case")]
3084pub enum CheckoutAcssDebitMandateOptionsDefaultFor {
3085    Invoice,
3086    Subscription,
3087}
3088
3089impl CheckoutAcssDebitMandateOptionsDefaultFor {
3090    pub fn as_str(self) -> &'static str {
3091        match self {
3092            CheckoutAcssDebitMandateOptionsDefaultFor::Invoice => "invoice",
3093            CheckoutAcssDebitMandateOptionsDefaultFor::Subscription => "subscription",
3094        }
3095    }
3096}
3097
3098impl AsRef<str> for CheckoutAcssDebitMandateOptionsDefaultFor {
3099    fn as_ref(&self) -> &str {
3100        self.as_str()
3101    }
3102}
3103
3104impl std::fmt::Display for CheckoutAcssDebitMandateOptionsDefaultFor {
3105    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3106        self.as_str().fmt(f)
3107    }
3108}
3109impl std::default::Default for CheckoutAcssDebitMandateOptionsDefaultFor {
3110    fn default() -> Self {
3111        Self::Invoice
3112    }
3113}
3114
3115/// An enum representing the possible values of an `CheckoutAcssDebitMandateOptions`'s `payment_schedule` field.
3116#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3117#[serde(rename_all = "snake_case")]
3118pub enum CheckoutAcssDebitMandateOptionsPaymentSchedule {
3119    Combined,
3120    Interval,
3121    Sporadic,
3122}
3123
3124impl CheckoutAcssDebitMandateOptionsPaymentSchedule {
3125    pub fn as_str(self) -> &'static str {
3126        match self {
3127            CheckoutAcssDebitMandateOptionsPaymentSchedule::Combined => "combined",
3128            CheckoutAcssDebitMandateOptionsPaymentSchedule::Interval => "interval",
3129            CheckoutAcssDebitMandateOptionsPaymentSchedule::Sporadic => "sporadic",
3130        }
3131    }
3132}
3133
3134impl AsRef<str> for CheckoutAcssDebitMandateOptionsPaymentSchedule {
3135    fn as_ref(&self) -> &str {
3136        self.as_str()
3137    }
3138}
3139
3140impl std::fmt::Display for CheckoutAcssDebitMandateOptionsPaymentSchedule {
3141    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3142        self.as_str().fmt(f)
3143    }
3144}
3145impl std::default::Default for CheckoutAcssDebitMandateOptionsPaymentSchedule {
3146    fn default() -> Self {
3147        Self::Combined
3148    }
3149}
3150
3151/// An enum representing the possible values of an `CheckoutAcssDebitMandateOptions`'s `transaction_type` field.
3152#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3153#[serde(rename_all = "snake_case")]
3154pub enum CheckoutAcssDebitMandateOptionsTransactionType {
3155    Business,
3156    Personal,
3157}
3158
3159impl CheckoutAcssDebitMandateOptionsTransactionType {
3160    pub fn as_str(self) -> &'static str {
3161        match self {
3162            CheckoutAcssDebitMandateOptionsTransactionType::Business => "business",
3163            CheckoutAcssDebitMandateOptionsTransactionType::Personal => "personal",
3164        }
3165    }
3166}
3167
3168impl AsRef<str> for CheckoutAcssDebitMandateOptionsTransactionType {
3169    fn as_ref(&self) -> &str {
3170        self.as_str()
3171    }
3172}
3173
3174impl std::fmt::Display for CheckoutAcssDebitMandateOptionsTransactionType {
3175    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3176        self.as_str().fmt(f)
3177    }
3178}
3179impl std::default::Default for CheckoutAcssDebitMandateOptionsTransactionType {
3180    fn default() -> Self {
3181        Self::Business
3182    }
3183}
3184
3185/// An enum representing the possible values of an `CheckoutAcssDebitPaymentMethodOptions`'s `setup_future_usage` field.
3186#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3187#[serde(rename_all = "snake_case")]
3188pub enum CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage {
3189    None,
3190    OffSession,
3191    OnSession,
3192}
3193
3194impl CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage {
3195    pub fn as_str(self) -> &'static str {
3196        match self {
3197            CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage::None => "none",
3198            CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3199            CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
3200        }
3201    }
3202}
3203
3204impl AsRef<str> for CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage {
3205    fn as_ref(&self) -> &str {
3206        self.as_str()
3207    }
3208}
3209
3210impl std::fmt::Display for CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage {
3211    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3212        self.as_str().fmt(f)
3213    }
3214}
3215impl std::default::Default for CheckoutAcssDebitPaymentMethodOptionsSetupFutureUsage {
3216    fn default() -> Self {
3217        Self::None
3218    }
3219}
3220
3221/// An enum representing the possible values of an `CheckoutAcssDebitPaymentMethodOptions`'s `verification_method` field.
3222#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3223#[serde(rename_all = "snake_case")]
3224pub enum CheckoutAcssDebitPaymentMethodOptionsVerificationMethod {
3225    Automatic,
3226    Instant,
3227    Microdeposits,
3228}
3229
3230impl CheckoutAcssDebitPaymentMethodOptionsVerificationMethod {
3231    pub fn as_str(self) -> &'static str {
3232        match self {
3233            CheckoutAcssDebitPaymentMethodOptionsVerificationMethod::Automatic => "automatic",
3234            CheckoutAcssDebitPaymentMethodOptionsVerificationMethod::Instant => "instant",
3235            CheckoutAcssDebitPaymentMethodOptionsVerificationMethod::Microdeposits => {
3236                "microdeposits"
3237            }
3238        }
3239    }
3240}
3241
3242impl AsRef<str> for CheckoutAcssDebitPaymentMethodOptionsVerificationMethod {
3243    fn as_ref(&self) -> &str {
3244        self.as_str()
3245    }
3246}
3247
3248impl std::fmt::Display for CheckoutAcssDebitPaymentMethodOptionsVerificationMethod {
3249    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3250        self.as_str().fmt(f)
3251    }
3252}
3253impl std::default::Default for CheckoutAcssDebitPaymentMethodOptionsVerificationMethod {
3254    fn default() -> Self {
3255        Self::Automatic
3256    }
3257}
3258
3259/// An enum representing the possible values of an `CheckoutAffirmPaymentMethodOptions`'s `setup_future_usage` field.
3260#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3261#[serde(rename_all = "snake_case")]
3262pub enum CheckoutAffirmPaymentMethodOptionsSetupFutureUsage {
3263    None,
3264}
3265
3266impl CheckoutAffirmPaymentMethodOptionsSetupFutureUsage {
3267    pub fn as_str(self) -> &'static str {
3268        match self {
3269            CheckoutAffirmPaymentMethodOptionsSetupFutureUsage::None => "none",
3270        }
3271    }
3272}
3273
3274impl AsRef<str> for CheckoutAffirmPaymentMethodOptionsSetupFutureUsage {
3275    fn as_ref(&self) -> &str {
3276        self.as_str()
3277    }
3278}
3279
3280impl std::fmt::Display for CheckoutAffirmPaymentMethodOptionsSetupFutureUsage {
3281    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3282        self.as_str().fmt(f)
3283    }
3284}
3285impl std::default::Default for CheckoutAffirmPaymentMethodOptionsSetupFutureUsage {
3286    fn default() -> Self {
3287        Self::None
3288    }
3289}
3290
3291/// An enum representing the possible values of an `CheckoutAfterpayClearpayPaymentMethodOptions`'s `setup_future_usage` field.
3292#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3293#[serde(rename_all = "snake_case")]
3294pub enum CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage {
3295    None,
3296}
3297
3298impl CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage {
3299    pub fn as_str(self) -> &'static str {
3300        match self {
3301            CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage::None => "none",
3302        }
3303    }
3304}
3305
3306impl AsRef<str> for CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage {
3307    fn as_ref(&self) -> &str {
3308        self.as_str()
3309    }
3310}
3311
3312impl std::fmt::Display for CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage {
3313    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3314        self.as_str().fmt(f)
3315    }
3316}
3317impl std::default::Default for CheckoutAfterpayClearpayPaymentMethodOptionsSetupFutureUsage {
3318    fn default() -> Self {
3319        Self::None
3320    }
3321}
3322
3323/// An enum representing the possible values of an `CheckoutAlipayPaymentMethodOptions`'s `setup_future_usage` field.
3324#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3325#[serde(rename_all = "snake_case")]
3326pub enum CheckoutAlipayPaymentMethodOptionsSetupFutureUsage {
3327    None,
3328}
3329
3330impl CheckoutAlipayPaymentMethodOptionsSetupFutureUsage {
3331    pub fn as_str(self) -> &'static str {
3332        match self {
3333            CheckoutAlipayPaymentMethodOptionsSetupFutureUsage::None => "none",
3334        }
3335    }
3336}
3337
3338impl AsRef<str> for CheckoutAlipayPaymentMethodOptionsSetupFutureUsage {
3339    fn as_ref(&self) -> &str {
3340        self.as_str()
3341    }
3342}
3343
3344impl std::fmt::Display for CheckoutAlipayPaymentMethodOptionsSetupFutureUsage {
3345    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3346        self.as_str().fmt(f)
3347    }
3348}
3349impl std::default::Default for CheckoutAlipayPaymentMethodOptionsSetupFutureUsage {
3350    fn default() -> Self {
3351        Self::None
3352    }
3353}
3354
3355/// An enum representing the possible values of an `CheckoutAuBecsDebitPaymentMethodOptions`'s `setup_future_usage` field.
3356#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3357#[serde(rename_all = "snake_case")]
3358pub enum CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage {
3359    None,
3360}
3361
3362impl CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage {
3363    pub fn as_str(self) -> &'static str {
3364        match self {
3365            CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage::None => "none",
3366        }
3367    }
3368}
3369
3370impl AsRef<str> for CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage {
3371    fn as_ref(&self) -> &str {
3372        self.as_str()
3373    }
3374}
3375
3376impl std::fmt::Display for CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage {
3377    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3378        self.as_str().fmt(f)
3379    }
3380}
3381impl std::default::Default for CheckoutAuBecsDebitPaymentMethodOptionsSetupFutureUsage {
3382    fn default() -> Self {
3383        Self::None
3384    }
3385}
3386
3387/// An enum representing the possible values of an `CheckoutBacsDebitPaymentMethodOptions`'s `setup_future_usage` field.
3388#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3389#[serde(rename_all = "snake_case")]
3390pub enum CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage {
3391    None,
3392    OffSession,
3393    OnSession,
3394}
3395
3396impl CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage {
3397    pub fn as_str(self) -> &'static str {
3398        match self {
3399            CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage::None => "none",
3400            CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3401            CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
3402        }
3403    }
3404}
3405
3406impl AsRef<str> for CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage {
3407    fn as_ref(&self) -> &str {
3408        self.as_str()
3409    }
3410}
3411
3412impl std::fmt::Display for CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage {
3413    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3414        self.as_str().fmt(f)
3415    }
3416}
3417impl std::default::Default for CheckoutBacsDebitPaymentMethodOptionsSetupFutureUsage {
3418    fn default() -> Self {
3419        Self::None
3420    }
3421}
3422
3423/// An enum representing the possible values of an `CheckoutBancontactPaymentMethodOptions`'s `setup_future_usage` field.
3424#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3425#[serde(rename_all = "snake_case")]
3426pub enum CheckoutBancontactPaymentMethodOptionsSetupFutureUsage {
3427    None,
3428}
3429
3430impl CheckoutBancontactPaymentMethodOptionsSetupFutureUsage {
3431    pub fn as_str(self) -> &'static str {
3432        match self {
3433            CheckoutBancontactPaymentMethodOptionsSetupFutureUsage::None => "none",
3434        }
3435    }
3436}
3437
3438impl AsRef<str> for CheckoutBancontactPaymentMethodOptionsSetupFutureUsage {
3439    fn as_ref(&self) -> &str {
3440        self.as_str()
3441    }
3442}
3443
3444impl std::fmt::Display for CheckoutBancontactPaymentMethodOptionsSetupFutureUsage {
3445    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3446        self.as_str().fmt(f)
3447    }
3448}
3449impl std::default::Default for CheckoutBancontactPaymentMethodOptionsSetupFutureUsage {
3450    fn default() -> Self {
3451        Self::None
3452    }
3453}
3454
3455/// An enum representing the possible values of an `CheckoutBoletoPaymentMethodOptions`'s `setup_future_usage` field.
3456#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3457#[serde(rename_all = "snake_case")]
3458pub enum CheckoutBoletoPaymentMethodOptionsSetupFutureUsage {
3459    None,
3460    OffSession,
3461    OnSession,
3462}
3463
3464impl CheckoutBoletoPaymentMethodOptionsSetupFutureUsage {
3465    pub fn as_str(self) -> &'static str {
3466        match self {
3467            CheckoutBoletoPaymentMethodOptionsSetupFutureUsage::None => "none",
3468            CheckoutBoletoPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3469            CheckoutBoletoPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
3470        }
3471    }
3472}
3473
3474impl AsRef<str> for CheckoutBoletoPaymentMethodOptionsSetupFutureUsage {
3475    fn as_ref(&self) -> &str {
3476        self.as_str()
3477    }
3478}
3479
3480impl std::fmt::Display for CheckoutBoletoPaymentMethodOptionsSetupFutureUsage {
3481    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3482        self.as_str().fmt(f)
3483    }
3484}
3485impl std::default::Default for CheckoutBoletoPaymentMethodOptionsSetupFutureUsage {
3486    fn default() -> Self {
3487        Self::None
3488    }
3489}
3490
3491/// An enum representing the possible values of an `CheckoutCardPaymentMethodOptions`'s `setup_future_usage` field.
3492#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3493#[serde(rename_all = "snake_case")]
3494pub enum CheckoutCardPaymentMethodOptionsSetupFutureUsage {
3495    None,
3496    OffSession,
3497    OnSession,
3498}
3499
3500impl CheckoutCardPaymentMethodOptionsSetupFutureUsage {
3501    pub fn as_str(self) -> &'static str {
3502        match self {
3503            CheckoutCardPaymentMethodOptionsSetupFutureUsage::None => "none",
3504            CheckoutCardPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3505            CheckoutCardPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
3506        }
3507    }
3508}
3509
3510impl AsRef<str> for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
3511    fn as_ref(&self) -> &str {
3512        self.as_str()
3513    }
3514}
3515
3516impl std::fmt::Display for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
3517    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3518        self.as_str().fmt(f)
3519    }
3520}
3521impl std::default::Default for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
3522    fn default() -> Self {
3523        Self::None
3524    }
3525}
3526
3527/// An enum representing the possible values of an `CheckoutCashappPaymentMethodOptions`'s `setup_future_usage` field.
3528#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3529#[serde(rename_all = "snake_case")]
3530pub enum CheckoutCashappPaymentMethodOptionsSetupFutureUsage {
3531    None,
3532}
3533
3534impl CheckoutCashappPaymentMethodOptionsSetupFutureUsage {
3535    pub fn as_str(self) -> &'static str {
3536        match self {
3537            CheckoutCashappPaymentMethodOptionsSetupFutureUsage::None => "none",
3538        }
3539    }
3540}
3541
3542impl AsRef<str> for CheckoutCashappPaymentMethodOptionsSetupFutureUsage {
3543    fn as_ref(&self) -> &str {
3544        self.as_str()
3545    }
3546}
3547
3548impl std::fmt::Display for CheckoutCashappPaymentMethodOptionsSetupFutureUsage {
3549    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3550        self.as_str().fmt(f)
3551    }
3552}
3553impl std::default::Default for CheckoutCashappPaymentMethodOptionsSetupFutureUsage {
3554    fn default() -> Self {
3555        Self::None
3556    }
3557}
3558
3559/// An enum representing the possible values of an `CheckoutCustomerBalanceBankTransferPaymentMethodOptions`'s `requested_address_types` field.
3560#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3561#[serde(rename_all = "snake_case")]
3562pub enum CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes {
3563    Aba,
3564    Iban,
3565    Sepa,
3566    SortCode,
3567    Spei,
3568    Swift,
3569    Zengin,
3570}
3571
3572impl CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes {
3573    pub fn as_str(self) -> &'static str {
3574        match self {
3575            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Aba => "aba",
3576            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Iban => "iban",
3577            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Sepa => "sepa",
3578            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::SortCode => "sort_code",
3579            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Spei => "spei",
3580            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Swift => "swift",
3581            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes::Zengin => "zengin",
3582        }
3583    }
3584}
3585
3586impl AsRef<str> for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes {
3587    fn as_ref(&self) -> &str {
3588        self.as_str()
3589    }
3590}
3591
3592impl std::fmt::Display
3593    for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes
3594{
3595    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3596        self.as_str().fmt(f)
3597    }
3598}
3599impl std::default::Default
3600    for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsRequestedAddressTypes
3601{
3602    fn default() -> Self {
3603        Self::Aba
3604    }
3605}
3606
3607/// An enum representing the possible values of an `CheckoutCustomerBalanceBankTransferPaymentMethodOptions`'s `type` field.
3608#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3609#[serde(rename_all = "snake_case")]
3610pub enum CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType {
3611    EuBankTransfer,
3612    GbBankTransfer,
3613    JpBankTransfer,
3614    MxBankTransfer,
3615    UsBankTransfer,
3616}
3617
3618impl CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType {
3619    pub fn as_str(self) -> &'static str {
3620        match self {
3621            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType::EuBankTransfer => {
3622                "eu_bank_transfer"
3623            }
3624            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType::GbBankTransfer => {
3625                "gb_bank_transfer"
3626            }
3627            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType::JpBankTransfer => {
3628                "jp_bank_transfer"
3629            }
3630            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType::MxBankTransfer => {
3631                "mx_bank_transfer"
3632            }
3633            CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType::UsBankTransfer => {
3634                "us_bank_transfer"
3635            }
3636        }
3637    }
3638}
3639
3640impl AsRef<str> for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType {
3641    fn as_ref(&self) -> &str {
3642        self.as_str()
3643    }
3644}
3645
3646impl std::fmt::Display for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType {
3647    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3648        self.as_str().fmt(f)
3649    }
3650}
3651impl std::default::Default for CheckoutCustomerBalanceBankTransferPaymentMethodOptionsType {
3652    fn default() -> Self {
3653        Self::EuBankTransfer
3654    }
3655}
3656
3657/// An enum representing the possible values of an `CheckoutCustomerBalancePaymentMethodOptions`'s `funding_type` field.
3658#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3659#[serde(rename_all = "snake_case")]
3660pub enum CheckoutCustomerBalancePaymentMethodOptionsFundingType {
3661    BankTransfer,
3662}
3663
3664impl CheckoutCustomerBalancePaymentMethodOptionsFundingType {
3665    pub fn as_str(self) -> &'static str {
3666        match self {
3667            CheckoutCustomerBalancePaymentMethodOptionsFundingType::BankTransfer => "bank_transfer",
3668        }
3669    }
3670}
3671
3672impl AsRef<str> for CheckoutCustomerBalancePaymentMethodOptionsFundingType {
3673    fn as_ref(&self) -> &str {
3674        self.as_str()
3675    }
3676}
3677
3678impl std::fmt::Display for CheckoutCustomerBalancePaymentMethodOptionsFundingType {
3679    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3680        self.as_str().fmt(f)
3681    }
3682}
3683impl std::default::Default for CheckoutCustomerBalancePaymentMethodOptionsFundingType {
3684    fn default() -> Self {
3685        Self::BankTransfer
3686    }
3687}
3688
3689/// An enum representing the possible values of an `CheckoutCustomerBalancePaymentMethodOptions`'s `setup_future_usage` field.
3690#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3691#[serde(rename_all = "snake_case")]
3692pub enum CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage {
3693    None,
3694}
3695
3696impl CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage {
3697    pub fn as_str(self) -> &'static str {
3698        match self {
3699            CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage::None => "none",
3700        }
3701    }
3702}
3703
3704impl AsRef<str> for CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage {
3705    fn as_ref(&self) -> &str {
3706        self.as_str()
3707    }
3708}
3709
3710impl std::fmt::Display for CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage {
3711    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3712        self.as_str().fmt(f)
3713    }
3714}
3715impl std::default::Default for CheckoutCustomerBalancePaymentMethodOptionsSetupFutureUsage {
3716    fn default() -> Self {
3717        Self::None
3718    }
3719}
3720
3721/// An enum representing the possible values of an `CheckoutEpsPaymentMethodOptions`'s `setup_future_usage` field.
3722#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3723#[serde(rename_all = "snake_case")]
3724pub enum CheckoutEpsPaymentMethodOptionsSetupFutureUsage {
3725    None,
3726}
3727
3728impl CheckoutEpsPaymentMethodOptionsSetupFutureUsage {
3729    pub fn as_str(self) -> &'static str {
3730        match self {
3731            CheckoutEpsPaymentMethodOptionsSetupFutureUsage::None => "none",
3732        }
3733    }
3734}
3735
3736impl AsRef<str> for CheckoutEpsPaymentMethodOptionsSetupFutureUsage {
3737    fn as_ref(&self) -> &str {
3738        self.as_str()
3739    }
3740}
3741
3742impl std::fmt::Display for CheckoutEpsPaymentMethodOptionsSetupFutureUsage {
3743    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3744        self.as_str().fmt(f)
3745    }
3746}
3747impl std::default::Default for CheckoutEpsPaymentMethodOptionsSetupFutureUsage {
3748    fn default() -> Self {
3749        Self::None
3750    }
3751}
3752
3753/// An enum representing the possible values of an `CheckoutFpxPaymentMethodOptions`'s `setup_future_usage` field.
3754#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3755#[serde(rename_all = "snake_case")]
3756pub enum CheckoutFpxPaymentMethodOptionsSetupFutureUsage {
3757    None,
3758}
3759
3760impl CheckoutFpxPaymentMethodOptionsSetupFutureUsage {
3761    pub fn as_str(self) -> &'static str {
3762        match self {
3763            CheckoutFpxPaymentMethodOptionsSetupFutureUsage::None => "none",
3764        }
3765    }
3766}
3767
3768impl AsRef<str> for CheckoutFpxPaymentMethodOptionsSetupFutureUsage {
3769    fn as_ref(&self) -> &str {
3770        self.as_str()
3771    }
3772}
3773
3774impl std::fmt::Display for CheckoutFpxPaymentMethodOptionsSetupFutureUsage {
3775    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3776        self.as_str().fmt(f)
3777    }
3778}
3779impl std::default::Default for CheckoutFpxPaymentMethodOptionsSetupFutureUsage {
3780    fn default() -> Self {
3781        Self::None
3782    }
3783}
3784
3785/// An enum representing the possible values of an `CheckoutGiropayPaymentMethodOptions`'s `setup_future_usage` field.
3786#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3787#[serde(rename_all = "snake_case")]
3788pub enum CheckoutGiropayPaymentMethodOptionsSetupFutureUsage {
3789    None,
3790}
3791
3792impl CheckoutGiropayPaymentMethodOptionsSetupFutureUsage {
3793    pub fn as_str(self) -> &'static str {
3794        match self {
3795            CheckoutGiropayPaymentMethodOptionsSetupFutureUsage::None => "none",
3796        }
3797    }
3798}
3799
3800impl AsRef<str> for CheckoutGiropayPaymentMethodOptionsSetupFutureUsage {
3801    fn as_ref(&self) -> &str {
3802        self.as_str()
3803    }
3804}
3805
3806impl std::fmt::Display for CheckoutGiropayPaymentMethodOptionsSetupFutureUsage {
3807    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3808        self.as_str().fmt(f)
3809    }
3810}
3811impl std::default::Default for CheckoutGiropayPaymentMethodOptionsSetupFutureUsage {
3812    fn default() -> Self {
3813        Self::None
3814    }
3815}
3816
3817/// An enum representing the possible values of an `CheckoutGrabPayPaymentMethodOptions`'s `setup_future_usage` field.
3818#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3819#[serde(rename_all = "snake_case")]
3820pub enum CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage {
3821    None,
3822}
3823
3824impl CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage {
3825    pub fn as_str(self) -> &'static str {
3826        match self {
3827            CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage::None => "none",
3828        }
3829    }
3830}
3831
3832impl AsRef<str> for CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage {
3833    fn as_ref(&self) -> &str {
3834        self.as_str()
3835    }
3836}
3837
3838impl std::fmt::Display for CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage {
3839    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3840        self.as_str().fmt(f)
3841    }
3842}
3843impl std::default::Default for CheckoutGrabPayPaymentMethodOptionsSetupFutureUsage {
3844    fn default() -> Self {
3845        Self::None
3846    }
3847}
3848
3849/// An enum representing the possible values of an `CheckoutIdealPaymentMethodOptions`'s `setup_future_usage` field.
3850#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3851#[serde(rename_all = "snake_case")]
3852pub enum CheckoutIdealPaymentMethodOptionsSetupFutureUsage {
3853    None,
3854}
3855
3856impl CheckoutIdealPaymentMethodOptionsSetupFutureUsage {
3857    pub fn as_str(self) -> &'static str {
3858        match self {
3859            CheckoutIdealPaymentMethodOptionsSetupFutureUsage::None => "none",
3860        }
3861    }
3862}
3863
3864impl AsRef<str> for CheckoutIdealPaymentMethodOptionsSetupFutureUsage {
3865    fn as_ref(&self) -> &str {
3866        self.as_str()
3867    }
3868}
3869
3870impl std::fmt::Display for CheckoutIdealPaymentMethodOptionsSetupFutureUsage {
3871    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3872        self.as_str().fmt(f)
3873    }
3874}
3875impl std::default::Default for CheckoutIdealPaymentMethodOptionsSetupFutureUsage {
3876    fn default() -> Self {
3877        Self::None
3878    }
3879}
3880
3881/// An enum representing the possible values of an `CheckoutKlarnaPaymentMethodOptions`'s `setup_future_usage` field.
3882#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3883#[serde(rename_all = "snake_case")]
3884pub enum CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage {
3885    None,
3886    OffSession,
3887    OnSession,
3888}
3889
3890impl CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage {
3891    pub fn as_str(self) -> &'static str {
3892        match self {
3893            CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage::None => "none",
3894            CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3895            CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
3896        }
3897    }
3898}
3899
3900impl AsRef<str> for CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage {
3901    fn as_ref(&self) -> &str {
3902        self.as_str()
3903    }
3904}
3905
3906impl std::fmt::Display for CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage {
3907    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3908        self.as_str().fmt(f)
3909    }
3910}
3911impl std::default::Default for CheckoutKlarnaPaymentMethodOptionsSetupFutureUsage {
3912    fn default() -> Self {
3913        Self::None
3914    }
3915}
3916
3917/// An enum representing the possible values of an `CheckoutKonbiniPaymentMethodOptions`'s `setup_future_usage` field.
3918#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3919#[serde(rename_all = "snake_case")]
3920pub enum CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage {
3921    None,
3922}
3923
3924impl CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage {
3925    pub fn as_str(self) -> &'static str {
3926        match self {
3927            CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage::None => "none",
3928        }
3929    }
3930}
3931
3932impl AsRef<str> for CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage {
3933    fn as_ref(&self) -> &str {
3934        self.as_str()
3935    }
3936}
3937
3938impl std::fmt::Display for CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage {
3939    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3940        self.as_str().fmt(f)
3941    }
3942}
3943impl std::default::Default for CheckoutKonbiniPaymentMethodOptionsSetupFutureUsage {
3944    fn default() -> Self {
3945        Self::None
3946    }
3947}
3948
3949/// An enum representing the possible values of an `CheckoutLinkPaymentMethodOptions`'s `setup_future_usage` field.
3950#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3951#[serde(rename_all = "snake_case")]
3952pub enum CheckoutLinkPaymentMethodOptionsSetupFutureUsage {
3953    None,
3954    OffSession,
3955}
3956
3957impl CheckoutLinkPaymentMethodOptionsSetupFutureUsage {
3958    pub fn as_str(self) -> &'static str {
3959        match self {
3960            CheckoutLinkPaymentMethodOptionsSetupFutureUsage::None => "none",
3961            CheckoutLinkPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
3962        }
3963    }
3964}
3965
3966impl AsRef<str> for CheckoutLinkPaymentMethodOptionsSetupFutureUsage {
3967    fn as_ref(&self) -> &str {
3968        self.as_str()
3969    }
3970}
3971
3972impl std::fmt::Display for CheckoutLinkPaymentMethodOptionsSetupFutureUsage {
3973    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3974        self.as_str().fmt(f)
3975    }
3976}
3977impl std::default::Default for CheckoutLinkPaymentMethodOptionsSetupFutureUsage {
3978    fn default() -> Self {
3979        Self::None
3980    }
3981}
3982
3983/// An enum representing the possible values of an `CheckoutOxxoPaymentMethodOptions`'s `setup_future_usage` field.
3984#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
3985#[serde(rename_all = "snake_case")]
3986pub enum CheckoutOxxoPaymentMethodOptionsSetupFutureUsage {
3987    None,
3988}
3989
3990impl CheckoutOxxoPaymentMethodOptionsSetupFutureUsage {
3991    pub fn as_str(self) -> &'static str {
3992        match self {
3993            CheckoutOxxoPaymentMethodOptionsSetupFutureUsage::None => "none",
3994        }
3995    }
3996}
3997
3998impl AsRef<str> for CheckoutOxxoPaymentMethodOptionsSetupFutureUsage {
3999    fn as_ref(&self) -> &str {
4000        self.as_str()
4001    }
4002}
4003
4004impl std::fmt::Display for CheckoutOxxoPaymentMethodOptionsSetupFutureUsage {
4005    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4006        self.as_str().fmt(f)
4007    }
4008}
4009impl std::default::Default for CheckoutOxxoPaymentMethodOptionsSetupFutureUsage {
4010    fn default() -> Self {
4011        Self::None
4012    }
4013}
4014
4015/// An enum representing the possible values of an `CheckoutP24PaymentMethodOptions`'s `setup_future_usage` field.
4016#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4017#[serde(rename_all = "snake_case")]
4018pub enum CheckoutP24PaymentMethodOptionsSetupFutureUsage {
4019    None,
4020}
4021
4022impl CheckoutP24PaymentMethodOptionsSetupFutureUsage {
4023    pub fn as_str(self) -> &'static str {
4024        match self {
4025            CheckoutP24PaymentMethodOptionsSetupFutureUsage::None => "none",
4026        }
4027    }
4028}
4029
4030impl AsRef<str> for CheckoutP24PaymentMethodOptionsSetupFutureUsage {
4031    fn as_ref(&self) -> &str {
4032        self.as_str()
4033    }
4034}
4035
4036impl std::fmt::Display for CheckoutP24PaymentMethodOptionsSetupFutureUsage {
4037    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4038        self.as_str().fmt(f)
4039    }
4040}
4041impl std::default::Default for CheckoutP24PaymentMethodOptionsSetupFutureUsage {
4042    fn default() -> Self {
4043        Self::None
4044    }
4045}
4046
4047/// An enum representing the possible values of an `CheckoutPaynowPaymentMethodOptions`'s `setup_future_usage` field.
4048#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4049#[serde(rename_all = "snake_case")]
4050pub enum CheckoutPaynowPaymentMethodOptionsSetupFutureUsage {
4051    None,
4052}
4053
4054impl CheckoutPaynowPaymentMethodOptionsSetupFutureUsage {
4055    pub fn as_str(self) -> &'static str {
4056        match self {
4057            CheckoutPaynowPaymentMethodOptionsSetupFutureUsage::None => "none",
4058        }
4059    }
4060}
4061
4062impl AsRef<str> for CheckoutPaynowPaymentMethodOptionsSetupFutureUsage {
4063    fn as_ref(&self) -> &str {
4064        self.as_str()
4065    }
4066}
4067
4068impl std::fmt::Display for CheckoutPaynowPaymentMethodOptionsSetupFutureUsage {
4069    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4070        self.as_str().fmt(f)
4071    }
4072}
4073impl std::default::Default for CheckoutPaynowPaymentMethodOptionsSetupFutureUsage {
4074    fn default() -> Self {
4075        Self::None
4076    }
4077}
4078
4079/// An enum representing the possible values of an `CheckoutPaypalPaymentMethodOptions`'s `capture_method` field.
4080#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4081#[serde(rename_all = "snake_case")]
4082pub enum CheckoutPaypalPaymentMethodOptionsCaptureMethod {
4083    Manual,
4084}
4085
4086impl CheckoutPaypalPaymentMethodOptionsCaptureMethod {
4087    pub fn as_str(self) -> &'static str {
4088        match self {
4089            CheckoutPaypalPaymentMethodOptionsCaptureMethod::Manual => "manual",
4090        }
4091    }
4092}
4093
4094impl AsRef<str> for CheckoutPaypalPaymentMethodOptionsCaptureMethod {
4095    fn as_ref(&self) -> &str {
4096        self.as_str()
4097    }
4098}
4099
4100impl std::fmt::Display for CheckoutPaypalPaymentMethodOptionsCaptureMethod {
4101    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4102        self.as_str().fmt(f)
4103    }
4104}
4105impl std::default::Default for CheckoutPaypalPaymentMethodOptionsCaptureMethod {
4106    fn default() -> Self {
4107        Self::Manual
4108    }
4109}
4110
4111/// An enum representing the possible values of an `CheckoutPaypalPaymentMethodOptions`'s `setup_future_usage` field.
4112#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4113#[serde(rename_all = "snake_case")]
4114pub enum CheckoutPaypalPaymentMethodOptionsSetupFutureUsage {
4115    None,
4116    OffSession,
4117}
4118
4119impl CheckoutPaypalPaymentMethodOptionsSetupFutureUsage {
4120    pub fn as_str(self) -> &'static str {
4121        match self {
4122            CheckoutPaypalPaymentMethodOptionsSetupFutureUsage::None => "none",
4123            CheckoutPaypalPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
4124        }
4125    }
4126}
4127
4128impl AsRef<str> for CheckoutPaypalPaymentMethodOptionsSetupFutureUsage {
4129    fn as_ref(&self) -> &str {
4130        self.as_str()
4131    }
4132}
4133
4134impl std::fmt::Display for CheckoutPaypalPaymentMethodOptionsSetupFutureUsage {
4135    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4136        self.as_str().fmt(f)
4137    }
4138}
4139impl std::default::Default for CheckoutPaypalPaymentMethodOptionsSetupFutureUsage {
4140    fn default() -> Self {
4141        Self::None
4142    }
4143}
4144
4145/// An enum representing the possible values of an `CheckoutSepaDebitPaymentMethodOptions`'s `setup_future_usage` field.
4146#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4147#[serde(rename_all = "snake_case")]
4148pub enum CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage {
4149    None,
4150    OffSession,
4151    OnSession,
4152}
4153
4154impl CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage {
4155    pub fn as_str(self) -> &'static str {
4156        match self {
4157            CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage::None => "none",
4158            CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
4159            CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
4160        }
4161    }
4162}
4163
4164impl AsRef<str> for CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage {
4165    fn as_ref(&self) -> &str {
4166        self.as_str()
4167    }
4168}
4169
4170impl std::fmt::Display for CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage {
4171    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4172        self.as_str().fmt(f)
4173    }
4174}
4175impl std::default::Default for CheckoutSepaDebitPaymentMethodOptionsSetupFutureUsage {
4176    fn default() -> Self {
4177        Self::None
4178    }
4179}
4180
4181/// An enum representing the possible values of an `CheckoutSession`'s `billing_address_collection` field.
4182#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4183#[serde(rename_all = "snake_case")]
4184pub enum CheckoutSessionBillingAddressCollection {
4185    Auto,
4186    Required,
4187}
4188
4189impl CheckoutSessionBillingAddressCollection {
4190    pub fn as_str(self) -> &'static str {
4191        match self {
4192            CheckoutSessionBillingAddressCollection::Auto => "auto",
4193            CheckoutSessionBillingAddressCollection::Required => "required",
4194        }
4195    }
4196}
4197
4198impl AsRef<str> for CheckoutSessionBillingAddressCollection {
4199    fn as_ref(&self) -> &str {
4200        self.as_str()
4201    }
4202}
4203
4204impl std::fmt::Display for CheckoutSessionBillingAddressCollection {
4205    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4206        self.as_str().fmt(f)
4207    }
4208}
4209impl std::default::Default for CheckoutSessionBillingAddressCollection {
4210    fn default() -> Self {
4211        Self::Auto
4212    }
4213}
4214
4215/// An enum representing the possible values of an `CheckoutSession`'s `customer_creation` field.
4216#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4217#[serde(rename_all = "snake_case")]
4218pub enum CheckoutSessionCustomerCreation {
4219    Always,
4220    IfRequired,
4221}
4222
4223impl CheckoutSessionCustomerCreation {
4224    pub fn as_str(self) -> &'static str {
4225        match self {
4226            CheckoutSessionCustomerCreation::Always => "always",
4227            CheckoutSessionCustomerCreation::IfRequired => "if_required",
4228        }
4229    }
4230}
4231
4232impl AsRef<str> for CheckoutSessionCustomerCreation {
4233    fn as_ref(&self) -> &str {
4234        self.as_str()
4235    }
4236}
4237
4238impl std::fmt::Display for CheckoutSessionCustomerCreation {
4239    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4240        self.as_str().fmt(f)
4241    }
4242}
4243impl std::default::Default for CheckoutSessionCustomerCreation {
4244    fn default() -> Self {
4245        Self::Always
4246    }
4247}
4248
4249/// An enum representing the possible values of an `CheckoutSession`'s `locale` field.
4250#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4251#[serde(rename_all = "snake_case")]
4252pub enum CheckoutSessionLocale {
4253    Auto,
4254    Bg,
4255    Cs,
4256    Da,
4257    De,
4258    El,
4259    En,
4260    #[serde(rename = "en-GB")]
4261    EnGb,
4262    Es,
4263    #[serde(rename = "es-419")]
4264    Es419,
4265    Et,
4266    Fi,
4267    Fil,
4268    Fr,
4269    #[serde(rename = "fr-CA")]
4270    FrCa,
4271    Hr,
4272    Hu,
4273    Id,
4274    It,
4275    Ja,
4276    Ko,
4277    Lt,
4278    Lv,
4279    Ms,
4280    Mt,
4281    Nb,
4282    Nl,
4283    Pl,
4284    Pt,
4285    #[serde(rename = "pt-BR")]
4286    PtBr,
4287    Ro,
4288    Ru,
4289    Sk,
4290    Sl,
4291    Sv,
4292    Th,
4293    Tr,
4294    Vi,
4295    Zh,
4296    #[serde(rename = "zh-HK")]
4297    ZhHk,
4298    #[serde(rename = "zh-TW")]
4299    ZhTw,
4300}
4301
4302impl CheckoutSessionLocale {
4303    pub fn as_str(self) -> &'static str {
4304        match self {
4305            CheckoutSessionLocale::Auto => "auto",
4306            CheckoutSessionLocale::Bg => "bg",
4307            CheckoutSessionLocale::Cs => "cs",
4308            CheckoutSessionLocale::Da => "da",
4309            CheckoutSessionLocale::De => "de",
4310            CheckoutSessionLocale::El => "el",
4311            CheckoutSessionLocale::En => "en",
4312            CheckoutSessionLocale::EnGb => "en-GB",
4313            CheckoutSessionLocale::Es => "es",
4314            CheckoutSessionLocale::Es419 => "es-419",
4315            CheckoutSessionLocale::Et => "et",
4316            CheckoutSessionLocale::Fi => "fi",
4317            CheckoutSessionLocale::Fil => "fil",
4318            CheckoutSessionLocale::Fr => "fr",
4319            CheckoutSessionLocale::FrCa => "fr-CA",
4320            CheckoutSessionLocale::Hr => "hr",
4321            CheckoutSessionLocale::Hu => "hu",
4322            CheckoutSessionLocale::Id => "id",
4323            CheckoutSessionLocale::It => "it",
4324            CheckoutSessionLocale::Ja => "ja",
4325            CheckoutSessionLocale::Ko => "ko",
4326            CheckoutSessionLocale::Lt => "lt",
4327            CheckoutSessionLocale::Lv => "lv",
4328            CheckoutSessionLocale::Ms => "ms",
4329            CheckoutSessionLocale::Mt => "mt",
4330            CheckoutSessionLocale::Nb => "nb",
4331            CheckoutSessionLocale::Nl => "nl",
4332            CheckoutSessionLocale::Pl => "pl",
4333            CheckoutSessionLocale::Pt => "pt",
4334            CheckoutSessionLocale::PtBr => "pt-BR",
4335            CheckoutSessionLocale::Ro => "ro",
4336            CheckoutSessionLocale::Ru => "ru",
4337            CheckoutSessionLocale::Sk => "sk",
4338            CheckoutSessionLocale::Sl => "sl",
4339            CheckoutSessionLocale::Sv => "sv",
4340            CheckoutSessionLocale::Th => "th",
4341            CheckoutSessionLocale::Tr => "tr",
4342            CheckoutSessionLocale::Vi => "vi",
4343            CheckoutSessionLocale::Zh => "zh",
4344            CheckoutSessionLocale::ZhHk => "zh-HK",
4345            CheckoutSessionLocale::ZhTw => "zh-TW",
4346        }
4347    }
4348}
4349
4350impl AsRef<str> for CheckoutSessionLocale {
4351    fn as_ref(&self) -> &str {
4352        self.as_str()
4353    }
4354}
4355
4356impl std::fmt::Display for CheckoutSessionLocale {
4357    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4358        self.as_str().fmt(f)
4359    }
4360}
4361impl std::default::Default for CheckoutSessionLocale {
4362    fn default() -> Self {
4363        Self::Auto
4364    }
4365}
4366
4367/// An enum representing the possible values of an `CheckoutSession`'s `mode` field.
4368#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4369#[serde(rename_all = "snake_case")]
4370pub enum CheckoutSessionMode {
4371    Payment,
4372    Setup,
4373    Subscription,
4374}
4375
4376impl CheckoutSessionMode {
4377    pub fn as_str(self) -> &'static str {
4378        match self {
4379            CheckoutSessionMode::Payment => "payment",
4380            CheckoutSessionMode::Setup => "setup",
4381            CheckoutSessionMode::Subscription => "subscription",
4382        }
4383    }
4384}
4385
4386impl AsRef<str> for CheckoutSessionMode {
4387    fn as_ref(&self) -> &str {
4388        self.as_str()
4389    }
4390}
4391
4392impl std::fmt::Display for CheckoutSessionMode {
4393    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4394        self.as_str().fmt(f)
4395    }
4396}
4397impl std::default::Default for CheckoutSessionMode {
4398    fn default() -> Self {
4399        Self::Payment
4400    }
4401}
4402
4403/// An enum representing the possible values of an `CheckoutSession`'s `payment_method_collection` field.
4404#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4405#[serde(rename_all = "snake_case")]
4406pub enum CheckoutSessionPaymentMethodCollection {
4407    Always,
4408    IfRequired,
4409}
4410
4411impl CheckoutSessionPaymentMethodCollection {
4412    pub fn as_str(self) -> &'static str {
4413        match self {
4414            CheckoutSessionPaymentMethodCollection::Always => "always",
4415            CheckoutSessionPaymentMethodCollection::IfRequired => "if_required",
4416        }
4417    }
4418}
4419
4420impl AsRef<str> for CheckoutSessionPaymentMethodCollection {
4421    fn as_ref(&self) -> &str {
4422        self.as_str()
4423    }
4424}
4425
4426impl std::fmt::Display for CheckoutSessionPaymentMethodCollection {
4427    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4428        self.as_str().fmt(f)
4429    }
4430}
4431impl std::default::Default for CheckoutSessionPaymentMethodCollection {
4432    fn default() -> Self {
4433        Self::Always
4434    }
4435}
4436
4437/// An enum representing the possible values of an `CheckoutSession`'s `payment_status` field.
4438#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4439#[serde(rename_all = "snake_case")]
4440pub enum CheckoutSessionPaymentStatus {
4441    NoPaymentRequired,
4442    Paid,
4443    Unpaid,
4444}
4445
4446impl CheckoutSessionPaymentStatus {
4447    pub fn as_str(self) -> &'static str {
4448        match self {
4449            CheckoutSessionPaymentStatus::NoPaymentRequired => "no_payment_required",
4450            CheckoutSessionPaymentStatus::Paid => "paid",
4451            CheckoutSessionPaymentStatus::Unpaid => "unpaid",
4452        }
4453    }
4454}
4455
4456impl AsRef<str> for CheckoutSessionPaymentStatus {
4457    fn as_ref(&self) -> &str {
4458        self.as_str()
4459    }
4460}
4461
4462impl std::fmt::Display for CheckoutSessionPaymentStatus {
4463    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4464        self.as_str().fmt(f)
4465    }
4466}
4467impl std::default::Default for CheckoutSessionPaymentStatus {
4468    fn default() -> Self {
4469        Self::NoPaymentRequired
4470    }
4471}
4472
4473/// An enum representing the possible values of an `CheckoutSession`'s `redirect_on_completion` field.
4474#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4475#[serde(rename_all = "snake_case")]
4476pub enum CheckoutSessionRedirectOnCompletion {
4477    Always,
4478    IfRequired,
4479    Never,
4480}
4481
4482impl CheckoutSessionRedirectOnCompletion {
4483    pub fn as_str(self) -> &'static str {
4484        match self {
4485            CheckoutSessionRedirectOnCompletion::Always => "always",
4486            CheckoutSessionRedirectOnCompletion::IfRequired => "if_required",
4487            CheckoutSessionRedirectOnCompletion::Never => "never",
4488        }
4489    }
4490}
4491
4492impl AsRef<str> for CheckoutSessionRedirectOnCompletion {
4493    fn as_ref(&self) -> &str {
4494        self.as_str()
4495    }
4496}
4497
4498impl std::fmt::Display for CheckoutSessionRedirectOnCompletion {
4499    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4500        self.as_str().fmt(f)
4501    }
4502}
4503impl std::default::Default for CheckoutSessionRedirectOnCompletion {
4504    fn default() -> Self {
4505        Self::Always
4506    }
4507}
4508
4509/// An enum representing the possible values of an `CheckoutSession`'s `status` field.
4510#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4511#[serde(rename_all = "snake_case")]
4512pub enum CheckoutSessionStatus {
4513    Complete,
4514    Expired,
4515    Open,
4516}
4517
4518impl CheckoutSessionStatus {
4519    pub fn as_str(self) -> &'static str {
4520        match self {
4521            CheckoutSessionStatus::Complete => "complete",
4522            CheckoutSessionStatus::Expired => "expired",
4523            CheckoutSessionStatus::Open => "open",
4524        }
4525    }
4526}
4527
4528impl AsRef<str> for CheckoutSessionStatus {
4529    fn as_ref(&self) -> &str {
4530        self.as_str()
4531    }
4532}
4533
4534impl std::fmt::Display for CheckoutSessionStatus {
4535    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4536        self.as_str().fmt(f)
4537    }
4538}
4539impl std::default::Default for CheckoutSessionStatus {
4540    fn default() -> Self {
4541        Self::Complete
4542    }
4543}
4544
4545/// An enum representing the possible values of an `CheckoutSession`'s `submit_type` field.
4546#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4547#[serde(rename_all = "snake_case")]
4548pub enum CheckoutSessionSubmitType {
4549    Auto,
4550    Book,
4551    Donate,
4552    Pay,
4553}
4554
4555impl CheckoutSessionSubmitType {
4556    pub fn as_str(self) -> &'static str {
4557        match self {
4558            CheckoutSessionSubmitType::Auto => "auto",
4559            CheckoutSessionSubmitType::Book => "book",
4560            CheckoutSessionSubmitType::Donate => "donate",
4561            CheckoutSessionSubmitType::Pay => "pay",
4562        }
4563    }
4564}
4565
4566impl AsRef<str> for CheckoutSessionSubmitType {
4567    fn as_ref(&self) -> &str {
4568        self.as_str()
4569    }
4570}
4571
4572impl std::fmt::Display for CheckoutSessionSubmitType {
4573    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4574        self.as_str().fmt(f)
4575    }
4576}
4577impl std::default::Default for CheckoutSessionSubmitType {
4578    fn default() -> Self {
4579        Self::Auto
4580    }
4581}
4582
4583/// An enum representing the possible values of an `CheckoutSession`'s `ui_mode` field.
4584#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4585#[serde(rename_all = "snake_case")]
4586pub enum CheckoutSessionUiMode {
4587    Embedded,
4588    Hosted,
4589}
4590
4591impl CheckoutSessionUiMode {
4592    pub fn as_str(self) -> &'static str {
4593        match self {
4594            CheckoutSessionUiMode::Embedded => "embedded",
4595            CheckoutSessionUiMode::Hosted => "hosted",
4596        }
4597    }
4598}
4599
4600impl AsRef<str> for CheckoutSessionUiMode {
4601    fn as_ref(&self) -> &str {
4602        self.as_str()
4603    }
4604}
4605
4606impl std::fmt::Display for CheckoutSessionUiMode {
4607    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4608        self.as_str().fmt(f)
4609    }
4610}
4611impl std::default::Default for CheckoutSessionUiMode {
4612    fn default() -> Self {
4613        Self::Embedded
4614    }
4615}
4616
4617/// An enum representing the possible values of an `CheckoutSofortPaymentMethodOptions`'s `setup_future_usage` field.
4618#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4619#[serde(rename_all = "snake_case")]
4620pub enum CheckoutSofortPaymentMethodOptionsSetupFutureUsage {
4621    None,
4622}
4623
4624impl CheckoutSofortPaymentMethodOptionsSetupFutureUsage {
4625    pub fn as_str(self) -> &'static str {
4626        match self {
4627            CheckoutSofortPaymentMethodOptionsSetupFutureUsage::None => "none",
4628        }
4629    }
4630}
4631
4632impl AsRef<str> for CheckoutSofortPaymentMethodOptionsSetupFutureUsage {
4633    fn as_ref(&self) -> &str {
4634        self.as_str()
4635    }
4636}
4637
4638impl std::fmt::Display for CheckoutSofortPaymentMethodOptionsSetupFutureUsage {
4639    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4640        self.as_str().fmt(f)
4641    }
4642}
4643impl std::default::Default for CheckoutSofortPaymentMethodOptionsSetupFutureUsage {
4644    fn default() -> Self {
4645        Self::None
4646    }
4647}
4648
4649/// An enum representing the possible values of an `CheckoutUsBankAccountPaymentMethodOptions`'s `setup_future_usage` field.
4650#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4651#[serde(rename_all = "snake_case")]
4652pub enum CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage {
4653    None,
4654    OffSession,
4655    OnSession,
4656}
4657
4658impl CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage {
4659    pub fn as_str(self) -> &'static str {
4660        match self {
4661            CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage::None => "none",
4662            CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage::OffSession => "off_session",
4663            CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage::OnSession => "on_session",
4664        }
4665    }
4666}
4667
4668impl AsRef<str> for CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage {
4669    fn as_ref(&self) -> &str {
4670        self.as_str()
4671    }
4672}
4673
4674impl std::fmt::Display for CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage {
4675    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4676        self.as_str().fmt(f)
4677    }
4678}
4679impl std::default::Default for CheckoutUsBankAccountPaymentMethodOptionsSetupFutureUsage {
4680    fn default() -> Self {
4681        Self::None
4682    }
4683}
4684
4685/// An enum representing the possible values of an `CheckoutUsBankAccountPaymentMethodOptions`'s `verification_method` field.
4686#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4687#[serde(rename_all = "snake_case")]
4688pub enum CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod {
4689    Automatic,
4690    Instant,
4691}
4692
4693impl CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod {
4694    pub fn as_str(self) -> &'static str {
4695        match self {
4696            CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod::Automatic => "automatic",
4697            CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod::Instant => "instant",
4698        }
4699    }
4700}
4701
4702impl AsRef<str> for CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod {
4703    fn as_ref(&self) -> &str {
4704        self.as_str()
4705    }
4706}
4707
4708impl std::fmt::Display for CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod {
4709    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4710        self.as_str().fmt(f)
4711    }
4712}
4713impl std::default::Default for CheckoutUsBankAccountPaymentMethodOptionsVerificationMethod {
4714    fn default() -> Self {
4715        Self::Automatic
4716    }
4717}
4718
4719/// An enum representing the possible values of an `CreateCheckoutSessionAutomaticTaxLiability`'s `type` field.
4720#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4721#[serde(rename_all = "snake_case")]
4722pub enum CreateCheckoutSessionAutomaticTaxLiabilityType {
4723    Account,
4724    #[serde(rename = "self")]
4725    Self_,
4726}
4727
4728impl CreateCheckoutSessionAutomaticTaxLiabilityType {
4729    pub fn as_str(self) -> &'static str {
4730        match self {
4731            CreateCheckoutSessionAutomaticTaxLiabilityType::Account => "account",
4732            CreateCheckoutSessionAutomaticTaxLiabilityType::Self_ => "self",
4733        }
4734    }
4735}
4736
4737impl AsRef<str> for CreateCheckoutSessionAutomaticTaxLiabilityType {
4738    fn as_ref(&self) -> &str {
4739        self.as_str()
4740    }
4741}
4742
4743impl std::fmt::Display for CreateCheckoutSessionAutomaticTaxLiabilityType {
4744    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4745        self.as_str().fmt(f)
4746    }
4747}
4748impl std::default::Default for CreateCheckoutSessionAutomaticTaxLiabilityType {
4749    fn default() -> Self {
4750        Self::Account
4751    }
4752}
4753
4754/// An enum representing the possible values of an `CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement`'s `position` field.
4755#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4756#[serde(rename_all = "snake_case")]
4757pub enum CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition {
4758    Auto,
4759    Hidden,
4760}
4761
4762impl CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition {
4763    pub fn as_str(self) -> &'static str {
4764        match self {
4765            CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition::Auto => {
4766                "auto"
4767            }
4768            CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition::Hidden => {
4769                "hidden"
4770            }
4771        }
4772    }
4773}
4774
4775impl AsRef<str> for CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition {
4776    fn as_ref(&self) -> &str {
4777        self.as_str()
4778    }
4779}
4780
4781impl std::fmt::Display
4782    for CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition
4783{
4784    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4785        self.as_str().fmt(f)
4786    }
4787}
4788impl std::default::Default
4789    for CreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition
4790{
4791    fn default() -> Self {
4792        Self::Auto
4793    }
4794}
4795
4796/// An enum representing the possible values of an `CreateCheckoutSessionConsentCollection`'s `promotions` field.
4797#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4798#[serde(rename_all = "snake_case")]
4799pub enum CreateCheckoutSessionConsentCollectionPromotions {
4800    Auto,
4801    None,
4802}
4803
4804impl CreateCheckoutSessionConsentCollectionPromotions {
4805    pub fn as_str(self) -> &'static str {
4806        match self {
4807            CreateCheckoutSessionConsentCollectionPromotions::Auto => "auto",
4808            CreateCheckoutSessionConsentCollectionPromotions::None => "none",
4809        }
4810    }
4811}
4812
4813impl AsRef<str> for CreateCheckoutSessionConsentCollectionPromotions {
4814    fn as_ref(&self) -> &str {
4815        self.as_str()
4816    }
4817}
4818
4819impl std::fmt::Display for CreateCheckoutSessionConsentCollectionPromotions {
4820    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4821        self.as_str().fmt(f)
4822    }
4823}
4824impl std::default::Default for CreateCheckoutSessionConsentCollectionPromotions {
4825    fn default() -> Self {
4826        Self::Auto
4827    }
4828}
4829
4830/// An enum representing the possible values of an `CreateCheckoutSessionConsentCollection`'s `terms_of_service` field.
4831#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4832#[serde(rename_all = "snake_case")]
4833pub enum CreateCheckoutSessionConsentCollectionTermsOfService {
4834    None,
4835    Required,
4836}
4837
4838impl CreateCheckoutSessionConsentCollectionTermsOfService {
4839    pub fn as_str(self) -> &'static str {
4840        match self {
4841            CreateCheckoutSessionConsentCollectionTermsOfService::None => "none",
4842            CreateCheckoutSessionConsentCollectionTermsOfService::Required => "required",
4843        }
4844    }
4845}
4846
4847impl AsRef<str> for CreateCheckoutSessionConsentCollectionTermsOfService {
4848    fn as_ref(&self) -> &str {
4849        self.as_str()
4850    }
4851}
4852
4853impl std::fmt::Display for CreateCheckoutSessionConsentCollectionTermsOfService {
4854    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4855        self.as_str().fmt(f)
4856    }
4857}
4858impl std::default::Default for CreateCheckoutSessionConsentCollectionTermsOfService {
4859    fn default() -> Self {
4860        Self::None
4861    }
4862}
4863
4864/// An enum representing the possible values of an `CreateCheckoutSessionCustomFieldsLabel`'s `type` field.
4865#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4866#[serde(rename_all = "snake_case")]
4867pub enum CreateCheckoutSessionCustomFieldsLabelType {
4868    Custom,
4869}
4870
4871impl CreateCheckoutSessionCustomFieldsLabelType {
4872    pub fn as_str(self) -> &'static str {
4873        match self {
4874            CreateCheckoutSessionCustomFieldsLabelType::Custom => "custom",
4875        }
4876    }
4877}
4878
4879impl AsRef<str> for CreateCheckoutSessionCustomFieldsLabelType {
4880    fn as_ref(&self) -> &str {
4881        self.as_str()
4882    }
4883}
4884
4885impl std::fmt::Display for CreateCheckoutSessionCustomFieldsLabelType {
4886    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4887        self.as_str().fmt(f)
4888    }
4889}
4890impl std::default::Default for CreateCheckoutSessionCustomFieldsLabelType {
4891    fn default() -> Self {
4892        Self::Custom
4893    }
4894}
4895
4896/// An enum representing the possible values of an `CreateCheckoutSessionCustomFields`'s `type` field.
4897#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4898#[serde(rename_all = "snake_case")]
4899pub enum CreateCheckoutSessionCustomFieldsType {
4900    Dropdown,
4901    Numeric,
4902    Text,
4903}
4904
4905impl CreateCheckoutSessionCustomFieldsType {
4906    pub fn as_str(self) -> &'static str {
4907        match self {
4908            CreateCheckoutSessionCustomFieldsType::Dropdown => "dropdown",
4909            CreateCheckoutSessionCustomFieldsType::Numeric => "numeric",
4910            CreateCheckoutSessionCustomFieldsType::Text => "text",
4911        }
4912    }
4913}
4914
4915impl AsRef<str> for CreateCheckoutSessionCustomFieldsType {
4916    fn as_ref(&self) -> &str {
4917        self.as_str()
4918    }
4919}
4920
4921impl std::fmt::Display for CreateCheckoutSessionCustomFieldsType {
4922    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4923        self.as_str().fmt(f)
4924    }
4925}
4926impl std::default::Default for CreateCheckoutSessionCustomFieldsType {
4927    fn default() -> Self {
4928        Self::Dropdown
4929    }
4930}
4931
4932/// An enum representing the possible values of an `CreateCheckoutSessionCustomerUpdate`'s `address` field.
4933#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4934#[serde(rename_all = "snake_case")]
4935pub enum CreateCheckoutSessionCustomerUpdateAddress {
4936    Auto,
4937    Never,
4938}
4939
4940impl CreateCheckoutSessionCustomerUpdateAddress {
4941    pub fn as_str(self) -> &'static str {
4942        match self {
4943            CreateCheckoutSessionCustomerUpdateAddress::Auto => "auto",
4944            CreateCheckoutSessionCustomerUpdateAddress::Never => "never",
4945        }
4946    }
4947}
4948
4949impl AsRef<str> for CreateCheckoutSessionCustomerUpdateAddress {
4950    fn as_ref(&self) -> &str {
4951        self.as_str()
4952    }
4953}
4954
4955impl std::fmt::Display for CreateCheckoutSessionCustomerUpdateAddress {
4956    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4957        self.as_str().fmt(f)
4958    }
4959}
4960impl std::default::Default for CreateCheckoutSessionCustomerUpdateAddress {
4961    fn default() -> Self {
4962        Self::Auto
4963    }
4964}
4965
4966/// An enum representing the possible values of an `CreateCheckoutSessionCustomerUpdate`'s `name` field.
4967#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
4968#[serde(rename_all = "snake_case")]
4969pub enum CreateCheckoutSessionCustomerUpdateName {
4970    Auto,
4971    Never,
4972}
4973
4974impl CreateCheckoutSessionCustomerUpdateName {
4975    pub fn as_str(self) -> &'static str {
4976        match self {
4977            CreateCheckoutSessionCustomerUpdateName::Auto => "auto",
4978            CreateCheckoutSessionCustomerUpdateName::Never => "never",
4979        }
4980    }
4981}
4982
4983impl AsRef<str> for CreateCheckoutSessionCustomerUpdateName {
4984    fn as_ref(&self) -> &str {
4985        self.as_str()
4986    }
4987}
4988
4989impl std::fmt::Display for CreateCheckoutSessionCustomerUpdateName {
4990    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4991        self.as_str().fmt(f)
4992    }
4993}
4994impl std::default::Default for CreateCheckoutSessionCustomerUpdateName {
4995    fn default() -> Self {
4996        Self::Auto
4997    }
4998}
4999
5000/// An enum representing the possible values of an `CreateCheckoutSessionCustomerUpdate`'s `shipping` field.
5001#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5002#[serde(rename_all = "snake_case")]
5003pub enum CreateCheckoutSessionCustomerUpdateShipping {
5004    Auto,
5005    Never,
5006}
5007
5008impl CreateCheckoutSessionCustomerUpdateShipping {
5009    pub fn as_str(self) -> &'static str {
5010        match self {
5011            CreateCheckoutSessionCustomerUpdateShipping::Auto => "auto",
5012            CreateCheckoutSessionCustomerUpdateShipping::Never => "never",
5013        }
5014    }
5015}
5016
5017impl AsRef<str> for CreateCheckoutSessionCustomerUpdateShipping {
5018    fn as_ref(&self) -> &str {
5019        self.as_str()
5020    }
5021}
5022
5023impl std::fmt::Display for CreateCheckoutSessionCustomerUpdateShipping {
5024    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5025        self.as_str().fmt(f)
5026    }
5027}
5028impl std::default::Default for CreateCheckoutSessionCustomerUpdateShipping {
5029    fn default() -> Self {
5030        Self::Auto
5031    }
5032}
5033
5034/// An enum representing the possible values of an `CreateCheckoutSessionInvoiceCreationInvoiceDataIssuer`'s `type` field.
5035#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5036#[serde(rename_all = "snake_case")]
5037pub enum CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType {
5038    Account,
5039    #[serde(rename = "self")]
5040    Self_,
5041}
5042
5043impl CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType {
5044    pub fn as_str(self) -> &'static str {
5045        match self {
5046            CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType::Account => "account",
5047            CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType::Self_ => "self",
5048        }
5049    }
5050}
5051
5052impl AsRef<str> for CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType {
5053    fn as_ref(&self) -> &str {
5054        self.as_str()
5055    }
5056}
5057
5058impl std::fmt::Display for CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType {
5059    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5060        self.as_str().fmt(f)
5061    }
5062}
5063impl std::default::Default for CreateCheckoutSessionInvoiceCreationInvoiceDataIssuerType {
5064    fn default() -> Self {
5065        Self::Account
5066    }
5067}
5068
5069/// An enum representing the possible values of an `CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptions`'s `amount_tax_display` field.
5070#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5071#[serde(rename_all = "snake_case")]
5072pub enum CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay {
5073    ExcludeTax,
5074    IncludeInclusiveTax,
5075}
5076
5077impl CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay {
5078    pub fn as_str(self) -> &'static str {
5079        match self {
5080            CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay::ExcludeTax => "exclude_tax",
5081            CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay::IncludeInclusiveTax => "include_inclusive_tax",
5082        }
5083    }
5084}
5085
5086impl AsRef<str>
5087    for CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay
5088{
5089    fn as_ref(&self) -> &str {
5090        self.as_str()
5091    }
5092}
5093
5094impl std::fmt::Display
5095    for CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay
5096{
5097    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5098        self.as_str().fmt(f)
5099    }
5100}
5101impl std::default::Default
5102    for CreateCheckoutSessionInvoiceCreationInvoiceDataRenderingOptionsAmountTaxDisplay
5103{
5104    fn default() -> Self {
5105        Self::ExcludeTax
5106    }
5107}
5108
5109/// An enum representing the possible values of an `CreateCheckoutSessionLineItemsPriceDataRecurring`'s `interval` field.
5110#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5111#[serde(rename_all = "snake_case")]
5112pub enum CreateCheckoutSessionLineItemsPriceDataRecurringInterval {
5113    Day,
5114    Month,
5115    Week,
5116    Year,
5117}
5118
5119impl CreateCheckoutSessionLineItemsPriceDataRecurringInterval {
5120    pub fn as_str(self) -> &'static str {
5121        match self {
5122            CreateCheckoutSessionLineItemsPriceDataRecurringInterval::Day => "day",
5123            CreateCheckoutSessionLineItemsPriceDataRecurringInterval::Month => "month",
5124            CreateCheckoutSessionLineItemsPriceDataRecurringInterval::Week => "week",
5125            CreateCheckoutSessionLineItemsPriceDataRecurringInterval::Year => "year",
5126        }
5127    }
5128}
5129
5130impl AsRef<str> for CreateCheckoutSessionLineItemsPriceDataRecurringInterval {
5131    fn as_ref(&self) -> &str {
5132        self.as_str()
5133    }
5134}
5135
5136impl std::fmt::Display for CreateCheckoutSessionLineItemsPriceDataRecurringInterval {
5137    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5138        self.as_str().fmt(f)
5139    }
5140}
5141impl std::default::Default for CreateCheckoutSessionLineItemsPriceDataRecurringInterval {
5142    fn default() -> Self {
5143        Self::Day
5144    }
5145}
5146
5147/// An enum representing the possible values of an `CreateCheckoutSessionLineItemsPriceData`'s `tax_behavior` field.
5148#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5149#[serde(rename_all = "snake_case")]
5150pub enum CreateCheckoutSessionLineItemsPriceDataTaxBehavior {
5151    Exclusive,
5152    Inclusive,
5153    Unspecified,
5154}
5155
5156impl CreateCheckoutSessionLineItemsPriceDataTaxBehavior {
5157    pub fn as_str(self) -> &'static str {
5158        match self {
5159            CreateCheckoutSessionLineItemsPriceDataTaxBehavior::Exclusive => "exclusive",
5160            CreateCheckoutSessionLineItemsPriceDataTaxBehavior::Inclusive => "inclusive",
5161            CreateCheckoutSessionLineItemsPriceDataTaxBehavior::Unspecified => "unspecified",
5162        }
5163    }
5164}
5165
5166impl AsRef<str> for CreateCheckoutSessionLineItemsPriceDataTaxBehavior {
5167    fn as_ref(&self) -> &str {
5168        self.as_str()
5169    }
5170}
5171
5172impl std::fmt::Display for CreateCheckoutSessionLineItemsPriceDataTaxBehavior {
5173    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5174        self.as_str().fmt(f)
5175    }
5176}
5177impl std::default::Default for CreateCheckoutSessionLineItemsPriceDataTaxBehavior {
5178    fn default() -> Self {
5179        Self::Exclusive
5180    }
5181}
5182
5183/// An enum representing the possible values of an `CreateCheckoutSessionPaymentIntentData`'s `capture_method` field.
5184#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5185#[serde(rename_all = "snake_case")]
5186pub enum CreateCheckoutSessionPaymentIntentDataCaptureMethod {
5187    Automatic,
5188    AutomaticAsync,
5189    Manual,
5190}
5191
5192impl CreateCheckoutSessionPaymentIntentDataCaptureMethod {
5193    pub fn as_str(self) -> &'static str {
5194        match self {
5195            CreateCheckoutSessionPaymentIntentDataCaptureMethod::Automatic => "automatic",
5196            CreateCheckoutSessionPaymentIntentDataCaptureMethod::AutomaticAsync => {
5197                "automatic_async"
5198            }
5199            CreateCheckoutSessionPaymentIntentDataCaptureMethod::Manual => "manual",
5200        }
5201    }
5202}
5203
5204impl AsRef<str> for CreateCheckoutSessionPaymentIntentDataCaptureMethod {
5205    fn as_ref(&self) -> &str {
5206        self.as_str()
5207    }
5208}
5209
5210impl std::fmt::Display for CreateCheckoutSessionPaymentIntentDataCaptureMethod {
5211    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5212        self.as_str().fmt(f)
5213    }
5214}
5215impl std::default::Default for CreateCheckoutSessionPaymentIntentDataCaptureMethod {
5216    fn default() -> Self {
5217        Self::Automatic
5218    }
5219}
5220
5221/// An enum representing the possible values of an `CreateCheckoutSessionPaymentIntentData`'s `setup_future_usage` field.
5222#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5223#[serde(rename_all = "snake_case")]
5224pub enum CreateCheckoutSessionPaymentIntentDataSetupFutureUsage {
5225    OffSession,
5226    OnSession,
5227}
5228
5229impl CreateCheckoutSessionPaymentIntentDataSetupFutureUsage {
5230    pub fn as_str(self) -> &'static str {
5231        match self {
5232            CreateCheckoutSessionPaymentIntentDataSetupFutureUsage::OffSession => "off_session",
5233            CreateCheckoutSessionPaymentIntentDataSetupFutureUsage::OnSession => "on_session",
5234        }
5235    }
5236}
5237
5238impl AsRef<str> for CreateCheckoutSessionPaymentIntentDataSetupFutureUsage {
5239    fn as_ref(&self) -> &str {
5240        self.as_str()
5241    }
5242}
5243
5244impl std::fmt::Display for CreateCheckoutSessionPaymentIntentDataSetupFutureUsage {
5245    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5246        self.as_str().fmt(f)
5247    }
5248}
5249impl std::default::Default for CreateCheckoutSessionPaymentIntentDataSetupFutureUsage {
5250    fn default() -> Self {
5251        Self::OffSession
5252    }
5253}
5254
5255/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptions`'s `default_for` field.
5256#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5257#[serde(rename_all = "snake_case")]
5258pub enum CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor {
5259    Invoice,
5260    Subscription,
5261}
5262
5263impl CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor {
5264    pub fn as_str(self) -> &'static str {
5265        match self {
5266            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor::Invoice => "invoice",
5267            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor::Subscription => "subscription",
5268        }
5269    }
5270}
5271
5272impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor {
5273    fn as_ref(&self) -> &str {
5274        self.as_str()
5275    }
5276}
5277
5278impl std::fmt::Display
5279    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor
5280{
5281    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5282        self.as_str().fmt(f)
5283    }
5284}
5285impl std::default::Default
5286    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsDefaultFor
5287{
5288    fn default() -> Self {
5289        Self::Invoice
5290    }
5291}
5292
5293/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptions`'s `payment_schedule` field.
5294#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5295#[serde(rename_all = "snake_case")]
5296pub enum CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
5297    Combined,
5298    Interval,
5299    Sporadic,
5300}
5301
5302impl CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
5303    pub fn as_str(self) -> &'static str {
5304        match self {
5305            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Combined => "combined",
5306            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Interval => "interval",
5307            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Sporadic => "sporadic",
5308        }
5309    }
5310}
5311
5312impl AsRef<str>
5313    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
5314{
5315    fn as_ref(&self) -> &str {
5316        self.as_str()
5317    }
5318}
5319
5320impl std::fmt::Display
5321    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
5322{
5323    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5324        self.as_str().fmt(f)
5325    }
5326}
5327impl std::default::Default
5328    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
5329{
5330    fn default() -> Self {
5331        Self::Combined
5332    }
5333}
5334
5335/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptions`'s `transaction_type` field.
5336#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5337#[serde(rename_all = "snake_case")]
5338pub enum CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
5339    Business,
5340    Personal,
5341}
5342
5343impl CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
5344    pub fn as_str(self) -> &'static str {
5345        match self {
5346            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Business => "business",
5347            CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Personal => "personal",
5348        }
5349    }
5350}
5351
5352impl AsRef<str>
5353    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
5354{
5355    fn as_ref(&self) -> &str {
5356        self.as_str()
5357    }
5358}
5359
5360impl std::fmt::Display
5361    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
5362{
5363    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5364        self.as_str().fmt(f)
5365    }
5366}
5367impl std::default::Default
5368    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
5369{
5370    fn default() -> Self {
5371        Self::Business
5372    }
5373}
5374
5375/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAcssDebit`'s `setup_future_usage` field.
5376#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5377#[serde(rename_all = "snake_case")]
5378pub enum CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage {
5379    None,
5380    OffSession,
5381    OnSession,
5382}
5383
5384impl CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage {
5385    pub fn as_str(self) -> &'static str {
5386        match self {
5387            CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage::None => "none",
5388            CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage::OffSession => {
5389                "off_session"
5390            }
5391            CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage::OnSession => {
5392                "on_session"
5393            }
5394        }
5395    }
5396}
5397
5398impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage {
5399    fn as_ref(&self) -> &str {
5400        self.as_str()
5401    }
5402}
5403
5404impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage {
5405    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5406        self.as_str().fmt(f)
5407    }
5408}
5409impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsAcssDebitSetupFutureUsage {
5410    fn default() -> Self {
5411        Self::None
5412    }
5413}
5414
5415/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAcssDebit`'s `verification_method` field.
5416#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5417#[serde(rename_all = "snake_case")]
5418pub enum CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod {
5419    Automatic,
5420    Instant,
5421    Microdeposits,
5422}
5423
5424impl CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod {
5425    pub fn as_str(self) -> &'static str {
5426        match self {
5427            CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod::Automatic => {
5428                "automatic"
5429            }
5430            CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod::Instant => {
5431                "instant"
5432            }
5433            CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod::Microdeposits => {
5434                "microdeposits"
5435            }
5436        }
5437    }
5438}
5439
5440impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod {
5441    fn as_ref(&self) -> &str {
5442        self.as_str()
5443    }
5444}
5445
5446impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod {
5447    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5448        self.as_str().fmt(f)
5449    }
5450}
5451impl std::default::Default
5452    for CreateCheckoutSessionPaymentMethodOptionsAcssDebitVerificationMethod
5453{
5454    fn default() -> Self {
5455        Self::Automatic
5456    }
5457}
5458
5459/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAffirm`'s `setup_future_usage` field.
5460#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5461#[serde(rename_all = "snake_case")]
5462pub enum CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage {
5463    None,
5464}
5465
5466impl CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage {
5467    pub fn as_str(self) -> &'static str {
5468        match self {
5469            CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage::None => "none",
5470        }
5471    }
5472}
5473
5474impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage {
5475    fn as_ref(&self) -> &str {
5476        self.as_str()
5477    }
5478}
5479
5480impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage {
5481    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5482        self.as_str().fmt(f)
5483    }
5484}
5485impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsAffirmSetupFutureUsage {
5486    fn default() -> Self {
5487        Self::None
5488    }
5489}
5490
5491/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpay`'s `setup_future_usage` field.
5492#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5493#[serde(rename_all = "snake_case")]
5494pub enum CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
5495    None,
5496}
5497
5498impl CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
5499    pub fn as_str(self) -> &'static str {
5500        match self {
5501            CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage::None => {
5502                "none"
5503            }
5504        }
5505    }
5506}
5507
5508impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
5509    fn as_ref(&self) -> &str {
5510        self.as_str()
5511    }
5512}
5513
5514impl std::fmt::Display
5515    for CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage
5516{
5517    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5518        self.as_str().fmt(f)
5519    }
5520}
5521impl std::default::Default
5522    for CreateCheckoutSessionPaymentMethodOptionsAfterpayClearpaySetupFutureUsage
5523{
5524    fn default() -> Self {
5525        Self::None
5526    }
5527}
5528
5529/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAlipay`'s `setup_future_usage` field.
5530#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5531#[serde(rename_all = "snake_case")]
5532pub enum CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage {
5533    None,
5534}
5535
5536impl CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage {
5537    pub fn as_str(self) -> &'static str {
5538        match self {
5539            CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage::None => "none",
5540        }
5541    }
5542}
5543
5544impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage {
5545    fn as_ref(&self) -> &str {
5546        self.as_str()
5547    }
5548}
5549
5550impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage {
5551    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5552        self.as_str().fmt(f)
5553    }
5554}
5555impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsAlipaySetupFutureUsage {
5556    fn default() -> Self {
5557        Self::None
5558    }
5559}
5560
5561/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsAuBecsDebit`'s `setup_future_usage` field.
5562#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5563#[serde(rename_all = "snake_case")]
5564pub enum CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
5565    None,
5566}
5567
5568impl CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
5569    pub fn as_str(self) -> &'static str {
5570        match self {
5571            CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage::None => "none",
5572        }
5573    }
5574}
5575
5576impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
5577    fn as_ref(&self) -> &str {
5578        self.as_str()
5579    }
5580}
5581
5582impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
5583    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5584        self.as_str().fmt(f)
5585    }
5586}
5587impl std::default::Default
5588    for CreateCheckoutSessionPaymentMethodOptionsAuBecsDebitSetupFutureUsage
5589{
5590    fn default() -> Self {
5591        Self::None
5592    }
5593}
5594
5595/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsBacsDebit`'s `setup_future_usage` field.
5596#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5597#[serde(rename_all = "snake_case")]
5598pub enum CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage {
5599    None,
5600    OffSession,
5601    OnSession,
5602}
5603
5604impl CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage {
5605    pub fn as_str(self) -> &'static str {
5606        match self {
5607            CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage::None => "none",
5608            CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage::OffSession => {
5609                "off_session"
5610            }
5611            CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage::OnSession => {
5612                "on_session"
5613            }
5614        }
5615    }
5616}
5617
5618impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage {
5619    fn as_ref(&self) -> &str {
5620        self.as_str()
5621    }
5622}
5623
5624impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage {
5625    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5626        self.as_str().fmt(f)
5627    }
5628}
5629impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsBacsDebitSetupFutureUsage {
5630    fn default() -> Self {
5631        Self::None
5632    }
5633}
5634
5635/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsBancontact`'s `setup_future_usage` field.
5636#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5637#[serde(rename_all = "snake_case")]
5638pub enum CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage {
5639    None,
5640}
5641
5642impl CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage {
5643    pub fn as_str(self) -> &'static str {
5644        match self {
5645            CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage::None => "none",
5646        }
5647    }
5648}
5649
5650impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage {
5651    fn as_ref(&self) -> &str {
5652        self.as_str()
5653    }
5654}
5655
5656impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage {
5657    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5658        self.as_str().fmt(f)
5659    }
5660}
5661impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsBancontactSetupFutureUsage {
5662    fn default() -> Self {
5663        Self::None
5664    }
5665}
5666
5667/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsBoleto`'s `setup_future_usage` field.
5668#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5669#[serde(rename_all = "snake_case")]
5670pub enum CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage {
5671    None,
5672    OffSession,
5673    OnSession,
5674}
5675
5676impl CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage {
5677    pub fn as_str(self) -> &'static str {
5678        match self {
5679            CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage::None => "none",
5680            CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage::OffSession => {
5681                "off_session"
5682            }
5683            CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage::OnSession => {
5684                "on_session"
5685            }
5686        }
5687    }
5688}
5689
5690impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage {
5691    fn as_ref(&self) -> &str {
5692        self.as_str()
5693    }
5694}
5695
5696impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage {
5697    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5698        self.as_str().fmt(f)
5699    }
5700}
5701impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsBoletoSetupFutureUsage {
5702    fn default() -> Self {
5703        Self::None
5704    }
5705}
5706
5707/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCard`'s `setup_future_usage` field.
5708#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5709#[serde(rename_all = "snake_case")]
5710pub enum CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage {
5711    OffSession,
5712    OnSession,
5713}
5714
5715impl CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage {
5716    pub fn as_str(self) -> &'static str {
5717        match self {
5718            CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage::OffSession => {
5719                "off_session"
5720            }
5721            CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage::OnSession => {
5722                "on_session"
5723            }
5724        }
5725    }
5726}
5727
5728impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage {
5729    fn as_ref(&self) -> &str {
5730        self.as_str()
5731    }
5732}
5733
5734impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage {
5735    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5736        self.as_str().fmt(f)
5737    }
5738}
5739impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsCardSetupFutureUsage {
5740    fn default() -> Self {
5741        Self::OffSession
5742    }
5743}
5744
5745/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCashapp`'s `setup_future_usage` field.
5746#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5747#[serde(rename_all = "snake_case")]
5748pub enum CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage {
5749    None,
5750    OffSession,
5751    OnSession,
5752}
5753
5754impl CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage {
5755    pub fn as_str(self) -> &'static str {
5756        match self {
5757            CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage::None => "none",
5758            CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage::OffSession => {
5759                "off_session"
5760            }
5761            CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage::OnSession => {
5762                "on_session"
5763            }
5764        }
5765    }
5766}
5767
5768impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage {
5769    fn as_ref(&self) -> &str {
5770        self.as_str()
5771    }
5772}
5773
5774impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage {
5775    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5776        self.as_str().fmt(f)
5777    }
5778}
5779impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsCashappSetupFutureUsage {
5780    fn default() -> Self {
5781        Self::None
5782    }
5783}
5784
5785/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransfer`'s `requested_address_types` field.
5786#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5787#[serde(rename_all = "snake_case")]
5788pub enum CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
5789    Aba,
5790    Iban,
5791    Sepa,
5792    SortCode,
5793    Spei,
5794    Swift,
5795    Zengin,
5796}
5797
5798impl CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
5799    pub fn as_str(self) -> &'static str {
5800        match self {
5801            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Aba => "aba",
5802            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Iban => "iban",
5803            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Sepa => "sepa",
5804            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::SortCode => "sort_code",
5805            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Spei => "spei",
5806            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Swift => "swift",
5807            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Zengin => "zengin",
5808        }
5809    }
5810}
5811
5812impl AsRef<str>
5813    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
5814{
5815    fn as_ref(&self) -> &str {
5816        self.as_str()
5817    }
5818}
5819
5820impl std::fmt::Display
5821    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
5822{
5823    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5824        self.as_str().fmt(f)
5825    }
5826}
5827impl std::default::Default
5828    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
5829{
5830    fn default() -> Self {
5831        Self::Aba
5832    }
5833}
5834
5835/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransfer`'s `type` field.
5836#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5837#[serde(rename_all = "snake_case")]
5838pub enum CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType {
5839    EuBankTransfer,
5840    GbBankTransfer,
5841    JpBankTransfer,
5842    MxBankTransfer,
5843    UsBankTransfer,
5844}
5845
5846impl CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType {
5847    pub fn as_str(self) -> &'static str {
5848        match self {
5849            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType::EuBankTransfer => "eu_bank_transfer",
5850            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType::GbBankTransfer => "gb_bank_transfer",
5851            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType::JpBankTransfer => "jp_bank_transfer",
5852            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType::MxBankTransfer => "mx_bank_transfer",
5853            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType::UsBankTransfer => "us_bank_transfer",
5854        }
5855    }
5856}
5857
5858impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType {
5859    fn as_ref(&self) -> &str {
5860        self.as_str()
5861    }
5862}
5863
5864impl std::fmt::Display
5865    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType
5866{
5867    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5868        self.as_str().fmt(f)
5869    }
5870}
5871impl std::default::Default
5872    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceBankTransferType
5873{
5874    fn default() -> Self {
5875        Self::EuBankTransfer
5876    }
5877}
5878
5879/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCustomerBalance`'s `funding_type` field.
5880#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5881#[serde(rename_all = "snake_case")]
5882pub enum CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType {
5883    BankTransfer,
5884}
5885
5886impl CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType {
5887    pub fn as_str(self) -> &'static str {
5888        match self {
5889            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType::BankTransfer => {
5890                "bank_transfer"
5891            }
5892        }
5893    }
5894}
5895
5896impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType {
5897    fn as_ref(&self) -> &str {
5898        self.as_str()
5899    }
5900}
5901
5902impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType {
5903    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5904        self.as_str().fmt(f)
5905    }
5906}
5907impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceFundingType {
5908    fn default() -> Self {
5909        Self::BankTransfer
5910    }
5911}
5912
5913/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsCustomerBalance`'s `setup_future_usage` field.
5914#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5915#[serde(rename_all = "snake_case")]
5916pub enum CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
5917    None,
5918}
5919
5920impl CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
5921    pub fn as_str(self) -> &'static str {
5922        match self {
5923            CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage::None => {
5924                "none"
5925            }
5926        }
5927    }
5928}
5929
5930impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
5931    fn as_ref(&self) -> &str {
5932        self.as_str()
5933    }
5934}
5935
5936impl std::fmt::Display
5937    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage
5938{
5939    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5940        self.as_str().fmt(f)
5941    }
5942}
5943impl std::default::Default
5944    for CreateCheckoutSessionPaymentMethodOptionsCustomerBalanceSetupFutureUsage
5945{
5946    fn default() -> Self {
5947        Self::None
5948    }
5949}
5950
5951/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsEps`'s `setup_future_usage` field.
5952#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5953#[serde(rename_all = "snake_case")]
5954pub enum CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage {
5955    None,
5956}
5957
5958impl CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage {
5959    pub fn as_str(self) -> &'static str {
5960        match self {
5961            CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage::None => "none",
5962        }
5963    }
5964}
5965
5966impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage {
5967    fn as_ref(&self) -> &str {
5968        self.as_str()
5969    }
5970}
5971
5972impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage {
5973    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5974        self.as_str().fmt(f)
5975    }
5976}
5977impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsEpsSetupFutureUsage {
5978    fn default() -> Self {
5979        Self::None
5980    }
5981}
5982
5983/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsFpx`'s `setup_future_usage` field.
5984#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5985#[serde(rename_all = "snake_case")]
5986pub enum CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage {
5987    None,
5988}
5989
5990impl CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage {
5991    pub fn as_str(self) -> &'static str {
5992        match self {
5993            CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage::None => "none",
5994        }
5995    }
5996}
5997
5998impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage {
5999    fn as_ref(&self) -> &str {
6000        self.as_str()
6001    }
6002}
6003
6004impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage {
6005    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6006        self.as_str().fmt(f)
6007    }
6008}
6009impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsFpxSetupFutureUsage {
6010    fn default() -> Self {
6011        Self::None
6012    }
6013}
6014
6015/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsGiropay`'s `setup_future_usage` field.
6016#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6017#[serde(rename_all = "snake_case")]
6018pub enum CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage {
6019    None,
6020}
6021
6022impl CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage {
6023    pub fn as_str(self) -> &'static str {
6024        match self {
6025            CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage::None => "none",
6026        }
6027    }
6028}
6029
6030impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage {
6031    fn as_ref(&self) -> &str {
6032        self.as_str()
6033    }
6034}
6035
6036impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage {
6037    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6038        self.as_str().fmt(f)
6039    }
6040}
6041impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsGiropaySetupFutureUsage {
6042    fn default() -> Self {
6043        Self::None
6044    }
6045}
6046
6047/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsGrabpay`'s `setup_future_usage` field.
6048#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6049#[serde(rename_all = "snake_case")]
6050pub enum CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage {
6051    None,
6052}
6053
6054impl CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage {
6055    pub fn as_str(self) -> &'static str {
6056        match self {
6057            CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage::None => "none",
6058        }
6059    }
6060}
6061
6062impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage {
6063    fn as_ref(&self) -> &str {
6064        self.as_str()
6065    }
6066}
6067
6068impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage {
6069    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6070        self.as_str().fmt(f)
6071    }
6072}
6073impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsGrabpaySetupFutureUsage {
6074    fn default() -> Self {
6075        Self::None
6076    }
6077}
6078
6079/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsIdeal`'s `setup_future_usage` field.
6080#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6081#[serde(rename_all = "snake_case")]
6082pub enum CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage {
6083    None,
6084}
6085
6086impl CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage {
6087    pub fn as_str(self) -> &'static str {
6088        match self {
6089            CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage::None => "none",
6090        }
6091    }
6092}
6093
6094impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage {
6095    fn as_ref(&self) -> &str {
6096        self.as_str()
6097    }
6098}
6099
6100impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage {
6101    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6102        self.as_str().fmt(f)
6103    }
6104}
6105impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsIdealSetupFutureUsage {
6106    fn default() -> Self {
6107        Self::None
6108    }
6109}
6110
6111/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsKlarna`'s `setup_future_usage` field.
6112#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6113#[serde(rename_all = "snake_case")]
6114pub enum CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage {
6115    None,
6116}
6117
6118impl CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage {
6119    pub fn as_str(self) -> &'static str {
6120        match self {
6121            CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage::None => "none",
6122        }
6123    }
6124}
6125
6126impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage {
6127    fn as_ref(&self) -> &str {
6128        self.as_str()
6129    }
6130}
6131
6132impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage {
6133    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6134        self.as_str().fmt(f)
6135    }
6136}
6137impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsKlarnaSetupFutureUsage {
6138    fn default() -> Self {
6139        Self::None
6140    }
6141}
6142
6143/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsKonbini`'s `setup_future_usage` field.
6144#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6145#[serde(rename_all = "snake_case")]
6146pub enum CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage {
6147    None,
6148}
6149
6150impl CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage {
6151    pub fn as_str(self) -> &'static str {
6152        match self {
6153            CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage::None => "none",
6154        }
6155    }
6156}
6157
6158impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage {
6159    fn as_ref(&self) -> &str {
6160        self.as_str()
6161    }
6162}
6163
6164impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage {
6165    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6166        self.as_str().fmt(f)
6167    }
6168}
6169impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsKonbiniSetupFutureUsage {
6170    fn default() -> Self {
6171        Self::None
6172    }
6173}
6174
6175/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsLink`'s `setup_future_usage` field.
6176#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6177#[serde(rename_all = "snake_case")]
6178pub enum CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage {
6179    None,
6180    OffSession,
6181}
6182
6183impl CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage {
6184    pub fn as_str(self) -> &'static str {
6185        match self {
6186            CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage::None => "none",
6187            CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage::OffSession => {
6188                "off_session"
6189            }
6190        }
6191    }
6192}
6193
6194impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage {
6195    fn as_ref(&self) -> &str {
6196        self.as_str()
6197    }
6198}
6199
6200impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage {
6201    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6202        self.as_str().fmt(f)
6203    }
6204}
6205impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsLinkSetupFutureUsage {
6206    fn default() -> Self {
6207        Self::None
6208    }
6209}
6210
6211/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsOxxo`'s `setup_future_usage` field.
6212#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6213#[serde(rename_all = "snake_case")]
6214pub enum CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage {
6215    None,
6216}
6217
6218impl CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage {
6219    pub fn as_str(self) -> &'static str {
6220        match self {
6221            CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage::None => "none",
6222        }
6223    }
6224}
6225
6226impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage {
6227    fn as_ref(&self) -> &str {
6228        self.as_str()
6229    }
6230}
6231
6232impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage {
6233    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6234        self.as_str().fmt(f)
6235    }
6236}
6237impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsOxxoSetupFutureUsage {
6238    fn default() -> Self {
6239        Self::None
6240    }
6241}
6242
6243/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsP24`'s `setup_future_usage` field.
6244#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6245#[serde(rename_all = "snake_case")]
6246pub enum CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage {
6247    None,
6248}
6249
6250impl CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage {
6251    pub fn as_str(self) -> &'static str {
6252        match self {
6253            CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage::None => "none",
6254        }
6255    }
6256}
6257
6258impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage {
6259    fn as_ref(&self) -> &str {
6260        self.as_str()
6261    }
6262}
6263
6264impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage {
6265    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6266        self.as_str().fmt(f)
6267    }
6268}
6269impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsP24SetupFutureUsage {
6270    fn default() -> Self {
6271        Self::None
6272    }
6273}
6274
6275/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsPaynow`'s `setup_future_usage` field.
6276#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6277#[serde(rename_all = "snake_case")]
6278pub enum CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage {
6279    None,
6280}
6281
6282impl CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage {
6283    pub fn as_str(self) -> &'static str {
6284        match self {
6285            CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage::None => "none",
6286        }
6287    }
6288}
6289
6290impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage {
6291    fn as_ref(&self) -> &str {
6292        self.as_str()
6293    }
6294}
6295
6296impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage {
6297    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6298        self.as_str().fmt(f)
6299    }
6300}
6301impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsPaynowSetupFutureUsage {
6302    fn default() -> Self {
6303        Self::None
6304    }
6305}
6306
6307/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsPaypal`'s `capture_method` field.
6308#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6309#[serde(rename_all = "snake_case")]
6310pub enum CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod {
6311    Manual,
6312}
6313
6314impl CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod {
6315    pub fn as_str(self) -> &'static str {
6316        match self {
6317            CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod::Manual => "manual",
6318        }
6319    }
6320}
6321
6322impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod {
6323    fn as_ref(&self) -> &str {
6324        self.as_str()
6325    }
6326}
6327
6328impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod {
6329    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6330        self.as_str().fmt(f)
6331    }
6332}
6333impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsPaypalCaptureMethod {
6334    fn default() -> Self {
6335        Self::Manual
6336    }
6337}
6338
6339/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsPaypal`'s `preferred_locale` field.
6340#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6341#[serde(rename_all = "snake_case")]
6342pub enum CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale {
6343    #[serde(rename = "cs-CZ")]
6344    CsCz,
6345    #[serde(rename = "da-DK")]
6346    DaDk,
6347    #[serde(rename = "de-AT")]
6348    DeAt,
6349    #[serde(rename = "de-DE")]
6350    DeDe,
6351    #[serde(rename = "de-LU")]
6352    DeLu,
6353    #[serde(rename = "el-GR")]
6354    ElGr,
6355    #[serde(rename = "en-GB")]
6356    EnGb,
6357    #[serde(rename = "en-US")]
6358    EnUs,
6359    #[serde(rename = "es-ES")]
6360    EsEs,
6361    #[serde(rename = "fi-FI")]
6362    FiFi,
6363    #[serde(rename = "fr-BE")]
6364    FrBe,
6365    #[serde(rename = "fr-FR")]
6366    FrFr,
6367    #[serde(rename = "fr-LU")]
6368    FrLu,
6369    #[serde(rename = "hu-HU")]
6370    HuHu,
6371    #[serde(rename = "it-IT")]
6372    ItIt,
6373    #[serde(rename = "nl-BE")]
6374    NlBe,
6375    #[serde(rename = "nl-NL")]
6376    NlNl,
6377    #[serde(rename = "pl-PL")]
6378    PlPl,
6379    #[serde(rename = "pt-PT")]
6380    PtPt,
6381    #[serde(rename = "sk-SK")]
6382    SkSk,
6383    #[serde(rename = "sv-SE")]
6384    SvSe,
6385}
6386
6387impl CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale {
6388    pub fn as_str(self) -> &'static str {
6389        match self {
6390            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::CsCz => "cs-CZ",
6391            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::DaDk => "da-DK",
6392            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::DeAt => "de-AT",
6393            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::DeDe => "de-DE",
6394            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::DeLu => "de-LU",
6395            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::ElGr => "el-GR",
6396            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::EnGb => "en-GB",
6397            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::EnUs => "en-US",
6398            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::EsEs => "es-ES",
6399            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::FiFi => "fi-FI",
6400            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::FrBe => "fr-BE",
6401            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::FrFr => "fr-FR",
6402            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::FrLu => "fr-LU",
6403            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::HuHu => "hu-HU",
6404            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::ItIt => "it-IT",
6405            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::NlBe => "nl-BE",
6406            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::NlNl => "nl-NL",
6407            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::PlPl => "pl-PL",
6408            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::PtPt => "pt-PT",
6409            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::SkSk => "sk-SK",
6410            CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale::SvSe => "sv-SE",
6411        }
6412    }
6413}
6414
6415impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale {
6416    fn as_ref(&self) -> &str {
6417        self.as_str()
6418    }
6419}
6420
6421impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale {
6422    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6423        self.as_str().fmt(f)
6424    }
6425}
6426impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsPaypalPreferredLocale {
6427    fn default() -> Self {
6428        Self::CsCz
6429    }
6430}
6431
6432/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsPaypal`'s `setup_future_usage` field.
6433#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6434#[serde(rename_all = "snake_case")]
6435pub enum CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage {
6436    None,
6437    OffSession,
6438}
6439
6440impl CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage {
6441    pub fn as_str(self) -> &'static str {
6442        match self {
6443            CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage::None => "none",
6444            CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage::OffSession => {
6445                "off_session"
6446            }
6447        }
6448    }
6449}
6450
6451impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage {
6452    fn as_ref(&self) -> &str {
6453        self.as_str()
6454    }
6455}
6456
6457impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage {
6458    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6459        self.as_str().fmt(f)
6460    }
6461}
6462impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsPaypalSetupFutureUsage {
6463    fn default() -> Self {
6464        Self::None
6465    }
6466}
6467
6468/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsRevolutPay`'s `setup_future_usage` field.
6469#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6470#[serde(rename_all = "snake_case")]
6471pub enum CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage {
6472    None,
6473    OffSession,
6474}
6475
6476impl CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage {
6477    pub fn as_str(self) -> &'static str {
6478        match self {
6479            CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage::None => "none",
6480            CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage::OffSession => {
6481                "off_session"
6482            }
6483        }
6484    }
6485}
6486
6487impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage {
6488    fn as_ref(&self) -> &str {
6489        self.as_str()
6490    }
6491}
6492
6493impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage {
6494    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6495        self.as_str().fmt(f)
6496    }
6497}
6498impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsRevolutPaySetupFutureUsage {
6499    fn default() -> Self {
6500        Self::None
6501    }
6502}
6503
6504/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsSepaDebit`'s `setup_future_usage` field.
6505#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6506#[serde(rename_all = "snake_case")]
6507pub enum CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage {
6508    None,
6509    OffSession,
6510    OnSession,
6511}
6512
6513impl CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage {
6514    pub fn as_str(self) -> &'static str {
6515        match self {
6516            CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage::None => "none",
6517            CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage::OffSession => {
6518                "off_session"
6519            }
6520            CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage::OnSession => {
6521                "on_session"
6522            }
6523        }
6524    }
6525}
6526
6527impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage {
6528    fn as_ref(&self) -> &str {
6529        self.as_str()
6530    }
6531}
6532
6533impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage {
6534    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6535        self.as_str().fmt(f)
6536    }
6537}
6538impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsSepaDebitSetupFutureUsage {
6539    fn default() -> Self {
6540        Self::None
6541    }
6542}
6543
6544/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsSofort`'s `setup_future_usage` field.
6545#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6546#[serde(rename_all = "snake_case")]
6547pub enum CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage {
6548    None,
6549}
6550
6551impl CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage {
6552    pub fn as_str(self) -> &'static str {
6553        match self {
6554            CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage::None => "none",
6555        }
6556    }
6557}
6558
6559impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage {
6560    fn as_ref(&self) -> &str {
6561        self.as_str()
6562    }
6563}
6564
6565impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage {
6566    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6567        self.as_str().fmt(f)
6568    }
6569}
6570impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsSofortSetupFutureUsage {
6571    fn default() -> Self {
6572        Self::None
6573    }
6574}
6575
6576/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnections`'s `permissions` field.
6577#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6578#[serde(rename_all = "snake_case")]
6579pub enum CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
6580    Balances,
6581    Ownership,
6582    PaymentMethod,
6583    Transactions,
6584}
6585
6586impl CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
6587    pub fn as_str(self) -> &'static str {
6588        match self {
6589            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Balances => "balances",
6590            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Ownership => "ownership",
6591            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::PaymentMethod => "payment_method",
6592            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Transactions => "transactions",
6593        }
6594    }
6595}
6596
6597impl AsRef<str>
6598    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
6599{
6600    fn as_ref(&self) -> &str {
6601        self.as_str()
6602    }
6603}
6604
6605impl std::fmt::Display
6606    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
6607{
6608    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6609        self.as_str().fmt(f)
6610    }
6611}
6612impl std::default::Default
6613    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
6614{
6615    fn default() -> Self {
6616        Self::Balances
6617    }
6618}
6619
6620/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnections`'s `prefetch` field.
6621#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6622#[serde(rename_all = "snake_case")]
6623pub enum CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
6624    Balances,
6625    Transactions,
6626}
6627
6628impl CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
6629    pub fn as_str(self) -> &'static str {
6630        match self {
6631            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Balances => "balances",
6632            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Transactions => "transactions",
6633        }
6634    }
6635}
6636
6637impl AsRef<str>
6638    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
6639{
6640    fn as_ref(&self) -> &str {
6641        self.as_str()
6642    }
6643}
6644
6645impl std::fmt::Display
6646    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
6647{
6648    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6649        self.as_str().fmt(f)
6650    }
6651}
6652impl std::default::Default
6653    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
6654{
6655    fn default() -> Self {
6656        Self::Balances
6657    }
6658}
6659
6660/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsUsBankAccount`'s `setup_future_usage` field.
6661#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6662#[serde(rename_all = "snake_case")]
6663pub enum CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage {
6664    None,
6665    OffSession,
6666    OnSession,
6667}
6668
6669impl CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage {
6670    pub fn as_str(self) -> &'static str {
6671        match self {
6672            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage::None => "none",
6673            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage::OffSession => {
6674                "off_session"
6675            }
6676            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage::OnSession => {
6677                "on_session"
6678            }
6679        }
6680    }
6681}
6682
6683impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage {
6684    fn as_ref(&self) -> &str {
6685        self.as_str()
6686    }
6687}
6688
6689impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage {
6690    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6691        self.as_str().fmt(f)
6692    }
6693}
6694impl std::default::Default
6695    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountSetupFutureUsage
6696{
6697    fn default() -> Self {
6698        Self::None
6699    }
6700}
6701
6702/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsUsBankAccount`'s `verification_method` field.
6703#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6704#[serde(rename_all = "snake_case")]
6705pub enum CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod {
6706    Automatic,
6707    Instant,
6708}
6709
6710impl CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod {
6711    pub fn as_str(self) -> &'static str {
6712        match self {
6713            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod::Automatic => {
6714                "automatic"
6715            }
6716            CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod::Instant => {
6717                "instant"
6718            }
6719        }
6720    }
6721}
6722
6723impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod {
6724    fn as_ref(&self) -> &str {
6725        self.as_str()
6726    }
6727}
6728
6729impl std::fmt::Display
6730    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod
6731{
6732    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6733        self.as_str().fmt(f)
6734    }
6735}
6736impl std::default::Default
6737    for CreateCheckoutSessionPaymentMethodOptionsUsBankAccountVerificationMethod
6738{
6739    fn default() -> Self {
6740        Self::Automatic
6741    }
6742}
6743
6744/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsWechatPay`'s `client` field.
6745#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6746#[serde(rename_all = "snake_case")]
6747pub enum CreateCheckoutSessionPaymentMethodOptionsWechatPayClient {
6748    Android,
6749    Ios,
6750    Web,
6751}
6752
6753impl CreateCheckoutSessionPaymentMethodOptionsWechatPayClient {
6754    pub fn as_str(self) -> &'static str {
6755        match self {
6756            CreateCheckoutSessionPaymentMethodOptionsWechatPayClient::Android => "android",
6757            CreateCheckoutSessionPaymentMethodOptionsWechatPayClient::Ios => "ios",
6758            CreateCheckoutSessionPaymentMethodOptionsWechatPayClient::Web => "web",
6759        }
6760    }
6761}
6762
6763impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsWechatPayClient {
6764    fn as_ref(&self) -> &str {
6765        self.as_str()
6766    }
6767}
6768
6769impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsWechatPayClient {
6770    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6771        self.as_str().fmt(f)
6772    }
6773}
6774impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsWechatPayClient {
6775    fn default() -> Self {
6776        Self::Android
6777    }
6778}
6779
6780/// An enum representing the possible values of an `CreateCheckoutSessionPaymentMethodOptionsWechatPay`'s `setup_future_usage` field.
6781#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6782#[serde(rename_all = "snake_case")]
6783pub enum CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage {
6784    None,
6785}
6786
6787impl CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage {
6788    pub fn as_str(self) -> &'static str {
6789        match self {
6790            CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage::None => "none",
6791        }
6792    }
6793}
6794
6795impl AsRef<str> for CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage {
6796    fn as_ref(&self) -> &str {
6797        self.as_str()
6798    }
6799}
6800
6801impl std::fmt::Display for CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage {
6802    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6803        self.as_str().fmt(f)
6804    }
6805}
6806impl std::default::Default for CreateCheckoutSessionPaymentMethodOptionsWechatPaySetupFutureUsage {
6807    fn default() -> Self {
6808        Self::None
6809    }
6810}
6811
6812/// An enum representing the possible values of an `CreateCheckoutSession`'s `payment_method_types` field.
6813#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6814#[serde(rename_all = "snake_case")]
6815pub enum CreateCheckoutSessionPaymentMethodTypes {
6816    AcssDebit,
6817    Affirm,
6818    AfterpayClearpay,
6819    Alipay,
6820    AuBecsDebit,
6821    BacsDebit,
6822    Bancontact,
6823    Blik,
6824    Boleto,
6825    Card,
6826    Cashapp,
6827    CustomerBalance,
6828    Eps,
6829    Fpx,
6830    Giropay,
6831    Grabpay,
6832    Ideal,
6833    Klarna,
6834    Konbini,
6835    Link,
6836    Oxxo,
6837    P24,
6838    Paynow,
6839    Paypal,
6840    Pix,
6841    Promptpay,
6842    RevolutPay,
6843    SepaDebit,
6844    Sofort,
6845    Swish,
6846    UsBankAccount,
6847    WechatPay,
6848    Zip,
6849}
6850
6851impl CreateCheckoutSessionPaymentMethodTypes {
6852    pub fn as_str(self) -> &'static str {
6853        match self {
6854            CreateCheckoutSessionPaymentMethodTypes::AcssDebit => "acss_debit",
6855            CreateCheckoutSessionPaymentMethodTypes::Affirm => "affirm",
6856            CreateCheckoutSessionPaymentMethodTypes::AfterpayClearpay => "afterpay_clearpay",
6857            CreateCheckoutSessionPaymentMethodTypes::Alipay => "alipay",
6858            CreateCheckoutSessionPaymentMethodTypes::AuBecsDebit => "au_becs_debit",
6859            CreateCheckoutSessionPaymentMethodTypes::BacsDebit => "bacs_debit",
6860            CreateCheckoutSessionPaymentMethodTypes::Bancontact => "bancontact",
6861            CreateCheckoutSessionPaymentMethodTypes::Blik => "blik",
6862            CreateCheckoutSessionPaymentMethodTypes::Boleto => "boleto",
6863            CreateCheckoutSessionPaymentMethodTypes::Card => "card",
6864            CreateCheckoutSessionPaymentMethodTypes::Cashapp => "cashapp",
6865            CreateCheckoutSessionPaymentMethodTypes::CustomerBalance => "customer_balance",
6866            CreateCheckoutSessionPaymentMethodTypes::Eps => "eps",
6867            CreateCheckoutSessionPaymentMethodTypes::Fpx => "fpx",
6868            CreateCheckoutSessionPaymentMethodTypes::Giropay => "giropay",
6869            CreateCheckoutSessionPaymentMethodTypes::Grabpay => "grabpay",
6870            CreateCheckoutSessionPaymentMethodTypes::Ideal => "ideal",
6871            CreateCheckoutSessionPaymentMethodTypes::Klarna => "klarna",
6872            CreateCheckoutSessionPaymentMethodTypes::Konbini => "konbini",
6873            CreateCheckoutSessionPaymentMethodTypes::Link => "link",
6874            CreateCheckoutSessionPaymentMethodTypes::Oxxo => "oxxo",
6875            CreateCheckoutSessionPaymentMethodTypes::P24 => "p24",
6876            CreateCheckoutSessionPaymentMethodTypes::Paynow => "paynow",
6877            CreateCheckoutSessionPaymentMethodTypes::Paypal => "paypal",
6878            CreateCheckoutSessionPaymentMethodTypes::Pix => "pix",
6879            CreateCheckoutSessionPaymentMethodTypes::Promptpay => "promptpay",
6880            CreateCheckoutSessionPaymentMethodTypes::RevolutPay => "revolut_pay",
6881            CreateCheckoutSessionPaymentMethodTypes::SepaDebit => "sepa_debit",
6882            CreateCheckoutSessionPaymentMethodTypes::Sofort => "sofort",
6883            CreateCheckoutSessionPaymentMethodTypes::Swish => "swish",
6884            CreateCheckoutSessionPaymentMethodTypes::UsBankAccount => "us_bank_account",
6885            CreateCheckoutSessionPaymentMethodTypes::WechatPay => "wechat_pay",
6886            CreateCheckoutSessionPaymentMethodTypes::Zip => "zip",
6887        }
6888    }
6889}
6890
6891impl AsRef<str> for CreateCheckoutSessionPaymentMethodTypes {
6892    fn as_ref(&self) -> &str {
6893        self.as_str()
6894    }
6895}
6896
6897impl std::fmt::Display for CreateCheckoutSessionPaymentMethodTypes {
6898    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6899        self.as_str().fmt(f)
6900    }
6901}
6902impl std::default::Default for CreateCheckoutSessionPaymentMethodTypes {
6903    fn default() -> Self {
6904        Self::AcssDebit
6905    }
6906}
6907
6908/// An enum representing the possible values of an `CreateCheckoutSessionShippingAddressCollection`'s `allowed_countries` field.
6909#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6910#[serde(rename_all = "snake_case")]
6911pub enum CreateCheckoutSessionShippingAddressCollectionAllowedCountries {
6912    #[serde(rename = "AC")]
6913    Ac,
6914    #[serde(rename = "AD")]
6915    Ad,
6916    #[serde(rename = "AE")]
6917    Ae,
6918    #[serde(rename = "AF")]
6919    Af,
6920    #[serde(rename = "AG")]
6921    Ag,
6922    #[serde(rename = "AI")]
6923    Ai,
6924    #[serde(rename = "AL")]
6925    Al,
6926    #[serde(rename = "AM")]
6927    Am,
6928    #[serde(rename = "AO")]
6929    Ao,
6930    #[serde(rename = "AQ")]
6931    Aq,
6932    #[serde(rename = "AR")]
6933    Ar,
6934    #[serde(rename = "AT")]
6935    At,
6936    #[serde(rename = "AU")]
6937    Au,
6938    #[serde(rename = "AW")]
6939    Aw,
6940    #[serde(rename = "AX")]
6941    Ax,
6942    #[serde(rename = "AZ")]
6943    Az,
6944    #[serde(rename = "BA")]
6945    Ba,
6946    #[serde(rename = "BB")]
6947    Bb,
6948    #[serde(rename = "BD")]
6949    Bd,
6950    #[serde(rename = "BE")]
6951    Be,
6952    #[serde(rename = "BF")]
6953    Bf,
6954    #[serde(rename = "BG")]
6955    Bg,
6956    #[serde(rename = "BH")]
6957    Bh,
6958    #[serde(rename = "BI")]
6959    Bi,
6960    #[serde(rename = "BJ")]
6961    Bj,
6962    #[serde(rename = "BL")]
6963    Bl,
6964    #[serde(rename = "BM")]
6965    Bm,
6966    #[serde(rename = "BN")]
6967    Bn,
6968    #[serde(rename = "BO")]
6969    Bo,
6970    #[serde(rename = "BQ")]
6971    Bq,
6972    #[serde(rename = "BR")]
6973    Br,
6974    #[serde(rename = "BS")]
6975    Bs,
6976    #[serde(rename = "BT")]
6977    Bt,
6978    #[serde(rename = "BV")]
6979    Bv,
6980    #[serde(rename = "BW")]
6981    Bw,
6982    #[serde(rename = "BY")]
6983    By,
6984    #[serde(rename = "BZ")]
6985    Bz,
6986    #[serde(rename = "CA")]
6987    Ca,
6988    #[serde(rename = "CD")]
6989    Cd,
6990    #[serde(rename = "CF")]
6991    Cf,
6992    #[serde(rename = "CG")]
6993    Cg,
6994    #[serde(rename = "CH")]
6995    Ch,
6996    #[serde(rename = "CI")]
6997    Ci,
6998    #[serde(rename = "CK")]
6999    Ck,
7000    #[serde(rename = "CL")]
7001    Cl,
7002    #[serde(rename = "CM")]
7003    Cm,
7004    #[serde(rename = "CN")]
7005    Cn,
7006    #[serde(rename = "CO")]
7007    Co,
7008    #[serde(rename = "CR")]
7009    Cr,
7010    #[serde(rename = "CV")]
7011    Cv,
7012    #[serde(rename = "CW")]
7013    Cw,
7014    #[serde(rename = "CY")]
7015    Cy,
7016    #[serde(rename = "CZ")]
7017    Cz,
7018    #[serde(rename = "DE")]
7019    De,
7020    #[serde(rename = "DJ")]
7021    Dj,
7022    #[serde(rename = "DK")]
7023    Dk,
7024    #[serde(rename = "DM")]
7025    Dm,
7026    #[serde(rename = "DO")]
7027    Do,
7028    #[serde(rename = "DZ")]
7029    Dz,
7030    #[serde(rename = "EC")]
7031    Ec,
7032    #[serde(rename = "EE")]
7033    Ee,
7034    #[serde(rename = "EG")]
7035    Eg,
7036    #[serde(rename = "EH")]
7037    Eh,
7038    #[serde(rename = "ER")]
7039    Er,
7040    #[serde(rename = "ES")]
7041    Es,
7042    #[serde(rename = "ET")]
7043    Et,
7044    #[serde(rename = "FI")]
7045    Fi,
7046    #[serde(rename = "FJ")]
7047    Fj,
7048    #[serde(rename = "FK")]
7049    Fk,
7050    #[serde(rename = "FO")]
7051    Fo,
7052    #[serde(rename = "FR")]
7053    Fr,
7054    #[serde(rename = "GA")]
7055    Ga,
7056    #[serde(rename = "GB")]
7057    Gb,
7058    #[serde(rename = "GD")]
7059    Gd,
7060    #[serde(rename = "GE")]
7061    Ge,
7062    #[serde(rename = "GF")]
7063    Gf,
7064    #[serde(rename = "GG")]
7065    Gg,
7066    #[serde(rename = "GH")]
7067    Gh,
7068    #[serde(rename = "GI")]
7069    Gi,
7070    #[serde(rename = "GL")]
7071    Gl,
7072    #[serde(rename = "GM")]
7073    Gm,
7074    #[serde(rename = "GN")]
7075    Gn,
7076    #[serde(rename = "GP")]
7077    Gp,
7078    #[serde(rename = "GQ")]
7079    Gq,
7080    #[serde(rename = "GR")]
7081    Gr,
7082    #[serde(rename = "GS")]
7083    Gs,
7084    #[serde(rename = "GT")]
7085    Gt,
7086    #[serde(rename = "GU")]
7087    Gu,
7088    #[serde(rename = "GW")]
7089    Gw,
7090    #[serde(rename = "GY")]
7091    Gy,
7092    #[serde(rename = "HK")]
7093    Hk,
7094    #[serde(rename = "HN")]
7095    Hn,
7096    #[serde(rename = "HR")]
7097    Hr,
7098    #[serde(rename = "HT")]
7099    Ht,
7100    #[serde(rename = "HU")]
7101    Hu,
7102    #[serde(rename = "ID")]
7103    Id,
7104    #[serde(rename = "IE")]
7105    Ie,
7106    #[serde(rename = "IL")]
7107    Il,
7108    #[serde(rename = "IM")]
7109    Im,
7110    #[serde(rename = "IN")]
7111    In,
7112    #[serde(rename = "IO")]
7113    Io,
7114    #[serde(rename = "IQ")]
7115    Iq,
7116    #[serde(rename = "IS")]
7117    Is,
7118    #[serde(rename = "IT")]
7119    It,
7120    #[serde(rename = "JE")]
7121    Je,
7122    #[serde(rename = "JM")]
7123    Jm,
7124    #[serde(rename = "JO")]
7125    Jo,
7126    #[serde(rename = "JP")]
7127    Jp,
7128    #[serde(rename = "KE")]
7129    Ke,
7130    #[serde(rename = "KG")]
7131    Kg,
7132    #[serde(rename = "KH")]
7133    Kh,
7134    #[serde(rename = "KI")]
7135    Ki,
7136    #[serde(rename = "KM")]
7137    Km,
7138    #[serde(rename = "KN")]
7139    Kn,
7140    #[serde(rename = "KR")]
7141    Kr,
7142    #[serde(rename = "KW")]
7143    Kw,
7144    #[serde(rename = "KY")]
7145    Ky,
7146    #[serde(rename = "KZ")]
7147    Kz,
7148    #[serde(rename = "LA")]
7149    La,
7150    #[serde(rename = "LB")]
7151    Lb,
7152    #[serde(rename = "LC")]
7153    Lc,
7154    #[serde(rename = "LI")]
7155    Li,
7156    #[serde(rename = "LK")]
7157    Lk,
7158    #[serde(rename = "LR")]
7159    Lr,
7160    #[serde(rename = "LS")]
7161    Ls,
7162    #[serde(rename = "LT")]
7163    Lt,
7164    #[serde(rename = "LU")]
7165    Lu,
7166    #[serde(rename = "LV")]
7167    Lv,
7168    #[serde(rename = "LY")]
7169    Ly,
7170    #[serde(rename = "MA")]
7171    Ma,
7172    #[serde(rename = "MC")]
7173    Mc,
7174    #[serde(rename = "MD")]
7175    Md,
7176    #[serde(rename = "ME")]
7177    Me,
7178    #[serde(rename = "MF")]
7179    Mf,
7180    #[serde(rename = "MG")]
7181    Mg,
7182    #[serde(rename = "MK")]
7183    Mk,
7184    #[serde(rename = "ML")]
7185    Ml,
7186    #[serde(rename = "MM")]
7187    Mm,
7188    #[serde(rename = "MN")]
7189    Mn,
7190    #[serde(rename = "MO")]
7191    Mo,
7192    #[serde(rename = "MQ")]
7193    Mq,
7194    #[serde(rename = "MR")]
7195    Mr,
7196    #[serde(rename = "MS")]
7197    Ms,
7198    #[serde(rename = "MT")]
7199    Mt,
7200    #[serde(rename = "MU")]
7201    Mu,
7202    #[serde(rename = "MV")]
7203    Mv,
7204    #[serde(rename = "MW")]
7205    Mw,
7206    #[serde(rename = "MX")]
7207    Mx,
7208    #[serde(rename = "MY")]
7209    My,
7210    #[serde(rename = "MZ")]
7211    Mz,
7212    #[serde(rename = "NA")]
7213    Na,
7214    #[serde(rename = "NC")]
7215    Nc,
7216    #[serde(rename = "NE")]
7217    Ne,
7218    #[serde(rename = "NG")]
7219    Ng,
7220    #[serde(rename = "NI")]
7221    Ni,
7222    #[serde(rename = "NL")]
7223    Nl,
7224    #[serde(rename = "NO")]
7225    No,
7226    #[serde(rename = "NP")]
7227    Np,
7228    #[serde(rename = "NR")]
7229    Nr,
7230    #[serde(rename = "NU")]
7231    Nu,
7232    #[serde(rename = "NZ")]
7233    Nz,
7234    #[serde(rename = "OM")]
7235    Om,
7236    #[serde(rename = "PA")]
7237    Pa,
7238    #[serde(rename = "PE")]
7239    Pe,
7240    #[serde(rename = "PF")]
7241    Pf,
7242    #[serde(rename = "PG")]
7243    Pg,
7244    #[serde(rename = "PH")]
7245    Ph,
7246    #[serde(rename = "PK")]
7247    Pk,
7248    #[serde(rename = "PL")]
7249    Pl,
7250    #[serde(rename = "PM")]
7251    Pm,
7252    #[serde(rename = "PN")]
7253    Pn,
7254    #[serde(rename = "PR")]
7255    Pr,
7256    #[serde(rename = "PS")]
7257    Ps,
7258    #[serde(rename = "PT")]
7259    Pt,
7260    #[serde(rename = "PY")]
7261    Py,
7262    #[serde(rename = "QA")]
7263    Qa,
7264    #[serde(rename = "RE")]
7265    Re,
7266    #[serde(rename = "RO")]
7267    Ro,
7268    #[serde(rename = "RS")]
7269    Rs,
7270    #[serde(rename = "RU")]
7271    Ru,
7272    #[serde(rename = "RW")]
7273    Rw,
7274    #[serde(rename = "SA")]
7275    Sa,
7276    #[serde(rename = "SB")]
7277    Sb,
7278    #[serde(rename = "SC")]
7279    Sc,
7280    #[serde(rename = "SE")]
7281    Se,
7282    #[serde(rename = "SG")]
7283    Sg,
7284    #[serde(rename = "SH")]
7285    Sh,
7286    #[serde(rename = "SI")]
7287    Si,
7288    #[serde(rename = "SJ")]
7289    Sj,
7290    #[serde(rename = "SK")]
7291    Sk,
7292    #[serde(rename = "SL")]
7293    Sl,
7294    #[serde(rename = "SM")]
7295    Sm,
7296    #[serde(rename = "SN")]
7297    Sn,
7298    #[serde(rename = "SO")]
7299    So,
7300    #[serde(rename = "SR")]
7301    Sr,
7302    #[serde(rename = "SS")]
7303    Ss,
7304    #[serde(rename = "ST")]
7305    St,
7306    #[serde(rename = "SV")]
7307    Sv,
7308    #[serde(rename = "SX")]
7309    Sx,
7310    #[serde(rename = "SZ")]
7311    Sz,
7312    #[serde(rename = "TA")]
7313    Ta,
7314    #[serde(rename = "TC")]
7315    Tc,
7316    #[serde(rename = "TD")]
7317    Td,
7318    #[serde(rename = "TF")]
7319    Tf,
7320    #[serde(rename = "TG")]
7321    Tg,
7322    #[serde(rename = "TH")]
7323    Th,
7324    #[serde(rename = "TJ")]
7325    Tj,
7326    #[serde(rename = "TK")]
7327    Tk,
7328    #[serde(rename = "TL")]
7329    Tl,
7330    #[serde(rename = "TM")]
7331    Tm,
7332    #[serde(rename = "TN")]
7333    Tn,
7334    #[serde(rename = "TO")]
7335    To,
7336    #[serde(rename = "TR")]
7337    Tr,
7338    #[serde(rename = "TT")]
7339    Tt,
7340    #[serde(rename = "TV")]
7341    Tv,
7342    #[serde(rename = "TW")]
7343    Tw,
7344    #[serde(rename = "TZ")]
7345    Tz,
7346    #[serde(rename = "UA")]
7347    Ua,
7348    #[serde(rename = "UG")]
7349    Ug,
7350    #[serde(rename = "US")]
7351    Us,
7352    #[serde(rename = "UY")]
7353    Uy,
7354    #[serde(rename = "UZ")]
7355    Uz,
7356    #[serde(rename = "VA")]
7357    Va,
7358    #[serde(rename = "VC")]
7359    Vc,
7360    #[serde(rename = "VE")]
7361    Ve,
7362    #[serde(rename = "VG")]
7363    Vg,
7364    #[serde(rename = "VN")]
7365    Vn,
7366    #[serde(rename = "VU")]
7367    Vu,
7368    #[serde(rename = "WF")]
7369    Wf,
7370    #[serde(rename = "WS")]
7371    Ws,
7372    #[serde(rename = "XK")]
7373    Xk,
7374    #[serde(rename = "YE")]
7375    Ye,
7376    #[serde(rename = "YT")]
7377    Yt,
7378    #[serde(rename = "ZA")]
7379    Za,
7380    #[serde(rename = "ZM")]
7381    Zm,
7382    #[serde(rename = "ZW")]
7383    Zw,
7384    #[serde(rename = "ZZ")]
7385    Zz,
7386}
7387
7388impl CreateCheckoutSessionShippingAddressCollectionAllowedCountries {
7389    pub fn as_str(self) -> &'static str {
7390        match self {
7391            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ac => "AC",
7392            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ad => "AD",
7393            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ae => "AE",
7394            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Af => "AF",
7395            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ag => "AG",
7396            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ai => "AI",
7397            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Al => "AL",
7398            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Am => "AM",
7399            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ao => "AO",
7400            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Aq => "AQ",
7401            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ar => "AR",
7402            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::At => "AT",
7403            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Au => "AU",
7404            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Aw => "AW",
7405            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ax => "AX",
7406            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Az => "AZ",
7407            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ba => "BA",
7408            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bb => "BB",
7409            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bd => "BD",
7410            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Be => "BE",
7411            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bf => "BF",
7412            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bg => "BG",
7413            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bh => "BH",
7414            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bi => "BI",
7415            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bj => "BJ",
7416            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bl => "BL",
7417            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bm => "BM",
7418            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bn => "BN",
7419            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bo => "BO",
7420            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bq => "BQ",
7421            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Br => "BR",
7422            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bs => "BS",
7423            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bt => "BT",
7424            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bv => "BV",
7425            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bw => "BW",
7426            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::By => "BY",
7427            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Bz => "BZ",
7428            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ca => "CA",
7429            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cd => "CD",
7430            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cf => "CF",
7431            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cg => "CG",
7432            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ch => "CH",
7433            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ci => "CI",
7434            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ck => "CK",
7435            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cl => "CL",
7436            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cm => "CM",
7437            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cn => "CN",
7438            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Co => "CO",
7439            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cr => "CR",
7440            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cv => "CV",
7441            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cw => "CW",
7442            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cy => "CY",
7443            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Cz => "CZ",
7444            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::De => "DE",
7445            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Dj => "DJ",
7446            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Dk => "DK",
7447            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Dm => "DM",
7448            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Do => "DO",
7449            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Dz => "DZ",
7450            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ec => "EC",
7451            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ee => "EE",
7452            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Eg => "EG",
7453            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Eh => "EH",
7454            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Er => "ER",
7455            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Es => "ES",
7456            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Et => "ET",
7457            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Fi => "FI",
7458            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Fj => "FJ",
7459            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Fk => "FK",
7460            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Fo => "FO",
7461            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Fr => "FR",
7462            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ga => "GA",
7463            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gb => "GB",
7464            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gd => "GD",
7465            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ge => "GE",
7466            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gf => "GF",
7467            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gg => "GG",
7468            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gh => "GH",
7469            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gi => "GI",
7470            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gl => "GL",
7471            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gm => "GM",
7472            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gn => "GN",
7473            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gp => "GP",
7474            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gq => "GQ",
7475            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gr => "GR",
7476            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gs => "GS",
7477            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gt => "GT",
7478            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gu => "GU",
7479            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gw => "GW",
7480            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Gy => "GY",
7481            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Hk => "HK",
7482            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Hn => "HN",
7483            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Hr => "HR",
7484            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ht => "HT",
7485            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Hu => "HU",
7486            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Id => "ID",
7487            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ie => "IE",
7488            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Il => "IL",
7489            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Im => "IM",
7490            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::In => "IN",
7491            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Io => "IO",
7492            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Iq => "IQ",
7493            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Is => "IS",
7494            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::It => "IT",
7495            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Je => "JE",
7496            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Jm => "JM",
7497            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Jo => "JO",
7498            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Jp => "JP",
7499            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ke => "KE",
7500            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kg => "KG",
7501            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kh => "KH",
7502            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ki => "KI",
7503            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Km => "KM",
7504            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kn => "KN",
7505            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kr => "KR",
7506            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kw => "KW",
7507            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ky => "KY",
7508            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Kz => "KZ",
7509            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::La => "LA",
7510            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lb => "LB",
7511            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lc => "LC",
7512            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Li => "LI",
7513            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lk => "LK",
7514            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lr => "LR",
7515            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ls => "LS",
7516            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lt => "LT",
7517            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lu => "LU",
7518            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Lv => "LV",
7519            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ly => "LY",
7520            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ma => "MA",
7521            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mc => "MC",
7522            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Md => "MD",
7523            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Me => "ME",
7524            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mf => "MF",
7525            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mg => "MG",
7526            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mk => "MK",
7527            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ml => "ML",
7528            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mm => "MM",
7529            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mn => "MN",
7530            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mo => "MO",
7531            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mq => "MQ",
7532            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mr => "MR",
7533            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ms => "MS",
7534            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mt => "MT",
7535            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mu => "MU",
7536            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mv => "MV",
7537            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mw => "MW",
7538            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mx => "MX",
7539            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::My => "MY",
7540            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Mz => "MZ",
7541            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Na => "NA",
7542            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Nc => "NC",
7543            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ne => "NE",
7544            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ng => "NG",
7545            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ni => "NI",
7546            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Nl => "NL",
7547            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::No => "NO",
7548            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Np => "NP",
7549            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Nr => "NR",
7550            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Nu => "NU",
7551            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Nz => "NZ",
7552            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Om => "OM",
7553            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pa => "PA",
7554            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pe => "PE",
7555            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pf => "PF",
7556            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pg => "PG",
7557            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ph => "PH",
7558            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pk => "PK",
7559            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pl => "PL",
7560            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pm => "PM",
7561            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pn => "PN",
7562            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pr => "PR",
7563            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ps => "PS",
7564            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Pt => "PT",
7565            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Py => "PY",
7566            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Qa => "QA",
7567            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Re => "RE",
7568            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ro => "RO",
7569            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Rs => "RS",
7570            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ru => "RU",
7571            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Rw => "RW",
7572            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sa => "SA",
7573            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sb => "SB",
7574            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sc => "SC",
7575            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Se => "SE",
7576            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sg => "SG",
7577            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sh => "SH",
7578            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Si => "SI",
7579            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sj => "SJ",
7580            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sk => "SK",
7581            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sl => "SL",
7582            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sm => "SM",
7583            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sn => "SN",
7584            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::So => "SO",
7585            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sr => "SR",
7586            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ss => "SS",
7587            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::St => "ST",
7588            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sv => "SV",
7589            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sx => "SX",
7590            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Sz => "SZ",
7591            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ta => "TA",
7592            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tc => "TC",
7593            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Td => "TD",
7594            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tf => "TF",
7595            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tg => "TG",
7596            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Th => "TH",
7597            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tj => "TJ",
7598            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tk => "TK",
7599            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tl => "TL",
7600            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tm => "TM",
7601            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tn => "TN",
7602            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::To => "TO",
7603            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tr => "TR",
7604            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tt => "TT",
7605            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tv => "TV",
7606            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tw => "TW",
7607            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Tz => "TZ",
7608            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ua => "UA",
7609            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ug => "UG",
7610            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Us => "US",
7611            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Uy => "UY",
7612            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Uz => "UZ",
7613            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Va => "VA",
7614            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Vc => "VC",
7615            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ve => "VE",
7616            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Vg => "VG",
7617            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Vn => "VN",
7618            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Vu => "VU",
7619            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Wf => "WF",
7620            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ws => "WS",
7621            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Xk => "XK",
7622            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Ye => "YE",
7623            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Yt => "YT",
7624            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Za => "ZA",
7625            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Zm => "ZM",
7626            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Zw => "ZW",
7627            CreateCheckoutSessionShippingAddressCollectionAllowedCountries::Zz => "ZZ",
7628        }
7629    }
7630}
7631
7632impl AsRef<str> for CreateCheckoutSessionShippingAddressCollectionAllowedCountries {
7633    fn as_ref(&self) -> &str {
7634        self.as_str()
7635    }
7636}
7637
7638impl std::fmt::Display for CreateCheckoutSessionShippingAddressCollectionAllowedCountries {
7639    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7640        self.as_str().fmt(f)
7641    }
7642}
7643impl std::default::Default for CreateCheckoutSessionShippingAddressCollectionAllowedCountries {
7644    fn default() -> Self {
7645        Self::Ac
7646    }
7647}
7648
7649/// An enum representing the possible values of an `CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximum`'s `unit` field.
7650#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7651#[serde(rename_all = "snake_case")]
7652pub enum CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit {
7653    BusinessDay,
7654    Day,
7655    Hour,
7656    Month,
7657    Week,
7658}
7659
7660impl CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit {
7661    pub fn as_str(self) -> &'static str {
7662        match self {
7663            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit::BusinessDay => "business_day",
7664            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit::Day => "day",
7665            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit::Hour => "hour",
7666            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit::Month => "month",
7667            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit::Week => "week",
7668        }
7669    }
7670}
7671
7672impl AsRef<str>
7673    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit
7674{
7675    fn as_ref(&self) -> &str {
7676        self.as_str()
7677    }
7678}
7679
7680impl std::fmt::Display
7681    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit
7682{
7683    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7684        self.as_str().fmt(f)
7685    }
7686}
7687impl std::default::Default
7688    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMaximumUnit
7689{
7690    fn default() -> Self {
7691        Self::BusinessDay
7692    }
7693}
7694
7695/// An enum representing the possible values of an `CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimum`'s `unit` field.
7696#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7697#[serde(rename_all = "snake_case")]
7698pub enum CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit {
7699    BusinessDay,
7700    Day,
7701    Hour,
7702    Month,
7703    Week,
7704}
7705
7706impl CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit {
7707    pub fn as_str(self) -> &'static str {
7708        match self {
7709            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit::BusinessDay => "business_day",
7710            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit::Day => "day",
7711            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit::Hour => "hour",
7712            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit::Month => "month",
7713            CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit::Week => "week",
7714        }
7715    }
7716}
7717
7718impl AsRef<str>
7719    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit
7720{
7721    fn as_ref(&self) -> &str {
7722        self.as_str()
7723    }
7724}
7725
7726impl std::fmt::Display
7727    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit
7728{
7729    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7730        self.as_str().fmt(f)
7731    }
7732}
7733impl std::default::Default
7734    for CreateCheckoutSessionShippingOptionsShippingRateDataDeliveryEstimateMinimumUnit
7735{
7736    fn default() -> Self {
7737        Self::BusinessDay
7738    }
7739}
7740
7741/// An enum representing the possible values of an `CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptions`'s `tax_behavior` field.
7742#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7743#[serde(rename_all = "snake_case")]
7744pub enum CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior {
7745    Exclusive,
7746    Inclusive,
7747    Unspecified,
7748}
7749
7750impl CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior {
7751    pub fn as_str(self) -> &'static str {
7752        match self {
7753            CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior::Exclusive => "exclusive",
7754            CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior::Inclusive => "inclusive",
7755            CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior::Unspecified => "unspecified",
7756        }
7757    }
7758}
7759
7760impl AsRef<str>
7761    for CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior
7762{
7763    fn as_ref(&self) -> &str {
7764        self.as_str()
7765    }
7766}
7767
7768impl std::fmt::Display
7769    for CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior
7770{
7771    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7772        self.as_str().fmt(f)
7773    }
7774}
7775impl std::default::Default
7776    for CreateCheckoutSessionShippingOptionsShippingRateDataFixedAmountCurrencyOptionsTaxBehavior
7777{
7778    fn default() -> Self {
7779        Self::Exclusive
7780    }
7781}
7782
7783/// An enum representing the possible values of an `CreateCheckoutSessionShippingOptionsShippingRateData`'s `tax_behavior` field.
7784#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7785#[serde(rename_all = "snake_case")]
7786pub enum CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior {
7787    Exclusive,
7788    Inclusive,
7789    Unspecified,
7790}
7791
7792impl CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior {
7793    pub fn as_str(self) -> &'static str {
7794        match self {
7795            CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior::Exclusive => {
7796                "exclusive"
7797            }
7798            CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior::Inclusive => {
7799                "inclusive"
7800            }
7801            CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior::Unspecified => {
7802                "unspecified"
7803            }
7804        }
7805    }
7806}
7807
7808impl AsRef<str> for CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior {
7809    fn as_ref(&self) -> &str {
7810        self.as_str()
7811    }
7812}
7813
7814impl std::fmt::Display for CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior {
7815    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7816        self.as_str().fmt(f)
7817    }
7818}
7819impl std::default::Default for CreateCheckoutSessionShippingOptionsShippingRateDataTaxBehavior {
7820    fn default() -> Self {
7821        Self::Exclusive
7822    }
7823}
7824
7825/// An enum representing the possible values of an `CreateCheckoutSessionShippingOptionsShippingRateData`'s `type` field.
7826#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7827#[serde(rename_all = "snake_case")]
7828pub enum CreateCheckoutSessionShippingOptionsShippingRateDataType {
7829    FixedAmount,
7830}
7831
7832impl CreateCheckoutSessionShippingOptionsShippingRateDataType {
7833    pub fn as_str(self) -> &'static str {
7834        match self {
7835            CreateCheckoutSessionShippingOptionsShippingRateDataType::FixedAmount => "fixed_amount",
7836        }
7837    }
7838}
7839
7840impl AsRef<str> for CreateCheckoutSessionShippingOptionsShippingRateDataType {
7841    fn as_ref(&self) -> &str {
7842        self.as_str()
7843    }
7844}
7845
7846impl std::fmt::Display for CreateCheckoutSessionShippingOptionsShippingRateDataType {
7847    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7848        self.as_str().fmt(f)
7849    }
7850}
7851impl std::default::Default for CreateCheckoutSessionShippingOptionsShippingRateDataType {
7852    fn default() -> Self {
7853        Self::FixedAmount
7854    }
7855}
7856
7857/// An enum representing the possible values of an `CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuer`'s `type` field.
7858#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7859#[serde(rename_all = "snake_case")]
7860pub enum CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType {
7861    Account,
7862    #[serde(rename = "self")]
7863    Self_,
7864}
7865
7866impl CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType {
7867    pub fn as_str(self) -> &'static str {
7868        match self {
7869            CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType::Account => "account",
7870            CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType::Self_ => "self",
7871        }
7872    }
7873}
7874
7875impl AsRef<str> for CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType {
7876    fn as_ref(&self) -> &str {
7877        self.as_str()
7878    }
7879}
7880
7881impl std::fmt::Display for CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType {
7882    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7883        self.as_str().fmt(f)
7884    }
7885}
7886impl std::default::Default for CreateCheckoutSessionSubscriptionDataInvoiceSettingsIssuerType {
7887    fn default() -> Self {
7888        Self::Account
7889    }
7890}
7891
7892/// An enum representing the possible values of an `CreateCheckoutSessionSubscriptionData`'s `proration_behavior` field.
7893#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7894#[serde(rename_all = "snake_case")]
7895pub enum CreateCheckoutSessionSubscriptionDataProrationBehavior {
7896    CreateProrations,
7897    None,
7898}
7899
7900impl CreateCheckoutSessionSubscriptionDataProrationBehavior {
7901    pub fn as_str(self) -> &'static str {
7902        match self {
7903            CreateCheckoutSessionSubscriptionDataProrationBehavior::CreateProrations => {
7904                "create_prorations"
7905            }
7906            CreateCheckoutSessionSubscriptionDataProrationBehavior::None => "none",
7907        }
7908    }
7909}
7910
7911impl AsRef<str> for CreateCheckoutSessionSubscriptionDataProrationBehavior {
7912    fn as_ref(&self) -> &str {
7913        self.as_str()
7914    }
7915}
7916
7917impl std::fmt::Display for CreateCheckoutSessionSubscriptionDataProrationBehavior {
7918    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7919        self.as_str().fmt(f)
7920    }
7921}
7922impl std::default::Default for CreateCheckoutSessionSubscriptionDataProrationBehavior {
7923    fn default() -> Self {
7924        Self::CreateProrations
7925    }
7926}
7927
7928/// An enum representing the possible values of an `CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehavior`'s `missing_payment_method` field.
7929#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7930#[serde(rename_all = "snake_case")]
7931pub enum CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod {
7932    Cancel,
7933    CreateInvoice,
7934    Pause,
7935}
7936
7937impl CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod {
7938    pub fn as_str(self) -> &'static str {
7939        match self {
7940            CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod::Cancel => "cancel",
7941            CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod::CreateInvoice => "create_invoice",
7942            CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod::Pause => "pause",
7943        }
7944    }
7945}
7946
7947impl AsRef<str>
7948    for CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod
7949{
7950    fn as_ref(&self) -> &str {
7951        self.as_str()
7952    }
7953}
7954
7955impl std::fmt::Display
7956    for CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod
7957{
7958    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7959        self.as_str().fmt(f)
7960    }
7961}
7962impl std::default::Default
7963    for CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod
7964{
7965    fn default() -> Self {
7966        Self::Cancel
7967    }
7968}
7969
7970/// An enum representing the possible values of an `LineItemsTaxAmount`'s `taxability_reason` field.
7971#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7972#[serde(rename_all = "snake_case")]
7973pub enum LineItemsTaxAmountTaxabilityReason {
7974    CustomerExempt,
7975    NotCollecting,
7976    NotSubjectToTax,
7977    NotSupported,
7978    PortionProductExempt,
7979    PortionReducedRated,
7980    PortionStandardRated,
7981    ProductExempt,
7982    ProductExemptHoliday,
7983    ProportionallyRated,
7984    ReducedRated,
7985    ReverseCharge,
7986    StandardRated,
7987    TaxableBasisReduced,
7988    ZeroRated,
7989}
7990
7991impl LineItemsTaxAmountTaxabilityReason {
7992    pub fn as_str(self) -> &'static str {
7993        match self {
7994            LineItemsTaxAmountTaxabilityReason::CustomerExempt => "customer_exempt",
7995            LineItemsTaxAmountTaxabilityReason::NotCollecting => "not_collecting",
7996            LineItemsTaxAmountTaxabilityReason::NotSubjectToTax => "not_subject_to_tax",
7997            LineItemsTaxAmountTaxabilityReason::NotSupported => "not_supported",
7998            LineItemsTaxAmountTaxabilityReason::PortionProductExempt => "portion_product_exempt",
7999            LineItemsTaxAmountTaxabilityReason::PortionReducedRated => "portion_reduced_rated",
8000            LineItemsTaxAmountTaxabilityReason::PortionStandardRated => "portion_standard_rated",
8001            LineItemsTaxAmountTaxabilityReason::ProductExempt => "product_exempt",
8002            LineItemsTaxAmountTaxabilityReason::ProductExemptHoliday => "product_exempt_holiday",
8003            LineItemsTaxAmountTaxabilityReason::ProportionallyRated => "proportionally_rated",
8004            LineItemsTaxAmountTaxabilityReason::ReducedRated => "reduced_rated",
8005            LineItemsTaxAmountTaxabilityReason::ReverseCharge => "reverse_charge",
8006            LineItemsTaxAmountTaxabilityReason::StandardRated => "standard_rated",
8007            LineItemsTaxAmountTaxabilityReason::TaxableBasisReduced => "taxable_basis_reduced",
8008            LineItemsTaxAmountTaxabilityReason::ZeroRated => "zero_rated",
8009        }
8010    }
8011}
8012
8013impl AsRef<str> for LineItemsTaxAmountTaxabilityReason {
8014    fn as_ref(&self) -> &str {
8015        self.as_str()
8016    }
8017}
8018
8019impl std::fmt::Display for LineItemsTaxAmountTaxabilityReason {
8020    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8021        self.as_str().fmt(f)
8022    }
8023}
8024impl std::default::Default for LineItemsTaxAmountTaxabilityReason {
8025    fn default() -> Self {
8026        Self::CustomerExempt
8027    }
8028}
8029
8030/// An enum representing the possible values of an `PaymentPagesCheckoutSessionAutomaticTax`'s `status` field.
8031#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8032#[serde(rename_all = "snake_case")]
8033pub enum PaymentPagesCheckoutSessionAutomaticTaxStatus {
8034    Complete,
8035    Failed,
8036    RequiresLocationInputs,
8037}
8038
8039impl PaymentPagesCheckoutSessionAutomaticTaxStatus {
8040    pub fn as_str(self) -> &'static str {
8041        match self {
8042            PaymentPagesCheckoutSessionAutomaticTaxStatus::Complete => "complete",
8043            PaymentPagesCheckoutSessionAutomaticTaxStatus::Failed => "failed",
8044            PaymentPagesCheckoutSessionAutomaticTaxStatus::RequiresLocationInputs => {
8045                "requires_location_inputs"
8046            }
8047        }
8048    }
8049}
8050
8051impl AsRef<str> for PaymentPagesCheckoutSessionAutomaticTaxStatus {
8052    fn as_ref(&self) -> &str {
8053        self.as_str()
8054    }
8055}
8056
8057impl std::fmt::Display for PaymentPagesCheckoutSessionAutomaticTaxStatus {
8058    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8059        self.as_str().fmt(f)
8060    }
8061}
8062impl std::default::Default for PaymentPagesCheckoutSessionAutomaticTaxStatus {
8063    fn default() -> Self {
8064        Self::Complete
8065    }
8066}
8067
8068/// An enum representing the possible values of an `PaymentPagesCheckoutSessionConsentCollection`'s `promotions` field.
8069#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8070#[serde(rename_all = "snake_case")]
8071pub enum PaymentPagesCheckoutSessionConsentCollectionPromotions {
8072    Auto,
8073    None,
8074}
8075
8076impl PaymentPagesCheckoutSessionConsentCollectionPromotions {
8077    pub fn as_str(self) -> &'static str {
8078        match self {
8079            PaymentPagesCheckoutSessionConsentCollectionPromotions::Auto => "auto",
8080            PaymentPagesCheckoutSessionConsentCollectionPromotions::None => "none",
8081        }
8082    }
8083}
8084
8085impl AsRef<str> for PaymentPagesCheckoutSessionConsentCollectionPromotions {
8086    fn as_ref(&self) -> &str {
8087        self.as_str()
8088    }
8089}
8090
8091impl std::fmt::Display for PaymentPagesCheckoutSessionConsentCollectionPromotions {
8092    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8093        self.as_str().fmt(f)
8094    }
8095}
8096impl std::default::Default for PaymentPagesCheckoutSessionConsentCollectionPromotions {
8097    fn default() -> Self {
8098        Self::Auto
8099    }
8100}
8101
8102/// An enum representing the possible values of an `PaymentPagesCheckoutSessionConsentCollection`'s `terms_of_service` field.
8103#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8104#[serde(rename_all = "snake_case")]
8105pub enum PaymentPagesCheckoutSessionConsentCollectionTermsOfService {
8106    None,
8107    Required,
8108}
8109
8110impl PaymentPagesCheckoutSessionConsentCollectionTermsOfService {
8111    pub fn as_str(self) -> &'static str {
8112        match self {
8113            PaymentPagesCheckoutSessionConsentCollectionTermsOfService::None => "none",
8114            PaymentPagesCheckoutSessionConsentCollectionTermsOfService::Required => "required",
8115        }
8116    }
8117}
8118
8119impl AsRef<str> for PaymentPagesCheckoutSessionConsentCollectionTermsOfService {
8120    fn as_ref(&self) -> &str {
8121        self.as_str()
8122    }
8123}
8124
8125impl std::fmt::Display for PaymentPagesCheckoutSessionConsentCollectionTermsOfService {
8126    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8127        self.as_str().fmt(f)
8128    }
8129}
8130impl std::default::Default for PaymentPagesCheckoutSessionConsentCollectionTermsOfService {
8131    fn default() -> Self {
8132        Self::None
8133    }
8134}
8135
8136/// An enum representing the possible values of an `PaymentPagesCheckoutSessionConsent`'s `promotions` field.
8137#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8138#[serde(rename_all = "snake_case")]
8139pub enum PaymentPagesCheckoutSessionConsentPromotions {
8140    OptIn,
8141    OptOut,
8142}
8143
8144impl PaymentPagesCheckoutSessionConsentPromotions {
8145    pub fn as_str(self) -> &'static str {
8146        match self {
8147            PaymentPagesCheckoutSessionConsentPromotions::OptIn => "opt_in",
8148            PaymentPagesCheckoutSessionConsentPromotions::OptOut => "opt_out",
8149        }
8150    }
8151}
8152
8153impl AsRef<str> for PaymentPagesCheckoutSessionConsentPromotions {
8154    fn as_ref(&self) -> &str {
8155        self.as_str()
8156    }
8157}
8158
8159impl std::fmt::Display for PaymentPagesCheckoutSessionConsentPromotions {
8160    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8161        self.as_str().fmt(f)
8162    }
8163}
8164impl std::default::Default for PaymentPagesCheckoutSessionConsentPromotions {
8165    fn default() -> Self {
8166        Self::OptIn
8167    }
8168}
8169
8170/// An enum representing the possible values of an `PaymentPagesCheckoutSessionConsent`'s `terms_of_service` field.
8171#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8172#[serde(rename_all = "snake_case")]
8173pub enum PaymentPagesCheckoutSessionConsentTermsOfService {
8174    Accepted,
8175}
8176
8177impl PaymentPagesCheckoutSessionConsentTermsOfService {
8178    pub fn as_str(self) -> &'static str {
8179        match self {
8180            PaymentPagesCheckoutSessionConsentTermsOfService::Accepted => "accepted",
8181        }
8182    }
8183}
8184
8185impl AsRef<str> for PaymentPagesCheckoutSessionConsentTermsOfService {
8186    fn as_ref(&self) -> &str {
8187        self.as_str()
8188    }
8189}
8190
8191impl std::fmt::Display for PaymentPagesCheckoutSessionConsentTermsOfService {
8192    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8193        self.as_str().fmt(f)
8194    }
8195}
8196impl std::default::Default for PaymentPagesCheckoutSessionConsentTermsOfService {
8197    fn default() -> Self {
8198        Self::Accepted
8199    }
8200}
8201
8202/// An enum representing the possible values of an `PaymentPagesCheckoutSessionCustomFieldsLabel`'s `type` field.
8203#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8204#[serde(rename_all = "snake_case")]
8205pub enum PaymentPagesCheckoutSessionCustomFieldsLabelType {
8206    Custom,
8207}
8208
8209impl PaymentPagesCheckoutSessionCustomFieldsLabelType {
8210    pub fn as_str(self) -> &'static str {
8211        match self {
8212            PaymentPagesCheckoutSessionCustomFieldsLabelType::Custom => "custom",
8213        }
8214    }
8215}
8216
8217impl AsRef<str> for PaymentPagesCheckoutSessionCustomFieldsLabelType {
8218    fn as_ref(&self) -> &str {
8219        self.as_str()
8220    }
8221}
8222
8223impl std::fmt::Display for PaymentPagesCheckoutSessionCustomFieldsLabelType {
8224    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8225        self.as_str().fmt(f)
8226    }
8227}
8228impl std::default::Default for PaymentPagesCheckoutSessionCustomFieldsLabelType {
8229    fn default() -> Self {
8230        Self::Custom
8231    }
8232}
8233
8234/// An enum representing the possible values of an `PaymentPagesCheckoutSessionCustomFields`'s `type` field.
8235#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8236#[serde(rename_all = "snake_case")]
8237pub enum PaymentPagesCheckoutSessionCustomFieldsType {
8238    Dropdown,
8239    Numeric,
8240    Text,
8241}
8242
8243impl PaymentPagesCheckoutSessionCustomFieldsType {
8244    pub fn as_str(self) -> &'static str {
8245        match self {
8246            PaymentPagesCheckoutSessionCustomFieldsType::Dropdown => "dropdown",
8247            PaymentPagesCheckoutSessionCustomFieldsType::Numeric => "numeric",
8248            PaymentPagesCheckoutSessionCustomFieldsType::Text => "text",
8249        }
8250    }
8251}
8252
8253impl AsRef<str> for PaymentPagesCheckoutSessionCustomFieldsType {
8254    fn as_ref(&self) -> &str {
8255        self.as_str()
8256    }
8257}
8258
8259impl std::fmt::Display for PaymentPagesCheckoutSessionCustomFieldsType {
8260    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8261        self.as_str().fmt(f)
8262    }
8263}
8264impl std::default::Default for PaymentPagesCheckoutSessionCustomFieldsType {
8265    fn default() -> Self {
8266        Self::Dropdown
8267    }
8268}
8269
8270/// An enum representing the possible values of an `PaymentPagesCheckoutSessionCustomerDetails`'s `tax_exempt` field.
8271#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8272#[serde(rename_all = "snake_case")]
8273pub enum PaymentPagesCheckoutSessionCustomerDetailsTaxExempt {
8274    Exempt,
8275    None,
8276    Reverse,
8277}
8278
8279impl PaymentPagesCheckoutSessionCustomerDetailsTaxExempt {
8280    pub fn as_str(self) -> &'static str {
8281        match self {
8282            PaymentPagesCheckoutSessionCustomerDetailsTaxExempt::Exempt => "exempt",
8283            PaymentPagesCheckoutSessionCustomerDetailsTaxExempt::None => "none",
8284            PaymentPagesCheckoutSessionCustomerDetailsTaxExempt::Reverse => "reverse",
8285        }
8286    }
8287}
8288
8289impl AsRef<str> for PaymentPagesCheckoutSessionCustomerDetailsTaxExempt {
8290    fn as_ref(&self) -> &str {
8291        self.as_str()
8292    }
8293}
8294
8295impl std::fmt::Display for PaymentPagesCheckoutSessionCustomerDetailsTaxExempt {
8296    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8297        self.as_str().fmt(f)
8298    }
8299}
8300impl std::default::Default for PaymentPagesCheckoutSessionCustomerDetailsTaxExempt {
8301    fn default() -> Self {
8302        Self::Exempt
8303    }
8304}
8305
8306/// An enum representing the possible values of an `PaymentPagesCheckoutSessionPaymentMethodReuseAgreement`'s `position` field.
8307#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8308#[serde(rename_all = "snake_case")]
8309pub enum PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition {
8310    Auto,
8311    Hidden,
8312}
8313
8314impl PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition {
8315    pub fn as_str(self) -> &'static str {
8316        match self {
8317            PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition::Auto => "auto",
8318            PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition::Hidden => "hidden",
8319        }
8320    }
8321}
8322
8323impl AsRef<str> for PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition {
8324    fn as_ref(&self) -> &str {
8325        self.as_str()
8326    }
8327}
8328
8329impl std::fmt::Display for PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition {
8330    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8331        self.as_str().fmt(f)
8332    }
8333}
8334impl std::default::Default for PaymentPagesCheckoutSessionPaymentMethodReuseAgreementPosition {
8335    fn default() -> Self {
8336        Self::Auto
8337    }
8338}
8339
8340/// An enum representing the possible values of an `PaymentPagesCheckoutSessionShippingAddressCollection`'s `allowed_countries` field.
8341#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8342#[serde(rename_all = "snake_case")]
8343pub enum PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
8344    #[serde(rename = "AC")]
8345    Ac,
8346    #[serde(rename = "AD")]
8347    Ad,
8348    #[serde(rename = "AE")]
8349    Ae,
8350    #[serde(rename = "AF")]
8351    Af,
8352    #[serde(rename = "AG")]
8353    Ag,
8354    #[serde(rename = "AI")]
8355    Ai,
8356    #[serde(rename = "AL")]
8357    Al,
8358    #[serde(rename = "AM")]
8359    Am,
8360    #[serde(rename = "AO")]
8361    Ao,
8362    #[serde(rename = "AQ")]
8363    Aq,
8364    #[serde(rename = "AR")]
8365    Ar,
8366    #[serde(rename = "AT")]
8367    At,
8368    #[serde(rename = "AU")]
8369    Au,
8370    #[serde(rename = "AW")]
8371    Aw,
8372    #[serde(rename = "AX")]
8373    Ax,
8374    #[serde(rename = "AZ")]
8375    Az,
8376    #[serde(rename = "BA")]
8377    Ba,
8378    #[serde(rename = "BB")]
8379    Bb,
8380    #[serde(rename = "BD")]
8381    Bd,
8382    #[serde(rename = "BE")]
8383    Be,
8384    #[serde(rename = "BF")]
8385    Bf,
8386    #[serde(rename = "BG")]
8387    Bg,
8388    #[serde(rename = "BH")]
8389    Bh,
8390    #[serde(rename = "BI")]
8391    Bi,
8392    #[serde(rename = "BJ")]
8393    Bj,
8394    #[serde(rename = "BL")]
8395    Bl,
8396    #[serde(rename = "BM")]
8397    Bm,
8398    #[serde(rename = "BN")]
8399    Bn,
8400    #[serde(rename = "BO")]
8401    Bo,
8402    #[serde(rename = "BQ")]
8403    Bq,
8404    #[serde(rename = "BR")]
8405    Br,
8406    #[serde(rename = "BS")]
8407    Bs,
8408    #[serde(rename = "BT")]
8409    Bt,
8410    #[serde(rename = "BV")]
8411    Bv,
8412    #[serde(rename = "BW")]
8413    Bw,
8414    #[serde(rename = "BY")]
8415    By,
8416    #[serde(rename = "BZ")]
8417    Bz,
8418    #[serde(rename = "CA")]
8419    Ca,
8420    #[serde(rename = "CD")]
8421    Cd,
8422    #[serde(rename = "CF")]
8423    Cf,
8424    #[serde(rename = "CG")]
8425    Cg,
8426    #[serde(rename = "CH")]
8427    Ch,
8428    #[serde(rename = "CI")]
8429    Ci,
8430    #[serde(rename = "CK")]
8431    Ck,
8432    #[serde(rename = "CL")]
8433    Cl,
8434    #[serde(rename = "CM")]
8435    Cm,
8436    #[serde(rename = "CN")]
8437    Cn,
8438    #[serde(rename = "CO")]
8439    Co,
8440    #[serde(rename = "CR")]
8441    Cr,
8442    #[serde(rename = "CV")]
8443    Cv,
8444    #[serde(rename = "CW")]
8445    Cw,
8446    #[serde(rename = "CY")]
8447    Cy,
8448    #[serde(rename = "CZ")]
8449    Cz,
8450    #[serde(rename = "DE")]
8451    De,
8452    #[serde(rename = "DJ")]
8453    Dj,
8454    #[serde(rename = "DK")]
8455    Dk,
8456    #[serde(rename = "DM")]
8457    Dm,
8458    #[serde(rename = "DO")]
8459    Do,
8460    #[serde(rename = "DZ")]
8461    Dz,
8462    #[serde(rename = "EC")]
8463    Ec,
8464    #[serde(rename = "EE")]
8465    Ee,
8466    #[serde(rename = "EG")]
8467    Eg,
8468    #[serde(rename = "EH")]
8469    Eh,
8470    #[serde(rename = "ER")]
8471    Er,
8472    #[serde(rename = "ES")]
8473    Es,
8474    #[serde(rename = "ET")]
8475    Et,
8476    #[serde(rename = "FI")]
8477    Fi,
8478    #[serde(rename = "FJ")]
8479    Fj,
8480    #[serde(rename = "FK")]
8481    Fk,
8482    #[serde(rename = "FO")]
8483    Fo,
8484    #[serde(rename = "FR")]
8485    Fr,
8486    #[serde(rename = "GA")]
8487    Ga,
8488    #[serde(rename = "GB")]
8489    Gb,
8490    #[serde(rename = "GD")]
8491    Gd,
8492    #[serde(rename = "GE")]
8493    Ge,
8494    #[serde(rename = "GF")]
8495    Gf,
8496    #[serde(rename = "GG")]
8497    Gg,
8498    #[serde(rename = "GH")]
8499    Gh,
8500    #[serde(rename = "GI")]
8501    Gi,
8502    #[serde(rename = "GL")]
8503    Gl,
8504    #[serde(rename = "GM")]
8505    Gm,
8506    #[serde(rename = "GN")]
8507    Gn,
8508    #[serde(rename = "GP")]
8509    Gp,
8510    #[serde(rename = "GQ")]
8511    Gq,
8512    #[serde(rename = "GR")]
8513    Gr,
8514    #[serde(rename = "GS")]
8515    Gs,
8516    #[serde(rename = "GT")]
8517    Gt,
8518    #[serde(rename = "GU")]
8519    Gu,
8520    #[serde(rename = "GW")]
8521    Gw,
8522    #[serde(rename = "GY")]
8523    Gy,
8524    #[serde(rename = "HK")]
8525    Hk,
8526    #[serde(rename = "HN")]
8527    Hn,
8528    #[serde(rename = "HR")]
8529    Hr,
8530    #[serde(rename = "HT")]
8531    Ht,
8532    #[serde(rename = "HU")]
8533    Hu,
8534    #[serde(rename = "ID")]
8535    Id,
8536    #[serde(rename = "IE")]
8537    Ie,
8538    #[serde(rename = "IL")]
8539    Il,
8540    #[serde(rename = "IM")]
8541    Im,
8542    #[serde(rename = "IN")]
8543    In,
8544    #[serde(rename = "IO")]
8545    Io,
8546    #[serde(rename = "IQ")]
8547    Iq,
8548    #[serde(rename = "IS")]
8549    Is,
8550    #[serde(rename = "IT")]
8551    It,
8552    #[serde(rename = "JE")]
8553    Je,
8554    #[serde(rename = "JM")]
8555    Jm,
8556    #[serde(rename = "JO")]
8557    Jo,
8558    #[serde(rename = "JP")]
8559    Jp,
8560    #[serde(rename = "KE")]
8561    Ke,
8562    #[serde(rename = "KG")]
8563    Kg,
8564    #[serde(rename = "KH")]
8565    Kh,
8566    #[serde(rename = "KI")]
8567    Ki,
8568    #[serde(rename = "KM")]
8569    Km,
8570    #[serde(rename = "KN")]
8571    Kn,
8572    #[serde(rename = "KR")]
8573    Kr,
8574    #[serde(rename = "KW")]
8575    Kw,
8576    #[serde(rename = "KY")]
8577    Ky,
8578    #[serde(rename = "KZ")]
8579    Kz,
8580    #[serde(rename = "LA")]
8581    La,
8582    #[serde(rename = "LB")]
8583    Lb,
8584    #[serde(rename = "LC")]
8585    Lc,
8586    #[serde(rename = "LI")]
8587    Li,
8588    #[serde(rename = "LK")]
8589    Lk,
8590    #[serde(rename = "LR")]
8591    Lr,
8592    #[serde(rename = "LS")]
8593    Ls,
8594    #[serde(rename = "LT")]
8595    Lt,
8596    #[serde(rename = "LU")]
8597    Lu,
8598    #[serde(rename = "LV")]
8599    Lv,
8600    #[serde(rename = "LY")]
8601    Ly,
8602    #[serde(rename = "MA")]
8603    Ma,
8604    #[serde(rename = "MC")]
8605    Mc,
8606    #[serde(rename = "MD")]
8607    Md,
8608    #[serde(rename = "ME")]
8609    Me,
8610    #[serde(rename = "MF")]
8611    Mf,
8612    #[serde(rename = "MG")]
8613    Mg,
8614    #[serde(rename = "MK")]
8615    Mk,
8616    #[serde(rename = "ML")]
8617    Ml,
8618    #[serde(rename = "MM")]
8619    Mm,
8620    #[serde(rename = "MN")]
8621    Mn,
8622    #[serde(rename = "MO")]
8623    Mo,
8624    #[serde(rename = "MQ")]
8625    Mq,
8626    #[serde(rename = "MR")]
8627    Mr,
8628    #[serde(rename = "MS")]
8629    Ms,
8630    #[serde(rename = "MT")]
8631    Mt,
8632    #[serde(rename = "MU")]
8633    Mu,
8634    #[serde(rename = "MV")]
8635    Mv,
8636    #[serde(rename = "MW")]
8637    Mw,
8638    #[serde(rename = "MX")]
8639    Mx,
8640    #[serde(rename = "MY")]
8641    My,
8642    #[serde(rename = "MZ")]
8643    Mz,
8644    #[serde(rename = "NA")]
8645    Na,
8646    #[serde(rename = "NC")]
8647    Nc,
8648    #[serde(rename = "NE")]
8649    Ne,
8650    #[serde(rename = "NG")]
8651    Ng,
8652    #[serde(rename = "NI")]
8653    Ni,
8654    #[serde(rename = "NL")]
8655    Nl,
8656    #[serde(rename = "NO")]
8657    No,
8658    #[serde(rename = "NP")]
8659    Np,
8660    #[serde(rename = "NR")]
8661    Nr,
8662    #[serde(rename = "NU")]
8663    Nu,
8664    #[serde(rename = "NZ")]
8665    Nz,
8666    #[serde(rename = "OM")]
8667    Om,
8668    #[serde(rename = "PA")]
8669    Pa,
8670    #[serde(rename = "PE")]
8671    Pe,
8672    #[serde(rename = "PF")]
8673    Pf,
8674    #[serde(rename = "PG")]
8675    Pg,
8676    #[serde(rename = "PH")]
8677    Ph,
8678    #[serde(rename = "PK")]
8679    Pk,
8680    #[serde(rename = "PL")]
8681    Pl,
8682    #[serde(rename = "PM")]
8683    Pm,
8684    #[serde(rename = "PN")]
8685    Pn,
8686    #[serde(rename = "PR")]
8687    Pr,
8688    #[serde(rename = "PS")]
8689    Ps,
8690    #[serde(rename = "PT")]
8691    Pt,
8692    #[serde(rename = "PY")]
8693    Py,
8694    #[serde(rename = "QA")]
8695    Qa,
8696    #[serde(rename = "RE")]
8697    Re,
8698    #[serde(rename = "RO")]
8699    Ro,
8700    #[serde(rename = "RS")]
8701    Rs,
8702    #[serde(rename = "RU")]
8703    Ru,
8704    #[serde(rename = "RW")]
8705    Rw,
8706    #[serde(rename = "SA")]
8707    Sa,
8708    #[serde(rename = "SB")]
8709    Sb,
8710    #[serde(rename = "SC")]
8711    Sc,
8712    #[serde(rename = "SE")]
8713    Se,
8714    #[serde(rename = "SG")]
8715    Sg,
8716    #[serde(rename = "SH")]
8717    Sh,
8718    #[serde(rename = "SI")]
8719    Si,
8720    #[serde(rename = "SJ")]
8721    Sj,
8722    #[serde(rename = "SK")]
8723    Sk,
8724    #[serde(rename = "SL")]
8725    Sl,
8726    #[serde(rename = "SM")]
8727    Sm,
8728    #[serde(rename = "SN")]
8729    Sn,
8730    #[serde(rename = "SO")]
8731    So,
8732    #[serde(rename = "SR")]
8733    Sr,
8734    #[serde(rename = "SS")]
8735    Ss,
8736    #[serde(rename = "ST")]
8737    St,
8738    #[serde(rename = "SV")]
8739    Sv,
8740    #[serde(rename = "SX")]
8741    Sx,
8742    #[serde(rename = "SZ")]
8743    Sz,
8744    #[serde(rename = "TA")]
8745    Ta,
8746    #[serde(rename = "TC")]
8747    Tc,
8748    #[serde(rename = "TD")]
8749    Td,
8750    #[serde(rename = "TF")]
8751    Tf,
8752    #[serde(rename = "TG")]
8753    Tg,
8754    #[serde(rename = "TH")]
8755    Th,
8756    #[serde(rename = "TJ")]
8757    Tj,
8758    #[serde(rename = "TK")]
8759    Tk,
8760    #[serde(rename = "TL")]
8761    Tl,
8762    #[serde(rename = "TM")]
8763    Tm,
8764    #[serde(rename = "TN")]
8765    Tn,
8766    #[serde(rename = "TO")]
8767    To,
8768    #[serde(rename = "TR")]
8769    Tr,
8770    #[serde(rename = "TT")]
8771    Tt,
8772    #[serde(rename = "TV")]
8773    Tv,
8774    #[serde(rename = "TW")]
8775    Tw,
8776    #[serde(rename = "TZ")]
8777    Tz,
8778    #[serde(rename = "UA")]
8779    Ua,
8780    #[serde(rename = "UG")]
8781    Ug,
8782    #[serde(rename = "US")]
8783    Us,
8784    #[serde(rename = "UY")]
8785    Uy,
8786    #[serde(rename = "UZ")]
8787    Uz,
8788    #[serde(rename = "VA")]
8789    Va,
8790    #[serde(rename = "VC")]
8791    Vc,
8792    #[serde(rename = "VE")]
8793    Ve,
8794    #[serde(rename = "VG")]
8795    Vg,
8796    #[serde(rename = "VN")]
8797    Vn,
8798    #[serde(rename = "VU")]
8799    Vu,
8800    #[serde(rename = "WF")]
8801    Wf,
8802    #[serde(rename = "WS")]
8803    Ws,
8804    #[serde(rename = "XK")]
8805    Xk,
8806    #[serde(rename = "YE")]
8807    Ye,
8808    #[serde(rename = "YT")]
8809    Yt,
8810    #[serde(rename = "ZA")]
8811    Za,
8812    #[serde(rename = "ZM")]
8813    Zm,
8814    #[serde(rename = "ZW")]
8815    Zw,
8816    #[serde(rename = "ZZ")]
8817    Zz,
8818}
8819
8820impl PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
8821    pub fn as_str(self) -> &'static str {
8822        match self {
8823            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ac => "AC",
8824            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ad => "AD",
8825            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ae => "AE",
8826            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Af => "AF",
8827            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ag => "AG",
8828            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ai => "AI",
8829            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Al => "AL",
8830            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Am => "AM",
8831            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ao => "AO",
8832            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Aq => "AQ",
8833            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ar => "AR",
8834            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::At => "AT",
8835            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Au => "AU",
8836            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Aw => "AW",
8837            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ax => "AX",
8838            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Az => "AZ",
8839            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ba => "BA",
8840            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bb => "BB",
8841            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bd => "BD",
8842            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Be => "BE",
8843            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bf => "BF",
8844            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bg => "BG",
8845            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bh => "BH",
8846            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bi => "BI",
8847            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bj => "BJ",
8848            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bl => "BL",
8849            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bm => "BM",
8850            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bn => "BN",
8851            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bo => "BO",
8852            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bq => "BQ",
8853            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Br => "BR",
8854            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bs => "BS",
8855            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bt => "BT",
8856            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bv => "BV",
8857            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bw => "BW",
8858            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::By => "BY",
8859            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Bz => "BZ",
8860            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ca => "CA",
8861            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cd => "CD",
8862            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cf => "CF",
8863            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cg => "CG",
8864            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ch => "CH",
8865            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ci => "CI",
8866            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ck => "CK",
8867            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cl => "CL",
8868            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cm => "CM",
8869            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cn => "CN",
8870            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Co => "CO",
8871            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cr => "CR",
8872            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cv => "CV",
8873            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cw => "CW",
8874            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cy => "CY",
8875            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Cz => "CZ",
8876            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::De => "DE",
8877            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Dj => "DJ",
8878            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Dk => "DK",
8879            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Dm => "DM",
8880            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Do => "DO",
8881            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Dz => "DZ",
8882            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ec => "EC",
8883            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ee => "EE",
8884            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Eg => "EG",
8885            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Eh => "EH",
8886            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Er => "ER",
8887            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Es => "ES",
8888            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Et => "ET",
8889            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Fi => "FI",
8890            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Fj => "FJ",
8891            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Fk => "FK",
8892            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Fo => "FO",
8893            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Fr => "FR",
8894            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ga => "GA",
8895            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gb => "GB",
8896            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gd => "GD",
8897            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ge => "GE",
8898            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gf => "GF",
8899            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gg => "GG",
8900            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gh => "GH",
8901            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gi => "GI",
8902            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gl => "GL",
8903            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gm => "GM",
8904            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gn => "GN",
8905            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gp => "GP",
8906            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gq => "GQ",
8907            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gr => "GR",
8908            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gs => "GS",
8909            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gt => "GT",
8910            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gu => "GU",
8911            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gw => "GW",
8912            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Gy => "GY",
8913            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Hk => "HK",
8914            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Hn => "HN",
8915            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Hr => "HR",
8916            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ht => "HT",
8917            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Hu => "HU",
8918            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Id => "ID",
8919            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ie => "IE",
8920            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Il => "IL",
8921            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Im => "IM",
8922            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::In => "IN",
8923            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Io => "IO",
8924            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Iq => "IQ",
8925            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Is => "IS",
8926            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::It => "IT",
8927            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Je => "JE",
8928            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Jm => "JM",
8929            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Jo => "JO",
8930            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Jp => "JP",
8931            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ke => "KE",
8932            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kg => "KG",
8933            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kh => "KH",
8934            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ki => "KI",
8935            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Km => "KM",
8936            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kn => "KN",
8937            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kr => "KR",
8938            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kw => "KW",
8939            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ky => "KY",
8940            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Kz => "KZ",
8941            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::La => "LA",
8942            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lb => "LB",
8943            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lc => "LC",
8944            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Li => "LI",
8945            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lk => "LK",
8946            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lr => "LR",
8947            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ls => "LS",
8948            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lt => "LT",
8949            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lu => "LU",
8950            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Lv => "LV",
8951            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ly => "LY",
8952            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ma => "MA",
8953            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mc => "MC",
8954            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Md => "MD",
8955            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Me => "ME",
8956            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mf => "MF",
8957            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mg => "MG",
8958            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mk => "MK",
8959            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ml => "ML",
8960            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mm => "MM",
8961            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mn => "MN",
8962            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mo => "MO",
8963            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mq => "MQ",
8964            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mr => "MR",
8965            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ms => "MS",
8966            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mt => "MT",
8967            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mu => "MU",
8968            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mv => "MV",
8969            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mw => "MW",
8970            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mx => "MX",
8971            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::My => "MY",
8972            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Mz => "MZ",
8973            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Na => "NA",
8974            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Nc => "NC",
8975            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ne => "NE",
8976            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ng => "NG",
8977            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ni => "NI",
8978            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Nl => "NL",
8979            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::No => "NO",
8980            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Np => "NP",
8981            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Nr => "NR",
8982            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Nu => "NU",
8983            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Nz => "NZ",
8984            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Om => "OM",
8985            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pa => "PA",
8986            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pe => "PE",
8987            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pf => "PF",
8988            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pg => "PG",
8989            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ph => "PH",
8990            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pk => "PK",
8991            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pl => "PL",
8992            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pm => "PM",
8993            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pn => "PN",
8994            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pr => "PR",
8995            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ps => "PS",
8996            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Pt => "PT",
8997            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Py => "PY",
8998            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Qa => "QA",
8999            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Re => "RE",
9000            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ro => "RO",
9001            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Rs => "RS",
9002            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ru => "RU",
9003            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Rw => "RW",
9004            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sa => "SA",
9005            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sb => "SB",
9006            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sc => "SC",
9007            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Se => "SE",
9008            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sg => "SG",
9009            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sh => "SH",
9010            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Si => "SI",
9011            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sj => "SJ",
9012            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sk => "SK",
9013            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sl => "SL",
9014            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sm => "SM",
9015            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sn => "SN",
9016            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::So => "SO",
9017            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sr => "SR",
9018            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ss => "SS",
9019            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::St => "ST",
9020            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sv => "SV",
9021            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sx => "SX",
9022            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Sz => "SZ",
9023            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ta => "TA",
9024            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tc => "TC",
9025            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Td => "TD",
9026            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tf => "TF",
9027            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tg => "TG",
9028            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Th => "TH",
9029            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tj => "TJ",
9030            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tk => "TK",
9031            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tl => "TL",
9032            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tm => "TM",
9033            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tn => "TN",
9034            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::To => "TO",
9035            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tr => "TR",
9036            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tt => "TT",
9037            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tv => "TV",
9038            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tw => "TW",
9039            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Tz => "TZ",
9040            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ua => "UA",
9041            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ug => "UG",
9042            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Us => "US",
9043            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Uy => "UY",
9044            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Uz => "UZ",
9045            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Va => "VA",
9046            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Vc => "VC",
9047            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ve => "VE",
9048            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Vg => "VG",
9049            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Vn => "VN",
9050            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Vu => "VU",
9051            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Wf => "WF",
9052            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ws => "WS",
9053            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Xk => "XK",
9054            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Ye => "YE",
9055            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Yt => "YT",
9056            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Za => "ZA",
9057            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Zm => "ZM",
9058            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Zw => "ZW",
9059            PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::Zz => "ZZ",
9060        }
9061    }
9062}
9063
9064impl AsRef<str> for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
9065    fn as_ref(&self) -> &str {
9066        self.as_str()
9067    }
9068}
9069
9070impl std::fmt::Display for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
9071    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9072        self.as_str().fmt(f)
9073    }
9074}
9075impl std::default::Default
9076    for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries
9077{
9078    fn default() -> Self {
9079        Self::Ac
9080    }
9081}
9082
9083/// An enum representing the possible values of an `PaymentPagesCheckoutSessionTaxId`'s `type` field.
9084#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9085#[serde(rename_all = "snake_case")]
9086pub enum PaymentPagesCheckoutSessionTaxIdType {
9087    AdNrt,
9088    AeTrn,
9089    ArCuit,
9090    AuAbn,
9091    AuArn,
9092    BgUic,
9093    BoTin,
9094    BrCnpj,
9095    BrCpf,
9096    CaBn,
9097    CaGstHst,
9098    CaPstBc,
9099    CaPstMb,
9100    CaPstSk,
9101    CaQst,
9102    ChVat,
9103    ClTin,
9104    CnTin,
9105    CoNit,
9106    CrTin,
9107    DoRcn,
9108    EcRuc,
9109    EgTin,
9110    EsCif,
9111    EuOssVat,
9112    EuVat,
9113    GbVat,
9114    GeVat,
9115    HkBr,
9116    HuTin,
9117    IdNpwp,
9118    IlVat,
9119    InGst,
9120    IsVat,
9121    JpCn,
9122    JpRn,
9123    JpTrn,
9124    KePin,
9125    KrBrn,
9126    LiUid,
9127    MxRfc,
9128    MyFrp,
9129    MyItn,
9130    MySst,
9131    NoVat,
9132    NzGst,
9133    PeRuc,
9134    PhTin,
9135    RoTin,
9136    RsPib,
9137    RuInn,
9138    RuKpp,
9139    SaVat,
9140    SgGst,
9141    SgUen,
9142    SiTin,
9143    SvNit,
9144    ThVat,
9145    TrTin,
9146    TwVat,
9147    UaVat,
9148    Unknown,
9149    UsEin,
9150    UyRuc,
9151    VeRif,
9152    VnTin,
9153    ZaVat,
9154}
9155
9156impl PaymentPagesCheckoutSessionTaxIdType {
9157    pub fn as_str(self) -> &'static str {
9158        match self {
9159            PaymentPagesCheckoutSessionTaxIdType::AdNrt => "ad_nrt",
9160            PaymentPagesCheckoutSessionTaxIdType::AeTrn => "ae_trn",
9161            PaymentPagesCheckoutSessionTaxIdType::ArCuit => "ar_cuit",
9162            PaymentPagesCheckoutSessionTaxIdType::AuAbn => "au_abn",
9163            PaymentPagesCheckoutSessionTaxIdType::AuArn => "au_arn",
9164            PaymentPagesCheckoutSessionTaxIdType::BgUic => "bg_uic",
9165            PaymentPagesCheckoutSessionTaxIdType::BoTin => "bo_tin",
9166            PaymentPagesCheckoutSessionTaxIdType::BrCnpj => "br_cnpj",
9167            PaymentPagesCheckoutSessionTaxIdType::BrCpf => "br_cpf",
9168            PaymentPagesCheckoutSessionTaxIdType::CaBn => "ca_bn",
9169            PaymentPagesCheckoutSessionTaxIdType::CaGstHst => "ca_gst_hst",
9170            PaymentPagesCheckoutSessionTaxIdType::CaPstBc => "ca_pst_bc",
9171            PaymentPagesCheckoutSessionTaxIdType::CaPstMb => "ca_pst_mb",
9172            PaymentPagesCheckoutSessionTaxIdType::CaPstSk => "ca_pst_sk",
9173            PaymentPagesCheckoutSessionTaxIdType::CaQst => "ca_qst",
9174            PaymentPagesCheckoutSessionTaxIdType::ChVat => "ch_vat",
9175            PaymentPagesCheckoutSessionTaxIdType::ClTin => "cl_tin",
9176            PaymentPagesCheckoutSessionTaxIdType::CnTin => "cn_tin",
9177            PaymentPagesCheckoutSessionTaxIdType::CoNit => "co_nit",
9178            PaymentPagesCheckoutSessionTaxIdType::CrTin => "cr_tin",
9179            PaymentPagesCheckoutSessionTaxIdType::DoRcn => "do_rcn",
9180            PaymentPagesCheckoutSessionTaxIdType::EcRuc => "ec_ruc",
9181            PaymentPagesCheckoutSessionTaxIdType::EgTin => "eg_tin",
9182            PaymentPagesCheckoutSessionTaxIdType::EsCif => "es_cif",
9183            PaymentPagesCheckoutSessionTaxIdType::EuOssVat => "eu_oss_vat",
9184            PaymentPagesCheckoutSessionTaxIdType::EuVat => "eu_vat",
9185            PaymentPagesCheckoutSessionTaxIdType::GbVat => "gb_vat",
9186            PaymentPagesCheckoutSessionTaxIdType::GeVat => "ge_vat",
9187            PaymentPagesCheckoutSessionTaxIdType::HkBr => "hk_br",
9188            PaymentPagesCheckoutSessionTaxIdType::HuTin => "hu_tin",
9189            PaymentPagesCheckoutSessionTaxIdType::IdNpwp => "id_npwp",
9190            PaymentPagesCheckoutSessionTaxIdType::IlVat => "il_vat",
9191            PaymentPagesCheckoutSessionTaxIdType::InGst => "in_gst",
9192            PaymentPagesCheckoutSessionTaxIdType::IsVat => "is_vat",
9193            PaymentPagesCheckoutSessionTaxIdType::JpCn => "jp_cn",
9194            PaymentPagesCheckoutSessionTaxIdType::JpRn => "jp_rn",
9195            PaymentPagesCheckoutSessionTaxIdType::JpTrn => "jp_trn",
9196            PaymentPagesCheckoutSessionTaxIdType::KePin => "ke_pin",
9197            PaymentPagesCheckoutSessionTaxIdType::KrBrn => "kr_brn",
9198            PaymentPagesCheckoutSessionTaxIdType::LiUid => "li_uid",
9199            PaymentPagesCheckoutSessionTaxIdType::MxRfc => "mx_rfc",
9200            PaymentPagesCheckoutSessionTaxIdType::MyFrp => "my_frp",
9201            PaymentPagesCheckoutSessionTaxIdType::MyItn => "my_itn",
9202            PaymentPagesCheckoutSessionTaxIdType::MySst => "my_sst",
9203            PaymentPagesCheckoutSessionTaxIdType::NoVat => "no_vat",
9204            PaymentPagesCheckoutSessionTaxIdType::NzGst => "nz_gst",
9205            PaymentPagesCheckoutSessionTaxIdType::PeRuc => "pe_ruc",
9206            PaymentPagesCheckoutSessionTaxIdType::PhTin => "ph_tin",
9207            PaymentPagesCheckoutSessionTaxIdType::RoTin => "ro_tin",
9208            PaymentPagesCheckoutSessionTaxIdType::RsPib => "rs_pib",
9209            PaymentPagesCheckoutSessionTaxIdType::RuInn => "ru_inn",
9210            PaymentPagesCheckoutSessionTaxIdType::RuKpp => "ru_kpp",
9211            PaymentPagesCheckoutSessionTaxIdType::SaVat => "sa_vat",
9212            PaymentPagesCheckoutSessionTaxIdType::SgGst => "sg_gst",
9213            PaymentPagesCheckoutSessionTaxIdType::SgUen => "sg_uen",
9214            PaymentPagesCheckoutSessionTaxIdType::SiTin => "si_tin",
9215            PaymentPagesCheckoutSessionTaxIdType::SvNit => "sv_nit",
9216            PaymentPagesCheckoutSessionTaxIdType::ThVat => "th_vat",
9217            PaymentPagesCheckoutSessionTaxIdType::TrTin => "tr_tin",
9218            PaymentPagesCheckoutSessionTaxIdType::TwVat => "tw_vat",
9219            PaymentPagesCheckoutSessionTaxIdType::UaVat => "ua_vat",
9220            PaymentPagesCheckoutSessionTaxIdType::Unknown => "unknown",
9221            PaymentPagesCheckoutSessionTaxIdType::UsEin => "us_ein",
9222            PaymentPagesCheckoutSessionTaxIdType::UyRuc => "uy_ruc",
9223            PaymentPagesCheckoutSessionTaxIdType::VeRif => "ve_rif",
9224            PaymentPagesCheckoutSessionTaxIdType::VnTin => "vn_tin",
9225            PaymentPagesCheckoutSessionTaxIdType::ZaVat => "za_vat",
9226        }
9227    }
9228}
9229
9230impl AsRef<str> for PaymentPagesCheckoutSessionTaxIdType {
9231    fn as_ref(&self) -> &str {
9232        self.as_str()
9233    }
9234}
9235
9236impl std::fmt::Display for PaymentPagesCheckoutSessionTaxIdType {
9237    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9238        self.as_str().fmt(f)
9239    }
9240}
9241impl std::default::Default for PaymentPagesCheckoutSessionTaxIdType {
9242    fn default() -> Self {
9243        Self::AdNrt
9244    }
9245}