stripe/resources/generated/
checkout_session.rs

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