Skip to main content

stripe_payment/payment_method_configuration/
requests.rs

1use stripe_client_core::{
2    RequestBuilder, StripeBlockingClient, StripeClient, StripeMethod, StripeRequest,
3};
4
5#[derive(Clone, Eq, PartialEq)]
6#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7#[derive(serde::Serialize)]
8struct ListPaymentMethodConfigurationBuilder {
9    #[serde(skip_serializing_if = "Option::is_none")]
10    application: Option<String>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    ending_before: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    expand: Option<Vec<String>>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    limit: Option<i64>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    starting_after: Option<String>,
19}
20#[cfg(feature = "redact-generated-debug")]
21impl std::fmt::Debug for ListPaymentMethodConfigurationBuilder {
22    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
23        f.debug_struct("ListPaymentMethodConfigurationBuilder").finish_non_exhaustive()
24    }
25}
26impl ListPaymentMethodConfigurationBuilder {
27    fn new() -> Self {
28        Self {
29            application: None,
30            ending_before: None,
31            expand: None,
32            limit: None,
33            starting_after: None,
34        }
35    }
36}
37/// List payment method configurations
38#[derive(Clone)]
39#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
40#[derive(serde::Serialize)]
41pub struct ListPaymentMethodConfiguration {
42    inner: ListPaymentMethodConfigurationBuilder,
43}
44#[cfg(feature = "redact-generated-debug")]
45impl std::fmt::Debug for ListPaymentMethodConfiguration {
46    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
47        f.debug_struct("ListPaymentMethodConfiguration").finish_non_exhaustive()
48    }
49}
50impl ListPaymentMethodConfiguration {
51    /// Construct a new `ListPaymentMethodConfiguration`.
52    pub fn new() -> Self {
53        Self { inner: ListPaymentMethodConfigurationBuilder::new() }
54    }
55    /// The Connect application to filter by.
56    pub fn application(mut self, application: impl Into<String>) -> Self {
57        self.inner.application = Some(application.into());
58        self
59    }
60    /// A cursor for use in pagination.
61    /// `ending_before` is an object ID that defines your place in the list.
62    /// 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.
63    pub fn ending_before(mut self, ending_before: impl Into<String>) -> Self {
64        self.inner.ending_before = Some(ending_before.into());
65        self
66    }
67    /// Specifies which fields in the response should be expanded.
68    pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
69        self.inner.expand = Some(expand.into());
70        self
71    }
72    /// A limit on the number of objects to be returned.
73    /// Limit can range between 1 and 100, and the default is 10.
74    pub fn limit(mut self, limit: impl Into<i64>) -> Self {
75        self.inner.limit = Some(limit.into());
76        self
77    }
78    /// A cursor for use in pagination.
79    /// `starting_after` is an object ID that defines your place in the list.
80    /// 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.
81    pub fn starting_after(mut self, starting_after: impl Into<String>) -> Self {
82        self.inner.starting_after = Some(starting_after.into());
83        self
84    }
85}
86impl Default for ListPaymentMethodConfiguration {
87    fn default() -> Self {
88        Self::new()
89    }
90}
91impl ListPaymentMethodConfiguration {
92    /// Send the request and return the deserialized response.
93    pub async fn send<C: StripeClient>(
94        &self,
95        client: &C,
96    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
97        self.customize().send(client).await
98    }
99
100    /// Send the request and return the deserialized response, blocking until completion.
101    pub fn send_blocking<C: StripeBlockingClient>(
102        &self,
103        client: &C,
104    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
105        self.customize().send_blocking(client)
106    }
107
108    pub fn paginate(
109        &self,
110    ) -> stripe_client_core::ListPaginator<
111        stripe_types::List<stripe_payment::PaymentMethodConfiguration>,
112    > {
113        stripe_client_core::ListPaginator::new_list("/payment_method_configurations", &self.inner)
114    }
115}
116
117impl StripeRequest for ListPaymentMethodConfiguration {
118    type Output = stripe_types::List<stripe_payment::PaymentMethodConfiguration>;
119
120    fn build(&self) -> RequestBuilder {
121        RequestBuilder::new(StripeMethod::Get, "/payment_method_configurations").query(&self.inner)
122    }
123}
124#[derive(Clone, Eq, PartialEq)]
125#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
126#[derive(serde::Serialize)]
127struct RetrievePaymentMethodConfigurationBuilder {
128    #[serde(skip_serializing_if = "Option::is_none")]
129    expand: Option<Vec<String>>,
130}
131#[cfg(feature = "redact-generated-debug")]
132impl std::fmt::Debug for RetrievePaymentMethodConfigurationBuilder {
133    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
134        f.debug_struct("RetrievePaymentMethodConfigurationBuilder").finish_non_exhaustive()
135    }
136}
137impl RetrievePaymentMethodConfigurationBuilder {
138    fn new() -> Self {
139        Self { expand: None }
140    }
141}
142/// Retrieve payment method configuration
143#[derive(Clone)]
144#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
145#[derive(serde::Serialize)]
146pub struct RetrievePaymentMethodConfiguration {
147    inner: RetrievePaymentMethodConfigurationBuilder,
148    configuration: stripe_payment::PaymentMethodConfigurationId,
149}
150#[cfg(feature = "redact-generated-debug")]
151impl std::fmt::Debug for RetrievePaymentMethodConfiguration {
152    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
153        f.debug_struct("RetrievePaymentMethodConfiguration").finish_non_exhaustive()
154    }
155}
156impl RetrievePaymentMethodConfiguration {
157    /// Construct a new `RetrievePaymentMethodConfiguration`.
158    pub fn new(configuration: impl Into<stripe_payment::PaymentMethodConfigurationId>) -> Self {
159        Self {
160            configuration: configuration.into(),
161            inner: RetrievePaymentMethodConfigurationBuilder::new(),
162        }
163    }
164    /// Specifies which fields in the response should be expanded.
165    pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
166        self.inner.expand = Some(expand.into());
167        self
168    }
169}
170impl RetrievePaymentMethodConfiguration {
171    /// Send the request and return the deserialized response.
172    pub async fn send<C: StripeClient>(
173        &self,
174        client: &C,
175    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
176        self.customize().send(client).await
177    }
178
179    /// Send the request and return the deserialized response, blocking until completion.
180    pub fn send_blocking<C: StripeBlockingClient>(
181        &self,
182        client: &C,
183    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
184        self.customize().send_blocking(client)
185    }
186}
187
188impl StripeRequest for RetrievePaymentMethodConfiguration {
189    type Output = stripe_payment::PaymentMethodConfiguration;
190
191    fn build(&self) -> RequestBuilder {
192        let configuration = &self.configuration;
193        RequestBuilder::new(
194            StripeMethod::Get,
195            format!("/payment_method_configurations/{configuration}"),
196        )
197        .query(&self.inner)
198    }
199}
200#[derive(Clone, Eq, PartialEq)]
201#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
202#[derive(serde::Serialize)]
203struct CreatePaymentMethodConfigurationBuilder {
204    #[serde(skip_serializing_if = "Option::is_none")]
205    acss_debit: Option<CreatePaymentMethodConfigurationAcssDebit>,
206    #[serde(skip_serializing_if = "Option::is_none")]
207    affirm: Option<CreatePaymentMethodConfigurationAffirm>,
208    #[serde(skip_serializing_if = "Option::is_none")]
209    afterpay_clearpay: Option<CreatePaymentMethodConfigurationAfterpayClearpay>,
210    #[serde(skip_serializing_if = "Option::is_none")]
211    alipay: Option<CreatePaymentMethodConfigurationAlipay>,
212    #[serde(skip_serializing_if = "Option::is_none")]
213    alma: Option<CreatePaymentMethodConfigurationAlma>,
214    #[serde(skip_serializing_if = "Option::is_none")]
215    amazon_pay: Option<CreatePaymentMethodConfigurationAmazonPay>,
216    #[serde(skip_serializing_if = "Option::is_none")]
217    apple_pay: Option<CreatePaymentMethodConfigurationApplePay>,
218    #[serde(skip_serializing_if = "Option::is_none")]
219    apple_pay_later: Option<CreatePaymentMethodConfigurationApplePayLater>,
220    #[serde(skip_serializing_if = "Option::is_none")]
221    au_becs_debit: Option<CreatePaymentMethodConfigurationAuBecsDebit>,
222    #[serde(skip_serializing_if = "Option::is_none")]
223    bacs_debit: Option<CreatePaymentMethodConfigurationBacsDebit>,
224    #[serde(skip_serializing_if = "Option::is_none")]
225    bancontact: Option<CreatePaymentMethodConfigurationBancontact>,
226    #[serde(skip_serializing_if = "Option::is_none")]
227    billie: Option<CreatePaymentMethodConfigurationBillie>,
228    #[serde(skip_serializing_if = "Option::is_none")]
229    blik: Option<CreatePaymentMethodConfigurationBlik>,
230    #[serde(skip_serializing_if = "Option::is_none")]
231    boleto: Option<CreatePaymentMethodConfigurationBoleto>,
232    #[serde(skip_serializing_if = "Option::is_none")]
233    card: Option<CreatePaymentMethodConfigurationCard>,
234    #[serde(skip_serializing_if = "Option::is_none")]
235    cartes_bancaires: Option<CreatePaymentMethodConfigurationCartesBancaires>,
236    #[serde(skip_serializing_if = "Option::is_none")]
237    cashapp: Option<CreatePaymentMethodConfigurationCashapp>,
238    #[serde(skip_serializing_if = "Option::is_none")]
239    crypto: Option<CreatePaymentMethodConfigurationCrypto>,
240    #[serde(skip_serializing_if = "Option::is_none")]
241    customer_balance: Option<CreatePaymentMethodConfigurationCustomerBalance>,
242    #[serde(skip_serializing_if = "Option::is_none")]
243    eps: Option<CreatePaymentMethodConfigurationEps>,
244    #[serde(skip_serializing_if = "Option::is_none")]
245    expand: Option<Vec<String>>,
246    #[serde(skip_serializing_if = "Option::is_none")]
247    fpx: Option<CreatePaymentMethodConfigurationFpx>,
248    #[serde(skip_serializing_if = "Option::is_none")]
249    fr_meal_voucher_conecs: Option<CreatePaymentMethodConfigurationFrMealVoucherConecs>,
250    #[serde(skip_serializing_if = "Option::is_none")]
251    giropay: Option<CreatePaymentMethodConfigurationGiropay>,
252    #[serde(skip_serializing_if = "Option::is_none")]
253    google_pay: Option<CreatePaymentMethodConfigurationGooglePay>,
254    #[serde(skip_serializing_if = "Option::is_none")]
255    grabpay: Option<CreatePaymentMethodConfigurationGrabpay>,
256    #[serde(skip_serializing_if = "Option::is_none")]
257    ideal: Option<CreatePaymentMethodConfigurationIdeal>,
258    #[serde(skip_serializing_if = "Option::is_none")]
259    jcb: Option<CreatePaymentMethodConfigurationJcb>,
260    #[serde(skip_serializing_if = "Option::is_none")]
261    kakao_pay: Option<CreatePaymentMethodConfigurationKakaoPay>,
262    #[serde(skip_serializing_if = "Option::is_none")]
263    klarna: Option<CreatePaymentMethodConfigurationKlarna>,
264    #[serde(skip_serializing_if = "Option::is_none")]
265    konbini: Option<CreatePaymentMethodConfigurationKonbini>,
266    #[serde(skip_serializing_if = "Option::is_none")]
267    kr_card: Option<CreatePaymentMethodConfigurationKrCard>,
268    #[serde(skip_serializing_if = "Option::is_none")]
269    link: Option<CreatePaymentMethodConfigurationLink>,
270    #[serde(skip_serializing_if = "Option::is_none")]
271    mb_way: Option<CreatePaymentMethodConfigurationMbWay>,
272    #[serde(skip_serializing_if = "Option::is_none")]
273    mobilepay: Option<CreatePaymentMethodConfigurationMobilepay>,
274    #[serde(skip_serializing_if = "Option::is_none")]
275    multibanco: Option<CreatePaymentMethodConfigurationMultibanco>,
276    #[serde(skip_serializing_if = "Option::is_none")]
277    name: Option<String>,
278    #[serde(skip_serializing_if = "Option::is_none")]
279    naver_pay: Option<CreatePaymentMethodConfigurationNaverPay>,
280    #[serde(skip_serializing_if = "Option::is_none")]
281    nz_bank_account: Option<CreatePaymentMethodConfigurationNzBankAccount>,
282    #[serde(skip_serializing_if = "Option::is_none")]
283    oxxo: Option<CreatePaymentMethodConfigurationOxxo>,
284    #[serde(skip_serializing_if = "Option::is_none")]
285    p24: Option<CreatePaymentMethodConfigurationP24>,
286    #[serde(skip_serializing_if = "Option::is_none")]
287    parent: Option<String>,
288    #[serde(skip_serializing_if = "Option::is_none")]
289    pay_by_bank: Option<CreatePaymentMethodConfigurationPayByBank>,
290    #[serde(skip_serializing_if = "Option::is_none")]
291    payco: Option<CreatePaymentMethodConfigurationPayco>,
292    #[serde(skip_serializing_if = "Option::is_none")]
293    paynow: Option<CreatePaymentMethodConfigurationPaynow>,
294    #[serde(skip_serializing_if = "Option::is_none")]
295    paypal: Option<CreatePaymentMethodConfigurationPaypal>,
296    #[serde(skip_serializing_if = "Option::is_none")]
297    payto: Option<CreatePaymentMethodConfigurationPayto>,
298    #[serde(skip_serializing_if = "Option::is_none")]
299    pix: Option<CreatePaymentMethodConfigurationPix>,
300    #[serde(skip_serializing_if = "Option::is_none")]
301    promptpay: Option<CreatePaymentMethodConfigurationPromptpay>,
302    #[serde(skip_serializing_if = "Option::is_none")]
303    revolut_pay: Option<CreatePaymentMethodConfigurationRevolutPay>,
304    #[serde(skip_serializing_if = "Option::is_none")]
305    samsung_pay: Option<CreatePaymentMethodConfigurationSamsungPay>,
306    #[serde(skip_serializing_if = "Option::is_none")]
307    satispay: Option<CreatePaymentMethodConfigurationSatispay>,
308    #[serde(skip_serializing_if = "Option::is_none")]
309    sepa_debit: Option<CreatePaymentMethodConfigurationSepaDebit>,
310    #[serde(skip_serializing_if = "Option::is_none")]
311    sofort: Option<CreatePaymentMethodConfigurationSofort>,
312    #[serde(skip_serializing_if = "Option::is_none")]
313    swish: Option<CreatePaymentMethodConfigurationSwish>,
314    #[serde(skip_serializing_if = "Option::is_none")]
315    twint: Option<CreatePaymentMethodConfigurationTwint>,
316    #[serde(skip_serializing_if = "Option::is_none")]
317    upi: Option<CreatePaymentMethodConfigurationUpi>,
318    #[serde(skip_serializing_if = "Option::is_none")]
319    us_bank_account: Option<CreatePaymentMethodConfigurationUsBankAccount>,
320    #[serde(skip_serializing_if = "Option::is_none")]
321    wechat_pay: Option<CreatePaymentMethodConfigurationWechatPay>,
322    #[serde(skip_serializing_if = "Option::is_none")]
323    zip: Option<CreatePaymentMethodConfigurationZip>,
324}
325#[cfg(feature = "redact-generated-debug")]
326impl std::fmt::Debug for CreatePaymentMethodConfigurationBuilder {
327    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
328        f.debug_struct("CreatePaymentMethodConfigurationBuilder").finish_non_exhaustive()
329    }
330}
331impl CreatePaymentMethodConfigurationBuilder {
332    fn new() -> Self {
333        Self {
334            acss_debit: None,
335            affirm: None,
336            afterpay_clearpay: None,
337            alipay: None,
338            alma: None,
339            amazon_pay: None,
340            apple_pay: None,
341            apple_pay_later: None,
342            au_becs_debit: None,
343            bacs_debit: None,
344            bancontact: None,
345            billie: None,
346            blik: None,
347            boleto: None,
348            card: None,
349            cartes_bancaires: None,
350            cashapp: None,
351            crypto: None,
352            customer_balance: None,
353            eps: None,
354            expand: None,
355            fpx: None,
356            fr_meal_voucher_conecs: None,
357            giropay: None,
358            google_pay: None,
359            grabpay: None,
360            ideal: None,
361            jcb: None,
362            kakao_pay: None,
363            klarna: None,
364            konbini: None,
365            kr_card: None,
366            link: None,
367            mb_way: None,
368            mobilepay: None,
369            multibanco: None,
370            name: None,
371            naver_pay: None,
372            nz_bank_account: None,
373            oxxo: None,
374            p24: None,
375            parent: None,
376            pay_by_bank: None,
377            payco: None,
378            paynow: None,
379            paypal: None,
380            payto: None,
381            pix: None,
382            promptpay: None,
383            revolut_pay: None,
384            samsung_pay: None,
385            satispay: None,
386            sepa_debit: None,
387            sofort: None,
388            swish: None,
389            twint: None,
390            upi: None,
391            us_bank_account: None,
392            wechat_pay: None,
393            zip: None,
394        }
395    }
396}
397/// Canadian pre-authorized debit payments, check this [page](https://docs.stripe.com/payments/acss-debit) for more details like country availability.
398#[derive(Clone, Eq, PartialEq)]
399#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
400#[derive(serde::Serialize)]
401pub struct CreatePaymentMethodConfigurationAcssDebit {
402    /// Whether or not the payment method should be displayed.
403    #[serde(skip_serializing_if = "Option::is_none")]
404    pub display_preference: Option<CreatePaymentMethodConfigurationAcssDebitDisplayPreference>,
405}
406#[cfg(feature = "redact-generated-debug")]
407impl std::fmt::Debug for CreatePaymentMethodConfigurationAcssDebit {
408    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
409        f.debug_struct("CreatePaymentMethodConfigurationAcssDebit").finish_non_exhaustive()
410    }
411}
412impl CreatePaymentMethodConfigurationAcssDebit {
413    pub fn new() -> Self {
414        Self { display_preference: None }
415    }
416}
417impl Default for CreatePaymentMethodConfigurationAcssDebit {
418    fn default() -> Self {
419        Self::new()
420    }
421}
422/// Whether or not the payment method should be displayed.
423#[derive(Clone, Eq, PartialEq)]
424#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
425#[derive(serde::Serialize)]
426pub struct CreatePaymentMethodConfigurationAcssDebitDisplayPreference {
427    /// The account's preference for whether or not to display this payment method.
428    #[serde(skip_serializing_if = "Option::is_none")]
429    pub preference: Option<CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference>,
430}
431#[cfg(feature = "redact-generated-debug")]
432impl std::fmt::Debug for CreatePaymentMethodConfigurationAcssDebitDisplayPreference {
433    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
434        f.debug_struct("CreatePaymentMethodConfigurationAcssDebitDisplayPreference")
435            .finish_non_exhaustive()
436    }
437}
438impl CreatePaymentMethodConfigurationAcssDebitDisplayPreference {
439    pub fn new() -> Self {
440        Self { preference: None }
441    }
442}
443impl Default for CreatePaymentMethodConfigurationAcssDebitDisplayPreference {
444    fn default() -> Self {
445        Self::new()
446    }
447}
448/// The account's preference for whether or not to display this payment method.
449#[derive(Clone, Eq, PartialEq)]
450#[non_exhaustive]
451pub enum CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
452    None,
453    Off,
454    On,
455    /// An unrecognized value from Stripe. Should not be used as a request parameter.
456    Unknown(String),
457}
458impl CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
459    pub fn as_str(&self) -> &str {
460        use CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference::*;
461        match self {
462            None => "none",
463            Off => "off",
464            On => "on",
465            Unknown(v) => v,
466        }
467    }
468}
469
470impl std::str::FromStr for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
471    type Err = std::convert::Infallible;
472    fn from_str(s: &str) -> Result<Self, Self::Err> {
473        use CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference::*;
474        match s {
475            "none" => Ok(None),
476            "off" => Ok(Off),
477            "on" => Ok(On),
478            v => {
479                tracing::warn!(
480                    "Unknown value '{}' for enum '{}'",
481                    v,
482                    "CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference"
483                );
484                Ok(Unknown(v.to_owned()))
485            }
486        }
487    }
488}
489impl std::fmt::Display for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
490    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
491        f.write_str(self.as_str())
492    }
493}
494
495#[cfg(not(feature = "redact-generated-debug"))]
496impl std::fmt::Debug for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
497    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
498        f.write_str(self.as_str())
499    }
500}
501#[cfg(feature = "redact-generated-debug")]
502impl std::fmt::Debug for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
503    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
504        f.debug_struct(stringify!(
505            CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference
506        ))
507        .finish_non_exhaustive()
508    }
509}
510impl serde::Serialize for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
511    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
512    where
513        S: serde::Serializer,
514    {
515        serializer.serialize_str(self.as_str())
516    }
517}
518#[cfg(feature = "deserialize")]
519impl<'de> serde::Deserialize<'de>
520    for CreatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference
521{
522    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
523        use std::str::FromStr;
524        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
525        Ok(Self::from_str(&s).expect("infallible"))
526    }
527}
528/// [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments.
529/// Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest.
530/// Check this [page](https://docs.stripe.com/payments/affirm) for more details like country availability.
531#[derive(Clone, Eq, PartialEq)]
532#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
533#[derive(serde::Serialize)]
534pub struct CreatePaymentMethodConfigurationAffirm {
535    /// Whether or not the payment method should be displayed.
536    #[serde(skip_serializing_if = "Option::is_none")]
537    pub display_preference: Option<CreatePaymentMethodConfigurationAffirmDisplayPreference>,
538}
539#[cfg(feature = "redact-generated-debug")]
540impl std::fmt::Debug for CreatePaymentMethodConfigurationAffirm {
541    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
542        f.debug_struct("CreatePaymentMethodConfigurationAffirm").finish_non_exhaustive()
543    }
544}
545impl CreatePaymentMethodConfigurationAffirm {
546    pub fn new() -> Self {
547        Self { display_preference: None }
548    }
549}
550impl Default for CreatePaymentMethodConfigurationAffirm {
551    fn default() -> Self {
552        Self::new()
553    }
554}
555/// Whether or not the payment method should be displayed.
556#[derive(Clone, Eq, PartialEq)]
557#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
558#[derive(serde::Serialize)]
559pub struct CreatePaymentMethodConfigurationAffirmDisplayPreference {
560    /// The account's preference for whether or not to display this payment method.
561    #[serde(skip_serializing_if = "Option::is_none")]
562    pub preference: Option<CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference>,
563}
564#[cfg(feature = "redact-generated-debug")]
565impl std::fmt::Debug for CreatePaymentMethodConfigurationAffirmDisplayPreference {
566    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
567        f.debug_struct("CreatePaymentMethodConfigurationAffirmDisplayPreference")
568            .finish_non_exhaustive()
569    }
570}
571impl CreatePaymentMethodConfigurationAffirmDisplayPreference {
572    pub fn new() -> Self {
573        Self { preference: None }
574    }
575}
576impl Default for CreatePaymentMethodConfigurationAffirmDisplayPreference {
577    fn default() -> Self {
578        Self::new()
579    }
580}
581/// The account's preference for whether or not to display this payment method.
582#[derive(Clone, Eq, PartialEq)]
583#[non_exhaustive]
584pub enum CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
585    None,
586    Off,
587    On,
588    /// An unrecognized value from Stripe. Should not be used as a request parameter.
589    Unknown(String),
590}
591impl CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
592    pub fn as_str(&self) -> &str {
593        use CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference::*;
594        match self {
595            None => "none",
596            Off => "off",
597            On => "on",
598            Unknown(v) => v,
599        }
600    }
601}
602
603impl std::str::FromStr for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
604    type Err = std::convert::Infallible;
605    fn from_str(s: &str) -> Result<Self, Self::Err> {
606        use CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference::*;
607        match s {
608            "none" => Ok(None),
609            "off" => Ok(Off),
610            "on" => Ok(On),
611            v => {
612                tracing::warn!(
613                    "Unknown value '{}' for enum '{}'",
614                    v,
615                    "CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference"
616                );
617                Ok(Unknown(v.to_owned()))
618            }
619        }
620    }
621}
622impl std::fmt::Display for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
623    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
624        f.write_str(self.as_str())
625    }
626}
627
628#[cfg(not(feature = "redact-generated-debug"))]
629impl std::fmt::Debug for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
630    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
631        f.write_str(self.as_str())
632    }
633}
634#[cfg(feature = "redact-generated-debug")]
635impl std::fmt::Debug for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
636    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
637        f.debug_struct(stringify!(
638            CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference
639        ))
640        .finish_non_exhaustive()
641    }
642}
643impl serde::Serialize for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
644    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
645    where
646        S: serde::Serializer,
647    {
648        serializer.serialize_str(self.as_str())
649    }
650}
651#[cfg(feature = "deserialize")]
652impl<'de> serde::Deserialize<'de>
653    for CreatePaymentMethodConfigurationAffirmDisplayPreferencePreference
654{
655    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
656        use std::str::FromStr;
657        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
658        Ok(Self::from_str(&s).expect("infallible"))
659    }
660}
661/// Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://docs.stripe.com/payments/afterpay-clearpay) for more details like country availability.
662/// Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.
663#[derive(Clone, Eq, PartialEq)]
664#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
665#[derive(serde::Serialize)]
666pub struct CreatePaymentMethodConfigurationAfterpayClearpay {
667    /// Whether or not the payment method should be displayed.
668    #[serde(skip_serializing_if = "Option::is_none")]
669    pub display_preference:
670        Option<CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference>,
671}
672#[cfg(feature = "redact-generated-debug")]
673impl std::fmt::Debug for CreatePaymentMethodConfigurationAfterpayClearpay {
674    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
675        f.debug_struct("CreatePaymentMethodConfigurationAfterpayClearpay").finish_non_exhaustive()
676    }
677}
678impl CreatePaymentMethodConfigurationAfterpayClearpay {
679    pub fn new() -> Self {
680        Self { display_preference: None }
681    }
682}
683impl Default for CreatePaymentMethodConfigurationAfterpayClearpay {
684    fn default() -> Self {
685        Self::new()
686    }
687}
688/// Whether or not the payment method should be displayed.
689#[derive(Clone, Eq, PartialEq)]
690#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
691#[derive(serde::Serialize)]
692pub struct CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
693    /// The account's preference for whether or not to display this payment method.
694    #[serde(skip_serializing_if = "Option::is_none")]
695    pub preference:
696        Option<CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference>,
697}
698#[cfg(feature = "redact-generated-debug")]
699impl std::fmt::Debug for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
700    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
701        f.debug_struct("CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference")
702            .finish_non_exhaustive()
703    }
704}
705impl CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
706    pub fn new() -> Self {
707        Self { preference: None }
708    }
709}
710impl Default for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
711    fn default() -> Self {
712        Self::new()
713    }
714}
715/// The account's preference for whether or not to display this payment method.
716#[derive(Clone, Eq, PartialEq)]
717#[non_exhaustive]
718pub enum CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference {
719    None,
720    Off,
721    On,
722    /// An unrecognized value from Stripe. Should not be used as a request parameter.
723    Unknown(String),
724}
725impl CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference {
726    pub fn as_str(&self) -> &str {
727        use CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference::*;
728        match self {
729            None => "none",
730            Off => "off",
731            On => "on",
732            Unknown(v) => v,
733        }
734    }
735}
736
737impl std::str::FromStr
738    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
739{
740    type Err = std::convert::Infallible;
741    fn from_str(s: &str) -> Result<Self, Self::Err> {
742        use CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference::*;
743        match s {
744            "none" => Ok(None),
745            "off" => Ok(Off),
746            "on" => Ok(On),
747            v => {
748                tracing::warn!(
749                    "Unknown value '{}' for enum '{}'",
750                    v,
751                    "CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference"
752                );
753                Ok(Unknown(v.to_owned()))
754            }
755        }
756    }
757}
758impl std::fmt::Display
759    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
760{
761    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
762        f.write_str(self.as_str())
763    }
764}
765
766#[cfg(not(feature = "redact-generated-debug"))]
767impl std::fmt::Debug
768    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
769{
770    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
771        f.write_str(self.as_str())
772    }
773}
774#[cfg(feature = "redact-generated-debug")]
775impl std::fmt::Debug
776    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
777{
778    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
779        f.debug_struct(stringify!(
780            CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
781        ))
782        .finish_non_exhaustive()
783    }
784}
785impl serde::Serialize
786    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
787{
788    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
789    where
790        S: serde::Serializer,
791    {
792        serializer.serialize_str(self.as_str())
793    }
794}
795#[cfg(feature = "deserialize")]
796impl<'de> serde::Deserialize<'de>
797    for CreatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
798{
799    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
800        use std::str::FromStr;
801        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
802        Ok(Self::from_str(&s).expect("infallible"))
803    }
804}
805/// Alipay is a digital wallet in China that has more than a billion active users worldwide.
806/// Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app.
807/// Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials.
808/// Check this [page](https://docs.stripe.com/payments/alipay) for more details.
809#[derive(Clone, Eq, PartialEq)]
810#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
811#[derive(serde::Serialize)]
812pub struct CreatePaymentMethodConfigurationAlipay {
813    /// Whether or not the payment method should be displayed.
814    #[serde(skip_serializing_if = "Option::is_none")]
815    pub display_preference: Option<CreatePaymentMethodConfigurationAlipayDisplayPreference>,
816}
817#[cfg(feature = "redact-generated-debug")]
818impl std::fmt::Debug for CreatePaymentMethodConfigurationAlipay {
819    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
820        f.debug_struct("CreatePaymentMethodConfigurationAlipay").finish_non_exhaustive()
821    }
822}
823impl CreatePaymentMethodConfigurationAlipay {
824    pub fn new() -> Self {
825        Self { display_preference: None }
826    }
827}
828impl Default for CreatePaymentMethodConfigurationAlipay {
829    fn default() -> Self {
830        Self::new()
831    }
832}
833/// Whether or not the payment method should be displayed.
834#[derive(Clone, Eq, PartialEq)]
835#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
836#[derive(serde::Serialize)]
837pub struct CreatePaymentMethodConfigurationAlipayDisplayPreference {
838    /// The account's preference for whether or not to display this payment method.
839    #[serde(skip_serializing_if = "Option::is_none")]
840    pub preference: Option<CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference>,
841}
842#[cfg(feature = "redact-generated-debug")]
843impl std::fmt::Debug for CreatePaymentMethodConfigurationAlipayDisplayPreference {
844    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
845        f.debug_struct("CreatePaymentMethodConfigurationAlipayDisplayPreference")
846            .finish_non_exhaustive()
847    }
848}
849impl CreatePaymentMethodConfigurationAlipayDisplayPreference {
850    pub fn new() -> Self {
851        Self { preference: None }
852    }
853}
854impl Default for CreatePaymentMethodConfigurationAlipayDisplayPreference {
855    fn default() -> Self {
856        Self::new()
857    }
858}
859/// The account's preference for whether or not to display this payment method.
860#[derive(Clone, Eq, PartialEq)]
861#[non_exhaustive]
862pub enum CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
863    None,
864    Off,
865    On,
866    /// An unrecognized value from Stripe. Should not be used as a request parameter.
867    Unknown(String),
868}
869impl CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
870    pub fn as_str(&self) -> &str {
871        use CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference::*;
872        match self {
873            None => "none",
874            Off => "off",
875            On => "on",
876            Unknown(v) => v,
877        }
878    }
879}
880
881impl std::str::FromStr for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
882    type Err = std::convert::Infallible;
883    fn from_str(s: &str) -> Result<Self, Self::Err> {
884        use CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference::*;
885        match s {
886            "none" => Ok(None),
887            "off" => Ok(Off),
888            "on" => Ok(On),
889            v => {
890                tracing::warn!(
891                    "Unknown value '{}' for enum '{}'",
892                    v,
893                    "CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference"
894                );
895                Ok(Unknown(v.to_owned()))
896            }
897        }
898    }
899}
900impl std::fmt::Display for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
901    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
902        f.write_str(self.as_str())
903    }
904}
905
906#[cfg(not(feature = "redact-generated-debug"))]
907impl std::fmt::Debug for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
908    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
909        f.write_str(self.as_str())
910    }
911}
912#[cfg(feature = "redact-generated-debug")]
913impl std::fmt::Debug for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
914    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
915        f.debug_struct(stringify!(
916            CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference
917        ))
918        .finish_non_exhaustive()
919    }
920}
921impl serde::Serialize for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
922    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
923    where
924        S: serde::Serializer,
925    {
926        serializer.serialize_str(self.as_str())
927    }
928}
929#[cfg(feature = "deserialize")]
930impl<'de> serde::Deserialize<'de>
931    for CreatePaymentMethodConfigurationAlipayDisplayPreferencePreference
932{
933    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
934        use std::str::FromStr;
935        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
936        Ok(Self::from_str(&s).expect("infallible"))
937    }
938}
939/// Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments.
940#[derive(Clone, Eq, PartialEq)]
941#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
942#[derive(serde::Serialize)]
943pub struct CreatePaymentMethodConfigurationAlma {
944    /// Whether or not the payment method should be displayed.
945    #[serde(skip_serializing_if = "Option::is_none")]
946    pub display_preference: Option<CreatePaymentMethodConfigurationAlmaDisplayPreference>,
947}
948#[cfg(feature = "redact-generated-debug")]
949impl std::fmt::Debug for CreatePaymentMethodConfigurationAlma {
950    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
951        f.debug_struct("CreatePaymentMethodConfigurationAlma").finish_non_exhaustive()
952    }
953}
954impl CreatePaymentMethodConfigurationAlma {
955    pub fn new() -> Self {
956        Self { display_preference: None }
957    }
958}
959impl Default for CreatePaymentMethodConfigurationAlma {
960    fn default() -> Self {
961        Self::new()
962    }
963}
964/// Whether or not the payment method should be displayed.
965#[derive(Clone, Eq, PartialEq)]
966#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
967#[derive(serde::Serialize)]
968pub struct CreatePaymentMethodConfigurationAlmaDisplayPreference {
969    /// The account's preference for whether or not to display this payment method.
970    #[serde(skip_serializing_if = "Option::is_none")]
971    pub preference: Option<CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference>,
972}
973#[cfg(feature = "redact-generated-debug")]
974impl std::fmt::Debug for CreatePaymentMethodConfigurationAlmaDisplayPreference {
975    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
976        f.debug_struct("CreatePaymentMethodConfigurationAlmaDisplayPreference")
977            .finish_non_exhaustive()
978    }
979}
980impl CreatePaymentMethodConfigurationAlmaDisplayPreference {
981    pub fn new() -> Self {
982        Self { preference: None }
983    }
984}
985impl Default for CreatePaymentMethodConfigurationAlmaDisplayPreference {
986    fn default() -> Self {
987        Self::new()
988    }
989}
990/// The account's preference for whether or not to display this payment method.
991#[derive(Clone, Eq, PartialEq)]
992#[non_exhaustive]
993pub enum CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
994    None,
995    Off,
996    On,
997    /// An unrecognized value from Stripe. Should not be used as a request parameter.
998    Unknown(String),
999}
1000impl CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1001    pub fn as_str(&self) -> &str {
1002        use CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference::*;
1003        match self {
1004            None => "none",
1005            Off => "off",
1006            On => "on",
1007            Unknown(v) => v,
1008        }
1009    }
1010}
1011
1012impl std::str::FromStr for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1013    type Err = std::convert::Infallible;
1014    fn from_str(s: &str) -> Result<Self, Self::Err> {
1015        use CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference::*;
1016        match s {
1017            "none" => Ok(None),
1018            "off" => Ok(Off),
1019            "on" => Ok(On),
1020            v => {
1021                tracing::warn!(
1022                    "Unknown value '{}' for enum '{}'",
1023                    v,
1024                    "CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference"
1025                );
1026                Ok(Unknown(v.to_owned()))
1027            }
1028        }
1029    }
1030}
1031impl std::fmt::Display for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1032    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1033        f.write_str(self.as_str())
1034    }
1035}
1036
1037#[cfg(not(feature = "redact-generated-debug"))]
1038impl std::fmt::Debug for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1039    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1040        f.write_str(self.as_str())
1041    }
1042}
1043#[cfg(feature = "redact-generated-debug")]
1044impl std::fmt::Debug for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1045    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1046        f.debug_struct(stringify!(CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference))
1047            .finish_non_exhaustive()
1048    }
1049}
1050impl serde::Serialize for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
1051    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1052    where
1053        S: serde::Serializer,
1054    {
1055        serializer.serialize_str(self.as_str())
1056    }
1057}
1058#[cfg(feature = "deserialize")]
1059impl<'de> serde::Deserialize<'de>
1060    for CreatePaymentMethodConfigurationAlmaDisplayPreferencePreference
1061{
1062    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1063        use std::str::FromStr;
1064        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1065        Ok(Self::from_str(&s).expect("infallible"))
1066    }
1067}
1068/// Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.
1069#[derive(Clone, Eq, PartialEq)]
1070#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1071#[derive(serde::Serialize)]
1072pub struct CreatePaymentMethodConfigurationAmazonPay {
1073    /// Whether or not the payment method should be displayed.
1074    #[serde(skip_serializing_if = "Option::is_none")]
1075    pub display_preference: Option<CreatePaymentMethodConfigurationAmazonPayDisplayPreference>,
1076}
1077#[cfg(feature = "redact-generated-debug")]
1078impl std::fmt::Debug for CreatePaymentMethodConfigurationAmazonPay {
1079    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1080        f.debug_struct("CreatePaymentMethodConfigurationAmazonPay").finish_non_exhaustive()
1081    }
1082}
1083impl CreatePaymentMethodConfigurationAmazonPay {
1084    pub fn new() -> Self {
1085        Self { display_preference: None }
1086    }
1087}
1088impl Default for CreatePaymentMethodConfigurationAmazonPay {
1089    fn default() -> Self {
1090        Self::new()
1091    }
1092}
1093/// Whether or not the payment method should be displayed.
1094#[derive(Clone, Eq, PartialEq)]
1095#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1096#[derive(serde::Serialize)]
1097pub struct CreatePaymentMethodConfigurationAmazonPayDisplayPreference {
1098    /// The account's preference for whether or not to display this payment method.
1099    #[serde(skip_serializing_if = "Option::is_none")]
1100    pub preference: Option<CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference>,
1101}
1102#[cfg(feature = "redact-generated-debug")]
1103impl std::fmt::Debug for CreatePaymentMethodConfigurationAmazonPayDisplayPreference {
1104    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1105        f.debug_struct("CreatePaymentMethodConfigurationAmazonPayDisplayPreference")
1106            .finish_non_exhaustive()
1107    }
1108}
1109impl CreatePaymentMethodConfigurationAmazonPayDisplayPreference {
1110    pub fn new() -> Self {
1111        Self { preference: None }
1112    }
1113}
1114impl Default for CreatePaymentMethodConfigurationAmazonPayDisplayPreference {
1115    fn default() -> Self {
1116        Self::new()
1117    }
1118}
1119/// The account's preference for whether or not to display this payment method.
1120#[derive(Clone, Eq, PartialEq)]
1121#[non_exhaustive]
1122pub enum CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1123    None,
1124    Off,
1125    On,
1126    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1127    Unknown(String),
1128}
1129impl CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1130    pub fn as_str(&self) -> &str {
1131        use CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference::*;
1132        match self {
1133            None => "none",
1134            Off => "off",
1135            On => "on",
1136            Unknown(v) => v,
1137        }
1138    }
1139}
1140
1141impl std::str::FromStr for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1142    type Err = std::convert::Infallible;
1143    fn from_str(s: &str) -> Result<Self, Self::Err> {
1144        use CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference::*;
1145        match s {
1146            "none" => Ok(None),
1147            "off" => Ok(Off),
1148            "on" => Ok(On),
1149            v => {
1150                tracing::warn!(
1151                    "Unknown value '{}' for enum '{}'",
1152                    v,
1153                    "CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference"
1154                );
1155                Ok(Unknown(v.to_owned()))
1156            }
1157        }
1158    }
1159}
1160impl std::fmt::Display for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1161    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1162        f.write_str(self.as_str())
1163    }
1164}
1165
1166#[cfg(not(feature = "redact-generated-debug"))]
1167impl std::fmt::Debug for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1168    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1169        f.write_str(self.as_str())
1170    }
1171}
1172#[cfg(feature = "redact-generated-debug")]
1173impl std::fmt::Debug for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1174    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1175        f.debug_struct(stringify!(
1176            CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference
1177        ))
1178        .finish_non_exhaustive()
1179    }
1180}
1181impl serde::Serialize for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
1182    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1183    where
1184        S: serde::Serializer,
1185    {
1186        serializer.serialize_str(self.as_str())
1187    }
1188}
1189#[cfg(feature = "deserialize")]
1190impl<'de> serde::Deserialize<'de>
1191    for CreatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference
1192{
1193    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1194        use std::str::FromStr;
1195        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1196        Ok(Self::from_str(&s).expect("infallible"))
1197    }
1198}
1199/// Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra.
1200/// There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions.
1201/// Check this [page](https://docs.stripe.com/apple-pay) for more details.
1202#[derive(Clone, Eq, PartialEq)]
1203#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1204#[derive(serde::Serialize)]
1205pub struct CreatePaymentMethodConfigurationApplePay {
1206    /// Whether or not the payment method should be displayed.
1207    #[serde(skip_serializing_if = "Option::is_none")]
1208    pub display_preference: Option<CreatePaymentMethodConfigurationApplePayDisplayPreference>,
1209}
1210#[cfg(feature = "redact-generated-debug")]
1211impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePay {
1212    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1213        f.debug_struct("CreatePaymentMethodConfigurationApplePay").finish_non_exhaustive()
1214    }
1215}
1216impl CreatePaymentMethodConfigurationApplePay {
1217    pub fn new() -> Self {
1218        Self { display_preference: None }
1219    }
1220}
1221impl Default for CreatePaymentMethodConfigurationApplePay {
1222    fn default() -> Self {
1223        Self::new()
1224    }
1225}
1226/// Whether or not the payment method should be displayed.
1227#[derive(Clone, Eq, PartialEq)]
1228#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1229#[derive(serde::Serialize)]
1230pub struct CreatePaymentMethodConfigurationApplePayDisplayPreference {
1231    /// The account's preference for whether or not to display this payment method.
1232    #[serde(skip_serializing_if = "Option::is_none")]
1233    pub preference: Option<CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference>,
1234}
1235#[cfg(feature = "redact-generated-debug")]
1236impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayDisplayPreference {
1237    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1238        f.debug_struct("CreatePaymentMethodConfigurationApplePayDisplayPreference")
1239            .finish_non_exhaustive()
1240    }
1241}
1242impl CreatePaymentMethodConfigurationApplePayDisplayPreference {
1243    pub fn new() -> Self {
1244        Self { preference: None }
1245    }
1246}
1247impl Default for CreatePaymentMethodConfigurationApplePayDisplayPreference {
1248    fn default() -> Self {
1249        Self::new()
1250    }
1251}
1252/// The account's preference for whether or not to display this payment method.
1253#[derive(Clone, Eq, PartialEq)]
1254#[non_exhaustive]
1255pub enum CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1256    None,
1257    Off,
1258    On,
1259    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1260    Unknown(String),
1261}
1262impl CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1263    pub fn as_str(&self) -> &str {
1264        use CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference::*;
1265        match self {
1266            None => "none",
1267            Off => "off",
1268            On => "on",
1269            Unknown(v) => v,
1270        }
1271    }
1272}
1273
1274impl std::str::FromStr for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1275    type Err = std::convert::Infallible;
1276    fn from_str(s: &str) -> Result<Self, Self::Err> {
1277        use CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference::*;
1278        match s {
1279            "none" => Ok(None),
1280            "off" => Ok(Off),
1281            "on" => Ok(On),
1282            v => {
1283                tracing::warn!(
1284                    "Unknown value '{}' for enum '{}'",
1285                    v,
1286                    "CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference"
1287                );
1288                Ok(Unknown(v.to_owned()))
1289            }
1290        }
1291    }
1292}
1293impl std::fmt::Display for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1294    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1295        f.write_str(self.as_str())
1296    }
1297}
1298
1299#[cfg(not(feature = "redact-generated-debug"))]
1300impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1301    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1302        f.write_str(self.as_str())
1303    }
1304}
1305#[cfg(feature = "redact-generated-debug")]
1306impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1307    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1308        f.debug_struct(stringify!(
1309            CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference
1310        ))
1311        .finish_non_exhaustive()
1312    }
1313}
1314impl serde::Serialize for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
1315    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1316    where
1317        S: serde::Serializer,
1318    {
1319        serializer.serialize_str(self.as_str())
1320    }
1321}
1322#[cfg(feature = "deserialize")]
1323impl<'de> serde::Deserialize<'de>
1324    for CreatePaymentMethodConfigurationApplePayDisplayPreferencePreference
1325{
1326    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1327        use std::str::FromStr;
1328        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1329        Ok(Self::from_str(&s).expect("infallible"))
1330    }
1331}
1332/// Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.
1333#[derive(Clone, Eq, PartialEq)]
1334#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1335#[derive(serde::Serialize)]
1336pub struct CreatePaymentMethodConfigurationApplePayLater {
1337    /// Whether or not the payment method should be displayed.
1338    #[serde(skip_serializing_if = "Option::is_none")]
1339    pub display_preference: Option<CreatePaymentMethodConfigurationApplePayLaterDisplayPreference>,
1340}
1341#[cfg(feature = "redact-generated-debug")]
1342impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayLater {
1343    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1344        f.debug_struct("CreatePaymentMethodConfigurationApplePayLater").finish_non_exhaustive()
1345    }
1346}
1347impl CreatePaymentMethodConfigurationApplePayLater {
1348    pub fn new() -> Self {
1349        Self { display_preference: None }
1350    }
1351}
1352impl Default for CreatePaymentMethodConfigurationApplePayLater {
1353    fn default() -> Self {
1354        Self::new()
1355    }
1356}
1357/// Whether or not the payment method should be displayed.
1358#[derive(Clone, Eq, PartialEq)]
1359#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1360#[derive(serde::Serialize)]
1361pub struct CreatePaymentMethodConfigurationApplePayLaterDisplayPreference {
1362    /// The account's preference for whether or not to display this payment method.
1363    #[serde(skip_serializing_if = "Option::is_none")]
1364    pub preference:
1365        Option<CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference>,
1366}
1367#[cfg(feature = "redact-generated-debug")]
1368impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayLaterDisplayPreference {
1369    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1370        f.debug_struct("CreatePaymentMethodConfigurationApplePayLaterDisplayPreference")
1371            .finish_non_exhaustive()
1372    }
1373}
1374impl CreatePaymentMethodConfigurationApplePayLaterDisplayPreference {
1375    pub fn new() -> Self {
1376        Self { preference: None }
1377    }
1378}
1379impl Default for CreatePaymentMethodConfigurationApplePayLaterDisplayPreference {
1380    fn default() -> Self {
1381        Self::new()
1382    }
1383}
1384/// The account's preference for whether or not to display this payment method.
1385#[derive(Clone, Eq, PartialEq)]
1386#[non_exhaustive]
1387pub enum CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
1388    None,
1389    Off,
1390    On,
1391    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1392    Unknown(String),
1393}
1394impl CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
1395    pub fn as_str(&self) -> &str {
1396        use CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference::*;
1397        match self {
1398            None => "none",
1399            Off => "off",
1400            On => "on",
1401            Unknown(v) => v,
1402        }
1403    }
1404}
1405
1406impl std::str::FromStr
1407    for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
1408{
1409    type Err = std::convert::Infallible;
1410    fn from_str(s: &str) -> Result<Self, Self::Err> {
1411        use CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference::*;
1412        match s {
1413            "none" => Ok(None),
1414            "off" => Ok(Off),
1415            "on" => Ok(On),
1416            v => {
1417                tracing::warn!(
1418                    "Unknown value '{}' for enum '{}'",
1419                    v,
1420                    "CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference"
1421                );
1422                Ok(Unknown(v.to_owned()))
1423            }
1424        }
1425    }
1426}
1427impl std::fmt::Display
1428    for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
1429{
1430    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1431        f.write_str(self.as_str())
1432    }
1433}
1434
1435#[cfg(not(feature = "redact-generated-debug"))]
1436impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
1437    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1438        f.write_str(self.as_str())
1439    }
1440}
1441#[cfg(feature = "redact-generated-debug")]
1442impl std::fmt::Debug for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
1443    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1444        f.debug_struct(stringify!(
1445            CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
1446        ))
1447        .finish_non_exhaustive()
1448    }
1449}
1450impl serde::Serialize for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
1451    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1452    where
1453        S: serde::Serializer,
1454    {
1455        serializer.serialize_str(self.as_str())
1456    }
1457}
1458#[cfg(feature = "deserialize")]
1459impl<'de> serde::Deserialize<'de>
1460    for CreatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
1461{
1462    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1463        use std::str::FromStr;
1464        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1465        Ok(Self::from_str(&s).expect("infallible"))
1466    }
1467}
1468/// Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account.
1469/// Check this [page](https://docs.stripe.com/payments/au-becs-debit) for more details.
1470#[derive(Clone, Eq, PartialEq)]
1471#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1472#[derive(serde::Serialize)]
1473pub struct CreatePaymentMethodConfigurationAuBecsDebit {
1474    /// Whether or not the payment method should be displayed.
1475    #[serde(skip_serializing_if = "Option::is_none")]
1476    pub display_preference: Option<CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference>,
1477}
1478#[cfg(feature = "redact-generated-debug")]
1479impl std::fmt::Debug for CreatePaymentMethodConfigurationAuBecsDebit {
1480    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1481        f.debug_struct("CreatePaymentMethodConfigurationAuBecsDebit").finish_non_exhaustive()
1482    }
1483}
1484impl CreatePaymentMethodConfigurationAuBecsDebit {
1485    pub fn new() -> Self {
1486        Self { display_preference: None }
1487    }
1488}
1489impl Default for CreatePaymentMethodConfigurationAuBecsDebit {
1490    fn default() -> Self {
1491        Self::new()
1492    }
1493}
1494/// Whether or not the payment method should be displayed.
1495#[derive(Clone, Eq, PartialEq)]
1496#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1497#[derive(serde::Serialize)]
1498pub struct CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
1499    /// The account's preference for whether or not to display this payment method.
1500    #[serde(skip_serializing_if = "Option::is_none")]
1501    pub preference: Option<CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference>,
1502}
1503#[cfg(feature = "redact-generated-debug")]
1504impl std::fmt::Debug for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
1505    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1506        f.debug_struct("CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference")
1507            .finish_non_exhaustive()
1508    }
1509}
1510impl CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
1511    pub fn new() -> Self {
1512        Self { preference: None }
1513    }
1514}
1515impl Default for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
1516    fn default() -> Self {
1517        Self::new()
1518    }
1519}
1520/// The account's preference for whether or not to display this payment method.
1521#[derive(Clone, Eq, PartialEq)]
1522#[non_exhaustive]
1523pub enum CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1524    None,
1525    Off,
1526    On,
1527    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1528    Unknown(String),
1529}
1530impl CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1531    pub fn as_str(&self) -> &str {
1532        use CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference::*;
1533        match self {
1534            None => "none",
1535            Off => "off",
1536            On => "on",
1537            Unknown(v) => v,
1538        }
1539    }
1540}
1541
1542impl std::str::FromStr for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1543    type Err = std::convert::Infallible;
1544    fn from_str(s: &str) -> Result<Self, Self::Err> {
1545        use CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference::*;
1546        match s {
1547            "none" => Ok(None),
1548            "off" => Ok(Off),
1549            "on" => Ok(On),
1550            v => {
1551                tracing::warn!(
1552                    "Unknown value '{}' for enum '{}'",
1553                    v,
1554                    "CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference"
1555                );
1556                Ok(Unknown(v.to_owned()))
1557            }
1558        }
1559    }
1560}
1561impl std::fmt::Display for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1562    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1563        f.write_str(self.as_str())
1564    }
1565}
1566
1567#[cfg(not(feature = "redact-generated-debug"))]
1568impl std::fmt::Debug for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1569    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1570        f.write_str(self.as_str())
1571    }
1572}
1573#[cfg(feature = "redact-generated-debug")]
1574impl std::fmt::Debug for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1575    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1576        f.debug_struct(stringify!(
1577            CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference
1578        ))
1579        .finish_non_exhaustive()
1580    }
1581}
1582impl serde::Serialize for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
1583    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1584    where
1585        S: serde::Serializer,
1586    {
1587        serializer.serialize_str(self.as_str())
1588    }
1589}
1590#[cfg(feature = "deserialize")]
1591impl<'de> serde::Deserialize<'de>
1592    for CreatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference
1593{
1594    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1595        use std::str::FromStr;
1596        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1597        Ok(Self::from_str(&s).expect("infallible"))
1598    }
1599}
1600/// Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://docs.stripe.com/payments/payment-methods/bacs-debit) for more details.
1601#[derive(Clone, Eq, PartialEq)]
1602#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1603#[derive(serde::Serialize)]
1604pub struct CreatePaymentMethodConfigurationBacsDebit {
1605    /// Whether or not the payment method should be displayed.
1606    #[serde(skip_serializing_if = "Option::is_none")]
1607    pub display_preference: Option<CreatePaymentMethodConfigurationBacsDebitDisplayPreference>,
1608}
1609#[cfg(feature = "redact-generated-debug")]
1610impl std::fmt::Debug for CreatePaymentMethodConfigurationBacsDebit {
1611    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1612        f.debug_struct("CreatePaymentMethodConfigurationBacsDebit").finish_non_exhaustive()
1613    }
1614}
1615impl CreatePaymentMethodConfigurationBacsDebit {
1616    pub fn new() -> Self {
1617        Self { display_preference: None }
1618    }
1619}
1620impl Default for CreatePaymentMethodConfigurationBacsDebit {
1621    fn default() -> Self {
1622        Self::new()
1623    }
1624}
1625/// Whether or not the payment method should be displayed.
1626#[derive(Clone, Eq, PartialEq)]
1627#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1628#[derive(serde::Serialize)]
1629pub struct CreatePaymentMethodConfigurationBacsDebitDisplayPreference {
1630    /// The account's preference for whether or not to display this payment method.
1631    #[serde(skip_serializing_if = "Option::is_none")]
1632    pub preference: Option<CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference>,
1633}
1634#[cfg(feature = "redact-generated-debug")]
1635impl std::fmt::Debug for CreatePaymentMethodConfigurationBacsDebitDisplayPreference {
1636    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1637        f.debug_struct("CreatePaymentMethodConfigurationBacsDebitDisplayPreference")
1638            .finish_non_exhaustive()
1639    }
1640}
1641impl CreatePaymentMethodConfigurationBacsDebitDisplayPreference {
1642    pub fn new() -> Self {
1643        Self { preference: None }
1644    }
1645}
1646impl Default for CreatePaymentMethodConfigurationBacsDebitDisplayPreference {
1647    fn default() -> Self {
1648        Self::new()
1649    }
1650}
1651/// The account's preference for whether or not to display this payment method.
1652#[derive(Clone, Eq, PartialEq)]
1653#[non_exhaustive]
1654pub enum CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1655    None,
1656    Off,
1657    On,
1658    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1659    Unknown(String),
1660}
1661impl CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1662    pub fn as_str(&self) -> &str {
1663        use CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference::*;
1664        match self {
1665            None => "none",
1666            Off => "off",
1667            On => "on",
1668            Unknown(v) => v,
1669        }
1670    }
1671}
1672
1673impl std::str::FromStr for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1674    type Err = std::convert::Infallible;
1675    fn from_str(s: &str) -> Result<Self, Self::Err> {
1676        use CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference::*;
1677        match s {
1678            "none" => Ok(None),
1679            "off" => Ok(Off),
1680            "on" => Ok(On),
1681            v => {
1682                tracing::warn!(
1683                    "Unknown value '{}' for enum '{}'",
1684                    v,
1685                    "CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference"
1686                );
1687                Ok(Unknown(v.to_owned()))
1688            }
1689        }
1690    }
1691}
1692impl std::fmt::Display for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1693    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1694        f.write_str(self.as_str())
1695    }
1696}
1697
1698#[cfg(not(feature = "redact-generated-debug"))]
1699impl std::fmt::Debug for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1700    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1701        f.write_str(self.as_str())
1702    }
1703}
1704#[cfg(feature = "redact-generated-debug")]
1705impl std::fmt::Debug for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1706    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1707        f.debug_struct(stringify!(
1708            CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference
1709        ))
1710        .finish_non_exhaustive()
1711    }
1712}
1713impl serde::Serialize for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
1714    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1715    where
1716        S: serde::Serializer,
1717    {
1718        serializer.serialize_str(self.as_str())
1719    }
1720}
1721#[cfg(feature = "deserialize")]
1722impl<'de> serde::Deserialize<'de>
1723    for CreatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference
1724{
1725    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1726        use std::str::FromStr;
1727        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1728        Ok(Self::from_str(&s).expect("infallible"))
1729    }
1730}
1731/// Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation.
1732/// [Customers](https://docs.stripe.com/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately.
1733/// Check this [page](https://docs.stripe.com/payments/bancontact) for more details.
1734#[derive(Clone, Eq, PartialEq)]
1735#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1736#[derive(serde::Serialize)]
1737pub struct CreatePaymentMethodConfigurationBancontact {
1738    /// Whether or not the payment method should be displayed.
1739    #[serde(skip_serializing_if = "Option::is_none")]
1740    pub display_preference: Option<CreatePaymentMethodConfigurationBancontactDisplayPreference>,
1741}
1742#[cfg(feature = "redact-generated-debug")]
1743impl std::fmt::Debug for CreatePaymentMethodConfigurationBancontact {
1744    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1745        f.debug_struct("CreatePaymentMethodConfigurationBancontact").finish_non_exhaustive()
1746    }
1747}
1748impl CreatePaymentMethodConfigurationBancontact {
1749    pub fn new() -> Self {
1750        Self { display_preference: None }
1751    }
1752}
1753impl Default for CreatePaymentMethodConfigurationBancontact {
1754    fn default() -> Self {
1755        Self::new()
1756    }
1757}
1758/// Whether or not the payment method should be displayed.
1759#[derive(Clone, Eq, PartialEq)]
1760#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1761#[derive(serde::Serialize)]
1762pub struct CreatePaymentMethodConfigurationBancontactDisplayPreference {
1763    /// The account's preference for whether or not to display this payment method.
1764    #[serde(skip_serializing_if = "Option::is_none")]
1765    pub preference: Option<CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference>,
1766}
1767#[cfg(feature = "redact-generated-debug")]
1768impl std::fmt::Debug for CreatePaymentMethodConfigurationBancontactDisplayPreference {
1769    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1770        f.debug_struct("CreatePaymentMethodConfigurationBancontactDisplayPreference")
1771            .finish_non_exhaustive()
1772    }
1773}
1774impl CreatePaymentMethodConfigurationBancontactDisplayPreference {
1775    pub fn new() -> Self {
1776        Self { preference: None }
1777    }
1778}
1779impl Default for CreatePaymentMethodConfigurationBancontactDisplayPreference {
1780    fn default() -> Self {
1781        Self::new()
1782    }
1783}
1784/// The account's preference for whether or not to display this payment method.
1785#[derive(Clone, Eq, PartialEq)]
1786#[non_exhaustive]
1787pub enum CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1788    None,
1789    Off,
1790    On,
1791    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1792    Unknown(String),
1793}
1794impl CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1795    pub fn as_str(&self) -> &str {
1796        use CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference::*;
1797        match self {
1798            None => "none",
1799            Off => "off",
1800            On => "on",
1801            Unknown(v) => v,
1802        }
1803    }
1804}
1805
1806impl std::str::FromStr for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1807    type Err = std::convert::Infallible;
1808    fn from_str(s: &str) -> Result<Self, Self::Err> {
1809        use CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference::*;
1810        match s {
1811            "none" => Ok(None),
1812            "off" => Ok(Off),
1813            "on" => Ok(On),
1814            v => {
1815                tracing::warn!(
1816                    "Unknown value '{}' for enum '{}'",
1817                    v,
1818                    "CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference"
1819                );
1820                Ok(Unknown(v.to_owned()))
1821            }
1822        }
1823    }
1824}
1825impl std::fmt::Display for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1826    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1827        f.write_str(self.as_str())
1828    }
1829}
1830
1831#[cfg(not(feature = "redact-generated-debug"))]
1832impl std::fmt::Debug for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1833    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1834        f.write_str(self.as_str())
1835    }
1836}
1837#[cfg(feature = "redact-generated-debug")]
1838impl std::fmt::Debug for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1839    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1840        f.debug_struct(stringify!(
1841            CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference
1842        ))
1843        .finish_non_exhaustive()
1844    }
1845}
1846impl serde::Serialize for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
1847    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1848    where
1849        S: serde::Serializer,
1850    {
1851        serializer.serialize_str(self.as_str())
1852    }
1853}
1854#[cfg(feature = "deserialize")]
1855impl<'de> serde::Deserialize<'de>
1856    for CreatePaymentMethodConfigurationBancontactDisplayPreferencePreference
1857{
1858    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1859        use std::str::FromStr;
1860        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1861        Ok(Self::from_str(&s).expect("infallible"))
1862    }
1863}
1864/// Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days.
1865/// Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app.
1866/// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
1867#[derive(Clone, Eq, PartialEq)]
1868#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1869#[derive(serde::Serialize)]
1870pub struct CreatePaymentMethodConfigurationBillie {
1871    /// Whether or not the payment method should be displayed.
1872    #[serde(skip_serializing_if = "Option::is_none")]
1873    pub display_preference: Option<CreatePaymentMethodConfigurationBillieDisplayPreference>,
1874}
1875#[cfg(feature = "redact-generated-debug")]
1876impl std::fmt::Debug for CreatePaymentMethodConfigurationBillie {
1877    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1878        f.debug_struct("CreatePaymentMethodConfigurationBillie").finish_non_exhaustive()
1879    }
1880}
1881impl CreatePaymentMethodConfigurationBillie {
1882    pub fn new() -> Self {
1883        Self { display_preference: None }
1884    }
1885}
1886impl Default for CreatePaymentMethodConfigurationBillie {
1887    fn default() -> Self {
1888        Self::new()
1889    }
1890}
1891/// Whether or not the payment method should be displayed.
1892#[derive(Clone, Eq, PartialEq)]
1893#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
1894#[derive(serde::Serialize)]
1895pub struct CreatePaymentMethodConfigurationBillieDisplayPreference {
1896    /// The account's preference for whether or not to display this payment method.
1897    #[serde(skip_serializing_if = "Option::is_none")]
1898    pub preference: Option<CreatePaymentMethodConfigurationBillieDisplayPreferencePreference>,
1899}
1900#[cfg(feature = "redact-generated-debug")]
1901impl std::fmt::Debug for CreatePaymentMethodConfigurationBillieDisplayPreference {
1902    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1903        f.debug_struct("CreatePaymentMethodConfigurationBillieDisplayPreference")
1904            .finish_non_exhaustive()
1905    }
1906}
1907impl CreatePaymentMethodConfigurationBillieDisplayPreference {
1908    pub fn new() -> Self {
1909        Self { preference: None }
1910    }
1911}
1912impl Default for CreatePaymentMethodConfigurationBillieDisplayPreference {
1913    fn default() -> Self {
1914        Self::new()
1915    }
1916}
1917/// The account's preference for whether or not to display this payment method.
1918#[derive(Clone, Eq, PartialEq)]
1919#[non_exhaustive]
1920pub enum CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1921    None,
1922    Off,
1923    On,
1924    /// An unrecognized value from Stripe. Should not be used as a request parameter.
1925    Unknown(String),
1926}
1927impl CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1928    pub fn as_str(&self) -> &str {
1929        use CreatePaymentMethodConfigurationBillieDisplayPreferencePreference::*;
1930        match self {
1931            None => "none",
1932            Off => "off",
1933            On => "on",
1934            Unknown(v) => v,
1935        }
1936    }
1937}
1938
1939impl std::str::FromStr for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1940    type Err = std::convert::Infallible;
1941    fn from_str(s: &str) -> Result<Self, Self::Err> {
1942        use CreatePaymentMethodConfigurationBillieDisplayPreferencePreference::*;
1943        match s {
1944            "none" => Ok(None),
1945            "off" => Ok(Off),
1946            "on" => Ok(On),
1947            v => {
1948                tracing::warn!(
1949                    "Unknown value '{}' for enum '{}'",
1950                    v,
1951                    "CreatePaymentMethodConfigurationBillieDisplayPreferencePreference"
1952                );
1953                Ok(Unknown(v.to_owned()))
1954            }
1955        }
1956    }
1957}
1958impl std::fmt::Display for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1959    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1960        f.write_str(self.as_str())
1961    }
1962}
1963
1964#[cfg(not(feature = "redact-generated-debug"))]
1965impl std::fmt::Debug for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1966    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1967        f.write_str(self.as_str())
1968    }
1969}
1970#[cfg(feature = "redact-generated-debug")]
1971impl std::fmt::Debug for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1972    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1973        f.debug_struct(stringify!(
1974            CreatePaymentMethodConfigurationBillieDisplayPreferencePreference
1975        ))
1976        .finish_non_exhaustive()
1977    }
1978}
1979impl serde::Serialize for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference {
1980    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1981    where
1982        S: serde::Serializer,
1983    {
1984        serializer.serialize_str(self.as_str())
1985    }
1986}
1987#[cfg(feature = "deserialize")]
1988impl<'de> serde::Deserialize<'de>
1989    for CreatePaymentMethodConfigurationBillieDisplayPreferencePreference
1990{
1991    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1992        use std::str::FromStr;
1993        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1994        Ok(Self::from_str(&s).expect("infallible"))
1995    }
1996}
1997/// BLIK is a [single use](https://docs.stripe.com/payments/payment-methods#usage) payment method that requires customers to authenticate their payments.
1998/// When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form.
1999/// Check this [page](https://docs.stripe.com/payments/blik) for more details.
2000#[derive(Clone, Eq, PartialEq)]
2001#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2002#[derive(serde::Serialize)]
2003pub struct CreatePaymentMethodConfigurationBlik {
2004    /// Whether or not the payment method should be displayed.
2005    #[serde(skip_serializing_if = "Option::is_none")]
2006    pub display_preference: Option<CreatePaymentMethodConfigurationBlikDisplayPreference>,
2007}
2008#[cfg(feature = "redact-generated-debug")]
2009impl std::fmt::Debug for CreatePaymentMethodConfigurationBlik {
2010    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2011        f.debug_struct("CreatePaymentMethodConfigurationBlik").finish_non_exhaustive()
2012    }
2013}
2014impl CreatePaymentMethodConfigurationBlik {
2015    pub fn new() -> Self {
2016        Self { display_preference: None }
2017    }
2018}
2019impl Default for CreatePaymentMethodConfigurationBlik {
2020    fn default() -> Self {
2021        Self::new()
2022    }
2023}
2024/// Whether or not the payment method should be displayed.
2025#[derive(Clone, Eq, PartialEq)]
2026#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2027#[derive(serde::Serialize)]
2028pub struct CreatePaymentMethodConfigurationBlikDisplayPreference {
2029    /// The account's preference for whether or not to display this payment method.
2030    #[serde(skip_serializing_if = "Option::is_none")]
2031    pub preference: Option<CreatePaymentMethodConfigurationBlikDisplayPreferencePreference>,
2032}
2033#[cfg(feature = "redact-generated-debug")]
2034impl std::fmt::Debug for CreatePaymentMethodConfigurationBlikDisplayPreference {
2035    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2036        f.debug_struct("CreatePaymentMethodConfigurationBlikDisplayPreference")
2037            .finish_non_exhaustive()
2038    }
2039}
2040impl CreatePaymentMethodConfigurationBlikDisplayPreference {
2041    pub fn new() -> Self {
2042        Self { preference: None }
2043    }
2044}
2045impl Default for CreatePaymentMethodConfigurationBlikDisplayPreference {
2046    fn default() -> Self {
2047        Self::new()
2048    }
2049}
2050/// The account's preference for whether or not to display this payment method.
2051#[derive(Clone, Eq, PartialEq)]
2052#[non_exhaustive]
2053pub enum CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2054    None,
2055    Off,
2056    On,
2057    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2058    Unknown(String),
2059}
2060impl CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2061    pub fn as_str(&self) -> &str {
2062        use CreatePaymentMethodConfigurationBlikDisplayPreferencePreference::*;
2063        match self {
2064            None => "none",
2065            Off => "off",
2066            On => "on",
2067            Unknown(v) => v,
2068        }
2069    }
2070}
2071
2072impl std::str::FromStr for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2073    type Err = std::convert::Infallible;
2074    fn from_str(s: &str) -> Result<Self, Self::Err> {
2075        use CreatePaymentMethodConfigurationBlikDisplayPreferencePreference::*;
2076        match s {
2077            "none" => Ok(None),
2078            "off" => Ok(Off),
2079            "on" => Ok(On),
2080            v => {
2081                tracing::warn!(
2082                    "Unknown value '{}' for enum '{}'",
2083                    v,
2084                    "CreatePaymentMethodConfigurationBlikDisplayPreferencePreference"
2085                );
2086                Ok(Unknown(v.to_owned()))
2087            }
2088        }
2089    }
2090}
2091impl std::fmt::Display for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2092    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2093        f.write_str(self.as_str())
2094    }
2095}
2096
2097#[cfg(not(feature = "redact-generated-debug"))]
2098impl std::fmt::Debug for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2099    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2100        f.write_str(self.as_str())
2101    }
2102}
2103#[cfg(feature = "redact-generated-debug")]
2104impl std::fmt::Debug for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2105    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2106        f.debug_struct(stringify!(CreatePaymentMethodConfigurationBlikDisplayPreferencePreference))
2107            .finish_non_exhaustive()
2108    }
2109}
2110impl serde::Serialize for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference {
2111    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2112    where
2113        S: serde::Serializer,
2114    {
2115        serializer.serialize_str(self.as_str())
2116    }
2117}
2118#[cfg(feature = "deserialize")]
2119impl<'de> serde::Deserialize<'de>
2120    for CreatePaymentMethodConfigurationBlikDisplayPreferencePreference
2121{
2122    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2123        use std::str::FromStr;
2124        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2125        Ok(Self::from_str(&s).expect("infallible"))
2126    }
2127}
2128/// Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil.
2129/// Check this [page](https://docs.stripe.com/payments/boleto) for more details.
2130#[derive(Clone, Eq, PartialEq)]
2131#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2132#[derive(serde::Serialize)]
2133pub struct CreatePaymentMethodConfigurationBoleto {
2134    /// Whether or not the payment method should be displayed.
2135    #[serde(skip_serializing_if = "Option::is_none")]
2136    pub display_preference: Option<CreatePaymentMethodConfigurationBoletoDisplayPreference>,
2137}
2138#[cfg(feature = "redact-generated-debug")]
2139impl std::fmt::Debug for CreatePaymentMethodConfigurationBoleto {
2140    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2141        f.debug_struct("CreatePaymentMethodConfigurationBoleto").finish_non_exhaustive()
2142    }
2143}
2144impl CreatePaymentMethodConfigurationBoleto {
2145    pub fn new() -> Self {
2146        Self { display_preference: None }
2147    }
2148}
2149impl Default for CreatePaymentMethodConfigurationBoleto {
2150    fn default() -> Self {
2151        Self::new()
2152    }
2153}
2154/// Whether or not the payment method should be displayed.
2155#[derive(Clone, Eq, PartialEq)]
2156#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2157#[derive(serde::Serialize)]
2158pub struct CreatePaymentMethodConfigurationBoletoDisplayPreference {
2159    /// The account's preference for whether or not to display this payment method.
2160    #[serde(skip_serializing_if = "Option::is_none")]
2161    pub preference: Option<CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference>,
2162}
2163#[cfg(feature = "redact-generated-debug")]
2164impl std::fmt::Debug for CreatePaymentMethodConfigurationBoletoDisplayPreference {
2165    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2166        f.debug_struct("CreatePaymentMethodConfigurationBoletoDisplayPreference")
2167            .finish_non_exhaustive()
2168    }
2169}
2170impl CreatePaymentMethodConfigurationBoletoDisplayPreference {
2171    pub fn new() -> Self {
2172        Self { preference: None }
2173    }
2174}
2175impl Default for CreatePaymentMethodConfigurationBoletoDisplayPreference {
2176    fn default() -> Self {
2177        Self::new()
2178    }
2179}
2180/// The account's preference for whether or not to display this payment method.
2181#[derive(Clone, Eq, PartialEq)]
2182#[non_exhaustive]
2183pub enum CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2184    None,
2185    Off,
2186    On,
2187    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2188    Unknown(String),
2189}
2190impl CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2191    pub fn as_str(&self) -> &str {
2192        use CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference::*;
2193        match self {
2194            None => "none",
2195            Off => "off",
2196            On => "on",
2197            Unknown(v) => v,
2198        }
2199    }
2200}
2201
2202impl std::str::FromStr for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2203    type Err = std::convert::Infallible;
2204    fn from_str(s: &str) -> Result<Self, Self::Err> {
2205        use CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference::*;
2206        match s {
2207            "none" => Ok(None),
2208            "off" => Ok(Off),
2209            "on" => Ok(On),
2210            v => {
2211                tracing::warn!(
2212                    "Unknown value '{}' for enum '{}'",
2213                    v,
2214                    "CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference"
2215                );
2216                Ok(Unknown(v.to_owned()))
2217            }
2218        }
2219    }
2220}
2221impl std::fmt::Display for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2222    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2223        f.write_str(self.as_str())
2224    }
2225}
2226
2227#[cfg(not(feature = "redact-generated-debug"))]
2228impl std::fmt::Debug for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2229    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2230        f.write_str(self.as_str())
2231    }
2232}
2233#[cfg(feature = "redact-generated-debug")]
2234impl std::fmt::Debug for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2235    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2236        f.debug_struct(stringify!(
2237            CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference
2238        ))
2239        .finish_non_exhaustive()
2240    }
2241}
2242impl serde::Serialize for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
2243    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2244    where
2245        S: serde::Serializer,
2246    {
2247        serializer.serialize_str(self.as_str())
2248    }
2249}
2250#[cfg(feature = "deserialize")]
2251impl<'de> serde::Deserialize<'de>
2252    for CreatePaymentMethodConfigurationBoletoDisplayPreferencePreference
2253{
2254    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2255        use std::str::FromStr;
2256        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2257        Ok(Self::from_str(&s).expect("infallible"))
2258    }
2259}
2260/// Cards are a popular way for consumers and businesses to pay online or in person.
2261/// Stripe supports global and local card networks.
2262#[derive(Clone, Eq, PartialEq)]
2263#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2264#[derive(serde::Serialize)]
2265pub struct CreatePaymentMethodConfigurationCard {
2266    /// Whether or not the payment method should be displayed.
2267    #[serde(skip_serializing_if = "Option::is_none")]
2268    pub display_preference: Option<CreatePaymentMethodConfigurationCardDisplayPreference>,
2269}
2270#[cfg(feature = "redact-generated-debug")]
2271impl std::fmt::Debug for CreatePaymentMethodConfigurationCard {
2272    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2273        f.debug_struct("CreatePaymentMethodConfigurationCard").finish_non_exhaustive()
2274    }
2275}
2276impl CreatePaymentMethodConfigurationCard {
2277    pub fn new() -> Self {
2278        Self { display_preference: None }
2279    }
2280}
2281impl Default for CreatePaymentMethodConfigurationCard {
2282    fn default() -> Self {
2283        Self::new()
2284    }
2285}
2286/// Whether or not the payment method should be displayed.
2287#[derive(Clone, Eq, PartialEq)]
2288#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2289#[derive(serde::Serialize)]
2290pub struct CreatePaymentMethodConfigurationCardDisplayPreference {
2291    /// The account's preference for whether or not to display this payment method.
2292    #[serde(skip_serializing_if = "Option::is_none")]
2293    pub preference: Option<CreatePaymentMethodConfigurationCardDisplayPreferencePreference>,
2294}
2295#[cfg(feature = "redact-generated-debug")]
2296impl std::fmt::Debug for CreatePaymentMethodConfigurationCardDisplayPreference {
2297    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2298        f.debug_struct("CreatePaymentMethodConfigurationCardDisplayPreference")
2299            .finish_non_exhaustive()
2300    }
2301}
2302impl CreatePaymentMethodConfigurationCardDisplayPreference {
2303    pub fn new() -> Self {
2304        Self { preference: None }
2305    }
2306}
2307impl Default for CreatePaymentMethodConfigurationCardDisplayPreference {
2308    fn default() -> Self {
2309        Self::new()
2310    }
2311}
2312/// The account's preference for whether or not to display this payment method.
2313#[derive(Clone, Eq, PartialEq)]
2314#[non_exhaustive]
2315pub enum CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2316    None,
2317    Off,
2318    On,
2319    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2320    Unknown(String),
2321}
2322impl CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2323    pub fn as_str(&self) -> &str {
2324        use CreatePaymentMethodConfigurationCardDisplayPreferencePreference::*;
2325        match self {
2326            None => "none",
2327            Off => "off",
2328            On => "on",
2329            Unknown(v) => v,
2330        }
2331    }
2332}
2333
2334impl std::str::FromStr for CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2335    type Err = std::convert::Infallible;
2336    fn from_str(s: &str) -> Result<Self, Self::Err> {
2337        use CreatePaymentMethodConfigurationCardDisplayPreferencePreference::*;
2338        match s {
2339            "none" => Ok(None),
2340            "off" => Ok(Off),
2341            "on" => Ok(On),
2342            v => {
2343                tracing::warn!(
2344                    "Unknown value '{}' for enum '{}'",
2345                    v,
2346                    "CreatePaymentMethodConfigurationCardDisplayPreferencePreference"
2347                );
2348                Ok(Unknown(v.to_owned()))
2349            }
2350        }
2351    }
2352}
2353impl std::fmt::Display for CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2354    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2355        f.write_str(self.as_str())
2356    }
2357}
2358
2359#[cfg(not(feature = "redact-generated-debug"))]
2360impl std::fmt::Debug for CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2361    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2362        f.write_str(self.as_str())
2363    }
2364}
2365#[cfg(feature = "redact-generated-debug")]
2366impl std::fmt::Debug for CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2367    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2368        f.debug_struct(stringify!(CreatePaymentMethodConfigurationCardDisplayPreferencePreference))
2369            .finish_non_exhaustive()
2370    }
2371}
2372impl serde::Serialize for CreatePaymentMethodConfigurationCardDisplayPreferencePreference {
2373    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2374    where
2375        S: serde::Serializer,
2376    {
2377        serializer.serialize_str(self.as_str())
2378    }
2379}
2380#[cfg(feature = "deserialize")]
2381impl<'de> serde::Deserialize<'de>
2382    for CreatePaymentMethodConfigurationCardDisplayPreferencePreference
2383{
2384    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2385        use std::str::FromStr;
2386        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2387        Ok(Self::from_str(&s).expect("infallible"))
2388    }
2389}
2390/// Cartes Bancaires is France's local card network.
2391/// More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks.
2392/// Check this [page](https://docs.stripe.com/payments/cartes-bancaires) for more details.
2393#[derive(Clone, Eq, PartialEq)]
2394#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2395#[derive(serde::Serialize)]
2396pub struct CreatePaymentMethodConfigurationCartesBancaires {
2397    /// Whether or not the payment method should be displayed.
2398    #[serde(skip_serializing_if = "Option::is_none")]
2399    pub display_preference:
2400        Option<CreatePaymentMethodConfigurationCartesBancairesDisplayPreference>,
2401}
2402#[cfg(feature = "redact-generated-debug")]
2403impl std::fmt::Debug for CreatePaymentMethodConfigurationCartesBancaires {
2404    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2405        f.debug_struct("CreatePaymentMethodConfigurationCartesBancaires").finish_non_exhaustive()
2406    }
2407}
2408impl CreatePaymentMethodConfigurationCartesBancaires {
2409    pub fn new() -> Self {
2410        Self { display_preference: None }
2411    }
2412}
2413impl Default for CreatePaymentMethodConfigurationCartesBancaires {
2414    fn default() -> Self {
2415        Self::new()
2416    }
2417}
2418/// Whether or not the payment method should be displayed.
2419#[derive(Clone, Eq, PartialEq)]
2420#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2421#[derive(serde::Serialize)]
2422pub struct CreatePaymentMethodConfigurationCartesBancairesDisplayPreference {
2423    /// The account's preference for whether or not to display this payment method.
2424    #[serde(skip_serializing_if = "Option::is_none")]
2425    pub preference:
2426        Option<CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference>,
2427}
2428#[cfg(feature = "redact-generated-debug")]
2429impl std::fmt::Debug for CreatePaymentMethodConfigurationCartesBancairesDisplayPreference {
2430    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2431        f.debug_struct("CreatePaymentMethodConfigurationCartesBancairesDisplayPreference")
2432            .finish_non_exhaustive()
2433    }
2434}
2435impl CreatePaymentMethodConfigurationCartesBancairesDisplayPreference {
2436    pub fn new() -> Self {
2437        Self { preference: None }
2438    }
2439}
2440impl Default for CreatePaymentMethodConfigurationCartesBancairesDisplayPreference {
2441    fn default() -> Self {
2442        Self::new()
2443    }
2444}
2445/// The account's preference for whether or not to display this payment method.
2446#[derive(Clone, Eq, PartialEq)]
2447#[non_exhaustive]
2448pub enum CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference {
2449    None,
2450    Off,
2451    On,
2452    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2453    Unknown(String),
2454}
2455impl CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference {
2456    pub fn as_str(&self) -> &str {
2457        use CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference::*;
2458        match self {
2459            None => "none",
2460            Off => "off",
2461            On => "on",
2462            Unknown(v) => v,
2463        }
2464    }
2465}
2466
2467impl std::str::FromStr
2468    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2469{
2470    type Err = std::convert::Infallible;
2471    fn from_str(s: &str) -> Result<Self, Self::Err> {
2472        use CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference::*;
2473        match s {
2474            "none" => Ok(None),
2475            "off" => Ok(Off),
2476            "on" => Ok(On),
2477            v => {
2478                tracing::warn!(
2479                    "Unknown value '{}' for enum '{}'",
2480                    v,
2481                    "CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference"
2482                );
2483                Ok(Unknown(v.to_owned()))
2484            }
2485        }
2486    }
2487}
2488impl std::fmt::Display
2489    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2490{
2491    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2492        f.write_str(self.as_str())
2493    }
2494}
2495
2496#[cfg(not(feature = "redact-generated-debug"))]
2497impl std::fmt::Debug
2498    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2499{
2500    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2501        f.write_str(self.as_str())
2502    }
2503}
2504#[cfg(feature = "redact-generated-debug")]
2505impl std::fmt::Debug
2506    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2507{
2508    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2509        f.debug_struct(stringify!(
2510            CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2511        ))
2512        .finish_non_exhaustive()
2513    }
2514}
2515impl serde::Serialize
2516    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2517{
2518    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2519    where
2520        S: serde::Serializer,
2521    {
2522        serializer.serialize_str(self.as_str())
2523    }
2524}
2525#[cfg(feature = "deserialize")]
2526impl<'de> serde::Deserialize<'de>
2527    for CreatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
2528{
2529    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2530        use std::str::FromStr;
2531        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2532        Ok(Self::from_str(&s).expect("infallible"))
2533    }
2534}
2535/// Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet.
2536/// Check this [page](https://docs.stripe.com/payments/cash-app-pay) for more details.
2537#[derive(Clone, Eq, PartialEq)]
2538#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2539#[derive(serde::Serialize)]
2540pub struct CreatePaymentMethodConfigurationCashapp {
2541    /// Whether or not the payment method should be displayed.
2542    #[serde(skip_serializing_if = "Option::is_none")]
2543    pub display_preference: Option<CreatePaymentMethodConfigurationCashappDisplayPreference>,
2544}
2545#[cfg(feature = "redact-generated-debug")]
2546impl std::fmt::Debug for CreatePaymentMethodConfigurationCashapp {
2547    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2548        f.debug_struct("CreatePaymentMethodConfigurationCashapp").finish_non_exhaustive()
2549    }
2550}
2551impl CreatePaymentMethodConfigurationCashapp {
2552    pub fn new() -> Self {
2553        Self { display_preference: None }
2554    }
2555}
2556impl Default for CreatePaymentMethodConfigurationCashapp {
2557    fn default() -> Self {
2558        Self::new()
2559    }
2560}
2561/// Whether or not the payment method should be displayed.
2562#[derive(Clone, Eq, PartialEq)]
2563#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2564#[derive(serde::Serialize)]
2565pub struct CreatePaymentMethodConfigurationCashappDisplayPreference {
2566    /// The account's preference for whether or not to display this payment method.
2567    #[serde(skip_serializing_if = "Option::is_none")]
2568    pub preference: Option<CreatePaymentMethodConfigurationCashappDisplayPreferencePreference>,
2569}
2570#[cfg(feature = "redact-generated-debug")]
2571impl std::fmt::Debug for CreatePaymentMethodConfigurationCashappDisplayPreference {
2572    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2573        f.debug_struct("CreatePaymentMethodConfigurationCashappDisplayPreference")
2574            .finish_non_exhaustive()
2575    }
2576}
2577impl CreatePaymentMethodConfigurationCashappDisplayPreference {
2578    pub fn new() -> Self {
2579        Self { preference: None }
2580    }
2581}
2582impl Default for CreatePaymentMethodConfigurationCashappDisplayPreference {
2583    fn default() -> Self {
2584        Self::new()
2585    }
2586}
2587/// The account's preference for whether or not to display this payment method.
2588#[derive(Clone, Eq, PartialEq)]
2589#[non_exhaustive]
2590pub enum CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2591    None,
2592    Off,
2593    On,
2594    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2595    Unknown(String),
2596}
2597impl CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2598    pub fn as_str(&self) -> &str {
2599        use CreatePaymentMethodConfigurationCashappDisplayPreferencePreference::*;
2600        match self {
2601            None => "none",
2602            Off => "off",
2603            On => "on",
2604            Unknown(v) => v,
2605        }
2606    }
2607}
2608
2609impl std::str::FromStr for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2610    type Err = std::convert::Infallible;
2611    fn from_str(s: &str) -> Result<Self, Self::Err> {
2612        use CreatePaymentMethodConfigurationCashappDisplayPreferencePreference::*;
2613        match s {
2614            "none" => Ok(None),
2615            "off" => Ok(Off),
2616            "on" => Ok(On),
2617            v => {
2618                tracing::warn!(
2619                    "Unknown value '{}' for enum '{}'",
2620                    v,
2621                    "CreatePaymentMethodConfigurationCashappDisplayPreferencePreference"
2622                );
2623                Ok(Unknown(v.to_owned()))
2624            }
2625        }
2626    }
2627}
2628impl std::fmt::Display for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2629    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2630        f.write_str(self.as_str())
2631    }
2632}
2633
2634#[cfg(not(feature = "redact-generated-debug"))]
2635impl std::fmt::Debug for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2636    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2637        f.write_str(self.as_str())
2638    }
2639}
2640#[cfg(feature = "redact-generated-debug")]
2641impl std::fmt::Debug for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2642    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2643        f.debug_struct(stringify!(
2644            CreatePaymentMethodConfigurationCashappDisplayPreferencePreference
2645        ))
2646        .finish_non_exhaustive()
2647    }
2648}
2649impl serde::Serialize for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference {
2650    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2651    where
2652        S: serde::Serializer,
2653    {
2654        serializer.serialize_str(self.as_str())
2655    }
2656}
2657#[cfg(feature = "deserialize")]
2658impl<'de> serde::Deserialize<'de>
2659    for CreatePaymentMethodConfigurationCashappDisplayPreferencePreference
2660{
2661    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2662        use std::str::FromStr;
2663        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2664        Ok(Self::from_str(&s).expect("infallible"))
2665    }
2666}
2667/// [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask.
2668#[derive(Clone, Eq, PartialEq)]
2669#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2670#[derive(serde::Serialize)]
2671pub struct CreatePaymentMethodConfigurationCrypto {
2672    /// Whether or not the payment method should be displayed.
2673    #[serde(skip_serializing_if = "Option::is_none")]
2674    pub display_preference: Option<CreatePaymentMethodConfigurationCryptoDisplayPreference>,
2675}
2676#[cfg(feature = "redact-generated-debug")]
2677impl std::fmt::Debug for CreatePaymentMethodConfigurationCrypto {
2678    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2679        f.debug_struct("CreatePaymentMethodConfigurationCrypto").finish_non_exhaustive()
2680    }
2681}
2682impl CreatePaymentMethodConfigurationCrypto {
2683    pub fn new() -> Self {
2684        Self { display_preference: None }
2685    }
2686}
2687impl Default for CreatePaymentMethodConfigurationCrypto {
2688    fn default() -> Self {
2689        Self::new()
2690    }
2691}
2692/// Whether or not the payment method should be displayed.
2693#[derive(Clone, Eq, PartialEq)]
2694#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2695#[derive(serde::Serialize)]
2696pub struct CreatePaymentMethodConfigurationCryptoDisplayPreference {
2697    /// The account's preference for whether or not to display this payment method.
2698    #[serde(skip_serializing_if = "Option::is_none")]
2699    pub preference: Option<CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference>,
2700}
2701#[cfg(feature = "redact-generated-debug")]
2702impl std::fmt::Debug for CreatePaymentMethodConfigurationCryptoDisplayPreference {
2703    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2704        f.debug_struct("CreatePaymentMethodConfigurationCryptoDisplayPreference")
2705            .finish_non_exhaustive()
2706    }
2707}
2708impl CreatePaymentMethodConfigurationCryptoDisplayPreference {
2709    pub fn new() -> Self {
2710        Self { preference: None }
2711    }
2712}
2713impl Default for CreatePaymentMethodConfigurationCryptoDisplayPreference {
2714    fn default() -> Self {
2715        Self::new()
2716    }
2717}
2718/// The account's preference for whether or not to display this payment method.
2719#[derive(Clone, Eq, PartialEq)]
2720#[non_exhaustive]
2721pub enum CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2722    None,
2723    Off,
2724    On,
2725    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2726    Unknown(String),
2727}
2728impl CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2729    pub fn as_str(&self) -> &str {
2730        use CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference::*;
2731        match self {
2732            None => "none",
2733            Off => "off",
2734            On => "on",
2735            Unknown(v) => v,
2736        }
2737    }
2738}
2739
2740impl std::str::FromStr for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2741    type Err = std::convert::Infallible;
2742    fn from_str(s: &str) -> Result<Self, Self::Err> {
2743        use CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference::*;
2744        match s {
2745            "none" => Ok(None),
2746            "off" => Ok(Off),
2747            "on" => Ok(On),
2748            v => {
2749                tracing::warn!(
2750                    "Unknown value '{}' for enum '{}'",
2751                    v,
2752                    "CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference"
2753                );
2754                Ok(Unknown(v.to_owned()))
2755            }
2756        }
2757    }
2758}
2759impl std::fmt::Display for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2760    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2761        f.write_str(self.as_str())
2762    }
2763}
2764
2765#[cfg(not(feature = "redact-generated-debug"))]
2766impl std::fmt::Debug for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2767    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2768        f.write_str(self.as_str())
2769    }
2770}
2771#[cfg(feature = "redact-generated-debug")]
2772impl std::fmt::Debug for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2773    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2774        f.debug_struct(stringify!(
2775            CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference
2776        ))
2777        .finish_non_exhaustive()
2778    }
2779}
2780impl serde::Serialize for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
2781    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2782    where
2783        S: serde::Serializer,
2784    {
2785        serializer.serialize_str(self.as_str())
2786    }
2787}
2788#[cfg(feature = "deserialize")]
2789impl<'de> serde::Deserialize<'de>
2790    for CreatePaymentMethodConfigurationCryptoDisplayPreferencePreference
2791{
2792    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2793        use std::str::FromStr;
2794        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2795        Ok(Self::from_str(&s).expect("infallible"))
2796    }
2797}
2798/// Uses a customer’s [cash balance](https://docs.stripe.com/payments/customer-balance) for the payment.
2799/// The cash balance can be funded via a bank transfer.
2800/// Check this [page](https://docs.stripe.com/payments/bank-transfers) for more details.
2801#[derive(Clone, Eq, PartialEq)]
2802#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2803#[derive(serde::Serialize)]
2804pub struct CreatePaymentMethodConfigurationCustomerBalance {
2805    /// Whether or not the payment method should be displayed.
2806    #[serde(skip_serializing_if = "Option::is_none")]
2807    pub display_preference:
2808        Option<CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference>,
2809}
2810#[cfg(feature = "redact-generated-debug")]
2811impl std::fmt::Debug for CreatePaymentMethodConfigurationCustomerBalance {
2812    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2813        f.debug_struct("CreatePaymentMethodConfigurationCustomerBalance").finish_non_exhaustive()
2814    }
2815}
2816impl CreatePaymentMethodConfigurationCustomerBalance {
2817    pub fn new() -> Self {
2818        Self { display_preference: None }
2819    }
2820}
2821impl Default for CreatePaymentMethodConfigurationCustomerBalance {
2822    fn default() -> Self {
2823        Self::new()
2824    }
2825}
2826/// Whether or not the payment method should be displayed.
2827#[derive(Clone, Eq, PartialEq)]
2828#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2829#[derive(serde::Serialize)]
2830pub struct CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
2831    /// The account's preference for whether or not to display this payment method.
2832    #[serde(skip_serializing_if = "Option::is_none")]
2833    pub preference:
2834        Option<CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference>,
2835}
2836#[cfg(feature = "redact-generated-debug")]
2837impl std::fmt::Debug for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
2838    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2839        f.debug_struct("CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference")
2840            .finish_non_exhaustive()
2841    }
2842}
2843impl CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
2844    pub fn new() -> Self {
2845        Self { preference: None }
2846    }
2847}
2848impl Default for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
2849    fn default() -> Self {
2850        Self::new()
2851    }
2852}
2853/// The account's preference for whether or not to display this payment method.
2854#[derive(Clone, Eq, PartialEq)]
2855#[non_exhaustive]
2856pub enum CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference {
2857    None,
2858    Off,
2859    On,
2860    /// An unrecognized value from Stripe. Should not be used as a request parameter.
2861    Unknown(String),
2862}
2863impl CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference {
2864    pub fn as_str(&self) -> &str {
2865        use CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference::*;
2866        match self {
2867            None => "none",
2868            Off => "off",
2869            On => "on",
2870            Unknown(v) => v,
2871        }
2872    }
2873}
2874
2875impl std::str::FromStr
2876    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2877{
2878    type Err = std::convert::Infallible;
2879    fn from_str(s: &str) -> Result<Self, Self::Err> {
2880        use CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference::*;
2881        match s {
2882            "none" => Ok(None),
2883            "off" => Ok(Off),
2884            "on" => Ok(On),
2885            v => {
2886                tracing::warn!(
2887                    "Unknown value '{}' for enum '{}'",
2888                    v,
2889                    "CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference"
2890                );
2891                Ok(Unknown(v.to_owned()))
2892            }
2893        }
2894    }
2895}
2896impl std::fmt::Display
2897    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2898{
2899    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2900        f.write_str(self.as_str())
2901    }
2902}
2903
2904#[cfg(not(feature = "redact-generated-debug"))]
2905impl std::fmt::Debug
2906    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2907{
2908    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2909        f.write_str(self.as_str())
2910    }
2911}
2912#[cfg(feature = "redact-generated-debug")]
2913impl std::fmt::Debug
2914    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2915{
2916    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2917        f.debug_struct(stringify!(
2918            CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2919        ))
2920        .finish_non_exhaustive()
2921    }
2922}
2923impl serde::Serialize
2924    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2925{
2926    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2927    where
2928        S: serde::Serializer,
2929    {
2930        serializer.serialize_str(self.as_str())
2931    }
2932}
2933#[cfg(feature = "deserialize")]
2934impl<'de> serde::Deserialize<'de>
2935    for CreatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
2936{
2937    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2938        use std::str::FromStr;
2939        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
2940        Ok(Self::from_str(&s).expect("infallible"))
2941    }
2942}
2943/// EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials.
2944/// EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers.
2945/// Check this [page](https://docs.stripe.com/payments/eps) for more details.
2946#[derive(Clone, Eq, PartialEq)]
2947#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2948#[derive(serde::Serialize)]
2949pub struct CreatePaymentMethodConfigurationEps {
2950    /// Whether or not the payment method should be displayed.
2951    #[serde(skip_serializing_if = "Option::is_none")]
2952    pub display_preference: Option<CreatePaymentMethodConfigurationEpsDisplayPreference>,
2953}
2954#[cfg(feature = "redact-generated-debug")]
2955impl std::fmt::Debug for CreatePaymentMethodConfigurationEps {
2956    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2957        f.debug_struct("CreatePaymentMethodConfigurationEps").finish_non_exhaustive()
2958    }
2959}
2960impl CreatePaymentMethodConfigurationEps {
2961    pub fn new() -> Self {
2962        Self { display_preference: None }
2963    }
2964}
2965impl Default for CreatePaymentMethodConfigurationEps {
2966    fn default() -> Self {
2967        Self::new()
2968    }
2969}
2970/// Whether or not the payment method should be displayed.
2971#[derive(Clone, Eq, PartialEq)]
2972#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
2973#[derive(serde::Serialize)]
2974pub struct CreatePaymentMethodConfigurationEpsDisplayPreference {
2975    /// The account's preference for whether or not to display this payment method.
2976    #[serde(skip_serializing_if = "Option::is_none")]
2977    pub preference: Option<CreatePaymentMethodConfigurationEpsDisplayPreferencePreference>,
2978}
2979#[cfg(feature = "redact-generated-debug")]
2980impl std::fmt::Debug for CreatePaymentMethodConfigurationEpsDisplayPreference {
2981    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2982        f.debug_struct("CreatePaymentMethodConfigurationEpsDisplayPreference")
2983            .finish_non_exhaustive()
2984    }
2985}
2986impl CreatePaymentMethodConfigurationEpsDisplayPreference {
2987    pub fn new() -> Self {
2988        Self { preference: None }
2989    }
2990}
2991impl Default for CreatePaymentMethodConfigurationEpsDisplayPreference {
2992    fn default() -> Self {
2993        Self::new()
2994    }
2995}
2996/// The account's preference for whether or not to display this payment method.
2997#[derive(Clone, Eq, PartialEq)]
2998#[non_exhaustive]
2999pub enum CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3000    None,
3001    Off,
3002    On,
3003    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3004    Unknown(String),
3005}
3006impl CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3007    pub fn as_str(&self) -> &str {
3008        use CreatePaymentMethodConfigurationEpsDisplayPreferencePreference::*;
3009        match self {
3010            None => "none",
3011            Off => "off",
3012            On => "on",
3013            Unknown(v) => v,
3014        }
3015    }
3016}
3017
3018impl std::str::FromStr for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3019    type Err = std::convert::Infallible;
3020    fn from_str(s: &str) -> Result<Self, Self::Err> {
3021        use CreatePaymentMethodConfigurationEpsDisplayPreferencePreference::*;
3022        match s {
3023            "none" => Ok(None),
3024            "off" => Ok(Off),
3025            "on" => Ok(On),
3026            v => {
3027                tracing::warn!(
3028                    "Unknown value '{}' for enum '{}'",
3029                    v,
3030                    "CreatePaymentMethodConfigurationEpsDisplayPreferencePreference"
3031                );
3032                Ok(Unknown(v.to_owned()))
3033            }
3034        }
3035    }
3036}
3037impl std::fmt::Display for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3038    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3039        f.write_str(self.as_str())
3040    }
3041}
3042
3043#[cfg(not(feature = "redact-generated-debug"))]
3044impl std::fmt::Debug for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3045    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3046        f.write_str(self.as_str())
3047    }
3048}
3049#[cfg(feature = "redact-generated-debug")]
3050impl std::fmt::Debug for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3051    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3052        f.debug_struct(stringify!(CreatePaymentMethodConfigurationEpsDisplayPreferencePreference))
3053            .finish_non_exhaustive()
3054    }
3055}
3056impl serde::Serialize for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference {
3057    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3058    where
3059        S: serde::Serializer,
3060    {
3061        serializer.serialize_str(self.as_str())
3062    }
3063}
3064#[cfg(feature = "deserialize")]
3065impl<'de> serde::Deserialize<'de>
3066    for CreatePaymentMethodConfigurationEpsDisplayPreferencePreference
3067{
3068    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3069        use std::str::FromStr;
3070        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3071        Ok(Self::from_str(&s).expect("infallible"))
3072    }
3073}
3074/// Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials.
3075/// Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX.
3076/// It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM.
3077/// Check this [page](https://docs.stripe.com/payments/fpx) for more details.
3078#[derive(Clone, Eq, PartialEq)]
3079#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3080#[derive(serde::Serialize)]
3081pub struct CreatePaymentMethodConfigurationFpx {
3082    /// Whether or not the payment method should be displayed.
3083    #[serde(skip_serializing_if = "Option::is_none")]
3084    pub display_preference: Option<CreatePaymentMethodConfigurationFpxDisplayPreference>,
3085}
3086#[cfg(feature = "redact-generated-debug")]
3087impl std::fmt::Debug for CreatePaymentMethodConfigurationFpx {
3088    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3089        f.debug_struct("CreatePaymentMethodConfigurationFpx").finish_non_exhaustive()
3090    }
3091}
3092impl CreatePaymentMethodConfigurationFpx {
3093    pub fn new() -> Self {
3094        Self { display_preference: None }
3095    }
3096}
3097impl Default for CreatePaymentMethodConfigurationFpx {
3098    fn default() -> Self {
3099        Self::new()
3100    }
3101}
3102/// Whether or not the payment method should be displayed.
3103#[derive(Clone, Eq, PartialEq)]
3104#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3105#[derive(serde::Serialize)]
3106pub struct CreatePaymentMethodConfigurationFpxDisplayPreference {
3107    /// The account's preference for whether or not to display this payment method.
3108    #[serde(skip_serializing_if = "Option::is_none")]
3109    pub preference: Option<CreatePaymentMethodConfigurationFpxDisplayPreferencePreference>,
3110}
3111#[cfg(feature = "redact-generated-debug")]
3112impl std::fmt::Debug for CreatePaymentMethodConfigurationFpxDisplayPreference {
3113    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3114        f.debug_struct("CreatePaymentMethodConfigurationFpxDisplayPreference")
3115            .finish_non_exhaustive()
3116    }
3117}
3118impl CreatePaymentMethodConfigurationFpxDisplayPreference {
3119    pub fn new() -> Self {
3120        Self { preference: None }
3121    }
3122}
3123impl Default for CreatePaymentMethodConfigurationFpxDisplayPreference {
3124    fn default() -> Self {
3125        Self::new()
3126    }
3127}
3128/// The account's preference for whether or not to display this payment method.
3129#[derive(Clone, Eq, PartialEq)]
3130#[non_exhaustive]
3131pub enum CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3132    None,
3133    Off,
3134    On,
3135    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3136    Unknown(String),
3137}
3138impl CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3139    pub fn as_str(&self) -> &str {
3140        use CreatePaymentMethodConfigurationFpxDisplayPreferencePreference::*;
3141        match self {
3142            None => "none",
3143            Off => "off",
3144            On => "on",
3145            Unknown(v) => v,
3146        }
3147    }
3148}
3149
3150impl std::str::FromStr for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3151    type Err = std::convert::Infallible;
3152    fn from_str(s: &str) -> Result<Self, Self::Err> {
3153        use CreatePaymentMethodConfigurationFpxDisplayPreferencePreference::*;
3154        match s {
3155            "none" => Ok(None),
3156            "off" => Ok(Off),
3157            "on" => Ok(On),
3158            v => {
3159                tracing::warn!(
3160                    "Unknown value '{}' for enum '{}'",
3161                    v,
3162                    "CreatePaymentMethodConfigurationFpxDisplayPreferencePreference"
3163                );
3164                Ok(Unknown(v.to_owned()))
3165            }
3166        }
3167    }
3168}
3169impl std::fmt::Display for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3170    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3171        f.write_str(self.as_str())
3172    }
3173}
3174
3175#[cfg(not(feature = "redact-generated-debug"))]
3176impl std::fmt::Debug for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3177    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3178        f.write_str(self.as_str())
3179    }
3180}
3181#[cfg(feature = "redact-generated-debug")]
3182impl std::fmt::Debug for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3183    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3184        f.debug_struct(stringify!(CreatePaymentMethodConfigurationFpxDisplayPreferencePreference))
3185            .finish_non_exhaustive()
3186    }
3187}
3188impl serde::Serialize for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference {
3189    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3190    where
3191        S: serde::Serializer,
3192    {
3193        serializer.serialize_str(self.as_str())
3194    }
3195}
3196#[cfg(feature = "deserialize")]
3197impl<'de> serde::Deserialize<'de>
3198    for CreatePaymentMethodConfigurationFpxDisplayPreferencePreference
3199{
3200    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3201        use std::str::FromStr;
3202        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3203        Ok(Self::from_str(&s).expect("infallible"))
3204    }
3205}
3206/// Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days.
3207/// Check this [page](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers) for more details.
3208#[derive(Clone, Eq, PartialEq)]
3209#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3210#[derive(serde::Serialize)]
3211pub struct CreatePaymentMethodConfigurationFrMealVoucherConecs {
3212    /// Whether or not the payment method should be displayed.
3213    #[serde(skip_serializing_if = "Option::is_none")]
3214    pub display_preference:
3215        Option<CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference>,
3216}
3217#[cfg(feature = "redact-generated-debug")]
3218impl std::fmt::Debug for CreatePaymentMethodConfigurationFrMealVoucherConecs {
3219    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3220        f.debug_struct("CreatePaymentMethodConfigurationFrMealVoucherConecs")
3221            .finish_non_exhaustive()
3222    }
3223}
3224impl CreatePaymentMethodConfigurationFrMealVoucherConecs {
3225    pub fn new() -> Self {
3226        Self { display_preference: None }
3227    }
3228}
3229impl Default for CreatePaymentMethodConfigurationFrMealVoucherConecs {
3230    fn default() -> Self {
3231        Self::new()
3232    }
3233}
3234/// Whether or not the payment method should be displayed.
3235#[derive(Clone, Eq, PartialEq)]
3236#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3237#[derive(serde::Serialize)]
3238pub struct CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
3239    /// The account's preference for whether or not to display this payment method.
3240    #[serde(skip_serializing_if = "Option::is_none")]
3241    pub preference:
3242        Option<CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference>,
3243}
3244#[cfg(feature = "redact-generated-debug")]
3245impl std::fmt::Debug for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
3246    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3247        f.debug_struct("CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference")
3248            .finish_non_exhaustive()
3249    }
3250}
3251impl CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
3252    pub fn new() -> Self {
3253        Self { preference: None }
3254    }
3255}
3256impl Default for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
3257    fn default() -> Self {
3258        Self::new()
3259    }
3260}
3261/// The account's preference for whether or not to display this payment method.
3262#[derive(Clone, Eq, PartialEq)]
3263#[non_exhaustive]
3264pub enum CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference {
3265    None,
3266    Off,
3267    On,
3268    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3269    Unknown(String),
3270}
3271impl CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference {
3272    pub fn as_str(&self) -> &str {
3273        use CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference::*;
3274        match self {
3275            None => "none",
3276            Off => "off",
3277            On => "on",
3278            Unknown(v) => v,
3279        }
3280    }
3281}
3282
3283impl std::str::FromStr
3284    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3285{
3286    type Err = std::convert::Infallible;
3287    fn from_str(s: &str) -> Result<Self, Self::Err> {
3288        use CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference::*;
3289        match s {
3290            "none" => Ok(None),
3291            "off" => Ok(Off),
3292            "on" => Ok(On),
3293            v => {
3294                tracing::warn!(
3295                    "Unknown value '{}' for enum '{}'",
3296                    v,
3297                    "CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference"
3298                );
3299                Ok(Unknown(v.to_owned()))
3300            }
3301        }
3302    }
3303}
3304impl std::fmt::Display
3305    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3306{
3307    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3308        f.write_str(self.as_str())
3309    }
3310}
3311
3312#[cfg(not(feature = "redact-generated-debug"))]
3313impl std::fmt::Debug
3314    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3315{
3316    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3317        f.write_str(self.as_str())
3318    }
3319}
3320#[cfg(feature = "redact-generated-debug")]
3321impl std::fmt::Debug
3322    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3323{
3324    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3325        f.debug_struct(stringify!(
3326            CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3327        ))
3328        .finish_non_exhaustive()
3329    }
3330}
3331impl serde::Serialize
3332    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3333{
3334    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3335    where
3336        S: serde::Serializer,
3337    {
3338        serializer.serialize_str(self.as_str())
3339    }
3340}
3341#[cfg(feature = "deserialize")]
3342impl<'de> serde::Deserialize<'de>
3343    for CreatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
3344{
3345    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3346        use std::str::FromStr;
3347        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3348        Ok(Self::from_str(&s).expect("infallible"))
3349    }
3350}
3351/// giropay is a German payment method based on online banking, introduced in 2006.
3352/// It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account.
3353/// Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN.
3354/// giropay accounts for 10% of online checkouts in Germany.
3355/// Check this [page](https://docs.stripe.com/payments/giropay) for more details.
3356#[derive(Clone, Eq, PartialEq)]
3357#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3358#[derive(serde::Serialize)]
3359pub struct CreatePaymentMethodConfigurationGiropay {
3360    /// Whether or not the payment method should be displayed.
3361    #[serde(skip_serializing_if = "Option::is_none")]
3362    pub display_preference: Option<CreatePaymentMethodConfigurationGiropayDisplayPreference>,
3363}
3364#[cfg(feature = "redact-generated-debug")]
3365impl std::fmt::Debug for CreatePaymentMethodConfigurationGiropay {
3366    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3367        f.debug_struct("CreatePaymentMethodConfigurationGiropay").finish_non_exhaustive()
3368    }
3369}
3370impl CreatePaymentMethodConfigurationGiropay {
3371    pub fn new() -> Self {
3372        Self { display_preference: None }
3373    }
3374}
3375impl Default for CreatePaymentMethodConfigurationGiropay {
3376    fn default() -> Self {
3377        Self::new()
3378    }
3379}
3380/// Whether or not the payment method should be displayed.
3381#[derive(Clone, Eq, PartialEq)]
3382#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3383#[derive(serde::Serialize)]
3384pub struct CreatePaymentMethodConfigurationGiropayDisplayPreference {
3385    /// The account's preference for whether or not to display this payment method.
3386    #[serde(skip_serializing_if = "Option::is_none")]
3387    pub preference: Option<CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference>,
3388}
3389#[cfg(feature = "redact-generated-debug")]
3390impl std::fmt::Debug for CreatePaymentMethodConfigurationGiropayDisplayPreference {
3391    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3392        f.debug_struct("CreatePaymentMethodConfigurationGiropayDisplayPreference")
3393            .finish_non_exhaustive()
3394    }
3395}
3396impl CreatePaymentMethodConfigurationGiropayDisplayPreference {
3397    pub fn new() -> Self {
3398        Self { preference: None }
3399    }
3400}
3401impl Default for CreatePaymentMethodConfigurationGiropayDisplayPreference {
3402    fn default() -> Self {
3403        Self::new()
3404    }
3405}
3406/// The account's preference for whether or not to display this payment method.
3407#[derive(Clone, Eq, PartialEq)]
3408#[non_exhaustive]
3409pub enum CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3410    None,
3411    Off,
3412    On,
3413    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3414    Unknown(String),
3415}
3416impl CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3417    pub fn as_str(&self) -> &str {
3418        use CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference::*;
3419        match self {
3420            None => "none",
3421            Off => "off",
3422            On => "on",
3423            Unknown(v) => v,
3424        }
3425    }
3426}
3427
3428impl std::str::FromStr for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3429    type Err = std::convert::Infallible;
3430    fn from_str(s: &str) -> Result<Self, Self::Err> {
3431        use CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference::*;
3432        match s {
3433            "none" => Ok(None),
3434            "off" => Ok(Off),
3435            "on" => Ok(On),
3436            v => {
3437                tracing::warn!(
3438                    "Unknown value '{}' for enum '{}'",
3439                    v,
3440                    "CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference"
3441                );
3442                Ok(Unknown(v.to_owned()))
3443            }
3444        }
3445    }
3446}
3447impl std::fmt::Display for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3448    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3449        f.write_str(self.as_str())
3450    }
3451}
3452
3453#[cfg(not(feature = "redact-generated-debug"))]
3454impl std::fmt::Debug for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3455    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3456        f.write_str(self.as_str())
3457    }
3458}
3459#[cfg(feature = "redact-generated-debug")]
3460impl std::fmt::Debug for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3461    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3462        f.debug_struct(stringify!(
3463            CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference
3464        ))
3465        .finish_non_exhaustive()
3466    }
3467}
3468impl serde::Serialize for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
3469    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3470    where
3471        S: serde::Serializer,
3472    {
3473        serializer.serialize_str(self.as_str())
3474    }
3475}
3476#[cfg(feature = "deserialize")]
3477impl<'de> serde::Deserialize<'de>
3478    for CreatePaymentMethodConfigurationGiropayDisplayPreferencePreference
3479{
3480    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3481        use std::str::FromStr;
3482        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3483        Ok(Self::from_str(&s).expect("infallible"))
3484    }
3485}
3486/// Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device.
3487/// Use the Google Pay API to request any credit or debit card stored in your customer's Google account.
3488/// Check this [page](https://docs.stripe.com/google-pay) for more details.
3489#[derive(Clone, Eq, PartialEq)]
3490#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3491#[derive(serde::Serialize)]
3492pub struct CreatePaymentMethodConfigurationGooglePay {
3493    /// Whether or not the payment method should be displayed.
3494    #[serde(skip_serializing_if = "Option::is_none")]
3495    pub display_preference: Option<CreatePaymentMethodConfigurationGooglePayDisplayPreference>,
3496}
3497#[cfg(feature = "redact-generated-debug")]
3498impl std::fmt::Debug for CreatePaymentMethodConfigurationGooglePay {
3499    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3500        f.debug_struct("CreatePaymentMethodConfigurationGooglePay").finish_non_exhaustive()
3501    }
3502}
3503impl CreatePaymentMethodConfigurationGooglePay {
3504    pub fn new() -> Self {
3505        Self { display_preference: None }
3506    }
3507}
3508impl Default for CreatePaymentMethodConfigurationGooglePay {
3509    fn default() -> Self {
3510        Self::new()
3511    }
3512}
3513/// Whether or not the payment method should be displayed.
3514#[derive(Clone, Eq, PartialEq)]
3515#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3516#[derive(serde::Serialize)]
3517pub struct CreatePaymentMethodConfigurationGooglePayDisplayPreference {
3518    /// The account's preference for whether or not to display this payment method.
3519    #[serde(skip_serializing_if = "Option::is_none")]
3520    pub preference: Option<CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference>,
3521}
3522#[cfg(feature = "redact-generated-debug")]
3523impl std::fmt::Debug for CreatePaymentMethodConfigurationGooglePayDisplayPreference {
3524    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3525        f.debug_struct("CreatePaymentMethodConfigurationGooglePayDisplayPreference")
3526            .finish_non_exhaustive()
3527    }
3528}
3529impl CreatePaymentMethodConfigurationGooglePayDisplayPreference {
3530    pub fn new() -> Self {
3531        Self { preference: None }
3532    }
3533}
3534impl Default for CreatePaymentMethodConfigurationGooglePayDisplayPreference {
3535    fn default() -> Self {
3536        Self::new()
3537    }
3538}
3539/// The account's preference for whether or not to display this payment method.
3540#[derive(Clone, Eq, PartialEq)]
3541#[non_exhaustive]
3542pub enum CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3543    None,
3544    Off,
3545    On,
3546    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3547    Unknown(String),
3548}
3549impl CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3550    pub fn as_str(&self) -> &str {
3551        use CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference::*;
3552        match self {
3553            None => "none",
3554            Off => "off",
3555            On => "on",
3556            Unknown(v) => v,
3557        }
3558    }
3559}
3560
3561impl std::str::FromStr for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3562    type Err = std::convert::Infallible;
3563    fn from_str(s: &str) -> Result<Self, Self::Err> {
3564        use CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference::*;
3565        match s {
3566            "none" => Ok(None),
3567            "off" => Ok(Off),
3568            "on" => Ok(On),
3569            v => {
3570                tracing::warn!(
3571                    "Unknown value '{}' for enum '{}'",
3572                    v,
3573                    "CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference"
3574                );
3575                Ok(Unknown(v.to_owned()))
3576            }
3577        }
3578    }
3579}
3580impl std::fmt::Display for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3581    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3582        f.write_str(self.as_str())
3583    }
3584}
3585
3586#[cfg(not(feature = "redact-generated-debug"))]
3587impl std::fmt::Debug for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3588    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3589        f.write_str(self.as_str())
3590    }
3591}
3592#[cfg(feature = "redact-generated-debug")]
3593impl std::fmt::Debug for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3594    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3595        f.debug_struct(stringify!(
3596            CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference
3597        ))
3598        .finish_non_exhaustive()
3599    }
3600}
3601impl serde::Serialize for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
3602    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3603    where
3604        S: serde::Serializer,
3605    {
3606        serializer.serialize_str(self.as_str())
3607    }
3608}
3609#[cfg(feature = "deserialize")]
3610impl<'de> serde::Deserialize<'de>
3611    for CreatePaymentMethodConfigurationGooglePayDisplayPreferencePreference
3612{
3613    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3614        use std::str::FromStr;
3615        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3616        Ok(Self::from_str(&s).expect("infallible"))
3617    }
3618}
3619/// GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/).
3620/// GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with.
3621/// Check this [page](https://docs.stripe.com/payments/grabpay) for more details.
3622#[derive(Clone, Eq, PartialEq)]
3623#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3624#[derive(serde::Serialize)]
3625pub struct CreatePaymentMethodConfigurationGrabpay {
3626    /// Whether or not the payment method should be displayed.
3627    #[serde(skip_serializing_if = "Option::is_none")]
3628    pub display_preference: Option<CreatePaymentMethodConfigurationGrabpayDisplayPreference>,
3629}
3630#[cfg(feature = "redact-generated-debug")]
3631impl std::fmt::Debug for CreatePaymentMethodConfigurationGrabpay {
3632    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3633        f.debug_struct("CreatePaymentMethodConfigurationGrabpay").finish_non_exhaustive()
3634    }
3635}
3636impl CreatePaymentMethodConfigurationGrabpay {
3637    pub fn new() -> Self {
3638        Self { display_preference: None }
3639    }
3640}
3641impl Default for CreatePaymentMethodConfigurationGrabpay {
3642    fn default() -> Self {
3643        Self::new()
3644    }
3645}
3646/// Whether or not the payment method should be displayed.
3647#[derive(Clone, Eq, PartialEq)]
3648#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3649#[derive(serde::Serialize)]
3650pub struct CreatePaymentMethodConfigurationGrabpayDisplayPreference {
3651    /// The account's preference for whether or not to display this payment method.
3652    #[serde(skip_serializing_if = "Option::is_none")]
3653    pub preference: Option<CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference>,
3654}
3655#[cfg(feature = "redact-generated-debug")]
3656impl std::fmt::Debug for CreatePaymentMethodConfigurationGrabpayDisplayPreference {
3657    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3658        f.debug_struct("CreatePaymentMethodConfigurationGrabpayDisplayPreference")
3659            .finish_non_exhaustive()
3660    }
3661}
3662impl CreatePaymentMethodConfigurationGrabpayDisplayPreference {
3663    pub fn new() -> Self {
3664        Self { preference: None }
3665    }
3666}
3667impl Default for CreatePaymentMethodConfigurationGrabpayDisplayPreference {
3668    fn default() -> Self {
3669        Self::new()
3670    }
3671}
3672/// The account's preference for whether or not to display this payment method.
3673#[derive(Clone, Eq, PartialEq)]
3674#[non_exhaustive]
3675pub enum CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3676    None,
3677    Off,
3678    On,
3679    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3680    Unknown(String),
3681}
3682impl CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3683    pub fn as_str(&self) -> &str {
3684        use CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference::*;
3685        match self {
3686            None => "none",
3687            Off => "off",
3688            On => "on",
3689            Unknown(v) => v,
3690        }
3691    }
3692}
3693
3694impl std::str::FromStr for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3695    type Err = std::convert::Infallible;
3696    fn from_str(s: &str) -> Result<Self, Self::Err> {
3697        use CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference::*;
3698        match s {
3699            "none" => Ok(None),
3700            "off" => Ok(Off),
3701            "on" => Ok(On),
3702            v => {
3703                tracing::warn!(
3704                    "Unknown value '{}' for enum '{}'",
3705                    v,
3706                    "CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference"
3707                );
3708                Ok(Unknown(v.to_owned()))
3709            }
3710        }
3711    }
3712}
3713impl std::fmt::Display for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3714    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3715        f.write_str(self.as_str())
3716    }
3717}
3718
3719#[cfg(not(feature = "redact-generated-debug"))]
3720impl std::fmt::Debug for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3721    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3722        f.write_str(self.as_str())
3723    }
3724}
3725#[cfg(feature = "redact-generated-debug")]
3726impl std::fmt::Debug for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3727    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3728        f.debug_struct(stringify!(
3729            CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference
3730        ))
3731        .finish_non_exhaustive()
3732    }
3733}
3734impl serde::Serialize for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
3735    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3736    where
3737        S: serde::Serializer,
3738    {
3739        serializer.serialize_str(self.as_str())
3740    }
3741}
3742#[cfg(feature = "deserialize")]
3743impl<'de> serde::Deserialize<'de>
3744    for CreatePaymentMethodConfigurationGrabpayDisplayPreferencePreference
3745{
3746    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3747        use std::str::FromStr;
3748        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3749        Ok(Self::from_str(&s).expect("infallible"))
3750    }
3751}
3752/// iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials.
3753/// All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%.
3754/// Check this [page](https://docs.stripe.com/payments/ideal) for more details.
3755#[derive(Clone, Eq, PartialEq)]
3756#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3757#[derive(serde::Serialize)]
3758pub struct CreatePaymentMethodConfigurationIdeal {
3759    /// Whether or not the payment method should be displayed.
3760    #[serde(skip_serializing_if = "Option::is_none")]
3761    pub display_preference: Option<CreatePaymentMethodConfigurationIdealDisplayPreference>,
3762}
3763#[cfg(feature = "redact-generated-debug")]
3764impl std::fmt::Debug for CreatePaymentMethodConfigurationIdeal {
3765    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3766        f.debug_struct("CreatePaymentMethodConfigurationIdeal").finish_non_exhaustive()
3767    }
3768}
3769impl CreatePaymentMethodConfigurationIdeal {
3770    pub fn new() -> Self {
3771        Self { display_preference: None }
3772    }
3773}
3774impl Default for CreatePaymentMethodConfigurationIdeal {
3775    fn default() -> Self {
3776        Self::new()
3777    }
3778}
3779/// Whether or not the payment method should be displayed.
3780#[derive(Clone, Eq, PartialEq)]
3781#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3782#[derive(serde::Serialize)]
3783pub struct CreatePaymentMethodConfigurationIdealDisplayPreference {
3784    /// The account's preference for whether or not to display this payment method.
3785    #[serde(skip_serializing_if = "Option::is_none")]
3786    pub preference: Option<CreatePaymentMethodConfigurationIdealDisplayPreferencePreference>,
3787}
3788#[cfg(feature = "redact-generated-debug")]
3789impl std::fmt::Debug for CreatePaymentMethodConfigurationIdealDisplayPreference {
3790    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3791        f.debug_struct("CreatePaymentMethodConfigurationIdealDisplayPreference")
3792            .finish_non_exhaustive()
3793    }
3794}
3795impl CreatePaymentMethodConfigurationIdealDisplayPreference {
3796    pub fn new() -> Self {
3797        Self { preference: None }
3798    }
3799}
3800impl Default for CreatePaymentMethodConfigurationIdealDisplayPreference {
3801    fn default() -> Self {
3802        Self::new()
3803    }
3804}
3805/// The account's preference for whether or not to display this payment method.
3806#[derive(Clone, Eq, PartialEq)]
3807#[non_exhaustive]
3808pub enum CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3809    None,
3810    Off,
3811    On,
3812    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3813    Unknown(String),
3814}
3815impl CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3816    pub fn as_str(&self) -> &str {
3817        use CreatePaymentMethodConfigurationIdealDisplayPreferencePreference::*;
3818        match self {
3819            None => "none",
3820            Off => "off",
3821            On => "on",
3822            Unknown(v) => v,
3823        }
3824    }
3825}
3826
3827impl std::str::FromStr for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3828    type Err = std::convert::Infallible;
3829    fn from_str(s: &str) -> Result<Self, Self::Err> {
3830        use CreatePaymentMethodConfigurationIdealDisplayPreferencePreference::*;
3831        match s {
3832            "none" => Ok(None),
3833            "off" => Ok(Off),
3834            "on" => Ok(On),
3835            v => {
3836                tracing::warn!(
3837                    "Unknown value '{}' for enum '{}'",
3838                    v,
3839                    "CreatePaymentMethodConfigurationIdealDisplayPreferencePreference"
3840                );
3841                Ok(Unknown(v.to_owned()))
3842            }
3843        }
3844    }
3845}
3846impl std::fmt::Display for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3847    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3848        f.write_str(self.as_str())
3849    }
3850}
3851
3852#[cfg(not(feature = "redact-generated-debug"))]
3853impl std::fmt::Debug for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3854    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3855        f.write_str(self.as_str())
3856    }
3857}
3858#[cfg(feature = "redact-generated-debug")]
3859impl std::fmt::Debug for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3860    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3861        f.debug_struct(stringify!(CreatePaymentMethodConfigurationIdealDisplayPreferencePreference))
3862            .finish_non_exhaustive()
3863    }
3864}
3865impl serde::Serialize for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference {
3866    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3867    where
3868        S: serde::Serializer,
3869    {
3870        serializer.serialize_str(self.as_str())
3871    }
3872}
3873#[cfg(feature = "deserialize")]
3874impl<'de> serde::Deserialize<'de>
3875    for CreatePaymentMethodConfigurationIdealDisplayPreferencePreference
3876{
3877    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3878        use std::str::FromStr;
3879        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
3880        Ok(Self::from_str(&s).expect("infallible"))
3881    }
3882}
3883/// JCB is a credit card company based in Japan.
3884/// JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland.
3885/// Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.
3886#[derive(Clone, Eq, PartialEq)]
3887#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3888#[derive(serde::Serialize)]
3889pub struct CreatePaymentMethodConfigurationJcb {
3890    /// Whether or not the payment method should be displayed.
3891    #[serde(skip_serializing_if = "Option::is_none")]
3892    pub display_preference: Option<CreatePaymentMethodConfigurationJcbDisplayPreference>,
3893}
3894#[cfg(feature = "redact-generated-debug")]
3895impl std::fmt::Debug for CreatePaymentMethodConfigurationJcb {
3896    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3897        f.debug_struct("CreatePaymentMethodConfigurationJcb").finish_non_exhaustive()
3898    }
3899}
3900impl CreatePaymentMethodConfigurationJcb {
3901    pub fn new() -> Self {
3902        Self { display_preference: None }
3903    }
3904}
3905impl Default for CreatePaymentMethodConfigurationJcb {
3906    fn default() -> Self {
3907        Self::new()
3908    }
3909}
3910/// Whether or not the payment method should be displayed.
3911#[derive(Clone, Eq, PartialEq)]
3912#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3913#[derive(serde::Serialize)]
3914pub struct CreatePaymentMethodConfigurationJcbDisplayPreference {
3915    /// The account's preference for whether or not to display this payment method.
3916    #[serde(skip_serializing_if = "Option::is_none")]
3917    pub preference: Option<CreatePaymentMethodConfigurationJcbDisplayPreferencePreference>,
3918}
3919#[cfg(feature = "redact-generated-debug")]
3920impl std::fmt::Debug for CreatePaymentMethodConfigurationJcbDisplayPreference {
3921    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3922        f.debug_struct("CreatePaymentMethodConfigurationJcbDisplayPreference")
3923            .finish_non_exhaustive()
3924    }
3925}
3926impl CreatePaymentMethodConfigurationJcbDisplayPreference {
3927    pub fn new() -> Self {
3928        Self { preference: None }
3929    }
3930}
3931impl Default for CreatePaymentMethodConfigurationJcbDisplayPreference {
3932    fn default() -> Self {
3933        Self::new()
3934    }
3935}
3936/// The account's preference for whether or not to display this payment method.
3937#[derive(Clone, Eq, PartialEq)]
3938#[non_exhaustive]
3939pub enum CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3940    None,
3941    Off,
3942    On,
3943    /// An unrecognized value from Stripe. Should not be used as a request parameter.
3944    Unknown(String),
3945}
3946impl CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3947    pub fn as_str(&self) -> &str {
3948        use CreatePaymentMethodConfigurationJcbDisplayPreferencePreference::*;
3949        match self {
3950            None => "none",
3951            Off => "off",
3952            On => "on",
3953            Unknown(v) => v,
3954        }
3955    }
3956}
3957
3958impl std::str::FromStr for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3959    type Err = std::convert::Infallible;
3960    fn from_str(s: &str) -> Result<Self, Self::Err> {
3961        use CreatePaymentMethodConfigurationJcbDisplayPreferencePreference::*;
3962        match s {
3963            "none" => Ok(None),
3964            "off" => Ok(Off),
3965            "on" => Ok(On),
3966            v => {
3967                tracing::warn!(
3968                    "Unknown value '{}' for enum '{}'",
3969                    v,
3970                    "CreatePaymentMethodConfigurationJcbDisplayPreferencePreference"
3971                );
3972                Ok(Unknown(v.to_owned()))
3973            }
3974        }
3975    }
3976}
3977impl std::fmt::Display for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3978    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3979        f.write_str(self.as_str())
3980    }
3981}
3982
3983#[cfg(not(feature = "redact-generated-debug"))]
3984impl std::fmt::Debug for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3985    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3986        f.write_str(self.as_str())
3987    }
3988}
3989#[cfg(feature = "redact-generated-debug")]
3990impl std::fmt::Debug for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3991    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3992        f.debug_struct(stringify!(CreatePaymentMethodConfigurationJcbDisplayPreferencePreference))
3993            .finish_non_exhaustive()
3994    }
3995}
3996impl serde::Serialize for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference {
3997    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3998    where
3999        S: serde::Serializer,
4000    {
4001        serializer.serialize_str(self.as_str())
4002    }
4003}
4004#[cfg(feature = "deserialize")]
4005impl<'de> serde::Deserialize<'de>
4006    for CreatePaymentMethodConfigurationJcbDisplayPreferencePreference
4007{
4008    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4009        use std::str::FromStr;
4010        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4011        Ok(Self::from_str(&s).expect("infallible"))
4012    }
4013}
4014/// Kakao Pay is a popular local wallet available in South Korea.
4015#[derive(Clone, Eq, PartialEq)]
4016#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4017#[derive(serde::Serialize)]
4018pub struct CreatePaymentMethodConfigurationKakaoPay {
4019    /// Whether or not the payment method should be displayed.
4020    #[serde(skip_serializing_if = "Option::is_none")]
4021    pub display_preference: Option<CreatePaymentMethodConfigurationKakaoPayDisplayPreference>,
4022}
4023#[cfg(feature = "redact-generated-debug")]
4024impl std::fmt::Debug for CreatePaymentMethodConfigurationKakaoPay {
4025    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4026        f.debug_struct("CreatePaymentMethodConfigurationKakaoPay").finish_non_exhaustive()
4027    }
4028}
4029impl CreatePaymentMethodConfigurationKakaoPay {
4030    pub fn new() -> Self {
4031        Self { display_preference: None }
4032    }
4033}
4034impl Default for CreatePaymentMethodConfigurationKakaoPay {
4035    fn default() -> Self {
4036        Self::new()
4037    }
4038}
4039/// Whether or not the payment method should be displayed.
4040#[derive(Clone, Eq, PartialEq)]
4041#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4042#[derive(serde::Serialize)]
4043pub struct CreatePaymentMethodConfigurationKakaoPayDisplayPreference {
4044    /// The account's preference for whether or not to display this payment method.
4045    #[serde(skip_serializing_if = "Option::is_none")]
4046    pub preference: Option<CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference>,
4047}
4048#[cfg(feature = "redact-generated-debug")]
4049impl std::fmt::Debug for CreatePaymentMethodConfigurationKakaoPayDisplayPreference {
4050    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4051        f.debug_struct("CreatePaymentMethodConfigurationKakaoPayDisplayPreference")
4052            .finish_non_exhaustive()
4053    }
4054}
4055impl CreatePaymentMethodConfigurationKakaoPayDisplayPreference {
4056    pub fn new() -> Self {
4057        Self { preference: None }
4058    }
4059}
4060impl Default for CreatePaymentMethodConfigurationKakaoPayDisplayPreference {
4061    fn default() -> Self {
4062        Self::new()
4063    }
4064}
4065/// The account's preference for whether or not to display this payment method.
4066#[derive(Clone, Eq, PartialEq)]
4067#[non_exhaustive]
4068pub enum CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4069    None,
4070    Off,
4071    On,
4072    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4073    Unknown(String),
4074}
4075impl CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4076    pub fn as_str(&self) -> &str {
4077        use CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference::*;
4078        match self {
4079            None => "none",
4080            Off => "off",
4081            On => "on",
4082            Unknown(v) => v,
4083        }
4084    }
4085}
4086
4087impl std::str::FromStr for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4088    type Err = std::convert::Infallible;
4089    fn from_str(s: &str) -> Result<Self, Self::Err> {
4090        use CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference::*;
4091        match s {
4092            "none" => Ok(None),
4093            "off" => Ok(Off),
4094            "on" => Ok(On),
4095            v => {
4096                tracing::warn!(
4097                    "Unknown value '{}' for enum '{}'",
4098                    v,
4099                    "CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference"
4100                );
4101                Ok(Unknown(v.to_owned()))
4102            }
4103        }
4104    }
4105}
4106impl std::fmt::Display for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4107    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4108        f.write_str(self.as_str())
4109    }
4110}
4111
4112#[cfg(not(feature = "redact-generated-debug"))]
4113impl std::fmt::Debug for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4114    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4115        f.write_str(self.as_str())
4116    }
4117}
4118#[cfg(feature = "redact-generated-debug")]
4119impl std::fmt::Debug for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4120    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4121        f.debug_struct(stringify!(
4122            CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference
4123        ))
4124        .finish_non_exhaustive()
4125    }
4126}
4127impl serde::Serialize for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
4128    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4129    where
4130        S: serde::Serializer,
4131    {
4132        serializer.serialize_str(self.as_str())
4133    }
4134}
4135#[cfg(feature = "deserialize")]
4136impl<'de> serde::Deserialize<'de>
4137    for CreatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference
4138{
4139    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4140        use std::str::FromStr;
4141        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4142        Ok(Self::from_str(&s).expect("infallible"))
4143    }
4144}
4145/// Klarna gives customers a range of [payment options](https://docs.stripe.com/payments/klarna#payment-options) during checkout.
4146/// Available payment options vary depending on the customer's billing address and the transaction amount.
4147/// These payment options make it convenient for customers to purchase items in all price ranges.
4148/// Check this [page](https://docs.stripe.com/payments/klarna) for more details.
4149#[derive(Clone, Eq, PartialEq)]
4150#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4151#[derive(serde::Serialize)]
4152pub struct CreatePaymentMethodConfigurationKlarna {
4153    /// Whether or not the payment method should be displayed.
4154    #[serde(skip_serializing_if = "Option::is_none")]
4155    pub display_preference: Option<CreatePaymentMethodConfigurationKlarnaDisplayPreference>,
4156}
4157#[cfg(feature = "redact-generated-debug")]
4158impl std::fmt::Debug for CreatePaymentMethodConfigurationKlarna {
4159    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4160        f.debug_struct("CreatePaymentMethodConfigurationKlarna").finish_non_exhaustive()
4161    }
4162}
4163impl CreatePaymentMethodConfigurationKlarna {
4164    pub fn new() -> Self {
4165        Self { display_preference: None }
4166    }
4167}
4168impl Default for CreatePaymentMethodConfigurationKlarna {
4169    fn default() -> Self {
4170        Self::new()
4171    }
4172}
4173/// Whether or not the payment method should be displayed.
4174#[derive(Clone, Eq, PartialEq)]
4175#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4176#[derive(serde::Serialize)]
4177pub struct CreatePaymentMethodConfigurationKlarnaDisplayPreference {
4178    /// The account's preference for whether or not to display this payment method.
4179    #[serde(skip_serializing_if = "Option::is_none")]
4180    pub preference: Option<CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference>,
4181}
4182#[cfg(feature = "redact-generated-debug")]
4183impl std::fmt::Debug for CreatePaymentMethodConfigurationKlarnaDisplayPreference {
4184    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4185        f.debug_struct("CreatePaymentMethodConfigurationKlarnaDisplayPreference")
4186            .finish_non_exhaustive()
4187    }
4188}
4189impl CreatePaymentMethodConfigurationKlarnaDisplayPreference {
4190    pub fn new() -> Self {
4191        Self { preference: None }
4192    }
4193}
4194impl Default for CreatePaymentMethodConfigurationKlarnaDisplayPreference {
4195    fn default() -> Self {
4196        Self::new()
4197    }
4198}
4199/// The account's preference for whether or not to display this payment method.
4200#[derive(Clone, Eq, PartialEq)]
4201#[non_exhaustive]
4202pub enum CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4203    None,
4204    Off,
4205    On,
4206    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4207    Unknown(String),
4208}
4209impl CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4210    pub fn as_str(&self) -> &str {
4211        use CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference::*;
4212        match self {
4213            None => "none",
4214            Off => "off",
4215            On => "on",
4216            Unknown(v) => v,
4217        }
4218    }
4219}
4220
4221impl std::str::FromStr for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4222    type Err = std::convert::Infallible;
4223    fn from_str(s: &str) -> Result<Self, Self::Err> {
4224        use CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference::*;
4225        match s {
4226            "none" => Ok(None),
4227            "off" => Ok(Off),
4228            "on" => Ok(On),
4229            v => {
4230                tracing::warn!(
4231                    "Unknown value '{}' for enum '{}'",
4232                    v,
4233                    "CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference"
4234                );
4235                Ok(Unknown(v.to_owned()))
4236            }
4237        }
4238    }
4239}
4240impl std::fmt::Display for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4241    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4242        f.write_str(self.as_str())
4243    }
4244}
4245
4246#[cfg(not(feature = "redact-generated-debug"))]
4247impl std::fmt::Debug for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4248    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4249        f.write_str(self.as_str())
4250    }
4251}
4252#[cfg(feature = "redact-generated-debug")]
4253impl std::fmt::Debug for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4254    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4255        f.debug_struct(stringify!(
4256            CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference
4257        ))
4258        .finish_non_exhaustive()
4259    }
4260}
4261impl serde::Serialize for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
4262    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4263    where
4264        S: serde::Serializer,
4265    {
4266        serializer.serialize_str(self.as_str())
4267    }
4268}
4269#[cfg(feature = "deserialize")]
4270impl<'de> serde::Deserialize<'de>
4271    for CreatePaymentMethodConfigurationKlarnaDisplayPreferencePreference
4272{
4273    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4274        use std::str::FromStr;
4275        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4276        Ok(Self::from_str(&s).expect("infallible"))
4277    }
4278}
4279/// Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash.
4280/// Check this [page](https://docs.stripe.com/payments/konbini) for more details.
4281#[derive(Clone, Eq, PartialEq)]
4282#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4283#[derive(serde::Serialize)]
4284pub struct CreatePaymentMethodConfigurationKonbini {
4285    /// Whether or not the payment method should be displayed.
4286    #[serde(skip_serializing_if = "Option::is_none")]
4287    pub display_preference: Option<CreatePaymentMethodConfigurationKonbiniDisplayPreference>,
4288}
4289#[cfg(feature = "redact-generated-debug")]
4290impl std::fmt::Debug for CreatePaymentMethodConfigurationKonbini {
4291    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4292        f.debug_struct("CreatePaymentMethodConfigurationKonbini").finish_non_exhaustive()
4293    }
4294}
4295impl CreatePaymentMethodConfigurationKonbini {
4296    pub fn new() -> Self {
4297        Self { display_preference: None }
4298    }
4299}
4300impl Default for CreatePaymentMethodConfigurationKonbini {
4301    fn default() -> Self {
4302        Self::new()
4303    }
4304}
4305/// Whether or not the payment method should be displayed.
4306#[derive(Clone, Eq, PartialEq)]
4307#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4308#[derive(serde::Serialize)]
4309pub struct CreatePaymentMethodConfigurationKonbiniDisplayPreference {
4310    /// The account's preference for whether or not to display this payment method.
4311    #[serde(skip_serializing_if = "Option::is_none")]
4312    pub preference: Option<CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference>,
4313}
4314#[cfg(feature = "redact-generated-debug")]
4315impl std::fmt::Debug for CreatePaymentMethodConfigurationKonbiniDisplayPreference {
4316    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4317        f.debug_struct("CreatePaymentMethodConfigurationKonbiniDisplayPreference")
4318            .finish_non_exhaustive()
4319    }
4320}
4321impl CreatePaymentMethodConfigurationKonbiniDisplayPreference {
4322    pub fn new() -> Self {
4323        Self { preference: None }
4324    }
4325}
4326impl Default for CreatePaymentMethodConfigurationKonbiniDisplayPreference {
4327    fn default() -> Self {
4328        Self::new()
4329    }
4330}
4331/// The account's preference for whether or not to display this payment method.
4332#[derive(Clone, Eq, PartialEq)]
4333#[non_exhaustive]
4334pub enum CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4335    None,
4336    Off,
4337    On,
4338    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4339    Unknown(String),
4340}
4341impl CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4342    pub fn as_str(&self) -> &str {
4343        use CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference::*;
4344        match self {
4345            None => "none",
4346            Off => "off",
4347            On => "on",
4348            Unknown(v) => v,
4349        }
4350    }
4351}
4352
4353impl std::str::FromStr for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4354    type Err = std::convert::Infallible;
4355    fn from_str(s: &str) -> Result<Self, Self::Err> {
4356        use CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference::*;
4357        match s {
4358            "none" => Ok(None),
4359            "off" => Ok(Off),
4360            "on" => Ok(On),
4361            v => {
4362                tracing::warn!(
4363                    "Unknown value '{}' for enum '{}'",
4364                    v,
4365                    "CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference"
4366                );
4367                Ok(Unknown(v.to_owned()))
4368            }
4369        }
4370    }
4371}
4372impl std::fmt::Display for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4373    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4374        f.write_str(self.as_str())
4375    }
4376}
4377
4378#[cfg(not(feature = "redact-generated-debug"))]
4379impl std::fmt::Debug for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4380    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4381        f.write_str(self.as_str())
4382    }
4383}
4384#[cfg(feature = "redact-generated-debug")]
4385impl std::fmt::Debug for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4386    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4387        f.debug_struct(stringify!(
4388            CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference
4389        ))
4390        .finish_non_exhaustive()
4391    }
4392}
4393impl serde::Serialize for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
4394    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4395    where
4396        S: serde::Serializer,
4397    {
4398        serializer.serialize_str(self.as_str())
4399    }
4400}
4401#[cfg(feature = "deserialize")]
4402impl<'de> serde::Deserialize<'de>
4403    for CreatePaymentMethodConfigurationKonbiniDisplayPreferencePreference
4404{
4405    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4406        use std::str::FromStr;
4407        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4408        Ok(Self::from_str(&s).expect("infallible"))
4409    }
4410}
4411/// Korean cards let users pay using locally issued cards from South Korea.
4412#[derive(Clone, Eq, PartialEq)]
4413#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4414#[derive(serde::Serialize)]
4415pub struct CreatePaymentMethodConfigurationKrCard {
4416    /// Whether or not the payment method should be displayed.
4417    #[serde(skip_serializing_if = "Option::is_none")]
4418    pub display_preference: Option<CreatePaymentMethodConfigurationKrCardDisplayPreference>,
4419}
4420#[cfg(feature = "redact-generated-debug")]
4421impl std::fmt::Debug for CreatePaymentMethodConfigurationKrCard {
4422    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4423        f.debug_struct("CreatePaymentMethodConfigurationKrCard").finish_non_exhaustive()
4424    }
4425}
4426impl CreatePaymentMethodConfigurationKrCard {
4427    pub fn new() -> Self {
4428        Self { display_preference: None }
4429    }
4430}
4431impl Default for CreatePaymentMethodConfigurationKrCard {
4432    fn default() -> Self {
4433        Self::new()
4434    }
4435}
4436/// Whether or not the payment method should be displayed.
4437#[derive(Clone, Eq, PartialEq)]
4438#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4439#[derive(serde::Serialize)]
4440pub struct CreatePaymentMethodConfigurationKrCardDisplayPreference {
4441    /// The account's preference for whether or not to display this payment method.
4442    #[serde(skip_serializing_if = "Option::is_none")]
4443    pub preference: Option<CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference>,
4444}
4445#[cfg(feature = "redact-generated-debug")]
4446impl std::fmt::Debug for CreatePaymentMethodConfigurationKrCardDisplayPreference {
4447    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4448        f.debug_struct("CreatePaymentMethodConfigurationKrCardDisplayPreference")
4449            .finish_non_exhaustive()
4450    }
4451}
4452impl CreatePaymentMethodConfigurationKrCardDisplayPreference {
4453    pub fn new() -> Self {
4454        Self { preference: None }
4455    }
4456}
4457impl Default for CreatePaymentMethodConfigurationKrCardDisplayPreference {
4458    fn default() -> Self {
4459        Self::new()
4460    }
4461}
4462/// The account's preference for whether or not to display this payment method.
4463#[derive(Clone, Eq, PartialEq)]
4464#[non_exhaustive]
4465pub enum CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4466    None,
4467    Off,
4468    On,
4469    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4470    Unknown(String),
4471}
4472impl CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4473    pub fn as_str(&self) -> &str {
4474        use CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference::*;
4475        match self {
4476            None => "none",
4477            Off => "off",
4478            On => "on",
4479            Unknown(v) => v,
4480        }
4481    }
4482}
4483
4484impl std::str::FromStr for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4485    type Err = std::convert::Infallible;
4486    fn from_str(s: &str) -> Result<Self, Self::Err> {
4487        use CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference::*;
4488        match s {
4489            "none" => Ok(None),
4490            "off" => Ok(Off),
4491            "on" => Ok(On),
4492            v => {
4493                tracing::warn!(
4494                    "Unknown value '{}' for enum '{}'",
4495                    v,
4496                    "CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference"
4497                );
4498                Ok(Unknown(v.to_owned()))
4499            }
4500        }
4501    }
4502}
4503impl std::fmt::Display for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4504    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4505        f.write_str(self.as_str())
4506    }
4507}
4508
4509#[cfg(not(feature = "redact-generated-debug"))]
4510impl std::fmt::Debug for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4511    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4512        f.write_str(self.as_str())
4513    }
4514}
4515#[cfg(feature = "redact-generated-debug")]
4516impl std::fmt::Debug for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4517    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4518        f.debug_struct(stringify!(
4519            CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference
4520        ))
4521        .finish_non_exhaustive()
4522    }
4523}
4524impl serde::Serialize for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
4525    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4526    where
4527        S: serde::Serializer,
4528    {
4529        serializer.serialize_str(self.as_str())
4530    }
4531}
4532#[cfg(feature = "deserialize")]
4533impl<'de> serde::Deserialize<'de>
4534    for CreatePaymentMethodConfigurationKrCardDisplayPreferencePreference
4535{
4536    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4537        use std::str::FromStr;
4538        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4539        Ok(Self::from_str(&s).expect("infallible"))
4540    }
4541}
4542/// [Link](https://docs.stripe.com/payments/link) is a payment method network.
4543/// With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.
4544#[derive(Clone, Eq, PartialEq)]
4545#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4546#[derive(serde::Serialize)]
4547pub struct CreatePaymentMethodConfigurationLink {
4548    /// Whether or not the payment method should be displayed.
4549    #[serde(skip_serializing_if = "Option::is_none")]
4550    pub display_preference: Option<CreatePaymentMethodConfigurationLinkDisplayPreference>,
4551}
4552#[cfg(feature = "redact-generated-debug")]
4553impl std::fmt::Debug for CreatePaymentMethodConfigurationLink {
4554    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4555        f.debug_struct("CreatePaymentMethodConfigurationLink").finish_non_exhaustive()
4556    }
4557}
4558impl CreatePaymentMethodConfigurationLink {
4559    pub fn new() -> Self {
4560        Self { display_preference: None }
4561    }
4562}
4563impl Default for CreatePaymentMethodConfigurationLink {
4564    fn default() -> Self {
4565        Self::new()
4566    }
4567}
4568/// Whether or not the payment method should be displayed.
4569#[derive(Clone, Eq, PartialEq)]
4570#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4571#[derive(serde::Serialize)]
4572pub struct CreatePaymentMethodConfigurationLinkDisplayPreference {
4573    /// The account's preference for whether or not to display this payment method.
4574    #[serde(skip_serializing_if = "Option::is_none")]
4575    pub preference: Option<CreatePaymentMethodConfigurationLinkDisplayPreferencePreference>,
4576}
4577#[cfg(feature = "redact-generated-debug")]
4578impl std::fmt::Debug for CreatePaymentMethodConfigurationLinkDisplayPreference {
4579    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4580        f.debug_struct("CreatePaymentMethodConfigurationLinkDisplayPreference")
4581            .finish_non_exhaustive()
4582    }
4583}
4584impl CreatePaymentMethodConfigurationLinkDisplayPreference {
4585    pub fn new() -> Self {
4586        Self { preference: None }
4587    }
4588}
4589impl Default for CreatePaymentMethodConfigurationLinkDisplayPreference {
4590    fn default() -> Self {
4591        Self::new()
4592    }
4593}
4594/// The account's preference for whether or not to display this payment method.
4595#[derive(Clone, Eq, PartialEq)]
4596#[non_exhaustive]
4597pub enum CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4598    None,
4599    Off,
4600    On,
4601    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4602    Unknown(String),
4603}
4604impl CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4605    pub fn as_str(&self) -> &str {
4606        use CreatePaymentMethodConfigurationLinkDisplayPreferencePreference::*;
4607        match self {
4608            None => "none",
4609            Off => "off",
4610            On => "on",
4611            Unknown(v) => v,
4612        }
4613    }
4614}
4615
4616impl std::str::FromStr for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4617    type Err = std::convert::Infallible;
4618    fn from_str(s: &str) -> Result<Self, Self::Err> {
4619        use CreatePaymentMethodConfigurationLinkDisplayPreferencePreference::*;
4620        match s {
4621            "none" => Ok(None),
4622            "off" => Ok(Off),
4623            "on" => Ok(On),
4624            v => {
4625                tracing::warn!(
4626                    "Unknown value '{}' for enum '{}'",
4627                    v,
4628                    "CreatePaymentMethodConfigurationLinkDisplayPreferencePreference"
4629                );
4630                Ok(Unknown(v.to_owned()))
4631            }
4632        }
4633    }
4634}
4635impl std::fmt::Display for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4636    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4637        f.write_str(self.as_str())
4638    }
4639}
4640
4641#[cfg(not(feature = "redact-generated-debug"))]
4642impl std::fmt::Debug for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4643    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4644        f.write_str(self.as_str())
4645    }
4646}
4647#[cfg(feature = "redact-generated-debug")]
4648impl std::fmt::Debug for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4649    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4650        f.debug_struct(stringify!(CreatePaymentMethodConfigurationLinkDisplayPreferencePreference))
4651            .finish_non_exhaustive()
4652    }
4653}
4654impl serde::Serialize for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference {
4655    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4656    where
4657        S: serde::Serializer,
4658    {
4659        serializer.serialize_str(self.as_str())
4660    }
4661}
4662#[cfg(feature = "deserialize")]
4663impl<'de> serde::Deserialize<'de>
4664    for CreatePaymentMethodConfigurationLinkDisplayPreferencePreference
4665{
4666    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4667        use std::str::FromStr;
4668        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4669        Ok(Self::from_str(&s).expect("infallible"))
4670    }
4671}
4672/// MB WAY is the most popular wallet in Portugal.
4673/// After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app.
4674/// Check this [page](https://docs.stripe.com/payments/mb-way) for more details.
4675#[derive(Clone, Eq, PartialEq)]
4676#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4677#[derive(serde::Serialize)]
4678pub struct CreatePaymentMethodConfigurationMbWay {
4679    /// Whether or not the payment method should be displayed.
4680    #[serde(skip_serializing_if = "Option::is_none")]
4681    pub display_preference: Option<CreatePaymentMethodConfigurationMbWayDisplayPreference>,
4682}
4683#[cfg(feature = "redact-generated-debug")]
4684impl std::fmt::Debug for CreatePaymentMethodConfigurationMbWay {
4685    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4686        f.debug_struct("CreatePaymentMethodConfigurationMbWay").finish_non_exhaustive()
4687    }
4688}
4689impl CreatePaymentMethodConfigurationMbWay {
4690    pub fn new() -> Self {
4691        Self { display_preference: None }
4692    }
4693}
4694impl Default for CreatePaymentMethodConfigurationMbWay {
4695    fn default() -> Self {
4696        Self::new()
4697    }
4698}
4699/// Whether or not the payment method should be displayed.
4700#[derive(Clone, Eq, PartialEq)]
4701#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4702#[derive(serde::Serialize)]
4703pub struct CreatePaymentMethodConfigurationMbWayDisplayPreference {
4704    /// The account's preference for whether or not to display this payment method.
4705    #[serde(skip_serializing_if = "Option::is_none")]
4706    pub preference: Option<CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference>,
4707}
4708#[cfg(feature = "redact-generated-debug")]
4709impl std::fmt::Debug for CreatePaymentMethodConfigurationMbWayDisplayPreference {
4710    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4711        f.debug_struct("CreatePaymentMethodConfigurationMbWayDisplayPreference")
4712            .finish_non_exhaustive()
4713    }
4714}
4715impl CreatePaymentMethodConfigurationMbWayDisplayPreference {
4716    pub fn new() -> Self {
4717        Self { preference: None }
4718    }
4719}
4720impl Default for CreatePaymentMethodConfigurationMbWayDisplayPreference {
4721    fn default() -> Self {
4722        Self::new()
4723    }
4724}
4725/// The account's preference for whether or not to display this payment method.
4726#[derive(Clone, Eq, PartialEq)]
4727#[non_exhaustive]
4728pub enum CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4729    None,
4730    Off,
4731    On,
4732    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4733    Unknown(String),
4734}
4735impl CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4736    pub fn as_str(&self) -> &str {
4737        use CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference::*;
4738        match self {
4739            None => "none",
4740            Off => "off",
4741            On => "on",
4742            Unknown(v) => v,
4743        }
4744    }
4745}
4746
4747impl std::str::FromStr for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4748    type Err = std::convert::Infallible;
4749    fn from_str(s: &str) -> Result<Self, Self::Err> {
4750        use CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference::*;
4751        match s {
4752            "none" => Ok(None),
4753            "off" => Ok(Off),
4754            "on" => Ok(On),
4755            v => {
4756                tracing::warn!(
4757                    "Unknown value '{}' for enum '{}'",
4758                    v,
4759                    "CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference"
4760                );
4761                Ok(Unknown(v.to_owned()))
4762            }
4763        }
4764    }
4765}
4766impl std::fmt::Display for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4767    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4768        f.write_str(self.as_str())
4769    }
4770}
4771
4772#[cfg(not(feature = "redact-generated-debug"))]
4773impl std::fmt::Debug for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4774    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4775        f.write_str(self.as_str())
4776    }
4777}
4778#[cfg(feature = "redact-generated-debug")]
4779impl std::fmt::Debug for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4780    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4781        f.debug_struct(stringify!(CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference))
4782            .finish_non_exhaustive()
4783    }
4784}
4785impl serde::Serialize for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
4786    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4787    where
4788        S: serde::Serializer,
4789    {
4790        serializer.serialize_str(self.as_str())
4791    }
4792}
4793#[cfg(feature = "deserialize")]
4794impl<'de> serde::Deserialize<'de>
4795    for CreatePaymentMethodConfigurationMbWayDisplayPreferencePreference
4796{
4797    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4798        use std::str::FromStr;
4799        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4800        Ok(Self::from_str(&s).expect("infallible"))
4801    }
4802}
4803/// MobilePay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland.
4804/// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the MobilePay app.
4805/// Check this [page](https://docs.stripe.com/payments/mobilepay) for more details.
4806#[derive(Clone, Eq, PartialEq)]
4807#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4808#[derive(serde::Serialize)]
4809pub struct CreatePaymentMethodConfigurationMobilepay {
4810    /// Whether or not the payment method should be displayed.
4811    #[serde(skip_serializing_if = "Option::is_none")]
4812    pub display_preference: Option<CreatePaymentMethodConfigurationMobilepayDisplayPreference>,
4813}
4814#[cfg(feature = "redact-generated-debug")]
4815impl std::fmt::Debug for CreatePaymentMethodConfigurationMobilepay {
4816    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4817        f.debug_struct("CreatePaymentMethodConfigurationMobilepay").finish_non_exhaustive()
4818    }
4819}
4820impl CreatePaymentMethodConfigurationMobilepay {
4821    pub fn new() -> Self {
4822        Self { display_preference: None }
4823    }
4824}
4825impl Default for CreatePaymentMethodConfigurationMobilepay {
4826    fn default() -> Self {
4827        Self::new()
4828    }
4829}
4830/// Whether or not the payment method should be displayed.
4831#[derive(Clone, Eq, PartialEq)]
4832#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4833#[derive(serde::Serialize)]
4834pub struct CreatePaymentMethodConfigurationMobilepayDisplayPreference {
4835    /// The account's preference for whether or not to display this payment method.
4836    #[serde(skip_serializing_if = "Option::is_none")]
4837    pub preference: Option<CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference>,
4838}
4839#[cfg(feature = "redact-generated-debug")]
4840impl std::fmt::Debug for CreatePaymentMethodConfigurationMobilepayDisplayPreference {
4841    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4842        f.debug_struct("CreatePaymentMethodConfigurationMobilepayDisplayPreference")
4843            .finish_non_exhaustive()
4844    }
4845}
4846impl CreatePaymentMethodConfigurationMobilepayDisplayPreference {
4847    pub fn new() -> Self {
4848        Self { preference: None }
4849    }
4850}
4851impl Default for CreatePaymentMethodConfigurationMobilepayDisplayPreference {
4852    fn default() -> Self {
4853        Self::new()
4854    }
4855}
4856/// The account's preference for whether or not to display this payment method.
4857#[derive(Clone, Eq, PartialEq)]
4858#[non_exhaustive]
4859pub enum CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4860    None,
4861    Off,
4862    On,
4863    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4864    Unknown(String),
4865}
4866impl CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4867    pub fn as_str(&self) -> &str {
4868        use CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference::*;
4869        match self {
4870            None => "none",
4871            Off => "off",
4872            On => "on",
4873            Unknown(v) => v,
4874        }
4875    }
4876}
4877
4878impl std::str::FromStr for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4879    type Err = std::convert::Infallible;
4880    fn from_str(s: &str) -> Result<Self, Self::Err> {
4881        use CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference::*;
4882        match s {
4883            "none" => Ok(None),
4884            "off" => Ok(Off),
4885            "on" => Ok(On),
4886            v => {
4887                tracing::warn!(
4888                    "Unknown value '{}' for enum '{}'",
4889                    v,
4890                    "CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference"
4891                );
4892                Ok(Unknown(v.to_owned()))
4893            }
4894        }
4895    }
4896}
4897impl std::fmt::Display for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4898    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4899        f.write_str(self.as_str())
4900    }
4901}
4902
4903#[cfg(not(feature = "redact-generated-debug"))]
4904impl std::fmt::Debug for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4905    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4906        f.write_str(self.as_str())
4907    }
4908}
4909#[cfg(feature = "redact-generated-debug")]
4910impl std::fmt::Debug for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4911    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4912        f.debug_struct(stringify!(
4913            CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference
4914        ))
4915        .finish_non_exhaustive()
4916    }
4917}
4918impl serde::Serialize for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
4919    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4920    where
4921        S: serde::Serializer,
4922    {
4923        serializer.serialize_str(self.as_str())
4924    }
4925}
4926#[cfg(feature = "deserialize")]
4927impl<'de> serde::Deserialize<'de>
4928    for CreatePaymentMethodConfigurationMobilepayDisplayPreferencePreference
4929{
4930    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4931        use std::str::FromStr;
4932        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
4933        Ok(Self::from_str(&s).expect("infallible"))
4934    }
4935}
4936/// Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.
4937#[derive(Clone, Eq, PartialEq)]
4938#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4939#[derive(serde::Serialize)]
4940pub struct CreatePaymentMethodConfigurationMultibanco {
4941    /// Whether or not the payment method should be displayed.
4942    #[serde(skip_serializing_if = "Option::is_none")]
4943    pub display_preference: Option<CreatePaymentMethodConfigurationMultibancoDisplayPreference>,
4944}
4945#[cfg(feature = "redact-generated-debug")]
4946impl std::fmt::Debug for CreatePaymentMethodConfigurationMultibanco {
4947    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4948        f.debug_struct("CreatePaymentMethodConfigurationMultibanco").finish_non_exhaustive()
4949    }
4950}
4951impl CreatePaymentMethodConfigurationMultibanco {
4952    pub fn new() -> Self {
4953        Self { display_preference: None }
4954    }
4955}
4956impl Default for CreatePaymentMethodConfigurationMultibanco {
4957    fn default() -> Self {
4958        Self::new()
4959    }
4960}
4961/// Whether or not the payment method should be displayed.
4962#[derive(Clone, Eq, PartialEq)]
4963#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
4964#[derive(serde::Serialize)]
4965pub struct CreatePaymentMethodConfigurationMultibancoDisplayPreference {
4966    /// The account's preference for whether or not to display this payment method.
4967    #[serde(skip_serializing_if = "Option::is_none")]
4968    pub preference: Option<CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference>,
4969}
4970#[cfg(feature = "redact-generated-debug")]
4971impl std::fmt::Debug for CreatePaymentMethodConfigurationMultibancoDisplayPreference {
4972    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4973        f.debug_struct("CreatePaymentMethodConfigurationMultibancoDisplayPreference")
4974            .finish_non_exhaustive()
4975    }
4976}
4977impl CreatePaymentMethodConfigurationMultibancoDisplayPreference {
4978    pub fn new() -> Self {
4979        Self { preference: None }
4980    }
4981}
4982impl Default for CreatePaymentMethodConfigurationMultibancoDisplayPreference {
4983    fn default() -> Self {
4984        Self::new()
4985    }
4986}
4987/// The account's preference for whether or not to display this payment method.
4988#[derive(Clone, Eq, PartialEq)]
4989#[non_exhaustive]
4990pub enum CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
4991    None,
4992    Off,
4993    On,
4994    /// An unrecognized value from Stripe. Should not be used as a request parameter.
4995    Unknown(String),
4996}
4997impl CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
4998    pub fn as_str(&self) -> &str {
4999        use CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference::*;
5000        match self {
5001            None => "none",
5002            Off => "off",
5003            On => "on",
5004            Unknown(v) => v,
5005        }
5006    }
5007}
5008
5009impl std::str::FromStr for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
5010    type Err = std::convert::Infallible;
5011    fn from_str(s: &str) -> Result<Self, Self::Err> {
5012        use CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference::*;
5013        match s {
5014            "none" => Ok(None),
5015            "off" => Ok(Off),
5016            "on" => Ok(On),
5017            v => {
5018                tracing::warn!(
5019                    "Unknown value '{}' for enum '{}'",
5020                    v,
5021                    "CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference"
5022                );
5023                Ok(Unknown(v.to_owned()))
5024            }
5025        }
5026    }
5027}
5028impl std::fmt::Display for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
5029    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5030        f.write_str(self.as_str())
5031    }
5032}
5033
5034#[cfg(not(feature = "redact-generated-debug"))]
5035impl std::fmt::Debug for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
5036    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5037        f.write_str(self.as_str())
5038    }
5039}
5040#[cfg(feature = "redact-generated-debug")]
5041impl std::fmt::Debug for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
5042    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5043        f.debug_struct(stringify!(
5044            CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference
5045        ))
5046        .finish_non_exhaustive()
5047    }
5048}
5049impl serde::Serialize for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
5050    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5051    where
5052        S: serde::Serializer,
5053    {
5054        serializer.serialize_str(self.as_str())
5055    }
5056}
5057#[cfg(feature = "deserialize")]
5058impl<'de> serde::Deserialize<'de>
5059    for CreatePaymentMethodConfigurationMultibancoDisplayPreferencePreference
5060{
5061    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5062        use std::str::FromStr;
5063        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5064        Ok(Self::from_str(&s).expect("infallible"))
5065    }
5066}
5067/// Naver Pay is a popular local wallet available in South Korea.
5068#[derive(Clone, Eq, PartialEq)]
5069#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5070#[derive(serde::Serialize)]
5071pub struct CreatePaymentMethodConfigurationNaverPay {
5072    /// Whether or not the payment method should be displayed.
5073    #[serde(skip_serializing_if = "Option::is_none")]
5074    pub display_preference: Option<CreatePaymentMethodConfigurationNaverPayDisplayPreference>,
5075}
5076#[cfg(feature = "redact-generated-debug")]
5077impl std::fmt::Debug for CreatePaymentMethodConfigurationNaverPay {
5078    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5079        f.debug_struct("CreatePaymentMethodConfigurationNaverPay").finish_non_exhaustive()
5080    }
5081}
5082impl CreatePaymentMethodConfigurationNaverPay {
5083    pub fn new() -> Self {
5084        Self { display_preference: None }
5085    }
5086}
5087impl Default for CreatePaymentMethodConfigurationNaverPay {
5088    fn default() -> Self {
5089        Self::new()
5090    }
5091}
5092/// Whether or not the payment method should be displayed.
5093#[derive(Clone, Eq, PartialEq)]
5094#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5095#[derive(serde::Serialize)]
5096pub struct CreatePaymentMethodConfigurationNaverPayDisplayPreference {
5097    /// The account's preference for whether or not to display this payment method.
5098    #[serde(skip_serializing_if = "Option::is_none")]
5099    pub preference: Option<CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference>,
5100}
5101#[cfg(feature = "redact-generated-debug")]
5102impl std::fmt::Debug for CreatePaymentMethodConfigurationNaverPayDisplayPreference {
5103    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5104        f.debug_struct("CreatePaymentMethodConfigurationNaverPayDisplayPreference")
5105            .finish_non_exhaustive()
5106    }
5107}
5108impl CreatePaymentMethodConfigurationNaverPayDisplayPreference {
5109    pub fn new() -> Self {
5110        Self { preference: None }
5111    }
5112}
5113impl Default for CreatePaymentMethodConfigurationNaverPayDisplayPreference {
5114    fn default() -> Self {
5115        Self::new()
5116    }
5117}
5118/// The account's preference for whether or not to display this payment method.
5119#[derive(Clone, Eq, PartialEq)]
5120#[non_exhaustive]
5121pub enum CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5122    None,
5123    Off,
5124    On,
5125    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5126    Unknown(String),
5127}
5128impl CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5129    pub fn as_str(&self) -> &str {
5130        use CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference::*;
5131        match self {
5132            None => "none",
5133            Off => "off",
5134            On => "on",
5135            Unknown(v) => v,
5136        }
5137    }
5138}
5139
5140impl std::str::FromStr for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5141    type Err = std::convert::Infallible;
5142    fn from_str(s: &str) -> Result<Self, Self::Err> {
5143        use CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference::*;
5144        match s {
5145            "none" => Ok(None),
5146            "off" => Ok(Off),
5147            "on" => Ok(On),
5148            v => {
5149                tracing::warn!(
5150                    "Unknown value '{}' for enum '{}'",
5151                    v,
5152                    "CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference"
5153                );
5154                Ok(Unknown(v.to_owned()))
5155            }
5156        }
5157    }
5158}
5159impl std::fmt::Display for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5160    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5161        f.write_str(self.as_str())
5162    }
5163}
5164
5165#[cfg(not(feature = "redact-generated-debug"))]
5166impl std::fmt::Debug for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5167    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5168        f.write_str(self.as_str())
5169    }
5170}
5171#[cfg(feature = "redact-generated-debug")]
5172impl std::fmt::Debug for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5173    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5174        f.debug_struct(stringify!(
5175            CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference
5176        ))
5177        .finish_non_exhaustive()
5178    }
5179}
5180impl serde::Serialize for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
5181    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5182    where
5183        S: serde::Serializer,
5184    {
5185        serializer.serialize_str(self.as_str())
5186    }
5187}
5188#[cfg(feature = "deserialize")]
5189impl<'de> serde::Deserialize<'de>
5190    for CreatePaymentMethodConfigurationNaverPayDisplayPreferencePreference
5191{
5192    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5193        use std::str::FromStr;
5194        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5195        Ok(Self::from_str(&s).expect("infallible"))
5196    }
5197}
5198/// Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account.
5199/// Check this [page](https://docs.stripe.com/payments/nz-bank-account) for more details.
5200#[derive(Clone, Eq, PartialEq)]
5201#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5202#[derive(serde::Serialize)]
5203pub struct CreatePaymentMethodConfigurationNzBankAccount {
5204    /// Whether or not the payment method should be displayed.
5205    #[serde(skip_serializing_if = "Option::is_none")]
5206    pub display_preference: Option<CreatePaymentMethodConfigurationNzBankAccountDisplayPreference>,
5207}
5208#[cfg(feature = "redact-generated-debug")]
5209impl std::fmt::Debug for CreatePaymentMethodConfigurationNzBankAccount {
5210    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5211        f.debug_struct("CreatePaymentMethodConfigurationNzBankAccount").finish_non_exhaustive()
5212    }
5213}
5214impl CreatePaymentMethodConfigurationNzBankAccount {
5215    pub fn new() -> Self {
5216        Self { display_preference: None }
5217    }
5218}
5219impl Default for CreatePaymentMethodConfigurationNzBankAccount {
5220    fn default() -> Self {
5221        Self::new()
5222    }
5223}
5224/// Whether or not the payment method should be displayed.
5225#[derive(Clone, Eq, PartialEq)]
5226#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5227#[derive(serde::Serialize)]
5228pub struct CreatePaymentMethodConfigurationNzBankAccountDisplayPreference {
5229    /// The account's preference for whether or not to display this payment method.
5230    #[serde(skip_serializing_if = "Option::is_none")]
5231    pub preference:
5232        Option<CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference>,
5233}
5234#[cfg(feature = "redact-generated-debug")]
5235impl std::fmt::Debug for CreatePaymentMethodConfigurationNzBankAccountDisplayPreference {
5236    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5237        f.debug_struct("CreatePaymentMethodConfigurationNzBankAccountDisplayPreference")
5238            .finish_non_exhaustive()
5239    }
5240}
5241impl CreatePaymentMethodConfigurationNzBankAccountDisplayPreference {
5242    pub fn new() -> Self {
5243        Self { preference: None }
5244    }
5245}
5246impl Default for CreatePaymentMethodConfigurationNzBankAccountDisplayPreference {
5247    fn default() -> Self {
5248        Self::new()
5249    }
5250}
5251/// The account's preference for whether or not to display this payment method.
5252#[derive(Clone, Eq, PartialEq)]
5253#[non_exhaustive]
5254pub enum CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
5255    None,
5256    Off,
5257    On,
5258    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5259    Unknown(String),
5260}
5261impl CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
5262    pub fn as_str(&self) -> &str {
5263        use CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference::*;
5264        match self {
5265            None => "none",
5266            Off => "off",
5267            On => "on",
5268            Unknown(v) => v,
5269        }
5270    }
5271}
5272
5273impl std::str::FromStr
5274    for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
5275{
5276    type Err = std::convert::Infallible;
5277    fn from_str(s: &str) -> Result<Self, Self::Err> {
5278        use CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference::*;
5279        match s {
5280            "none" => Ok(None),
5281            "off" => Ok(Off),
5282            "on" => Ok(On),
5283            v => {
5284                tracing::warn!(
5285                    "Unknown value '{}' for enum '{}'",
5286                    v,
5287                    "CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference"
5288                );
5289                Ok(Unknown(v.to_owned()))
5290            }
5291        }
5292    }
5293}
5294impl std::fmt::Display
5295    for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
5296{
5297    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5298        f.write_str(self.as_str())
5299    }
5300}
5301
5302#[cfg(not(feature = "redact-generated-debug"))]
5303impl std::fmt::Debug for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
5304    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5305        f.write_str(self.as_str())
5306    }
5307}
5308#[cfg(feature = "redact-generated-debug")]
5309impl std::fmt::Debug for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
5310    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5311        f.debug_struct(stringify!(
5312            CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
5313        ))
5314        .finish_non_exhaustive()
5315    }
5316}
5317impl serde::Serialize for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
5318    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5319    where
5320        S: serde::Serializer,
5321    {
5322        serializer.serialize_str(self.as_str())
5323    }
5324}
5325#[cfg(feature = "deserialize")]
5326impl<'de> serde::Deserialize<'de>
5327    for CreatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
5328{
5329    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5330        use std::str::FromStr;
5331        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5332        Ok(Self::from_str(&s).expect("infallible"))
5333    }
5334}
5335/// OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico.
5336/// OXXO allows customers to pay bills and online purchases in-store with cash.
5337/// Check this [page](https://docs.stripe.com/payments/oxxo) for more details.
5338#[derive(Clone, Eq, PartialEq)]
5339#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5340#[derive(serde::Serialize)]
5341pub struct CreatePaymentMethodConfigurationOxxo {
5342    /// Whether or not the payment method should be displayed.
5343    #[serde(skip_serializing_if = "Option::is_none")]
5344    pub display_preference: Option<CreatePaymentMethodConfigurationOxxoDisplayPreference>,
5345}
5346#[cfg(feature = "redact-generated-debug")]
5347impl std::fmt::Debug for CreatePaymentMethodConfigurationOxxo {
5348    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5349        f.debug_struct("CreatePaymentMethodConfigurationOxxo").finish_non_exhaustive()
5350    }
5351}
5352impl CreatePaymentMethodConfigurationOxxo {
5353    pub fn new() -> Self {
5354        Self { display_preference: None }
5355    }
5356}
5357impl Default for CreatePaymentMethodConfigurationOxxo {
5358    fn default() -> Self {
5359        Self::new()
5360    }
5361}
5362/// Whether or not the payment method should be displayed.
5363#[derive(Clone, Eq, PartialEq)]
5364#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5365#[derive(serde::Serialize)]
5366pub struct CreatePaymentMethodConfigurationOxxoDisplayPreference {
5367    /// The account's preference for whether or not to display this payment method.
5368    #[serde(skip_serializing_if = "Option::is_none")]
5369    pub preference: Option<CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference>,
5370}
5371#[cfg(feature = "redact-generated-debug")]
5372impl std::fmt::Debug for CreatePaymentMethodConfigurationOxxoDisplayPreference {
5373    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5374        f.debug_struct("CreatePaymentMethodConfigurationOxxoDisplayPreference")
5375            .finish_non_exhaustive()
5376    }
5377}
5378impl CreatePaymentMethodConfigurationOxxoDisplayPreference {
5379    pub fn new() -> Self {
5380        Self { preference: None }
5381    }
5382}
5383impl Default for CreatePaymentMethodConfigurationOxxoDisplayPreference {
5384    fn default() -> Self {
5385        Self::new()
5386    }
5387}
5388/// The account's preference for whether or not to display this payment method.
5389#[derive(Clone, Eq, PartialEq)]
5390#[non_exhaustive]
5391pub enum CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5392    None,
5393    Off,
5394    On,
5395    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5396    Unknown(String),
5397}
5398impl CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5399    pub fn as_str(&self) -> &str {
5400        use CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference::*;
5401        match self {
5402            None => "none",
5403            Off => "off",
5404            On => "on",
5405            Unknown(v) => v,
5406        }
5407    }
5408}
5409
5410impl std::str::FromStr for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5411    type Err = std::convert::Infallible;
5412    fn from_str(s: &str) -> Result<Self, Self::Err> {
5413        use CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference::*;
5414        match s {
5415            "none" => Ok(None),
5416            "off" => Ok(Off),
5417            "on" => Ok(On),
5418            v => {
5419                tracing::warn!(
5420                    "Unknown value '{}' for enum '{}'",
5421                    v,
5422                    "CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference"
5423                );
5424                Ok(Unknown(v.to_owned()))
5425            }
5426        }
5427    }
5428}
5429impl std::fmt::Display for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5430    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5431        f.write_str(self.as_str())
5432    }
5433}
5434
5435#[cfg(not(feature = "redact-generated-debug"))]
5436impl std::fmt::Debug for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5437    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5438        f.write_str(self.as_str())
5439    }
5440}
5441#[cfg(feature = "redact-generated-debug")]
5442impl std::fmt::Debug for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5443    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5444        f.debug_struct(stringify!(CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference))
5445            .finish_non_exhaustive()
5446    }
5447}
5448impl serde::Serialize for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
5449    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5450    where
5451        S: serde::Serializer,
5452    {
5453        serializer.serialize_str(self.as_str())
5454    }
5455}
5456#[cfg(feature = "deserialize")]
5457impl<'de> serde::Deserialize<'de>
5458    for CreatePaymentMethodConfigurationOxxoDisplayPreferencePreference
5459{
5460    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5461        use std::str::FromStr;
5462        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5463        Ok(Self::from_str(&s).expect("infallible"))
5464    }
5465}
5466/// Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods.
5467/// Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks.
5468/// Check this [page](https://docs.stripe.com/payments/p24) for more details.
5469#[derive(Clone, Eq, PartialEq)]
5470#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5471#[derive(serde::Serialize)]
5472pub struct CreatePaymentMethodConfigurationP24 {
5473    /// Whether or not the payment method should be displayed.
5474    #[serde(skip_serializing_if = "Option::is_none")]
5475    pub display_preference: Option<CreatePaymentMethodConfigurationP24DisplayPreference>,
5476}
5477#[cfg(feature = "redact-generated-debug")]
5478impl std::fmt::Debug for CreatePaymentMethodConfigurationP24 {
5479    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5480        f.debug_struct("CreatePaymentMethodConfigurationP24").finish_non_exhaustive()
5481    }
5482}
5483impl CreatePaymentMethodConfigurationP24 {
5484    pub fn new() -> Self {
5485        Self { display_preference: None }
5486    }
5487}
5488impl Default for CreatePaymentMethodConfigurationP24 {
5489    fn default() -> Self {
5490        Self::new()
5491    }
5492}
5493/// Whether or not the payment method should be displayed.
5494#[derive(Clone, Eq, PartialEq)]
5495#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5496#[derive(serde::Serialize)]
5497pub struct CreatePaymentMethodConfigurationP24DisplayPreference {
5498    /// The account's preference for whether or not to display this payment method.
5499    #[serde(skip_serializing_if = "Option::is_none")]
5500    pub preference: Option<CreatePaymentMethodConfigurationP24DisplayPreferencePreference>,
5501}
5502#[cfg(feature = "redact-generated-debug")]
5503impl std::fmt::Debug for CreatePaymentMethodConfigurationP24DisplayPreference {
5504    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5505        f.debug_struct("CreatePaymentMethodConfigurationP24DisplayPreference")
5506            .finish_non_exhaustive()
5507    }
5508}
5509impl CreatePaymentMethodConfigurationP24DisplayPreference {
5510    pub fn new() -> Self {
5511        Self { preference: None }
5512    }
5513}
5514impl Default for CreatePaymentMethodConfigurationP24DisplayPreference {
5515    fn default() -> Self {
5516        Self::new()
5517    }
5518}
5519/// The account's preference for whether or not to display this payment method.
5520#[derive(Clone, Eq, PartialEq)]
5521#[non_exhaustive]
5522pub enum CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5523    None,
5524    Off,
5525    On,
5526    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5527    Unknown(String),
5528}
5529impl CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5530    pub fn as_str(&self) -> &str {
5531        use CreatePaymentMethodConfigurationP24DisplayPreferencePreference::*;
5532        match self {
5533            None => "none",
5534            Off => "off",
5535            On => "on",
5536            Unknown(v) => v,
5537        }
5538    }
5539}
5540
5541impl std::str::FromStr for CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5542    type Err = std::convert::Infallible;
5543    fn from_str(s: &str) -> Result<Self, Self::Err> {
5544        use CreatePaymentMethodConfigurationP24DisplayPreferencePreference::*;
5545        match s {
5546            "none" => Ok(None),
5547            "off" => Ok(Off),
5548            "on" => Ok(On),
5549            v => {
5550                tracing::warn!(
5551                    "Unknown value '{}' for enum '{}'",
5552                    v,
5553                    "CreatePaymentMethodConfigurationP24DisplayPreferencePreference"
5554                );
5555                Ok(Unknown(v.to_owned()))
5556            }
5557        }
5558    }
5559}
5560impl std::fmt::Display for CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5561    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5562        f.write_str(self.as_str())
5563    }
5564}
5565
5566#[cfg(not(feature = "redact-generated-debug"))]
5567impl std::fmt::Debug for CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5568    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5569        f.write_str(self.as_str())
5570    }
5571}
5572#[cfg(feature = "redact-generated-debug")]
5573impl std::fmt::Debug for CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5574    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5575        f.debug_struct(stringify!(CreatePaymentMethodConfigurationP24DisplayPreferencePreference))
5576            .finish_non_exhaustive()
5577    }
5578}
5579impl serde::Serialize for CreatePaymentMethodConfigurationP24DisplayPreferencePreference {
5580    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5581    where
5582        S: serde::Serializer,
5583    {
5584        serializer.serialize_str(self.as_str())
5585    }
5586}
5587#[cfg(feature = "deserialize")]
5588impl<'de> serde::Deserialize<'de>
5589    for CreatePaymentMethodConfigurationP24DisplayPreferencePreference
5590{
5591    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5592        use std::str::FromStr;
5593        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5594        Ok(Self::from_str(&s).expect("infallible"))
5595    }
5596}
5597/// Pay by bank is a redirect payment method backed by bank transfers.
5598/// A customer is redirected to their bank to authorize a bank transfer for a given amount.
5599/// This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments.
5600#[derive(Clone, Eq, PartialEq)]
5601#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5602#[derive(serde::Serialize)]
5603pub struct CreatePaymentMethodConfigurationPayByBank {
5604    /// Whether or not the payment method should be displayed.
5605    #[serde(skip_serializing_if = "Option::is_none")]
5606    pub display_preference: Option<CreatePaymentMethodConfigurationPayByBankDisplayPreference>,
5607}
5608#[cfg(feature = "redact-generated-debug")]
5609impl std::fmt::Debug for CreatePaymentMethodConfigurationPayByBank {
5610    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5611        f.debug_struct("CreatePaymentMethodConfigurationPayByBank").finish_non_exhaustive()
5612    }
5613}
5614impl CreatePaymentMethodConfigurationPayByBank {
5615    pub fn new() -> Self {
5616        Self { display_preference: None }
5617    }
5618}
5619impl Default for CreatePaymentMethodConfigurationPayByBank {
5620    fn default() -> Self {
5621        Self::new()
5622    }
5623}
5624/// Whether or not the payment method should be displayed.
5625#[derive(Clone, Eq, PartialEq)]
5626#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5627#[derive(serde::Serialize)]
5628pub struct CreatePaymentMethodConfigurationPayByBankDisplayPreference {
5629    /// The account's preference for whether or not to display this payment method.
5630    #[serde(skip_serializing_if = "Option::is_none")]
5631    pub preference: Option<CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference>,
5632}
5633#[cfg(feature = "redact-generated-debug")]
5634impl std::fmt::Debug for CreatePaymentMethodConfigurationPayByBankDisplayPreference {
5635    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5636        f.debug_struct("CreatePaymentMethodConfigurationPayByBankDisplayPreference")
5637            .finish_non_exhaustive()
5638    }
5639}
5640impl CreatePaymentMethodConfigurationPayByBankDisplayPreference {
5641    pub fn new() -> Self {
5642        Self { preference: None }
5643    }
5644}
5645impl Default for CreatePaymentMethodConfigurationPayByBankDisplayPreference {
5646    fn default() -> Self {
5647        Self::new()
5648    }
5649}
5650/// The account's preference for whether or not to display this payment method.
5651#[derive(Clone, Eq, PartialEq)]
5652#[non_exhaustive]
5653pub enum CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5654    None,
5655    Off,
5656    On,
5657    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5658    Unknown(String),
5659}
5660impl CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5661    pub fn as_str(&self) -> &str {
5662        use CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference::*;
5663        match self {
5664            None => "none",
5665            Off => "off",
5666            On => "on",
5667            Unknown(v) => v,
5668        }
5669    }
5670}
5671
5672impl std::str::FromStr for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5673    type Err = std::convert::Infallible;
5674    fn from_str(s: &str) -> Result<Self, Self::Err> {
5675        use CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference::*;
5676        match s {
5677            "none" => Ok(None),
5678            "off" => Ok(Off),
5679            "on" => Ok(On),
5680            v => {
5681                tracing::warn!(
5682                    "Unknown value '{}' for enum '{}'",
5683                    v,
5684                    "CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference"
5685                );
5686                Ok(Unknown(v.to_owned()))
5687            }
5688        }
5689    }
5690}
5691impl std::fmt::Display for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5692    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5693        f.write_str(self.as_str())
5694    }
5695}
5696
5697#[cfg(not(feature = "redact-generated-debug"))]
5698impl std::fmt::Debug for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5699    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5700        f.write_str(self.as_str())
5701    }
5702}
5703#[cfg(feature = "redact-generated-debug")]
5704impl std::fmt::Debug for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5705    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5706        f.debug_struct(stringify!(
5707            CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference
5708        ))
5709        .finish_non_exhaustive()
5710    }
5711}
5712impl serde::Serialize for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
5713    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5714    where
5715        S: serde::Serializer,
5716    {
5717        serializer.serialize_str(self.as_str())
5718    }
5719}
5720#[cfg(feature = "deserialize")]
5721impl<'de> serde::Deserialize<'de>
5722    for CreatePaymentMethodConfigurationPayByBankDisplayPreferencePreference
5723{
5724    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5725        use std::str::FromStr;
5726        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5727        Ok(Self::from_str(&s).expect("infallible"))
5728    }
5729}
5730/// PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
5731#[derive(Clone, Eq, PartialEq)]
5732#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5733#[derive(serde::Serialize)]
5734pub struct CreatePaymentMethodConfigurationPayco {
5735    /// Whether or not the payment method should be displayed.
5736    #[serde(skip_serializing_if = "Option::is_none")]
5737    pub display_preference: Option<CreatePaymentMethodConfigurationPaycoDisplayPreference>,
5738}
5739#[cfg(feature = "redact-generated-debug")]
5740impl std::fmt::Debug for CreatePaymentMethodConfigurationPayco {
5741    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5742        f.debug_struct("CreatePaymentMethodConfigurationPayco").finish_non_exhaustive()
5743    }
5744}
5745impl CreatePaymentMethodConfigurationPayco {
5746    pub fn new() -> Self {
5747        Self { display_preference: None }
5748    }
5749}
5750impl Default for CreatePaymentMethodConfigurationPayco {
5751    fn default() -> Self {
5752        Self::new()
5753    }
5754}
5755/// Whether or not the payment method should be displayed.
5756#[derive(Clone, Eq, PartialEq)]
5757#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5758#[derive(serde::Serialize)]
5759pub struct CreatePaymentMethodConfigurationPaycoDisplayPreference {
5760    /// The account's preference for whether or not to display this payment method.
5761    #[serde(skip_serializing_if = "Option::is_none")]
5762    pub preference: Option<CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference>,
5763}
5764#[cfg(feature = "redact-generated-debug")]
5765impl std::fmt::Debug for CreatePaymentMethodConfigurationPaycoDisplayPreference {
5766    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5767        f.debug_struct("CreatePaymentMethodConfigurationPaycoDisplayPreference")
5768            .finish_non_exhaustive()
5769    }
5770}
5771impl CreatePaymentMethodConfigurationPaycoDisplayPreference {
5772    pub fn new() -> Self {
5773        Self { preference: None }
5774    }
5775}
5776impl Default for CreatePaymentMethodConfigurationPaycoDisplayPreference {
5777    fn default() -> Self {
5778        Self::new()
5779    }
5780}
5781/// The account's preference for whether or not to display this payment method.
5782#[derive(Clone, Eq, PartialEq)]
5783#[non_exhaustive]
5784pub enum CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5785    None,
5786    Off,
5787    On,
5788    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5789    Unknown(String),
5790}
5791impl CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5792    pub fn as_str(&self) -> &str {
5793        use CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference::*;
5794        match self {
5795            None => "none",
5796            Off => "off",
5797            On => "on",
5798            Unknown(v) => v,
5799        }
5800    }
5801}
5802
5803impl std::str::FromStr for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5804    type Err = std::convert::Infallible;
5805    fn from_str(s: &str) -> Result<Self, Self::Err> {
5806        use CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference::*;
5807        match s {
5808            "none" => Ok(None),
5809            "off" => Ok(Off),
5810            "on" => Ok(On),
5811            v => {
5812                tracing::warn!(
5813                    "Unknown value '{}' for enum '{}'",
5814                    v,
5815                    "CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference"
5816                );
5817                Ok(Unknown(v.to_owned()))
5818            }
5819        }
5820    }
5821}
5822impl std::fmt::Display for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5823    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5824        f.write_str(self.as_str())
5825    }
5826}
5827
5828#[cfg(not(feature = "redact-generated-debug"))]
5829impl std::fmt::Debug for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5830    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5831        f.write_str(self.as_str())
5832    }
5833}
5834#[cfg(feature = "redact-generated-debug")]
5835impl std::fmt::Debug for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5836    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5837        f.debug_struct(stringify!(CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference))
5838            .finish_non_exhaustive()
5839    }
5840}
5841impl serde::Serialize for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
5842    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5843    where
5844        S: serde::Serializer,
5845    {
5846        serializer.serialize_str(self.as_str())
5847    }
5848}
5849#[cfg(feature = "deserialize")]
5850impl<'de> serde::Deserialize<'de>
5851    for CreatePaymentMethodConfigurationPaycoDisplayPreferencePreference
5852{
5853    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5854        use std::str::FromStr;
5855        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5856        Ok(Self::from_str(&s).expect("infallible"))
5857    }
5858}
5859/// PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions.
5860/// Check this [page](https://docs.stripe.com/payments/paynow) for more details.
5861#[derive(Clone, Eq, PartialEq)]
5862#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5863#[derive(serde::Serialize)]
5864pub struct CreatePaymentMethodConfigurationPaynow {
5865    /// Whether or not the payment method should be displayed.
5866    #[serde(skip_serializing_if = "Option::is_none")]
5867    pub display_preference: Option<CreatePaymentMethodConfigurationPaynowDisplayPreference>,
5868}
5869#[cfg(feature = "redact-generated-debug")]
5870impl std::fmt::Debug for CreatePaymentMethodConfigurationPaynow {
5871    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5872        f.debug_struct("CreatePaymentMethodConfigurationPaynow").finish_non_exhaustive()
5873    }
5874}
5875impl CreatePaymentMethodConfigurationPaynow {
5876    pub fn new() -> Self {
5877        Self { display_preference: None }
5878    }
5879}
5880impl Default for CreatePaymentMethodConfigurationPaynow {
5881    fn default() -> Self {
5882        Self::new()
5883    }
5884}
5885/// Whether or not the payment method should be displayed.
5886#[derive(Clone, Eq, PartialEq)]
5887#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5888#[derive(serde::Serialize)]
5889pub struct CreatePaymentMethodConfigurationPaynowDisplayPreference {
5890    /// The account's preference for whether or not to display this payment method.
5891    #[serde(skip_serializing_if = "Option::is_none")]
5892    pub preference: Option<CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference>,
5893}
5894#[cfg(feature = "redact-generated-debug")]
5895impl std::fmt::Debug for CreatePaymentMethodConfigurationPaynowDisplayPreference {
5896    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5897        f.debug_struct("CreatePaymentMethodConfigurationPaynowDisplayPreference")
5898            .finish_non_exhaustive()
5899    }
5900}
5901impl CreatePaymentMethodConfigurationPaynowDisplayPreference {
5902    pub fn new() -> Self {
5903        Self { preference: None }
5904    }
5905}
5906impl Default for CreatePaymentMethodConfigurationPaynowDisplayPreference {
5907    fn default() -> Self {
5908        Self::new()
5909    }
5910}
5911/// The account's preference for whether or not to display this payment method.
5912#[derive(Clone, Eq, PartialEq)]
5913#[non_exhaustive]
5914pub enum CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5915    None,
5916    Off,
5917    On,
5918    /// An unrecognized value from Stripe. Should not be used as a request parameter.
5919    Unknown(String),
5920}
5921impl CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5922    pub fn as_str(&self) -> &str {
5923        use CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference::*;
5924        match self {
5925            None => "none",
5926            Off => "off",
5927            On => "on",
5928            Unknown(v) => v,
5929        }
5930    }
5931}
5932
5933impl std::str::FromStr for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5934    type Err = std::convert::Infallible;
5935    fn from_str(s: &str) -> Result<Self, Self::Err> {
5936        use CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference::*;
5937        match s {
5938            "none" => Ok(None),
5939            "off" => Ok(Off),
5940            "on" => Ok(On),
5941            v => {
5942                tracing::warn!(
5943                    "Unknown value '{}' for enum '{}'",
5944                    v,
5945                    "CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference"
5946                );
5947                Ok(Unknown(v.to_owned()))
5948            }
5949        }
5950    }
5951}
5952impl std::fmt::Display for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5953    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5954        f.write_str(self.as_str())
5955    }
5956}
5957
5958#[cfg(not(feature = "redact-generated-debug"))]
5959impl std::fmt::Debug for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5960    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5961        f.write_str(self.as_str())
5962    }
5963}
5964#[cfg(feature = "redact-generated-debug")]
5965impl std::fmt::Debug for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5966    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5967        f.debug_struct(stringify!(
5968            CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference
5969        ))
5970        .finish_non_exhaustive()
5971    }
5972}
5973impl serde::Serialize for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
5974    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5975    where
5976        S: serde::Serializer,
5977    {
5978        serializer.serialize_str(self.as_str())
5979    }
5980}
5981#[cfg(feature = "deserialize")]
5982impl<'de> serde::Deserialize<'de>
5983    for CreatePaymentMethodConfigurationPaynowDisplayPreferencePreference
5984{
5985    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5986        use std::str::FromStr;
5987        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
5988        Ok(Self::from_str(&s).expect("infallible"))
5989    }
5990}
5991/// PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account.
5992/// Check this [page](https://docs.stripe.com/payments/paypal) for more details.
5993#[derive(Clone, Eq, PartialEq)]
5994#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
5995#[derive(serde::Serialize)]
5996pub struct CreatePaymentMethodConfigurationPaypal {
5997    /// Whether or not the payment method should be displayed.
5998    #[serde(skip_serializing_if = "Option::is_none")]
5999    pub display_preference: Option<CreatePaymentMethodConfigurationPaypalDisplayPreference>,
6000}
6001#[cfg(feature = "redact-generated-debug")]
6002impl std::fmt::Debug for CreatePaymentMethodConfigurationPaypal {
6003    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6004        f.debug_struct("CreatePaymentMethodConfigurationPaypal").finish_non_exhaustive()
6005    }
6006}
6007impl CreatePaymentMethodConfigurationPaypal {
6008    pub fn new() -> Self {
6009        Self { display_preference: None }
6010    }
6011}
6012impl Default for CreatePaymentMethodConfigurationPaypal {
6013    fn default() -> Self {
6014        Self::new()
6015    }
6016}
6017/// Whether or not the payment method should be displayed.
6018#[derive(Clone, Eq, PartialEq)]
6019#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6020#[derive(serde::Serialize)]
6021pub struct CreatePaymentMethodConfigurationPaypalDisplayPreference {
6022    /// The account's preference for whether or not to display this payment method.
6023    #[serde(skip_serializing_if = "Option::is_none")]
6024    pub preference: Option<CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference>,
6025}
6026#[cfg(feature = "redact-generated-debug")]
6027impl std::fmt::Debug for CreatePaymentMethodConfigurationPaypalDisplayPreference {
6028    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6029        f.debug_struct("CreatePaymentMethodConfigurationPaypalDisplayPreference")
6030            .finish_non_exhaustive()
6031    }
6032}
6033impl CreatePaymentMethodConfigurationPaypalDisplayPreference {
6034    pub fn new() -> Self {
6035        Self { preference: None }
6036    }
6037}
6038impl Default for CreatePaymentMethodConfigurationPaypalDisplayPreference {
6039    fn default() -> Self {
6040        Self::new()
6041    }
6042}
6043/// The account's preference for whether or not to display this payment method.
6044#[derive(Clone, Eq, PartialEq)]
6045#[non_exhaustive]
6046pub enum CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6047    None,
6048    Off,
6049    On,
6050    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6051    Unknown(String),
6052}
6053impl CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6054    pub fn as_str(&self) -> &str {
6055        use CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference::*;
6056        match self {
6057            None => "none",
6058            Off => "off",
6059            On => "on",
6060            Unknown(v) => v,
6061        }
6062    }
6063}
6064
6065impl std::str::FromStr for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6066    type Err = std::convert::Infallible;
6067    fn from_str(s: &str) -> Result<Self, Self::Err> {
6068        use CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference::*;
6069        match s {
6070            "none" => Ok(None),
6071            "off" => Ok(Off),
6072            "on" => Ok(On),
6073            v => {
6074                tracing::warn!(
6075                    "Unknown value '{}' for enum '{}'",
6076                    v,
6077                    "CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference"
6078                );
6079                Ok(Unknown(v.to_owned()))
6080            }
6081        }
6082    }
6083}
6084impl std::fmt::Display for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6085    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6086        f.write_str(self.as_str())
6087    }
6088}
6089
6090#[cfg(not(feature = "redact-generated-debug"))]
6091impl std::fmt::Debug for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6092    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6093        f.write_str(self.as_str())
6094    }
6095}
6096#[cfg(feature = "redact-generated-debug")]
6097impl std::fmt::Debug for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6098    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6099        f.debug_struct(stringify!(
6100            CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference
6101        ))
6102        .finish_non_exhaustive()
6103    }
6104}
6105impl serde::Serialize for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
6106    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6107    where
6108        S: serde::Serializer,
6109    {
6110        serializer.serialize_str(self.as_str())
6111    }
6112}
6113#[cfg(feature = "deserialize")]
6114impl<'de> serde::Deserialize<'de>
6115    for CreatePaymentMethodConfigurationPaypalDisplayPreferencePreference
6116{
6117    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6118        use std::str::FromStr;
6119        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6120        Ok(Self::from_str(&s).expect("infallible"))
6121    }
6122}
6123/// PayTo is a [real-time](https://docs.stripe.com/payments/real-time) payment method that enables customers in Australia to pay by providing their bank account details.
6124/// Customers must accept a mandate authorizing you to debit their account.
6125/// Check this [page](https://docs.stripe.com/payments/payto) for more details.
6126#[derive(Clone, Eq, PartialEq)]
6127#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6128#[derive(serde::Serialize)]
6129pub struct CreatePaymentMethodConfigurationPayto {
6130    /// Whether or not the payment method should be displayed.
6131    #[serde(skip_serializing_if = "Option::is_none")]
6132    pub display_preference: Option<CreatePaymentMethodConfigurationPaytoDisplayPreference>,
6133}
6134#[cfg(feature = "redact-generated-debug")]
6135impl std::fmt::Debug for CreatePaymentMethodConfigurationPayto {
6136    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6137        f.debug_struct("CreatePaymentMethodConfigurationPayto").finish_non_exhaustive()
6138    }
6139}
6140impl CreatePaymentMethodConfigurationPayto {
6141    pub fn new() -> Self {
6142        Self { display_preference: None }
6143    }
6144}
6145impl Default for CreatePaymentMethodConfigurationPayto {
6146    fn default() -> Self {
6147        Self::new()
6148    }
6149}
6150/// Whether or not the payment method should be displayed.
6151#[derive(Clone, Eq, PartialEq)]
6152#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6153#[derive(serde::Serialize)]
6154pub struct CreatePaymentMethodConfigurationPaytoDisplayPreference {
6155    /// The account's preference for whether or not to display this payment method.
6156    #[serde(skip_serializing_if = "Option::is_none")]
6157    pub preference: Option<CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference>,
6158}
6159#[cfg(feature = "redact-generated-debug")]
6160impl std::fmt::Debug for CreatePaymentMethodConfigurationPaytoDisplayPreference {
6161    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6162        f.debug_struct("CreatePaymentMethodConfigurationPaytoDisplayPreference")
6163            .finish_non_exhaustive()
6164    }
6165}
6166impl CreatePaymentMethodConfigurationPaytoDisplayPreference {
6167    pub fn new() -> Self {
6168        Self { preference: None }
6169    }
6170}
6171impl Default for CreatePaymentMethodConfigurationPaytoDisplayPreference {
6172    fn default() -> Self {
6173        Self::new()
6174    }
6175}
6176/// The account's preference for whether or not to display this payment method.
6177#[derive(Clone, Eq, PartialEq)]
6178#[non_exhaustive]
6179pub enum CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6180    None,
6181    Off,
6182    On,
6183    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6184    Unknown(String),
6185}
6186impl CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6187    pub fn as_str(&self) -> &str {
6188        use CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference::*;
6189        match self {
6190            None => "none",
6191            Off => "off",
6192            On => "on",
6193            Unknown(v) => v,
6194        }
6195    }
6196}
6197
6198impl std::str::FromStr for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6199    type Err = std::convert::Infallible;
6200    fn from_str(s: &str) -> Result<Self, Self::Err> {
6201        use CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference::*;
6202        match s {
6203            "none" => Ok(None),
6204            "off" => Ok(Off),
6205            "on" => Ok(On),
6206            v => {
6207                tracing::warn!(
6208                    "Unknown value '{}' for enum '{}'",
6209                    v,
6210                    "CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference"
6211                );
6212                Ok(Unknown(v.to_owned()))
6213            }
6214        }
6215    }
6216}
6217impl std::fmt::Display for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6218    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6219        f.write_str(self.as_str())
6220    }
6221}
6222
6223#[cfg(not(feature = "redact-generated-debug"))]
6224impl std::fmt::Debug for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6225    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6226        f.write_str(self.as_str())
6227    }
6228}
6229#[cfg(feature = "redact-generated-debug")]
6230impl std::fmt::Debug for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6231    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6232        f.debug_struct(stringify!(CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference))
6233            .finish_non_exhaustive()
6234    }
6235}
6236impl serde::Serialize for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
6237    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6238    where
6239        S: serde::Serializer,
6240    {
6241        serializer.serialize_str(self.as_str())
6242    }
6243}
6244#[cfg(feature = "deserialize")]
6245impl<'de> serde::Deserialize<'de>
6246    for CreatePaymentMethodConfigurationPaytoDisplayPreferencePreference
6247{
6248    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6249        use std::str::FromStr;
6250        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6251        Ok(Self::from_str(&s).expect("infallible"))
6252    }
6253}
6254/// Pix is a payment method popular in Brazil.
6255/// When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app.
6256/// Check this [page](https://docs.stripe.com/payments/pix) for more details.
6257#[derive(Clone, Eq, PartialEq)]
6258#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6259#[derive(serde::Serialize)]
6260pub struct CreatePaymentMethodConfigurationPix {
6261    /// Whether or not the payment method should be displayed.
6262    #[serde(skip_serializing_if = "Option::is_none")]
6263    pub display_preference: Option<CreatePaymentMethodConfigurationPixDisplayPreference>,
6264}
6265#[cfg(feature = "redact-generated-debug")]
6266impl std::fmt::Debug for CreatePaymentMethodConfigurationPix {
6267    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6268        f.debug_struct("CreatePaymentMethodConfigurationPix").finish_non_exhaustive()
6269    }
6270}
6271impl CreatePaymentMethodConfigurationPix {
6272    pub fn new() -> Self {
6273        Self { display_preference: None }
6274    }
6275}
6276impl Default for CreatePaymentMethodConfigurationPix {
6277    fn default() -> Self {
6278        Self::new()
6279    }
6280}
6281/// Whether or not the payment method should be displayed.
6282#[derive(Clone, Eq, PartialEq)]
6283#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6284#[derive(serde::Serialize)]
6285pub struct CreatePaymentMethodConfigurationPixDisplayPreference {
6286    /// The account's preference for whether or not to display this payment method.
6287    #[serde(skip_serializing_if = "Option::is_none")]
6288    pub preference: Option<CreatePaymentMethodConfigurationPixDisplayPreferencePreference>,
6289}
6290#[cfg(feature = "redact-generated-debug")]
6291impl std::fmt::Debug for CreatePaymentMethodConfigurationPixDisplayPreference {
6292    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6293        f.debug_struct("CreatePaymentMethodConfigurationPixDisplayPreference")
6294            .finish_non_exhaustive()
6295    }
6296}
6297impl CreatePaymentMethodConfigurationPixDisplayPreference {
6298    pub fn new() -> Self {
6299        Self { preference: None }
6300    }
6301}
6302impl Default for CreatePaymentMethodConfigurationPixDisplayPreference {
6303    fn default() -> Self {
6304        Self::new()
6305    }
6306}
6307/// The account's preference for whether or not to display this payment method.
6308#[derive(Clone, Eq, PartialEq)]
6309#[non_exhaustive]
6310pub enum CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6311    None,
6312    Off,
6313    On,
6314    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6315    Unknown(String),
6316}
6317impl CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6318    pub fn as_str(&self) -> &str {
6319        use CreatePaymentMethodConfigurationPixDisplayPreferencePreference::*;
6320        match self {
6321            None => "none",
6322            Off => "off",
6323            On => "on",
6324            Unknown(v) => v,
6325        }
6326    }
6327}
6328
6329impl std::str::FromStr for CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6330    type Err = std::convert::Infallible;
6331    fn from_str(s: &str) -> Result<Self, Self::Err> {
6332        use CreatePaymentMethodConfigurationPixDisplayPreferencePreference::*;
6333        match s {
6334            "none" => Ok(None),
6335            "off" => Ok(Off),
6336            "on" => Ok(On),
6337            v => {
6338                tracing::warn!(
6339                    "Unknown value '{}' for enum '{}'",
6340                    v,
6341                    "CreatePaymentMethodConfigurationPixDisplayPreferencePreference"
6342                );
6343                Ok(Unknown(v.to_owned()))
6344            }
6345        }
6346    }
6347}
6348impl std::fmt::Display for CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6349    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6350        f.write_str(self.as_str())
6351    }
6352}
6353
6354#[cfg(not(feature = "redact-generated-debug"))]
6355impl std::fmt::Debug for CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6356    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6357        f.write_str(self.as_str())
6358    }
6359}
6360#[cfg(feature = "redact-generated-debug")]
6361impl std::fmt::Debug for CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6362    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6363        f.debug_struct(stringify!(CreatePaymentMethodConfigurationPixDisplayPreferencePreference))
6364            .finish_non_exhaustive()
6365    }
6366}
6367impl serde::Serialize for CreatePaymentMethodConfigurationPixDisplayPreferencePreference {
6368    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6369    where
6370        S: serde::Serializer,
6371    {
6372        serializer.serialize_str(self.as_str())
6373    }
6374}
6375#[cfg(feature = "deserialize")]
6376impl<'de> serde::Deserialize<'de>
6377    for CreatePaymentMethodConfigurationPixDisplayPreferencePreference
6378{
6379    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6380        use std::str::FromStr;
6381        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6382        Ok(Self::from_str(&s).expect("infallible"))
6383    }
6384}
6385/// PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks.
6386/// Check this [page](https://docs.stripe.com/payments/promptpay) for more details.
6387#[derive(Clone, Eq, PartialEq)]
6388#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6389#[derive(serde::Serialize)]
6390pub struct CreatePaymentMethodConfigurationPromptpay {
6391    /// Whether or not the payment method should be displayed.
6392    #[serde(skip_serializing_if = "Option::is_none")]
6393    pub display_preference: Option<CreatePaymentMethodConfigurationPromptpayDisplayPreference>,
6394}
6395#[cfg(feature = "redact-generated-debug")]
6396impl std::fmt::Debug for CreatePaymentMethodConfigurationPromptpay {
6397    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6398        f.debug_struct("CreatePaymentMethodConfigurationPromptpay").finish_non_exhaustive()
6399    }
6400}
6401impl CreatePaymentMethodConfigurationPromptpay {
6402    pub fn new() -> Self {
6403        Self { display_preference: None }
6404    }
6405}
6406impl Default for CreatePaymentMethodConfigurationPromptpay {
6407    fn default() -> Self {
6408        Self::new()
6409    }
6410}
6411/// Whether or not the payment method should be displayed.
6412#[derive(Clone, Eq, PartialEq)]
6413#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6414#[derive(serde::Serialize)]
6415pub struct CreatePaymentMethodConfigurationPromptpayDisplayPreference {
6416    /// The account's preference for whether or not to display this payment method.
6417    #[serde(skip_serializing_if = "Option::is_none")]
6418    pub preference: Option<CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference>,
6419}
6420#[cfg(feature = "redact-generated-debug")]
6421impl std::fmt::Debug for CreatePaymentMethodConfigurationPromptpayDisplayPreference {
6422    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6423        f.debug_struct("CreatePaymentMethodConfigurationPromptpayDisplayPreference")
6424            .finish_non_exhaustive()
6425    }
6426}
6427impl CreatePaymentMethodConfigurationPromptpayDisplayPreference {
6428    pub fn new() -> Self {
6429        Self { preference: None }
6430    }
6431}
6432impl Default for CreatePaymentMethodConfigurationPromptpayDisplayPreference {
6433    fn default() -> Self {
6434        Self::new()
6435    }
6436}
6437/// The account's preference for whether or not to display this payment method.
6438#[derive(Clone, Eq, PartialEq)]
6439#[non_exhaustive]
6440pub enum CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6441    None,
6442    Off,
6443    On,
6444    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6445    Unknown(String),
6446}
6447impl CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6448    pub fn as_str(&self) -> &str {
6449        use CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference::*;
6450        match self {
6451            None => "none",
6452            Off => "off",
6453            On => "on",
6454            Unknown(v) => v,
6455        }
6456    }
6457}
6458
6459impl std::str::FromStr for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6460    type Err = std::convert::Infallible;
6461    fn from_str(s: &str) -> Result<Self, Self::Err> {
6462        use CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference::*;
6463        match s {
6464            "none" => Ok(None),
6465            "off" => Ok(Off),
6466            "on" => Ok(On),
6467            v => {
6468                tracing::warn!(
6469                    "Unknown value '{}' for enum '{}'",
6470                    v,
6471                    "CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference"
6472                );
6473                Ok(Unknown(v.to_owned()))
6474            }
6475        }
6476    }
6477}
6478impl std::fmt::Display for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6479    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6480        f.write_str(self.as_str())
6481    }
6482}
6483
6484#[cfg(not(feature = "redact-generated-debug"))]
6485impl std::fmt::Debug for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6486    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6487        f.write_str(self.as_str())
6488    }
6489}
6490#[cfg(feature = "redact-generated-debug")]
6491impl std::fmt::Debug for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6492    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6493        f.debug_struct(stringify!(
6494            CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference
6495        ))
6496        .finish_non_exhaustive()
6497    }
6498}
6499impl serde::Serialize for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
6500    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6501    where
6502        S: serde::Serializer,
6503    {
6504        serializer.serialize_str(self.as_str())
6505    }
6506}
6507#[cfg(feature = "deserialize")]
6508impl<'de> serde::Deserialize<'de>
6509    for CreatePaymentMethodConfigurationPromptpayDisplayPreferencePreference
6510{
6511    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6512        use std::str::FromStr;
6513        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6514        Ok(Self::from_str(&s).expect("infallible"))
6515    }
6516}
6517/// Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method.
6518/// Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.
6519#[derive(Clone, Eq, PartialEq)]
6520#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6521#[derive(serde::Serialize)]
6522pub struct CreatePaymentMethodConfigurationRevolutPay {
6523    /// Whether or not the payment method should be displayed.
6524    #[serde(skip_serializing_if = "Option::is_none")]
6525    pub display_preference: Option<CreatePaymentMethodConfigurationRevolutPayDisplayPreference>,
6526}
6527#[cfg(feature = "redact-generated-debug")]
6528impl std::fmt::Debug for CreatePaymentMethodConfigurationRevolutPay {
6529    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6530        f.debug_struct("CreatePaymentMethodConfigurationRevolutPay").finish_non_exhaustive()
6531    }
6532}
6533impl CreatePaymentMethodConfigurationRevolutPay {
6534    pub fn new() -> Self {
6535        Self { display_preference: None }
6536    }
6537}
6538impl Default for CreatePaymentMethodConfigurationRevolutPay {
6539    fn default() -> Self {
6540        Self::new()
6541    }
6542}
6543/// Whether or not the payment method should be displayed.
6544#[derive(Clone, Eq, PartialEq)]
6545#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6546#[derive(serde::Serialize)]
6547pub struct CreatePaymentMethodConfigurationRevolutPayDisplayPreference {
6548    /// The account's preference for whether or not to display this payment method.
6549    #[serde(skip_serializing_if = "Option::is_none")]
6550    pub preference: Option<CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference>,
6551}
6552#[cfg(feature = "redact-generated-debug")]
6553impl std::fmt::Debug for CreatePaymentMethodConfigurationRevolutPayDisplayPreference {
6554    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6555        f.debug_struct("CreatePaymentMethodConfigurationRevolutPayDisplayPreference")
6556            .finish_non_exhaustive()
6557    }
6558}
6559impl CreatePaymentMethodConfigurationRevolutPayDisplayPreference {
6560    pub fn new() -> Self {
6561        Self { preference: None }
6562    }
6563}
6564impl Default for CreatePaymentMethodConfigurationRevolutPayDisplayPreference {
6565    fn default() -> Self {
6566        Self::new()
6567    }
6568}
6569/// The account's preference for whether or not to display this payment method.
6570#[derive(Clone, Eq, PartialEq)]
6571#[non_exhaustive]
6572pub enum CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6573    None,
6574    Off,
6575    On,
6576    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6577    Unknown(String),
6578}
6579impl CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6580    pub fn as_str(&self) -> &str {
6581        use CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference::*;
6582        match self {
6583            None => "none",
6584            Off => "off",
6585            On => "on",
6586            Unknown(v) => v,
6587        }
6588    }
6589}
6590
6591impl std::str::FromStr for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6592    type Err = std::convert::Infallible;
6593    fn from_str(s: &str) -> Result<Self, Self::Err> {
6594        use CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference::*;
6595        match s {
6596            "none" => Ok(None),
6597            "off" => Ok(Off),
6598            "on" => Ok(On),
6599            v => {
6600                tracing::warn!(
6601                    "Unknown value '{}' for enum '{}'",
6602                    v,
6603                    "CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference"
6604                );
6605                Ok(Unknown(v.to_owned()))
6606            }
6607        }
6608    }
6609}
6610impl std::fmt::Display for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6611    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6612        f.write_str(self.as_str())
6613    }
6614}
6615
6616#[cfg(not(feature = "redact-generated-debug"))]
6617impl std::fmt::Debug for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6618    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6619        f.write_str(self.as_str())
6620    }
6621}
6622#[cfg(feature = "redact-generated-debug")]
6623impl std::fmt::Debug for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6624    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6625        f.debug_struct(stringify!(
6626            CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference
6627        ))
6628        .finish_non_exhaustive()
6629    }
6630}
6631impl serde::Serialize for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
6632    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6633    where
6634        S: serde::Serializer,
6635    {
6636        serializer.serialize_str(self.as_str())
6637    }
6638}
6639#[cfg(feature = "deserialize")]
6640impl<'de> serde::Deserialize<'de>
6641    for CreatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference
6642{
6643    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6644        use std::str::FromStr;
6645        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6646        Ok(Self::from_str(&s).expect("infallible"))
6647    }
6648}
6649/// Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
6650#[derive(Clone, Eq, PartialEq)]
6651#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6652#[derive(serde::Serialize)]
6653pub struct CreatePaymentMethodConfigurationSamsungPay {
6654    /// Whether or not the payment method should be displayed.
6655    #[serde(skip_serializing_if = "Option::is_none")]
6656    pub display_preference: Option<CreatePaymentMethodConfigurationSamsungPayDisplayPreference>,
6657}
6658#[cfg(feature = "redact-generated-debug")]
6659impl std::fmt::Debug for CreatePaymentMethodConfigurationSamsungPay {
6660    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6661        f.debug_struct("CreatePaymentMethodConfigurationSamsungPay").finish_non_exhaustive()
6662    }
6663}
6664impl CreatePaymentMethodConfigurationSamsungPay {
6665    pub fn new() -> Self {
6666        Self { display_preference: None }
6667    }
6668}
6669impl Default for CreatePaymentMethodConfigurationSamsungPay {
6670    fn default() -> Self {
6671        Self::new()
6672    }
6673}
6674/// Whether or not the payment method should be displayed.
6675#[derive(Clone, Eq, PartialEq)]
6676#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6677#[derive(serde::Serialize)]
6678pub struct CreatePaymentMethodConfigurationSamsungPayDisplayPreference {
6679    /// The account's preference for whether or not to display this payment method.
6680    #[serde(skip_serializing_if = "Option::is_none")]
6681    pub preference: Option<CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference>,
6682}
6683#[cfg(feature = "redact-generated-debug")]
6684impl std::fmt::Debug for CreatePaymentMethodConfigurationSamsungPayDisplayPreference {
6685    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6686        f.debug_struct("CreatePaymentMethodConfigurationSamsungPayDisplayPreference")
6687            .finish_non_exhaustive()
6688    }
6689}
6690impl CreatePaymentMethodConfigurationSamsungPayDisplayPreference {
6691    pub fn new() -> Self {
6692        Self { preference: None }
6693    }
6694}
6695impl Default for CreatePaymentMethodConfigurationSamsungPayDisplayPreference {
6696    fn default() -> Self {
6697        Self::new()
6698    }
6699}
6700/// The account's preference for whether or not to display this payment method.
6701#[derive(Clone, Eq, PartialEq)]
6702#[non_exhaustive]
6703pub enum CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6704    None,
6705    Off,
6706    On,
6707    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6708    Unknown(String),
6709}
6710impl CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6711    pub fn as_str(&self) -> &str {
6712        use CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference::*;
6713        match self {
6714            None => "none",
6715            Off => "off",
6716            On => "on",
6717            Unknown(v) => v,
6718        }
6719    }
6720}
6721
6722impl std::str::FromStr for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6723    type Err = std::convert::Infallible;
6724    fn from_str(s: &str) -> Result<Self, Self::Err> {
6725        use CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference::*;
6726        match s {
6727            "none" => Ok(None),
6728            "off" => Ok(Off),
6729            "on" => Ok(On),
6730            v => {
6731                tracing::warn!(
6732                    "Unknown value '{}' for enum '{}'",
6733                    v,
6734                    "CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference"
6735                );
6736                Ok(Unknown(v.to_owned()))
6737            }
6738        }
6739    }
6740}
6741impl std::fmt::Display for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6742    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6743        f.write_str(self.as_str())
6744    }
6745}
6746
6747#[cfg(not(feature = "redact-generated-debug"))]
6748impl std::fmt::Debug for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6749    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6750        f.write_str(self.as_str())
6751    }
6752}
6753#[cfg(feature = "redact-generated-debug")]
6754impl std::fmt::Debug for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6755    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6756        f.debug_struct(stringify!(
6757            CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference
6758        ))
6759        .finish_non_exhaustive()
6760    }
6761}
6762impl serde::Serialize for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
6763    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6764    where
6765        S: serde::Serializer,
6766    {
6767        serializer.serialize_str(self.as_str())
6768    }
6769}
6770#[cfg(feature = "deserialize")]
6771impl<'de> serde::Deserialize<'de>
6772    for CreatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference
6773{
6774    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6775        use std::str::FromStr;
6776        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6777        Ok(Self::from_str(&s).expect("infallible"))
6778    }
6779}
6780/// Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](/payments/payment-methods#customer-actions) their payment.
6781/// Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app.
6782/// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
6783#[derive(Clone, Eq, PartialEq)]
6784#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6785#[derive(serde::Serialize)]
6786pub struct CreatePaymentMethodConfigurationSatispay {
6787    /// Whether or not the payment method should be displayed.
6788    #[serde(skip_serializing_if = "Option::is_none")]
6789    pub display_preference: Option<CreatePaymentMethodConfigurationSatispayDisplayPreference>,
6790}
6791#[cfg(feature = "redact-generated-debug")]
6792impl std::fmt::Debug for CreatePaymentMethodConfigurationSatispay {
6793    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6794        f.debug_struct("CreatePaymentMethodConfigurationSatispay").finish_non_exhaustive()
6795    }
6796}
6797impl CreatePaymentMethodConfigurationSatispay {
6798    pub fn new() -> Self {
6799        Self { display_preference: None }
6800    }
6801}
6802impl Default for CreatePaymentMethodConfigurationSatispay {
6803    fn default() -> Self {
6804        Self::new()
6805    }
6806}
6807/// Whether or not the payment method should be displayed.
6808#[derive(Clone, Eq, PartialEq)]
6809#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6810#[derive(serde::Serialize)]
6811pub struct CreatePaymentMethodConfigurationSatispayDisplayPreference {
6812    /// The account's preference for whether or not to display this payment method.
6813    #[serde(skip_serializing_if = "Option::is_none")]
6814    pub preference: Option<CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference>,
6815}
6816#[cfg(feature = "redact-generated-debug")]
6817impl std::fmt::Debug for CreatePaymentMethodConfigurationSatispayDisplayPreference {
6818    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6819        f.debug_struct("CreatePaymentMethodConfigurationSatispayDisplayPreference")
6820            .finish_non_exhaustive()
6821    }
6822}
6823impl CreatePaymentMethodConfigurationSatispayDisplayPreference {
6824    pub fn new() -> Self {
6825        Self { preference: None }
6826    }
6827}
6828impl Default for CreatePaymentMethodConfigurationSatispayDisplayPreference {
6829    fn default() -> Self {
6830        Self::new()
6831    }
6832}
6833/// The account's preference for whether or not to display this payment method.
6834#[derive(Clone, Eq, PartialEq)]
6835#[non_exhaustive]
6836pub enum CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6837    None,
6838    Off,
6839    On,
6840    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6841    Unknown(String),
6842}
6843impl CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6844    pub fn as_str(&self) -> &str {
6845        use CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference::*;
6846        match self {
6847            None => "none",
6848            Off => "off",
6849            On => "on",
6850            Unknown(v) => v,
6851        }
6852    }
6853}
6854
6855impl std::str::FromStr for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6856    type Err = std::convert::Infallible;
6857    fn from_str(s: &str) -> Result<Self, Self::Err> {
6858        use CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference::*;
6859        match s {
6860            "none" => Ok(None),
6861            "off" => Ok(Off),
6862            "on" => Ok(On),
6863            v => {
6864                tracing::warn!(
6865                    "Unknown value '{}' for enum '{}'",
6866                    v,
6867                    "CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference"
6868                );
6869                Ok(Unknown(v.to_owned()))
6870            }
6871        }
6872    }
6873}
6874impl std::fmt::Display for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6875    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6876        f.write_str(self.as_str())
6877    }
6878}
6879
6880#[cfg(not(feature = "redact-generated-debug"))]
6881impl std::fmt::Debug for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6882    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6883        f.write_str(self.as_str())
6884    }
6885}
6886#[cfg(feature = "redact-generated-debug")]
6887impl std::fmt::Debug for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6888    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6889        f.debug_struct(stringify!(
6890            CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference
6891        ))
6892        .finish_non_exhaustive()
6893    }
6894}
6895impl serde::Serialize for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
6896    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6897    where
6898        S: serde::Serializer,
6899    {
6900        serializer.serialize_str(self.as_str())
6901    }
6902}
6903#[cfg(feature = "deserialize")]
6904impl<'de> serde::Deserialize<'de>
6905    for CreatePaymentMethodConfigurationSatispayDisplayPreferencePreference
6906{
6907    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6908        use std::str::FromStr;
6909        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
6910        Ok(Self::from_str(&s).expect("infallible"))
6911    }
6912}
6913/// The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries.
6914/// SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://docs.stripe.com/payments/sepa-debit) for more details.
6915#[derive(Clone, Eq, PartialEq)]
6916#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6917#[derive(serde::Serialize)]
6918pub struct CreatePaymentMethodConfigurationSepaDebit {
6919    /// Whether or not the payment method should be displayed.
6920    #[serde(skip_serializing_if = "Option::is_none")]
6921    pub display_preference: Option<CreatePaymentMethodConfigurationSepaDebitDisplayPreference>,
6922}
6923#[cfg(feature = "redact-generated-debug")]
6924impl std::fmt::Debug for CreatePaymentMethodConfigurationSepaDebit {
6925    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6926        f.debug_struct("CreatePaymentMethodConfigurationSepaDebit").finish_non_exhaustive()
6927    }
6928}
6929impl CreatePaymentMethodConfigurationSepaDebit {
6930    pub fn new() -> Self {
6931        Self { display_preference: None }
6932    }
6933}
6934impl Default for CreatePaymentMethodConfigurationSepaDebit {
6935    fn default() -> Self {
6936        Self::new()
6937    }
6938}
6939/// Whether or not the payment method should be displayed.
6940#[derive(Clone, Eq, PartialEq)]
6941#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
6942#[derive(serde::Serialize)]
6943pub struct CreatePaymentMethodConfigurationSepaDebitDisplayPreference {
6944    /// The account's preference for whether or not to display this payment method.
6945    #[serde(skip_serializing_if = "Option::is_none")]
6946    pub preference: Option<CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference>,
6947}
6948#[cfg(feature = "redact-generated-debug")]
6949impl std::fmt::Debug for CreatePaymentMethodConfigurationSepaDebitDisplayPreference {
6950    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6951        f.debug_struct("CreatePaymentMethodConfigurationSepaDebitDisplayPreference")
6952            .finish_non_exhaustive()
6953    }
6954}
6955impl CreatePaymentMethodConfigurationSepaDebitDisplayPreference {
6956    pub fn new() -> Self {
6957        Self { preference: None }
6958    }
6959}
6960impl Default for CreatePaymentMethodConfigurationSepaDebitDisplayPreference {
6961    fn default() -> Self {
6962        Self::new()
6963    }
6964}
6965/// The account's preference for whether or not to display this payment method.
6966#[derive(Clone, Eq, PartialEq)]
6967#[non_exhaustive]
6968pub enum CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
6969    None,
6970    Off,
6971    On,
6972    /// An unrecognized value from Stripe. Should not be used as a request parameter.
6973    Unknown(String),
6974}
6975impl CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
6976    pub fn as_str(&self) -> &str {
6977        use CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference::*;
6978        match self {
6979            None => "none",
6980            Off => "off",
6981            On => "on",
6982            Unknown(v) => v,
6983        }
6984    }
6985}
6986
6987impl std::str::FromStr for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
6988    type Err = std::convert::Infallible;
6989    fn from_str(s: &str) -> Result<Self, Self::Err> {
6990        use CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference::*;
6991        match s {
6992            "none" => Ok(None),
6993            "off" => Ok(Off),
6994            "on" => Ok(On),
6995            v => {
6996                tracing::warn!(
6997                    "Unknown value '{}' for enum '{}'",
6998                    v,
6999                    "CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference"
7000                );
7001                Ok(Unknown(v.to_owned()))
7002            }
7003        }
7004    }
7005}
7006impl std::fmt::Display for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
7007    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7008        f.write_str(self.as_str())
7009    }
7010}
7011
7012#[cfg(not(feature = "redact-generated-debug"))]
7013impl std::fmt::Debug for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
7014    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7015        f.write_str(self.as_str())
7016    }
7017}
7018#[cfg(feature = "redact-generated-debug")]
7019impl std::fmt::Debug for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
7020    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7021        f.debug_struct(stringify!(
7022            CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference
7023        ))
7024        .finish_non_exhaustive()
7025    }
7026}
7027impl serde::Serialize for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
7028    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7029    where
7030        S: serde::Serializer,
7031    {
7032        serializer.serialize_str(self.as_str())
7033    }
7034}
7035#[cfg(feature = "deserialize")]
7036impl<'de> serde::Deserialize<'de>
7037    for CreatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference
7038{
7039    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7040        use std::str::FromStr;
7041        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7042        Ok(Self::from_str(&s).expect("infallible"))
7043    }
7044}
7045/// Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers.
7046/// Check this [page](https://docs.stripe.com/payments/sofort) for more details.
7047#[derive(Clone, Eq, PartialEq)]
7048#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7049#[derive(serde::Serialize)]
7050pub struct CreatePaymentMethodConfigurationSofort {
7051    /// Whether or not the payment method should be displayed.
7052    #[serde(skip_serializing_if = "Option::is_none")]
7053    pub display_preference: Option<CreatePaymentMethodConfigurationSofortDisplayPreference>,
7054}
7055#[cfg(feature = "redact-generated-debug")]
7056impl std::fmt::Debug for CreatePaymentMethodConfigurationSofort {
7057    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7058        f.debug_struct("CreatePaymentMethodConfigurationSofort").finish_non_exhaustive()
7059    }
7060}
7061impl CreatePaymentMethodConfigurationSofort {
7062    pub fn new() -> Self {
7063        Self { display_preference: None }
7064    }
7065}
7066impl Default for CreatePaymentMethodConfigurationSofort {
7067    fn default() -> Self {
7068        Self::new()
7069    }
7070}
7071/// Whether or not the payment method should be displayed.
7072#[derive(Clone, Eq, PartialEq)]
7073#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7074#[derive(serde::Serialize)]
7075pub struct CreatePaymentMethodConfigurationSofortDisplayPreference {
7076    /// The account's preference for whether or not to display this payment method.
7077    #[serde(skip_serializing_if = "Option::is_none")]
7078    pub preference: Option<CreatePaymentMethodConfigurationSofortDisplayPreferencePreference>,
7079}
7080#[cfg(feature = "redact-generated-debug")]
7081impl std::fmt::Debug for CreatePaymentMethodConfigurationSofortDisplayPreference {
7082    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7083        f.debug_struct("CreatePaymentMethodConfigurationSofortDisplayPreference")
7084            .finish_non_exhaustive()
7085    }
7086}
7087impl CreatePaymentMethodConfigurationSofortDisplayPreference {
7088    pub fn new() -> Self {
7089        Self { preference: None }
7090    }
7091}
7092impl Default for CreatePaymentMethodConfigurationSofortDisplayPreference {
7093    fn default() -> Self {
7094        Self::new()
7095    }
7096}
7097/// The account's preference for whether or not to display this payment method.
7098#[derive(Clone, Eq, PartialEq)]
7099#[non_exhaustive]
7100pub enum CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7101    None,
7102    Off,
7103    On,
7104    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7105    Unknown(String),
7106}
7107impl CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7108    pub fn as_str(&self) -> &str {
7109        use CreatePaymentMethodConfigurationSofortDisplayPreferencePreference::*;
7110        match self {
7111            None => "none",
7112            Off => "off",
7113            On => "on",
7114            Unknown(v) => v,
7115        }
7116    }
7117}
7118
7119impl std::str::FromStr for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7120    type Err = std::convert::Infallible;
7121    fn from_str(s: &str) -> Result<Self, Self::Err> {
7122        use CreatePaymentMethodConfigurationSofortDisplayPreferencePreference::*;
7123        match s {
7124            "none" => Ok(None),
7125            "off" => Ok(Off),
7126            "on" => Ok(On),
7127            v => {
7128                tracing::warn!(
7129                    "Unknown value '{}' for enum '{}'",
7130                    v,
7131                    "CreatePaymentMethodConfigurationSofortDisplayPreferencePreference"
7132                );
7133                Ok(Unknown(v.to_owned()))
7134            }
7135        }
7136    }
7137}
7138impl std::fmt::Display for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7139    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7140        f.write_str(self.as_str())
7141    }
7142}
7143
7144#[cfg(not(feature = "redact-generated-debug"))]
7145impl std::fmt::Debug for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7146    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7147        f.write_str(self.as_str())
7148    }
7149}
7150#[cfg(feature = "redact-generated-debug")]
7151impl std::fmt::Debug for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7152    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7153        f.debug_struct(stringify!(
7154            CreatePaymentMethodConfigurationSofortDisplayPreferencePreference
7155        ))
7156        .finish_non_exhaustive()
7157    }
7158}
7159impl serde::Serialize for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference {
7160    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7161    where
7162        S: serde::Serializer,
7163    {
7164        serializer.serialize_str(self.as_str())
7165    }
7166}
7167#[cfg(feature = "deserialize")]
7168impl<'de> serde::Deserialize<'de>
7169    for CreatePaymentMethodConfigurationSofortDisplayPreferencePreference
7170{
7171    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7172        use std::str::FromStr;
7173        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7174        Ok(Self::from_str(&s).expect("infallible"))
7175    }
7176}
7177/// Swish is a [real-time](https://docs.stripe.com/payments/real-time) payment method popular in Sweden.
7178/// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app.
7179/// Check this [page](https://docs.stripe.com/payments/swish) for more details.
7180#[derive(Clone, Eq, PartialEq)]
7181#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7182#[derive(serde::Serialize)]
7183pub struct CreatePaymentMethodConfigurationSwish {
7184    /// Whether or not the payment method should be displayed.
7185    #[serde(skip_serializing_if = "Option::is_none")]
7186    pub display_preference: Option<CreatePaymentMethodConfigurationSwishDisplayPreference>,
7187}
7188#[cfg(feature = "redact-generated-debug")]
7189impl std::fmt::Debug for CreatePaymentMethodConfigurationSwish {
7190    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7191        f.debug_struct("CreatePaymentMethodConfigurationSwish").finish_non_exhaustive()
7192    }
7193}
7194impl CreatePaymentMethodConfigurationSwish {
7195    pub fn new() -> Self {
7196        Self { display_preference: None }
7197    }
7198}
7199impl Default for CreatePaymentMethodConfigurationSwish {
7200    fn default() -> Self {
7201        Self::new()
7202    }
7203}
7204/// Whether or not the payment method should be displayed.
7205#[derive(Clone, Eq, PartialEq)]
7206#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7207#[derive(serde::Serialize)]
7208pub struct CreatePaymentMethodConfigurationSwishDisplayPreference {
7209    /// The account's preference for whether or not to display this payment method.
7210    #[serde(skip_serializing_if = "Option::is_none")]
7211    pub preference: Option<CreatePaymentMethodConfigurationSwishDisplayPreferencePreference>,
7212}
7213#[cfg(feature = "redact-generated-debug")]
7214impl std::fmt::Debug for CreatePaymentMethodConfigurationSwishDisplayPreference {
7215    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7216        f.debug_struct("CreatePaymentMethodConfigurationSwishDisplayPreference")
7217            .finish_non_exhaustive()
7218    }
7219}
7220impl CreatePaymentMethodConfigurationSwishDisplayPreference {
7221    pub fn new() -> Self {
7222        Self { preference: None }
7223    }
7224}
7225impl Default for CreatePaymentMethodConfigurationSwishDisplayPreference {
7226    fn default() -> Self {
7227        Self::new()
7228    }
7229}
7230/// The account's preference for whether or not to display this payment method.
7231#[derive(Clone, Eq, PartialEq)]
7232#[non_exhaustive]
7233pub enum CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7234    None,
7235    Off,
7236    On,
7237    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7238    Unknown(String),
7239}
7240impl CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7241    pub fn as_str(&self) -> &str {
7242        use CreatePaymentMethodConfigurationSwishDisplayPreferencePreference::*;
7243        match self {
7244            None => "none",
7245            Off => "off",
7246            On => "on",
7247            Unknown(v) => v,
7248        }
7249    }
7250}
7251
7252impl std::str::FromStr for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7253    type Err = std::convert::Infallible;
7254    fn from_str(s: &str) -> Result<Self, Self::Err> {
7255        use CreatePaymentMethodConfigurationSwishDisplayPreferencePreference::*;
7256        match s {
7257            "none" => Ok(None),
7258            "off" => Ok(Off),
7259            "on" => Ok(On),
7260            v => {
7261                tracing::warn!(
7262                    "Unknown value '{}' for enum '{}'",
7263                    v,
7264                    "CreatePaymentMethodConfigurationSwishDisplayPreferencePreference"
7265                );
7266                Ok(Unknown(v.to_owned()))
7267            }
7268        }
7269    }
7270}
7271impl std::fmt::Display for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7272    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7273        f.write_str(self.as_str())
7274    }
7275}
7276
7277#[cfg(not(feature = "redact-generated-debug"))]
7278impl std::fmt::Debug for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7279    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7280        f.write_str(self.as_str())
7281    }
7282}
7283#[cfg(feature = "redact-generated-debug")]
7284impl std::fmt::Debug for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7285    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7286        f.debug_struct(stringify!(CreatePaymentMethodConfigurationSwishDisplayPreferencePreference))
7287            .finish_non_exhaustive()
7288    }
7289}
7290impl serde::Serialize for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference {
7291    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7292    where
7293        S: serde::Serializer,
7294    {
7295        serializer.serialize_str(self.as_str())
7296    }
7297}
7298#[cfg(feature = "deserialize")]
7299impl<'de> serde::Deserialize<'de>
7300    for CreatePaymentMethodConfigurationSwishDisplayPreferencePreference
7301{
7302    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7303        use std::str::FromStr;
7304        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7305        Ok(Self::from_str(&s).expect("infallible"))
7306    }
7307}
7308/// Twint is a payment method popular in Switzerland.
7309/// It allows customers to pay using their mobile phone.
7310/// Check this [page](https://docs.stripe.com/payments/twint) for more details.
7311#[derive(Clone, Eq, PartialEq)]
7312#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7313#[derive(serde::Serialize)]
7314pub struct CreatePaymentMethodConfigurationTwint {
7315    /// Whether or not the payment method should be displayed.
7316    #[serde(skip_serializing_if = "Option::is_none")]
7317    pub display_preference: Option<CreatePaymentMethodConfigurationTwintDisplayPreference>,
7318}
7319#[cfg(feature = "redact-generated-debug")]
7320impl std::fmt::Debug for CreatePaymentMethodConfigurationTwint {
7321    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7322        f.debug_struct("CreatePaymentMethodConfigurationTwint").finish_non_exhaustive()
7323    }
7324}
7325impl CreatePaymentMethodConfigurationTwint {
7326    pub fn new() -> Self {
7327        Self { display_preference: None }
7328    }
7329}
7330impl Default for CreatePaymentMethodConfigurationTwint {
7331    fn default() -> Self {
7332        Self::new()
7333    }
7334}
7335/// Whether or not the payment method should be displayed.
7336#[derive(Clone, Eq, PartialEq)]
7337#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7338#[derive(serde::Serialize)]
7339pub struct CreatePaymentMethodConfigurationTwintDisplayPreference {
7340    /// The account's preference for whether or not to display this payment method.
7341    #[serde(skip_serializing_if = "Option::is_none")]
7342    pub preference: Option<CreatePaymentMethodConfigurationTwintDisplayPreferencePreference>,
7343}
7344#[cfg(feature = "redact-generated-debug")]
7345impl std::fmt::Debug for CreatePaymentMethodConfigurationTwintDisplayPreference {
7346    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7347        f.debug_struct("CreatePaymentMethodConfigurationTwintDisplayPreference")
7348            .finish_non_exhaustive()
7349    }
7350}
7351impl CreatePaymentMethodConfigurationTwintDisplayPreference {
7352    pub fn new() -> Self {
7353        Self { preference: None }
7354    }
7355}
7356impl Default for CreatePaymentMethodConfigurationTwintDisplayPreference {
7357    fn default() -> Self {
7358        Self::new()
7359    }
7360}
7361/// The account's preference for whether or not to display this payment method.
7362#[derive(Clone, Eq, PartialEq)]
7363#[non_exhaustive]
7364pub enum CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7365    None,
7366    Off,
7367    On,
7368    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7369    Unknown(String),
7370}
7371impl CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7372    pub fn as_str(&self) -> &str {
7373        use CreatePaymentMethodConfigurationTwintDisplayPreferencePreference::*;
7374        match self {
7375            None => "none",
7376            Off => "off",
7377            On => "on",
7378            Unknown(v) => v,
7379        }
7380    }
7381}
7382
7383impl std::str::FromStr for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7384    type Err = std::convert::Infallible;
7385    fn from_str(s: &str) -> Result<Self, Self::Err> {
7386        use CreatePaymentMethodConfigurationTwintDisplayPreferencePreference::*;
7387        match s {
7388            "none" => Ok(None),
7389            "off" => Ok(Off),
7390            "on" => Ok(On),
7391            v => {
7392                tracing::warn!(
7393                    "Unknown value '{}' for enum '{}'",
7394                    v,
7395                    "CreatePaymentMethodConfigurationTwintDisplayPreferencePreference"
7396                );
7397                Ok(Unknown(v.to_owned()))
7398            }
7399        }
7400    }
7401}
7402impl std::fmt::Display for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7403    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7404        f.write_str(self.as_str())
7405    }
7406}
7407
7408#[cfg(not(feature = "redact-generated-debug"))]
7409impl std::fmt::Debug for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7410    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7411        f.write_str(self.as_str())
7412    }
7413}
7414#[cfg(feature = "redact-generated-debug")]
7415impl std::fmt::Debug for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7416    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7417        f.debug_struct(stringify!(CreatePaymentMethodConfigurationTwintDisplayPreferencePreference))
7418            .finish_non_exhaustive()
7419    }
7420}
7421impl serde::Serialize for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference {
7422    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7423    where
7424        S: serde::Serializer,
7425    {
7426        serializer.serialize_str(self.as_str())
7427    }
7428}
7429#[cfg(feature = "deserialize")]
7430impl<'de> serde::Deserialize<'de>
7431    for CreatePaymentMethodConfigurationTwintDisplayPreferencePreference
7432{
7433    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7434        use std::str::FromStr;
7435        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7436        Ok(Self::from_str(&s).expect("infallible"))
7437    }
7438}
7439/// Unified Payment Interface (UPI) is India's leading payment method with exponential growth since it launched in 2016.
7440#[derive(Clone, Eq, PartialEq)]
7441#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7442#[derive(serde::Serialize)]
7443pub struct CreatePaymentMethodConfigurationUpi {
7444    /// Whether or not the payment method should be displayed.
7445    #[serde(skip_serializing_if = "Option::is_none")]
7446    pub display_preference: Option<CreatePaymentMethodConfigurationUpiDisplayPreference>,
7447}
7448#[cfg(feature = "redact-generated-debug")]
7449impl std::fmt::Debug for CreatePaymentMethodConfigurationUpi {
7450    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7451        f.debug_struct("CreatePaymentMethodConfigurationUpi").finish_non_exhaustive()
7452    }
7453}
7454impl CreatePaymentMethodConfigurationUpi {
7455    pub fn new() -> Self {
7456        Self { display_preference: None }
7457    }
7458}
7459impl Default for CreatePaymentMethodConfigurationUpi {
7460    fn default() -> Self {
7461        Self::new()
7462    }
7463}
7464/// Whether or not the payment method should be displayed.
7465#[derive(Clone, Eq, PartialEq)]
7466#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7467#[derive(serde::Serialize)]
7468pub struct CreatePaymentMethodConfigurationUpiDisplayPreference {
7469    /// The account's preference for whether or not to display this payment method.
7470    #[serde(skip_serializing_if = "Option::is_none")]
7471    pub preference: Option<CreatePaymentMethodConfigurationUpiDisplayPreferencePreference>,
7472}
7473#[cfg(feature = "redact-generated-debug")]
7474impl std::fmt::Debug for CreatePaymentMethodConfigurationUpiDisplayPreference {
7475    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7476        f.debug_struct("CreatePaymentMethodConfigurationUpiDisplayPreference")
7477            .finish_non_exhaustive()
7478    }
7479}
7480impl CreatePaymentMethodConfigurationUpiDisplayPreference {
7481    pub fn new() -> Self {
7482        Self { preference: None }
7483    }
7484}
7485impl Default for CreatePaymentMethodConfigurationUpiDisplayPreference {
7486    fn default() -> Self {
7487        Self::new()
7488    }
7489}
7490/// The account's preference for whether or not to display this payment method.
7491#[derive(Clone, Eq, PartialEq)]
7492#[non_exhaustive]
7493pub enum CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7494    None,
7495    Off,
7496    On,
7497    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7498    Unknown(String),
7499}
7500impl CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7501    pub fn as_str(&self) -> &str {
7502        use CreatePaymentMethodConfigurationUpiDisplayPreferencePreference::*;
7503        match self {
7504            None => "none",
7505            Off => "off",
7506            On => "on",
7507            Unknown(v) => v,
7508        }
7509    }
7510}
7511
7512impl std::str::FromStr for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7513    type Err = std::convert::Infallible;
7514    fn from_str(s: &str) -> Result<Self, Self::Err> {
7515        use CreatePaymentMethodConfigurationUpiDisplayPreferencePreference::*;
7516        match s {
7517            "none" => Ok(None),
7518            "off" => Ok(Off),
7519            "on" => Ok(On),
7520            v => {
7521                tracing::warn!(
7522                    "Unknown value '{}' for enum '{}'",
7523                    v,
7524                    "CreatePaymentMethodConfigurationUpiDisplayPreferencePreference"
7525                );
7526                Ok(Unknown(v.to_owned()))
7527            }
7528        }
7529    }
7530}
7531impl std::fmt::Display for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7532    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7533        f.write_str(self.as_str())
7534    }
7535}
7536
7537#[cfg(not(feature = "redact-generated-debug"))]
7538impl std::fmt::Debug for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7539    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7540        f.write_str(self.as_str())
7541    }
7542}
7543#[cfg(feature = "redact-generated-debug")]
7544impl std::fmt::Debug for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7545    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7546        f.debug_struct(stringify!(CreatePaymentMethodConfigurationUpiDisplayPreferencePreference))
7547            .finish_non_exhaustive()
7548    }
7549}
7550impl serde::Serialize for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference {
7551    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7552    where
7553        S: serde::Serializer,
7554    {
7555        serializer.serialize_str(self.as_str())
7556    }
7557}
7558#[cfg(feature = "deserialize")]
7559impl<'de> serde::Deserialize<'de>
7560    for CreatePaymentMethodConfigurationUpiDisplayPreferencePreference
7561{
7562    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7563        use std::str::FromStr;
7564        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7565        Ok(Self::from_str(&s).expect("infallible"))
7566    }
7567}
7568/// Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha.
7569/// Check this [page](https://docs.stripe.com/payments/ach-direct-debit) for more details.
7570#[derive(Clone, Eq, PartialEq)]
7571#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7572#[derive(serde::Serialize)]
7573pub struct CreatePaymentMethodConfigurationUsBankAccount {
7574    /// Whether or not the payment method should be displayed.
7575    #[serde(skip_serializing_if = "Option::is_none")]
7576    pub display_preference: Option<CreatePaymentMethodConfigurationUsBankAccountDisplayPreference>,
7577}
7578#[cfg(feature = "redact-generated-debug")]
7579impl std::fmt::Debug for CreatePaymentMethodConfigurationUsBankAccount {
7580    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7581        f.debug_struct("CreatePaymentMethodConfigurationUsBankAccount").finish_non_exhaustive()
7582    }
7583}
7584impl CreatePaymentMethodConfigurationUsBankAccount {
7585    pub fn new() -> Self {
7586        Self { display_preference: None }
7587    }
7588}
7589impl Default for CreatePaymentMethodConfigurationUsBankAccount {
7590    fn default() -> Self {
7591        Self::new()
7592    }
7593}
7594/// Whether or not the payment method should be displayed.
7595#[derive(Clone, Eq, PartialEq)]
7596#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7597#[derive(serde::Serialize)]
7598pub struct CreatePaymentMethodConfigurationUsBankAccountDisplayPreference {
7599    /// The account's preference for whether or not to display this payment method.
7600    #[serde(skip_serializing_if = "Option::is_none")]
7601    pub preference:
7602        Option<CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference>,
7603}
7604#[cfg(feature = "redact-generated-debug")]
7605impl std::fmt::Debug for CreatePaymentMethodConfigurationUsBankAccountDisplayPreference {
7606    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7607        f.debug_struct("CreatePaymentMethodConfigurationUsBankAccountDisplayPreference")
7608            .finish_non_exhaustive()
7609    }
7610}
7611impl CreatePaymentMethodConfigurationUsBankAccountDisplayPreference {
7612    pub fn new() -> Self {
7613        Self { preference: None }
7614    }
7615}
7616impl Default for CreatePaymentMethodConfigurationUsBankAccountDisplayPreference {
7617    fn default() -> Self {
7618        Self::new()
7619    }
7620}
7621/// The account's preference for whether or not to display this payment method.
7622#[derive(Clone, Eq, PartialEq)]
7623#[non_exhaustive]
7624pub enum CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
7625    None,
7626    Off,
7627    On,
7628    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7629    Unknown(String),
7630}
7631impl CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
7632    pub fn as_str(&self) -> &str {
7633        use CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference::*;
7634        match self {
7635            None => "none",
7636            Off => "off",
7637            On => "on",
7638            Unknown(v) => v,
7639        }
7640    }
7641}
7642
7643impl std::str::FromStr
7644    for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
7645{
7646    type Err = std::convert::Infallible;
7647    fn from_str(s: &str) -> Result<Self, Self::Err> {
7648        use CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference::*;
7649        match s {
7650            "none" => Ok(None),
7651            "off" => Ok(Off),
7652            "on" => Ok(On),
7653            v => {
7654                tracing::warn!(
7655                    "Unknown value '{}' for enum '{}'",
7656                    v,
7657                    "CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference"
7658                );
7659                Ok(Unknown(v.to_owned()))
7660            }
7661        }
7662    }
7663}
7664impl std::fmt::Display
7665    for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
7666{
7667    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7668        f.write_str(self.as_str())
7669    }
7670}
7671
7672#[cfg(not(feature = "redact-generated-debug"))]
7673impl std::fmt::Debug for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
7674    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7675        f.write_str(self.as_str())
7676    }
7677}
7678#[cfg(feature = "redact-generated-debug")]
7679impl std::fmt::Debug for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
7680    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7681        f.debug_struct(stringify!(
7682            CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
7683        ))
7684        .finish_non_exhaustive()
7685    }
7686}
7687impl serde::Serialize for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
7688    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7689    where
7690        S: serde::Serializer,
7691    {
7692        serializer.serialize_str(self.as_str())
7693    }
7694}
7695#[cfg(feature = "deserialize")]
7696impl<'de> serde::Deserialize<'de>
7697    for CreatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
7698{
7699    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7700        use std::str::FromStr;
7701        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7702        Ok(Self::from_str(&s).expect("infallible"))
7703    }
7704}
7705/// WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users.
7706/// Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites.
7707/// WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition.
7708/// Check this [page](https://docs.stripe.com/payments/wechat-pay) for more details.
7709#[derive(Clone, Eq, PartialEq)]
7710#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7711#[derive(serde::Serialize)]
7712pub struct CreatePaymentMethodConfigurationWechatPay {
7713    /// Whether or not the payment method should be displayed.
7714    #[serde(skip_serializing_if = "Option::is_none")]
7715    pub display_preference: Option<CreatePaymentMethodConfigurationWechatPayDisplayPreference>,
7716}
7717#[cfg(feature = "redact-generated-debug")]
7718impl std::fmt::Debug for CreatePaymentMethodConfigurationWechatPay {
7719    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7720        f.debug_struct("CreatePaymentMethodConfigurationWechatPay").finish_non_exhaustive()
7721    }
7722}
7723impl CreatePaymentMethodConfigurationWechatPay {
7724    pub fn new() -> Self {
7725        Self { display_preference: None }
7726    }
7727}
7728impl Default for CreatePaymentMethodConfigurationWechatPay {
7729    fn default() -> Self {
7730        Self::new()
7731    }
7732}
7733/// Whether or not the payment method should be displayed.
7734#[derive(Clone, Eq, PartialEq)]
7735#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7736#[derive(serde::Serialize)]
7737pub struct CreatePaymentMethodConfigurationWechatPayDisplayPreference {
7738    /// The account's preference for whether or not to display this payment method.
7739    #[serde(skip_serializing_if = "Option::is_none")]
7740    pub preference: Option<CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference>,
7741}
7742#[cfg(feature = "redact-generated-debug")]
7743impl std::fmt::Debug for CreatePaymentMethodConfigurationWechatPayDisplayPreference {
7744    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7745        f.debug_struct("CreatePaymentMethodConfigurationWechatPayDisplayPreference")
7746            .finish_non_exhaustive()
7747    }
7748}
7749impl CreatePaymentMethodConfigurationWechatPayDisplayPreference {
7750    pub fn new() -> Self {
7751        Self { preference: None }
7752    }
7753}
7754impl Default for CreatePaymentMethodConfigurationWechatPayDisplayPreference {
7755    fn default() -> Self {
7756        Self::new()
7757    }
7758}
7759/// The account's preference for whether or not to display this payment method.
7760#[derive(Clone, Eq, PartialEq)]
7761#[non_exhaustive]
7762pub enum CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7763    None,
7764    Off,
7765    On,
7766    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7767    Unknown(String),
7768}
7769impl CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7770    pub fn as_str(&self) -> &str {
7771        use CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference::*;
7772        match self {
7773            None => "none",
7774            Off => "off",
7775            On => "on",
7776            Unknown(v) => v,
7777        }
7778    }
7779}
7780
7781impl std::str::FromStr for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7782    type Err = std::convert::Infallible;
7783    fn from_str(s: &str) -> Result<Self, Self::Err> {
7784        use CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference::*;
7785        match s {
7786            "none" => Ok(None),
7787            "off" => Ok(Off),
7788            "on" => Ok(On),
7789            v => {
7790                tracing::warn!(
7791                    "Unknown value '{}' for enum '{}'",
7792                    v,
7793                    "CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference"
7794                );
7795                Ok(Unknown(v.to_owned()))
7796            }
7797        }
7798    }
7799}
7800impl std::fmt::Display for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7801    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7802        f.write_str(self.as_str())
7803    }
7804}
7805
7806#[cfg(not(feature = "redact-generated-debug"))]
7807impl std::fmt::Debug for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7808    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7809        f.write_str(self.as_str())
7810    }
7811}
7812#[cfg(feature = "redact-generated-debug")]
7813impl std::fmt::Debug for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7814    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7815        f.debug_struct(stringify!(
7816            CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference
7817        ))
7818        .finish_non_exhaustive()
7819    }
7820}
7821impl serde::Serialize for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
7822    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7823    where
7824        S: serde::Serializer,
7825    {
7826        serializer.serialize_str(self.as_str())
7827    }
7828}
7829#[cfg(feature = "deserialize")]
7830impl<'de> serde::Deserialize<'de>
7831    for CreatePaymentMethodConfigurationWechatPayDisplayPreferencePreference
7832{
7833    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7834        use std::str::FromStr;
7835        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7836        Ok(Self::from_str(&s).expect("infallible"))
7837    }
7838}
7839/// Zip gives your customers a way to split purchases over a series of payments.
7840/// Check this [page](https://docs.stripe.com/payments/zip) for more details like country availability.
7841#[derive(Clone, Eq, PartialEq)]
7842#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7843#[derive(serde::Serialize)]
7844pub struct CreatePaymentMethodConfigurationZip {
7845    /// Whether or not the payment method should be displayed.
7846    #[serde(skip_serializing_if = "Option::is_none")]
7847    pub display_preference: Option<CreatePaymentMethodConfigurationZipDisplayPreference>,
7848}
7849#[cfg(feature = "redact-generated-debug")]
7850impl std::fmt::Debug for CreatePaymentMethodConfigurationZip {
7851    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7852        f.debug_struct("CreatePaymentMethodConfigurationZip").finish_non_exhaustive()
7853    }
7854}
7855impl CreatePaymentMethodConfigurationZip {
7856    pub fn new() -> Self {
7857        Self { display_preference: None }
7858    }
7859}
7860impl Default for CreatePaymentMethodConfigurationZip {
7861    fn default() -> Self {
7862        Self::new()
7863    }
7864}
7865/// Whether or not the payment method should be displayed.
7866#[derive(Clone, Eq, PartialEq)]
7867#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7868#[derive(serde::Serialize)]
7869pub struct CreatePaymentMethodConfigurationZipDisplayPreference {
7870    /// The account's preference for whether or not to display this payment method.
7871    #[serde(skip_serializing_if = "Option::is_none")]
7872    pub preference: Option<CreatePaymentMethodConfigurationZipDisplayPreferencePreference>,
7873}
7874#[cfg(feature = "redact-generated-debug")]
7875impl std::fmt::Debug for CreatePaymentMethodConfigurationZipDisplayPreference {
7876    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7877        f.debug_struct("CreatePaymentMethodConfigurationZipDisplayPreference")
7878            .finish_non_exhaustive()
7879    }
7880}
7881impl CreatePaymentMethodConfigurationZipDisplayPreference {
7882    pub fn new() -> Self {
7883        Self { preference: None }
7884    }
7885}
7886impl Default for CreatePaymentMethodConfigurationZipDisplayPreference {
7887    fn default() -> Self {
7888        Self::new()
7889    }
7890}
7891/// The account's preference for whether or not to display this payment method.
7892#[derive(Clone, Eq, PartialEq)]
7893#[non_exhaustive]
7894pub enum CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7895    None,
7896    Off,
7897    On,
7898    /// An unrecognized value from Stripe. Should not be used as a request parameter.
7899    Unknown(String),
7900}
7901impl CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7902    pub fn as_str(&self) -> &str {
7903        use CreatePaymentMethodConfigurationZipDisplayPreferencePreference::*;
7904        match self {
7905            None => "none",
7906            Off => "off",
7907            On => "on",
7908            Unknown(v) => v,
7909        }
7910    }
7911}
7912
7913impl std::str::FromStr for CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7914    type Err = std::convert::Infallible;
7915    fn from_str(s: &str) -> Result<Self, Self::Err> {
7916        use CreatePaymentMethodConfigurationZipDisplayPreferencePreference::*;
7917        match s {
7918            "none" => Ok(None),
7919            "off" => Ok(Off),
7920            "on" => Ok(On),
7921            v => {
7922                tracing::warn!(
7923                    "Unknown value '{}' for enum '{}'",
7924                    v,
7925                    "CreatePaymentMethodConfigurationZipDisplayPreferencePreference"
7926                );
7927                Ok(Unknown(v.to_owned()))
7928            }
7929        }
7930    }
7931}
7932impl std::fmt::Display for CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7933    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7934        f.write_str(self.as_str())
7935    }
7936}
7937
7938#[cfg(not(feature = "redact-generated-debug"))]
7939impl std::fmt::Debug for CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7940    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7941        f.write_str(self.as_str())
7942    }
7943}
7944#[cfg(feature = "redact-generated-debug")]
7945impl std::fmt::Debug for CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7946    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7947        f.debug_struct(stringify!(CreatePaymentMethodConfigurationZipDisplayPreferencePreference))
7948            .finish_non_exhaustive()
7949    }
7950}
7951impl serde::Serialize for CreatePaymentMethodConfigurationZipDisplayPreferencePreference {
7952    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7953    where
7954        S: serde::Serializer,
7955    {
7956        serializer.serialize_str(self.as_str())
7957    }
7958}
7959#[cfg(feature = "deserialize")]
7960impl<'de> serde::Deserialize<'de>
7961    for CreatePaymentMethodConfigurationZipDisplayPreferencePreference
7962{
7963    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7964        use std::str::FromStr;
7965        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
7966        Ok(Self::from_str(&s).expect("infallible"))
7967    }
7968}
7969/// Creates a payment method configuration
7970#[derive(Clone)]
7971#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
7972#[derive(serde::Serialize)]
7973pub struct CreatePaymentMethodConfiguration {
7974    inner: CreatePaymentMethodConfigurationBuilder,
7975}
7976#[cfg(feature = "redact-generated-debug")]
7977impl std::fmt::Debug for CreatePaymentMethodConfiguration {
7978    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7979        f.debug_struct("CreatePaymentMethodConfiguration").finish_non_exhaustive()
7980    }
7981}
7982impl CreatePaymentMethodConfiguration {
7983    /// Construct a new `CreatePaymentMethodConfiguration`.
7984    pub fn new() -> Self {
7985        Self { inner: CreatePaymentMethodConfigurationBuilder::new() }
7986    }
7987    /// Canadian pre-authorized debit payments, check this [page](https://docs.stripe.com/payments/acss-debit) for more details like country availability.
7988    pub fn acss_debit(
7989        mut self,
7990        acss_debit: impl Into<CreatePaymentMethodConfigurationAcssDebit>,
7991    ) -> Self {
7992        self.inner.acss_debit = Some(acss_debit.into());
7993        self
7994    }
7995    /// [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments.
7996    /// Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest.
7997    /// Check this [page](https://docs.stripe.com/payments/affirm) for more details like country availability.
7998    pub fn affirm(mut self, affirm: impl Into<CreatePaymentMethodConfigurationAffirm>) -> Self {
7999        self.inner.affirm = Some(affirm.into());
8000        self
8001    }
8002    /// Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://docs.stripe.com/payments/afterpay-clearpay) for more details like country availability.
8003    /// Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.
8004    pub fn afterpay_clearpay(
8005        mut self,
8006        afterpay_clearpay: impl Into<CreatePaymentMethodConfigurationAfterpayClearpay>,
8007    ) -> Self {
8008        self.inner.afterpay_clearpay = Some(afterpay_clearpay.into());
8009        self
8010    }
8011    /// Alipay is a digital wallet in China that has more than a billion active users worldwide.
8012    /// Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app.
8013    /// Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials.
8014    /// Check this [page](https://docs.stripe.com/payments/alipay) for more details.
8015    pub fn alipay(mut self, alipay: impl Into<CreatePaymentMethodConfigurationAlipay>) -> Self {
8016        self.inner.alipay = Some(alipay.into());
8017        self
8018    }
8019    /// Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments.
8020    pub fn alma(mut self, alma: impl Into<CreatePaymentMethodConfigurationAlma>) -> Self {
8021        self.inner.alma = Some(alma.into());
8022        self
8023    }
8024    /// Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.
8025    pub fn amazon_pay(
8026        mut self,
8027        amazon_pay: impl Into<CreatePaymentMethodConfigurationAmazonPay>,
8028    ) -> Self {
8029        self.inner.amazon_pay = Some(amazon_pay.into());
8030        self
8031    }
8032    /// Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra.
8033    /// There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions.
8034    /// Check this [page](https://docs.stripe.com/apple-pay) for more details.
8035    pub fn apple_pay(
8036        mut self,
8037        apple_pay: impl Into<CreatePaymentMethodConfigurationApplePay>,
8038    ) -> Self {
8039        self.inner.apple_pay = Some(apple_pay.into());
8040        self
8041    }
8042    /// Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.
8043    pub fn apple_pay_later(
8044        mut self,
8045        apple_pay_later: impl Into<CreatePaymentMethodConfigurationApplePayLater>,
8046    ) -> Self {
8047        self.inner.apple_pay_later = Some(apple_pay_later.into());
8048        self
8049    }
8050    /// Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account.
8051    /// Check this [page](https://docs.stripe.com/payments/au-becs-debit) for more details.
8052    pub fn au_becs_debit(
8053        mut self,
8054        au_becs_debit: impl Into<CreatePaymentMethodConfigurationAuBecsDebit>,
8055    ) -> Self {
8056        self.inner.au_becs_debit = Some(au_becs_debit.into());
8057        self
8058    }
8059    /// Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://docs.stripe.com/payments/payment-methods/bacs-debit) for more details.
8060    pub fn bacs_debit(
8061        mut self,
8062        bacs_debit: impl Into<CreatePaymentMethodConfigurationBacsDebit>,
8063    ) -> Self {
8064        self.inner.bacs_debit = Some(bacs_debit.into());
8065        self
8066    }
8067    /// Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation.
8068    /// [Customers](https://docs.stripe.com/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately.
8069    /// Check this [page](https://docs.stripe.com/payments/bancontact) for more details.
8070    pub fn bancontact(
8071        mut self,
8072        bancontact: impl Into<CreatePaymentMethodConfigurationBancontact>,
8073    ) -> Self {
8074        self.inner.bancontact = Some(bancontact.into());
8075        self
8076    }
8077    /// Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days.
8078    /// Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app.
8079    /// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
8080    pub fn billie(mut self, billie: impl Into<CreatePaymentMethodConfigurationBillie>) -> Self {
8081        self.inner.billie = Some(billie.into());
8082        self
8083    }
8084    /// BLIK is a [single use](https://docs.stripe.com/payments/payment-methods#usage) payment method that requires customers to authenticate their payments.
8085    /// When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form.
8086    /// Check this [page](https://docs.stripe.com/payments/blik) for more details.
8087    pub fn blik(mut self, blik: impl Into<CreatePaymentMethodConfigurationBlik>) -> Self {
8088        self.inner.blik = Some(blik.into());
8089        self
8090    }
8091    /// Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil.
8092    /// Check this [page](https://docs.stripe.com/payments/boleto) for more details.
8093    pub fn boleto(mut self, boleto: impl Into<CreatePaymentMethodConfigurationBoleto>) -> Self {
8094        self.inner.boleto = Some(boleto.into());
8095        self
8096    }
8097    /// Cards are a popular way for consumers and businesses to pay online or in person.
8098    /// Stripe supports global and local card networks.
8099    pub fn card(mut self, card: impl Into<CreatePaymentMethodConfigurationCard>) -> Self {
8100        self.inner.card = Some(card.into());
8101        self
8102    }
8103    /// Cartes Bancaires is France's local card network.
8104    /// More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks.
8105    /// Check this [page](https://docs.stripe.com/payments/cartes-bancaires) for more details.
8106    pub fn cartes_bancaires(
8107        mut self,
8108        cartes_bancaires: impl Into<CreatePaymentMethodConfigurationCartesBancaires>,
8109    ) -> Self {
8110        self.inner.cartes_bancaires = Some(cartes_bancaires.into());
8111        self
8112    }
8113    /// Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet.
8114    /// Check this [page](https://docs.stripe.com/payments/cash-app-pay) for more details.
8115    pub fn cashapp(mut self, cashapp: impl Into<CreatePaymentMethodConfigurationCashapp>) -> Self {
8116        self.inner.cashapp = Some(cashapp.into());
8117        self
8118    }
8119    /// [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask.
8120    pub fn crypto(mut self, crypto: impl Into<CreatePaymentMethodConfigurationCrypto>) -> Self {
8121        self.inner.crypto = Some(crypto.into());
8122        self
8123    }
8124    /// Uses a customer’s [cash balance](https://docs.stripe.com/payments/customer-balance) for the payment.
8125    /// The cash balance can be funded via a bank transfer.
8126    /// Check this [page](https://docs.stripe.com/payments/bank-transfers) for more details.
8127    pub fn customer_balance(
8128        mut self,
8129        customer_balance: impl Into<CreatePaymentMethodConfigurationCustomerBalance>,
8130    ) -> Self {
8131        self.inner.customer_balance = Some(customer_balance.into());
8132        self
8133    }
8134    /// EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials.
8135    /// EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers.
8136    /// Check this [page](https://docs.stripe.com/payments/eps) for more details.
8137    pub fn eps(mut self, eps: impl Into<CreatePaymentMethodConfigurationEps>) -> Self {
8138        self.inner.eps = Some(eps.into());
8139        self
8140    }
8141    /// Specifies which fields in the response should be expanded.
8142    pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
8143        self.inner.expand = Some(expand.into());
8144        self
8145    }
8146    /// Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials.
8147    /// Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX.
8148    /// It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM.
8149    /// Check this [page](https://docs.stripe.com/payments/fpx) for more details.
8150    pub fn fpx(mut self, fpx: impl Into<CreatePaymentMethodConfigurationFpx>) -> Self {
8151        self.inner.fpx = Some(fpx.into());
8152        self
8153    }
8154    /// Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days.
8155    /// Check this [page](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers) for more details.
8156    pub fn fr_meal_voucher_conecs(
8157        mut self,
8158        fr_meal_voucher_conecs: impl Into<CreatePaymentMethodConfigurationFrMealVoucherConecs>,
8159    ) -> Self {
8160        self.inner.fr_meal_voucher_conecs = Some(fr_meal_voucher_conecs.into());
8161        self
8162    }
8163    /// giropay is a German payment method based on online banking, introduced in 2006.
8164    /// It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account.
8165    /// Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN.
8166    /// giropay accounts for 10% of online checkouts in Germany.
8167    /// Check this [page](https://docs.stripe.com/payments/giropay) for more details.
8168    pub fn giropay(mut self, giropay: impl Into<CreatePaymentMethodConfigurationGiropay>) -> Self {
8169        self.inner.giropay = Some(giropay.into());
8170        self
8171    }
8172    /// Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device.
8173    /// Use the Google Pay API to request any credit or debit card stored in your customer's Google account.
8174    /// Check this [page](https://docs.stripe.com/google-pay) for more details.
8175    pub fn google_pay(
8176        mut self,
8177        google_pay: impl Into<CreatePaymentMethodConfigurationGooglePay>,
8178    ) -> Self {
8179        self.inner.google_pay = Some(google_pay.into());
8180        self
8181    }
8182    /// GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/).
8183    /// GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with.
8184    /// Check this [page](https://docs.stripe.com/payments/grabpay) for more details.
8185    pub fn grabpay(mut self, grabpay: impl Into<CreatePaymentMethodConfigurationGrabpay>) -> Self {
8186        self.inner.grabpay = Some(grabpay.into());
8187        self
8188    }
8189    /// iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials.
8190    /// All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%.
8191    /// Check this [page](https://docs.stripe.com/payments/ideal) for more details.
8192    pub fn ideal(mut self, ideal: impl Into<CreatePaymentMethodConfigurationIdeal>) -> Self {
8193        self.inner.ideal = Some(ideal.into());
8194        self
8195    }
8196    /// JCB is a credit card company based in Japan.
8197    /// JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland.
8198    /// Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.
8199    pub fn jcb(mut self, jcb: impl Into<CreatePaymentMethodConfigurationJcb>) -> Self {
8200        self.inner.jcb = Some(jcb.into());
8201        self
8202    }
8203    /// Kakao Pay is a popular local wallet available in South Korea.
8204    pub fn kakao_pay(
8205        mut self,
8206        kakao_pay: impl Into<CreatePaymentMethodConfigurationKakaoPay>,
8207    ) -> Self {
8208        self.inner.kakao_pay = Some(kakao_pay.into());
8209        self
8210    }
8211    /// Klarna gives customers a range of [payment options](https://docs.stripe.com/payments/klarna#payment-options) during checkout.
8212    /// Available payment options vary depending on the customer's billing address and the transaction amount.
8213    /// These payment options make it convenient for customers to purchase items in all price ranges.
8214    /// Check this [page](https://docs.stripe.com/payments/klarna) for more details.
8215    pub fn klarna(mut self, klarna: impl Into<CreatePaymentMethodConfigurationKlarna>) -> Self {
8216        self.inner.klarna = Some(klarna.into());
8217        self
8218    }
8219    /// Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash.
8220    /// Check this [page](https://docs.stripe.com/payments/konbini) for more details.
8221    pub fn konbini(mut self, konbini: impl Into<CreatePaymentMethodConfigurationKonbini>) -> Self {
8222        self.inner.konbini = Some(konbini.into());
8223        self
8224    }
8225    /// Korean cards let users pay using locally issued cards from South Korea.
8226    pub fn kr_card(mut self, kr_card: impl Into<CreatePaymentMethodConfigurationKrCard>) -> Self {
8227        self.inner.kr_card = Some(kr_card.into());
8228        self
8229    }
8230    /// [Link](https://docs.stripe.com/payments/link) is a payment method network.
8231    /// With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.
8232    pub fn link(mut self, link: impl Into<CreatePaymentMethodConfigurationLink>) -> Self {
8233        self.inner.link = Some(link.into());
8234        self
8235    }
8236    /// MB WAY is the most popular wallet in Portugal.
8237    /// After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app.
8238    /// Check this [page](https://docs.stripe.com/payments/mb-way) for more details.
8239    pub fn mb_way(mut self, mb_way: impl Into<CreatePaymentMethodConfigurationMbWay>) -> Self {
8240        self.inner.mb_way = Some(mb_way.into());
8241        self
8242    }
8243    /// MobilePay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland.
8244    /// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the MobilePay app.
8245    /// Check this [page](https://docs.stripe.com/payments/mobilepay) for more details.
8246    pub fn mobilepay(
8247        mut self,
8248        mobilepay: impl Into<CreatePaymentMethodConfigurationMobilepay>,
8249    ) -> Self {
8250        self.inner.mobilepay = Some(mobilepay.into());
8251        self
8252    }
8253    /// Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.
8254    pub fn multibanco(
8255        mut self,
8256        multibanco: impl Into<CreatePaymentMethodConfigurationMultibanco>,
8257    ) -> Self {
8258        self.inner.multibanco = Some(multibanco.into());
8259        self
8260    }
8261    /// Configuration name.
8262    pub fn name(mut self, name: impl Into<String>) -> Self {
8263        self.inner.name = Some(name.into());
8264        self
8265    }
8266    /// Naver Pay is a popular local wallet available in South Korea.
8267    pub fn naver_pay(
8268        mut self,
8269        naver_pay: impl Into<CreatePaymentMethodConfigurationNaverPay>,
8270    ) -> Self {
8271        self.inner.naver_pay = Some(naver_pay.into());
8272        self
8273    }
8274    /// Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account.
8275    /// Check this [page](https://docs.stripe.com/payments/nz-bank-account) for more details.
8276    pub fn nz_bank_account(
8277        mut self,
8278        nz_bank_account: impl Into<CreatePaymentMethodConfigurationNzBankAccount>,
8279    ) -> Self {
8280        self.inner.nz_bank_account = Some(nz_bank_account.into());
8281        self
8282    }
8283    /// OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico.
8284    /// OXXO allows customers to pay bills and online purchases in-store with cash.
8285    /// Check this [page](https://docs.stripe.com/payments/oxxo) for more details.
8286    pub fn oxxo(mut self, oxxo: impl Into<CreatePaymentMethodConfigurationOxxo>) -> Self {
8287        self.inner.oxxo = Some(oxxo.into());
8288        self
8289    }
8290    /// Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods.
8291    /// Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks.
8292    /// Check this [page](https://docs.stripe.com/payments/p24) for more details.
8293    pub fn p24(mut self, p24: impl Into<CreatePaymentMethodConfigurationP24>) -> Self {
8294        self.inner.p24 = Some(p24.into());
8295        self
8296    }
8297    /// Configuration's parent configuration. Specify to create a child configuration.
8298    pub fn parent(mut self, parent: impl Into<String>) -> Self {
8299        self.inner.parent = Some(parent.into());
8300        self
8301    }
8302    /// Pay by bank is a redirect payment method backed by bank transfers.
8303    /// A customer is redirected to their bank to authorize a bank transfer for a given amount.
8304    /// This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments.
8305    pub fn pay_by_bank(
8306        mut self,
8307        pay_by_bank: impl Into<CreatePaymentMethodConfigurationPayByBank>,
8308    ) -> Self {
8309        self.inner.pay_by_bank = Some(pay_by_bank.into());
8310        self
8311    }
8312    /// PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
8313    pub fn payco(mut self, payco: impl Into<CreatePaymentMethodConfigurationPayco>) -> Self {
8314        self.inner.payco = Some(payco.into());
8315        self
8316    }
8317    /// PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions.
8318    /// Check this [page](https://docs.stripe.com/payments/paynow) for more details.
8319    pub fn paynow(mut self, paynow: impl Into<CreatePaymentMethodConfigurationPaynow>) -> Self {
8320        self.inner.paynow = Some(paynow.into());
8321        self
8322    }
8323    /// PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account.
8324    /// Check this [page](https://docs.stripe.com/payments/paypal) for more details.
8325    pub fn paypal(mut self, paypal: impl Into<CreatePaymentMethodConfigurationPaypal>) -> Self {
8326        self.inner.paypal = Some(paypal.into());
8327        self
8328    }
8329    /// PayTo is a [real-time](https://docs.stripe.com/payments/real-time) payment method that enables customers in Australia to pay by providing their bank account details.
8330    /// Customers must accept a mandate authorizing you to debit their account.
8331    /// Check this [page](https://docs.stripe.com/payments/payto) for more details.
8332    pub fn payto(mut self, payto: impl Into<CreatePaymentMethodConfigurationPayto>) -> Self {
8333        self.inner.payto = Some(payto.into());
8334        self
8335    }
8336    /// Pix is a payment method popular in Brazil.
8337    /// When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app.
8338    /// Check this [page](https://docs.stripe.com/payments/pix) for more details.
8339    pub fn pix(mut self, pix: impl Into<CreatePaymentMethodConfigurationPix>) -> Self {
8340        self.inner.pix = Some(pix.into());
8341        self
8342    }
8343    /// PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks.
8344    /// Check this [page](https://docs.stripe.com/payments/promptpay) for more details.
8345    pub fn promptpay(
8346        mut self,
8347        promptpay: impl Into<CreatePaymentMethodConfigurationPromptpay>,
8348    ) -> Self {
8349        self.inner.promptpay = Some(promptpay.into());
8350        self
8351    }
8352    /// Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method.
8353    /// Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.
8354    pub fn revolut_pay(
8355        mut self,
8356        revolut_pay: impl Into<CreatePaymentMethodConfigurationRevolutPay>,
8357    ) -> Self {
8358        self.inner.revolut_pay = Some(revolut_pay.into());
8359        self
8360    }
8361    /// Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
8362    pub fn samsung_pay(
8363        mut self,
8364        samsung_pay: impl Into<CreatePaymentMethodConfigurationSamsungPay>,
8365    ) -> Self {
8366        self.inner.samsung_pay = Some(samsung_pay.into());
8367        self
8368    }
8369    /// Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](/payments/payment-methods#customer-actions) their payment.
8370    /// Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app.
8371    /// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
8372    pub fn satispay(
8373        mut self,
8374        satispay: impl Into<CreatePaymentMethodConfigurationSatispay>,
8375    ) -> Self {
8376        self.inner.satispay = Some(satispay.into());
8377        self
8378    }
8379    /// The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries.
8380    /// SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://docs.stripe.com/payments/sepa-debit) for more details.
8381    pub fn sepa_debit(
8382        mut self,
8383        sepa_debit: impl Into<CreatePaymentMethodConfigurationSepaDebit>,
8384    ) -> Self {
8385        self.inner.sepa_debit = Some(sepa_debit.into());
8386        self
8387    }
8388    /// Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers.
8389    /// Check this [page](https://docs.stripe.com/payments/sofort) for more details.
8390    pub fn sofort(mut self, sofort: impl Into<CreatePaymentMethodConfigurationSofort>) -> Self {
8391        self.inner.sofort = Some(sofort.into());
8392        self
8393    }
8394    /// Swish is a [real-time](https://docs.stripe.com/payments/real-time) payment method popular in Sweden.
8395    /// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app.
8396    /// Check this [page](https://docs.stripe.com/payments/swish) for more details.
8397    pub fn swish(mut self, swish: impl Into<CreatePaymentMethodConfigurationSwish>) -> Self {
8398        self.inner.swish = Some(swish.into());
8399        self
8400    }
8401    /// Twint is a payment method popular in Switzerland.
8402    /// It allows customers to pay using their mobile phone.
8403    /// Check this [page](https://docs.stripe.com/payments/twint) for more details.
8404    pub fn twint(mut self, twint: impl Into<CreatePaymentMethodConfigurationTwint>) -> Self {
8405        self.inner.twint = Some(twint.into());
8406        self
8407    }
8408    /// Unified Payment Interface (UPI) is India's leading payment method with exponential growth since it launched in 2016.
8409    pub fn upi(mut self, upi: impl Into<CreatePaymentMethodConfigurationUpi>) -> Self {
8410        self.inner.upi = Some(upi.into());
8411        self
8412    }
8413    /// Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha.
8414    /// Check this [page](https://docs.stripe.com/payments/ach-direct-debit) for more details.
8415    pub fn us_bank_account(
8416        mut self,
8417        us_bank_account: impl Into<CreatePaymentMethodConfigurationUsBankAccount>,
8418    ) -> Self {
8419        self.inner.us_bank_account = Some(us_bank_account.into());
8420        self
8421    }
8422    /// WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users.
8423    /// Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites.
8424    /// WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition.
8425    /// Check this [page](https://docs.stripe.com/payments/wechat-pay) for more details.
8426    pub fn wechat_pay(
8427        mut self,
8428        wechat_pay: impl Into<CreatePaymentMethodConfigurationWechatPay>,
8429    ) -> Self {
8430        self.inner.wechat_pay = Some(wechat_pay.into());
8431        self
8432    }
8433    /// Zip gives your customers a way to split purchases over a series of payments.
8434    /// Check this [page](https://docs.stripe.com/payments/zip) for more details like country availability.
8435    pub fn zip(mut self, zip: impl Into<CreatePaymentMethodConfigurationZip>) -> Self {
8436        self.inner.zip = Some(zip.into());
8437        self
8438    }
8439}
8440impl Default for CreatePaymentMethodConfiguration {
8441    fn default() -> Self {
8442        Self::new()
8443    }
8444}
8445impl CreatePaymentMethodConfiguration {
8446    /// Send the request and return the deserialized response.
8447    pub async fn send<C: StripeClient>(
8448        &self,
8449        client: &C,
8450    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
8451        self.customize().send(client).await
8452    }
8453
8454    /// Send the request and return the deserialized response, blocking until completion.
8455    pub fn send_blocking<C: StripeBlockingClient>(
8456        &self,
8457        client: &C,
8458    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
8459        self.customize().send_blocking(client)
8460    }
8461}
8462
8463impl StripeRequest for CreatePaymentMethodConfiguration {
8464    type Output = stripe_payment::PaymentMethodConfiguration;
8465
8466    fn build(&self) -> RequestBuilder {
8467        RequestBuilder::new(StripeMethod::Post, "/payment_method_configurations").form(&self.inner)
8468    }
8469}
8470#[derive(Clone, Eq, PartialEq)]
8471#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8472#[derive(serde::Serialize)]
8473struct UpdatePaymentMethodConfigurationBuilder {
8474    #[serde(skip_serializing_if = "Option::is_none")]
8475    acss_debit: Option<UpdatePaymentMethodConfigurationAcssDebit>,
8476    #[serde(skip_serializing_if = "Option::is_none")]
8477    active: Option<bool>,
8478    #[serde(skip_serializing_if = "Option::is_none")]
8479    affirm: Option<UpdatePaymentMethodConfigurationAffirm>,
8480    #[serde(skip_serializing_if = "Option::is_none")]
8481    afterpay_clearpay: Option<UpdatePaymentMethodConfigurationAfterpayClearpay>,
8482    #[serde(skip_serializing_if = "Option::is_none")]
8483    alipay: Option<UpdatePaymentMethodConfigurationAlipay>,
8484    #[serde(skip_serializing_if = "Option::is_none")]
8485    alma: Option<UpdatePaymentMethodConfigurationAlma>,
8486    #[serde(skip_serializing_if = "Option::is_none")]
8487    amazon_pay: Option<UpdatePaymentMethodConfigurationAmazonPay>,
8488    #[serde(skip_serializing_if = "Option::is_none")]
8489    apple_pay: Option<UpdatePaymentMethodConfigurationApplePay>,
8490    #[serde(skip_serializing_if = "Option::is_none")]
8491    apple_pay_later: Option<UpdatePaymentMethodConfigurationApplePayLater>,
8492    #[serde(skip_serializing_if = "Option::is_none")]
8493    au_becs_debit: Option<UpdatePaymentMethodConfigurationAuBecsDebit>,
8494    #[serde(skip_serializing_if = "Option::is_none")]
8495    bacs_debit: Option<UpdatePaymentMethodConfigurationBacsDebit>,
8496    #[serde(skip_serializing_if = "Option::is_none")]
8497    bancontact: Option<UpdatePaymentMethodConfigurationBancontact>,
8498    #[serde(skip_serializing_if = "Option::is_none")]
8499    billie: Option<UpdatePaymentMethodConfigurationBillie>,
8500    #[serde(skip_serializing_if = "Option::is_none")]
8501    blik: Option<UpdatePaymentMethodConfigurationBlik>,
8502    #[serde(skip_serializing_if = "Option::is_none")]
8503    boleto: Option<UpdatePaymentMethodConfigurationBoleto>,
8504    #[serde(skip_serializing_if = "Option::is_none")]
8505    card: Option<UpdatePaymentMethodConfigurationCard>,
8506    #[serde(skip_serializing_if = "Option::is_none")]
8507    cartes_bancaires: Option<UpdatePaymentMethodConfigurationCartesBancaires>,
8508    #[serde(skip_serializing_if = "Option::is_none")]
8509    cashapp: Option<UpdatePaymentMethodConfigurationCashapp>,
8510    #[serde(skip_serializing_if = "Option::is_none")]
8511    crypto: Option<UpdatePaymentMethodConfigurationCrypto>,
8512    #[serde(skip_serializing_if = "Option::is_none")]
8513    customer_balance: Option<UpdatePaymentMethodConfigurationCustomerBalance>,
8514    #[serde(skip_serializing_if = "Option::is_none")]
8515    eps: Option<UpdatePaymentMethodConfigurationEps>,
8516    #[serde(skip_serializing_if = "Option::is_none")]
8517    expand: Option<Vec<String>>,
8518    #[serde(skip_serializing_if = "Option::is_none")]
8519    fpx: Option<UpdatePaymentMethodConfigurationFpx>,
8520    #[serde(skip_serializing_if = "Option::is_none")]
8521    fr_meal_voucher_conecs: Option<UpdatePaymentMethodConfigurationFrMealVoucherConecs>,
8522    #[serde(skip_serializing_if = "Option::is_none")]
8523    giropay: Option<UpdatePaymentMethodConfigurationGiropay>,
8524    #[serde(skip_serializing_if = "Option::is_none")]
8525    google_pay: Option<UpdatePaymentMethodConfigurationGooglePay>,
8526    #[serde(skip_serializing_if = "Option::is_none")]
8527    grabpay: Option<UpdatePaymentMethodConfigurationGrabpay>,
8528    #[serde(skip_serializing_if = "Option::is_none")]
8529    ideal: Option<UpdatePaymentMethodConfigurationIdeal>,
8530    #[serde(skip_serializing_if = "Option::is_none")]
8531    jcb: Option<UpdatePaymentMethodConfigurationJcb>,
8532    #[serde(skip_serializing_if = "Option::is_none")]
8533    kakao_pay: Option<UpdatePaymentMethodConfigurationKakaoPay>,
8534    #[serde(skip_serializing_if = "Option::is_none")]
8535    klarna: Option<UpdatePaymentMethodConfigurationKlarna>,
8536    #[serde(skip_serializing_if = "Option::is_none")]
8537    konbini: Option<UpdatePaymentMethodConfigurationKonbini>,
8538    #[serde(skip_serializing_if = "Option::is_none")]
8539    kr_card: Option<UpdatePaymentMethodConfigurationKrCard>,
8540    #[serde(skip_serializing_if = "Option::is_none")]
8541    link: Option<UpdatePaymentMethodConfigurationLink>,
8542    #[serde(skip_serializing_if = "Option::is_none")]
8543    mb_way: Option<UpdatePaymentMethodConfigurationMbWay>,
8544    #[serde(skip_serializing_if = "Option::is_none")]
8545    mobilepay: Option<UpdatePaymentMethodConfigurationMobilepay>,
8546    #[serde(skip_serializing_if = "Option::is_none")]
8547    multibanco: Option<UpdatePaymentMethodConfigurationMultibanco>,
8548    #[serde(skip_serializing_if = "Option::is_none")]
8549    name: Option<String>,
8550    #[serde(skip_serializing_if = "Option::is_none")]
8551    naver_pay: Option<UpdatePaymentMethodConfigurationNaverPay>,
8552    #[serde(skip_serializing_if = "Option::is_none")]
8553    nz_bank_account: Option<UpdatePaymentMethodConfigurationNzBankAccount>,
8554    #[serde(skip_serializing_if = "Option::is_none")]
8555    oxxo: Option<UpdatePaymentMethodConfigurationOxxo>,
8556    #[serde(skip_serializing_if = "Option::is_none")]
8557    p24: Option<UpdatePaymentMethodConfigurationP24>,
8558    #[serde(skip_serializing_if = "Option::is_none")]
8559    pay_by_bank: Option<UpdatePaymentMethodConfigurationPayByBank>,
8560    #[serde(skip_serializing_if = "Option::is_none")]
8561    payco: Option<UpdatePaymentMethodConfigurationPayco>,
8562    #[serde(skip_serializing_if = "Option::is_none")]
8563    paynow: Option<UpdatePaymentMethodConfigurationPaynow>,
8564    #[serde(skip_serializing_if = "Option::is_none")]
8565    paypal: Option<UpdatePaymentMethodConfigurationPaypal>,
8566    #[serde(skip_serializing_if = "Option::is_none")]
8567    payto: Option<UpdatePaymentMethodConfigurationPayto>,
8568    #[serde(skip_serializing_if = "Option::is_none")]
8569    pix: Option<UpdatePaymentMethodConfigurationPix>,
8570    #[serde(skip_serializing_if = "Option::is_none")]
8571    promptpay: Option<UpdatePaymentMethodConfigurationPromptpay>,
8572    #[serde(skip_serializing_if = "Option::is_none")]
8573    revolut_pay: Option<UpdatePaymentMethodConfigurationRevolutPay>,
8574    #[serde(skip_serializing_if = "Option::is_none")]
8575    samsung_pay: Option<UpdatePaymentMethodConfigurationSamsungPay>,
8576    #[serde(skip_serializing_if = "Option::is_none")]
8577    satispay: Option<UpdatePaymentMethodConfigurationSatispay>,
8578    #[serde(skip_serializing_if = "Option::is_none")]
8579    sepa_debit: Option<UpdatePaymentMethodConfigurationSepaDebit>,
8580    #[serde(skip_serializing_if = "Option::is_none")]
8581    sofort: Option<UpdatePaymentMethodConfigurationSofort>,
8582    #[serde(skip_serializing_if = "Option::is_none")]
8583    swish: Option<UpdatePaymentMethodConfigurationSwish>,
8584    #[serde(skip_serializing_if = "Option::is_none")]
8585    twint: Option<UpdatePaymentMethodConfigurationTwint>,
8586    #[serde(skip_serializing_if = "Option::is_none")]
8587    upi: Option<UpdatePaymentMethodConfigurationUpi>,
8588    #[serde(skip_serializing_if = "Option::is_none")]
8589    us_bank_account: Option<UpdatePaymentMethodConfigurationUsBankAccount>,
8590    #[serde(skip_serializing_if = "Option::is_none")]
8591    wechat_pay: Option<UpdatePaymentMethodConfigurationWechatPay>,
8592    #[serde(skip_serializing_if = "Option::is_none")]
8593    zip: Option<UpdatePaymentMethodConfigurationZip>,
8594}
8595#[cfg(feature = "redact-generated-debug")]
8596impl std::fmt::Debug for UpdatePaymentMethodConfigurationBuilder {
8597    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8598        f.debug_struct("UpdatePaymentMethodConfigurationBuilder").finish_non_exhaustive()
8599    }
8600}
8601impl UpdatePaymentMethodConfigurationBuilder {
8602    fn new() -> Self {
8603        Self {
8604            acss_debit: None,
8605            active: None,
8606            affirm: None,
8607            afterpay_clearpay: None,
8608            alipay: None,
8609            alma: None,
8610            amazon_pay: None,
8611            apple_pay: None,
8612            apple_pay_later: None,
8613            au_becs_debit: None,
8614            bacs_debit: None,
8615            bancontact: None,
8616            billie: None,
8617            blik: None,
8618            boleto: None,
8619            card: None,
8620            cartes_bancaires: None,
8621            cashapp: None,
8622            crypto: None,
8623            customer_balance: None,
8624            eps: None,
8625            expand: None,
8626            fpx: None,
8627            fr_meal_voucher_conecs: None,
8628            giropay: None,
8629            google_pay: None,
8630            grabpay: None,
8631            ideal: None,
8632            jcb: None,
8633            kakao_pay: None,
8634            klarna: None,
8635            konbini: None,
8636            kr_card: None,
8637            link: None,
8638            mb_way: None,
8639            mobilepay: None,
8640            multibanco: None,
8641            name: None,
8642            naver_pay: None,
8643            nz_bank_account: None,
8644            oxxo: None,
8645            p24: None,
8646            pay_by_bank: None,
8647            payco: None,
8648            paynow: None,
8649            paypal: None,
8650            payto: None,
8651            pix: None,
8652            promptpay: None,
8653            revolut_pay: None,
8654            samsung_pay: None,
8655            satispay: None,
8656            sepa_debit: None,
8657            sofort: None,
8658            swish: None,
8659            twint: None,
8660            upi: None,
8661            us_bank_account: None,
8662            wechat_pay: None,
8663            zip: None,
8664        }
8665    }
8666}
8667/// Canadian pre-authorized debit payments, check this [page](https://docs.stripe.com/payments/acss-debit) for more details like country availability.
8668#[derive(Clone, Eq, PartialEq)]
8669#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8670#[derive(serde::Serialize)]
8671pub struct UpdatePaymentMethodConfigurationAcssDebit {
8672    /// Whether or not the payment method should be displayed.
8673    #[serde(skip_serializing_if = "Option::is_none")]
8674    pub display_preference: Option<UpdatePaymentMethodConfigurationAcssDebitDisplayPreference>,
8675}
8676#[cfg(feature = "redact-generated-debug")]
8677impl std::fmt::Debug for UpdatePaymentMethodConfigurationAcssDebit {
8678    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8679        f.debug_struct("UpdatePaymentMethodConfigurationAcssDebit").finish_non_exhaustive()
8680    }
8681}
8682impl UpdatePaymentMethodConfigurationAcssDebit {
8683    pub fn new() -> Self {
8684        Self { display_preference: None }
8685    }
8686}
8687impl Default for UpdatePaymentMethodConfigurationAcssDebit {
8688    fn default() -> Self {
8689        Self::new()
8690    }
8691}
8692/// Whether or not the payment method should be displayed.
8693#[derive(Clone, Eq, PartialEq)]
8694#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8695#[derive(serde::Serialize)]
8696pub struct UpdatePaymentMethodConfigurationAcssDebitDisplayPreference {
8697    /// The account's preference for whether or not to display this payment method.
8698    #[serde(skip_serializing_if = "Option::is_none")]
8699    pub preference: Option<UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference>,
8700}
8701#[cfg(feature = "redact-generated-debug")]
8702impl std::fmt::Debug for UpdatePaymentMethodConfigurationAcssDebitDisplayPreference {
8703    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8704        f.debug_struct("UpdatePaymentMethodConfigurationAcssDebitDisplayPreference")
8705            .finish_non_exhaustive()
8706    }
8707}
8708impl UpdatePaymentMethodConfigurationAcssDebitDisplayPreference {
8709    pub fn new() -> Self {
8710        Self { preference: None }
8711    }
8712}
8713impl Default for UpdatePaymentMethodConfigurationAcssDebitDisplayPreference {
8714    fn default() -> Self {
8715        Self::new()
8716    }
8717}
8718/// The account's preference for whether or not to display this payment method.
8719#[derive(Clone, Eq, PartialEq)]
8720#[non_exhaustive]
8721pub enum UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8722    None,
8723    Off,
8724    On,
8725    /// An unrecognized value from Stripe. Should not be used as a request parameter.
8726    Unknown(String),
8727}
8728impl UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8729    pub fn as_str(&self) -> &str {
8730        use UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference::*;
8731        match self {
8732            None => "none",
8733            Off => "off",
8734            On => "on",
8735            Unknown(v) => v,
8736        }
8737    }
8738}
8739
8740impl std::str::FromStr for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8741    type Err = std::convert::Infallible;
8742    fn from_str(s: &str) -> Result<Self, Self::Err> {
8743        use UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference::*;
8744        match s {
8745            "none" => Ok(None),
8746            "off" => Ok(Off),
8747            "on" => Ok(On),
8748            v => {
8749                tracing::warn!(
8750                    "Unknown value '{}' for enum '{}'",
8751                    v,
8752                    "UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference"
8753                );
8754                Ok(Unknown(v.to_owned()))
8755            }
8756        }
8757    }
8758}
8759impl std::fmt::Display for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8760    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8761        f.write_str(self.as_str())
8762    }
8763}
8764
8765#[cfg(not(feature = "redact-generated-debug"))]
8766impl std::fmt::Debug for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8767    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8768        f.write_str(self.as_str())
8769    }
8770}
8771#[cfg(feature = "redact-generated-debug")]
8772impl std::fmt::Debug for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8773    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8774        f.debug_struct(stringify!(
8775            UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference
8776        ))
8777        .finish_non_exhaustive()
8778    }
8779}
8780impl serde::Serialize for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference {
8781    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
8782    where
8783        S: serde::Serializer,
8784    {
8785        serializer.serialize_str(self.as_str())
8786    }
8787}
8788#[cfg(feature = "deserialize")]
8789impl<'de> serde::Deserialize<'de>
8790    for UpdatePaymentMethodConfigurationAcssDebitDisplayPreferencePreference
8791{
8792    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8793        use std::str::FromStr;
8794        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
8795        Ok(Self::from_str(&s).expect("infallible"))
8796    }
8797}
8798/// [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments.
8799/// Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest.
8800/// Check this [page](https://docs.stripe.com/payments/affirm) for more details like country availability.
8801#[derive(Clone, Eq, PartialEq)]
8802#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8803#[derive(serde::Serialize)]
8804pub struct UpdatePaymentMethodConfigurationAffirm {
8805    /// Whether or not the payment method should be displayed.
8806    #[serde(skip_serializing_if = "Option::is_none")]
8807    pub display_preference: Option<UpdatePaymentMethodConfigurationAffirmDisplayPreference>,
8808}
8809#[cfg(feature = "redact-generated-debug")]
8810impl std::fmt::Debug for UpdatePaymentMethodConfigurationAffirm {
8811    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8812        f.debug_struct("UpdatePaymentMethodConfigurationAffirm").finish_non_exhaustive()
8813    }
8814}
8815impl UpdatePaymentMethodConfigurationAffirm {
8816    pub fn new() -> Self {
8817        Self { display_preference: None }
8818    }
8819}
8820impl Default for UpdatePaymentMethodConfigurationAffirm {
8821    fn default() -> Self {
8822        Self::new()
8823    }
8824}
8825/// Whether or not the payment method should be displayed.
8826#[derive(Clone, Eq, PartialEq)]
8827#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8828#[derive(serde::Serialize)]
8829pub struct UpdatePaymentMethodConfigurationAffirmDisplayPreference {
8830    /// The account's preference for whether or not to display this payment method.
8831    #[serde(skip_serializing_if = "Option::is_none")]
8832    pub preference: Option<UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference>,
8833}
8834#[cfg(feature = "redact-generated-debug")]
8835impl std::fmt::Debug for UpdatePaymentMethodConfigurationAffirmDisplayPreference {
8836    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8837        f.debug_struct("UpdatePaymentMethodConfigurationAffirmDisplayPreference")
8838            .finish_non_exhaustive()
8839    }
8840}
8841impl UpdatePaymentMethodConfigurationAffirmDisplayPreference {
8842    pub fn new() -> Self {
8843        Self { preference: None }
8844    }
8845}
8846impl Default for UpdatePaymentMethodConfigurationAffirmDisplayPreference {
8847    fn default() -> Self {
8848        Self::new()
8849    }
8850}
8851/// The account's preference for whether or not to display this payment method.
8852#[derive(Clone, Eq, PartialEq)]
8853#[non_exhaustive]
8854pub enum UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8855    None,
8856    Off,
8857    On,
8858    /// An unrecognized value from Stripe. Should not be used as a request parameter.
8859    Unknown(String),
8860}
8861impl UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8862    pub fn as_str(&self) -> &str {
8863        use UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference::*;
8864        match self {
8865            None => "none",
8866            Off => "off",
8867            On => "on",
8868            Unknown(v) => v,
8869        }
8870    }
8871}
8872
8873impl std::str::FromStr for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8874    type Err = std::convert::Infallible;
8875    fn from_str(s: &str) -> Result<Self, Self::Err> {
8876        use UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference::*;
8877        match s {
8878            "none" => Ok(None),
8879            "off" => Ok(Off),
8880            "on" => Ok(On),
8881            v => {
8882                tracing::warn!(
8883                    "Unknown value '{}' for enum '{}'",
8884                    v,
8885                    "UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference"
8886                );
8887                Ok(Unknown(v.to_owned()))
8888            }
8889        }
8890    }
8891}
8892impl std::fmt::Display for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8893    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8894        f.write_str(self.as_str())
8895    }
8896}
8897
8898#[cfg(not(feature = "redact-generated-debug"))]
8899impl std::fmt::Debug for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8900    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8901        f.write_str(self.as_str())
8902    }
8903}
8904#[cfg(feature = "redact-generated-debug")]
8905impl std::fmt::Debug for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8906    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8907        f.debug_struct(stringify!(
8908            UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference
8909        ))
8910        .finish_non_exhaustive()
8911    }
8912}
8913impl serde::Serialize for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference {
8914    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
8915    where
8916        S: serde::Serializer,
8917    {
8918        serializer.serialize_str(self.as_str())
8919    }
8920}
8921#[cfg(feature = "deserialize")]
8922impl<'de> serde::Deserialize<'de>
8923    for UpdatePaymentMethodConfigurationAffirmDisplayPreferencePreference
8924{
8925    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8926        use std::str::FromStr;
8927        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
8928        Ok(Self::from_str(&s).expect("infallible"))
8929    }
8930}
8931/// Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://docs.stripe.com/payments/afterpay-clearpay) for more details like country availability.
8932/// Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.
8933#[derive(Clone, Eq, PartialEq)]
8934#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8935#[derive(serde::Serialize)]
8936pub struct UpdatePaymentMethodConfigurationAfterpayClearpay {
8937    /// Whether or not the payment method should be displayed.
8938    #[serde(skip_serializing_if = "Option::is_none")]
8939    pub display_preference:
8940        Option<UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference>,
8941}
8942#[cfg(feature = "redact-generated-debug")]
8943impl std::fmt::Debug for UpdatePaymentMethodConfigurationAfterpayClearpay {
8944    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8945        f.debug_struct("UpdatePaymentMethodConfigurationAfterpayClearpay").finish_non_exhaustive()
8946    }
8947}
8948impl UpdatePaymentMethodConfigurationAfterpayClearpay {
8949    pub fn new() -> Self {
8950        Self { display_preference: None }
8951    }
8952}
8953impl Default for UpdatePaymentMethodConfigurationAfterpayClearpay {
8954    fn default() -> Self {
8955        Self::new()
8956    }
8957}
8958/// Whether or not the payment method should be displayed.
8959#[derive(Clone, Eq, PartialEq)]
8960#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
8961#[derive(serde::Serialize)]
8962pub struct UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
8963    /// The account's preference for whether or not to display this payment method.
8964    #[serde(skip_serializing_if = "Option::is_none")]
8965    pub preference:
8966        Option<UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference>,
8967}
8968#[cfg(feature = "redact-generated-debug")]
8969impl std::fmt::Debug for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
8970    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8971        f.debug_struct("UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference")
8972            .finish_non_exhaustive()
8973    }
8974}
8975impl UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
8976    pub fn new() -> Self {
8977        Self { preference: None }
8978    }
8979}
8980impl Default for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreference {
8981    fn default() -> Self {
8982        Self::new()
8983    }
8984}
8985/// The account's preference for whether or not to display this payment method.
8986#[derive(Clone, Eq, PartialEq)]
8987#[non_exhaustive]
8988pub enum UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference {
8989    None,
8990    Off,
8991    On,
8992    /// An unrecognized value from Stripe. Should not be used as a request parameter.
8993    Unknown(String),
8994}
8995impl UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference {
8996    pub fn as_str(&self) -> &str {
8997        use UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference::*;
8998        match self {
8999            None => "none",
9000            Off => "off",
9001            On => "on",
9002            Unknown(v) => v,
9003        }
9004    }
9005}
9006
9007impl std::str::FromStr
9008    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9009{
9010    type Err = std::convert::Infallible;
9011    fn from_str(s: &str) -> Result<Self, Self::Err> {
9012        use UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference::*;
9013        match s {
9014            "none" => Ok(None),
9015            "off" => Ok(Off),
9016            "on" => Ok(On),
9017            v => {
9018                tracing::warn!(
9019                    "Unknown value '{}' for enum '{}'",
9020                    v,
9021                    "UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference"
9022                );
9023                Ok(Unknown(v.to_owned()))
9024            }
9025        }
9026    }
9027}
9028impl std::fmt::Display
9029    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9030{
9031    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9032        f.write_str(self.as_str())
9033    }
9034}
9035
9036#[cfg(not(feature = "redact-generated-debug"))]
9037impl std::fmt::Debug
9038    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9039{
9040    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9041        f.write_str(self.as_str())
9042    }
9043}
9044#[cfg(feature = "redact-generated-debug")]
9045impl std::fmt::Debug
9046    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9047{
9048    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9049        f.debug_struct(stringify!(
9050            UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9051        ))
9052        .finish_non_exhaustive()
9053    }
9054}
9055impl serde::Serialize
9056    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9057{
9058    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9059    where
9060        S: serde::Serializer,
9061    {
9062        serializer.serialize_str(self.as_str())
9063    }
9064}
9065#[cfg(feature = "deserialize")]
9066impl<'de> serde::Deserialize<'de>
9067    for UpdatePaymentMethodConfigurationAfterpayClearpayDisplayPreferencePreference
9068{
9069    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9070        use std::str::FromStr;
9071        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9072        Ok(Self::from_str(&s).expect("infallible"))
9073    }
9074}
9075/// Alipay is a digital wallet in China that has more than a billion active users worldwide.
9076/// Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app.
9077/// Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials.
9078/// Check this [page](https://docs.stripe.com/payments/alipay) for more details.
9079#[derive(Clone, Eq, PartialEq)]
9080#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9081#[derive(serde::Serialize)]
9082pub struct UpdatePaymentMethodConfigurationAlipay {
9083    /// Whether or not the payment method should be displayed.
9084    #[serde(skip_serializing_if = "Option::is_none")]
9085    pub display_preference: Option<UpdatePaymentMethodConfigurationAlipayDisplayPreference>,
9086}
9087#[cfg(feature = "redact-generated-debug")]
9088impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlipay {
9089    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9090        f.debug_struct("UpdatePaymentMethodConfigurationAlipay").finish_non_exhaustive()
9091    }
9092}
9093impl UpdatePaymentMethodConfigurationAlipay {
9094    pub fn new() -> Self {
9095        Self { display_preference: None }
9096    }
9097}
9098impl Default for UpdatePaymentMethodConfigurationAlipay {
9099    fn default() -> Self {
9100        Self::new()
9101    }
9102}
9103/// Whether or not the payment method should be displayed.
9104#[derive(Clone, Eq, PartialEq)]
9105#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9106#[derive(serde::Serialize)]
9107pub struct UpdatePaymentMethodConfigurationAlipayDisplayPreference {
9108    /// The account's preference for whether or not to display this payment method.
9109    #[serde(skip_serializing_if = "Option::is_none")]
9110    pub preference: Option<UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference>,
9111}
9112#[cfg(feature = "redact-generated-debug")]
9113impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlipayDisplayPreference {
9114    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9115        f.debug_struct("UpdatePaymentMethodConfigurationAlipayDisplayPreference")
9116            .finish_non_exhaustive()
9117    }
9118}
9119impl UpdatePaymentMethodConfigurationAlipayDisplayPreference {
9120    pub fn new() -> Self {
9121        Self { preference: None }
9122    }
9123}
9124impl Default for UpdatePaymentMethodConfigurationAlipayDisplayPreference {
9125    fn default() -> Self {
9126        Self::new()
9127    }
9128}
9129/// The account's preference for whether or not to display this payment method.
9130#[derive(Clone, Eq, PartialEq)]
9131#[non_exhaustive]
9132pub enum UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9133    None,
9134    Off,
9135    On,
9136    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9137    Unknown(String),
9138}
9139impl UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9140    pub fn as_str(&self) -> &str {
9141        use UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference::*;
9142        match self {
9143            None => "none",
9144            Off => "off",
9145            On => "on",
9146            Unknown(v) => v,
9147        }
9148    }
9149}
9150
9151impl std::str::FromStr for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9152    type Err = std::convert::Infallible;
9153    fn from_str(s: &str) -> Result<Self, Self::Err> {
9154        use UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference::*;
9155        match s {
9156            "none" => Ok(None),
9157            "off" => Ok(Off),
9158            "on" => Ok(On),
9159            v => {
9160                tracing::warn!(
9161                    "Unknown value '{}' for enum '{}'",
9162                    v,
9163                    "UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference"
9164                );
9165                Ok(Unknown(v.to_owned()))
9166            }
9167        }
9168    }
9169}
9170impl std::fmt::Display for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9171    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9172        f.write_str(self.as_str())
9173    }
9174}
9175
9176#[cfg(not(feature = "redact-generated-debug"))]
9177impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9178    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9179        f.write_str(self.as_str())
9180    }
9181}
9182#[cfg(feature = "redact-generated-debug")]
9183impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9184    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9185        f.debug_struct(stringify!(
9186            UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference
9187        ))
9188        .finish_non_exhaustive()
9189    }
9190}
9191impl serde::Serialize for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference {
9192    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9193    where
9194        S: serde::Serializer,
9195    {
9196        serializer.serialize_str(self.as_str())
9197    }
9198}
9199#[cfg(feature = "deserialize")]
9200impl<'de> serde::Deserialize<'de>
9201    for UpdatePaymentMethodConfigurationAlipayDisplayPreferencePreference
9202{
9203    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9204        use std::str::FromStr;
9205        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9206        Ok(Self::from_str(&s).expect("infallible"))
9207    }
9208}
9209/// Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments.
9210#[derive(Clone, Eq, PartialEq)]
9211#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9212#[derive(serde::Serialize)]
9213pub struct UpdatePaymentMethodConfigurationAlma {
9214    /// Whether or not the payment method should be displayed.
9215    #[serde(skip_serializing_if = "Option::is_none")]
9216    pub display_preference: Option<UpdatePaymentMethodConfigurationAlmaDisplayPreference>,
9217}
9218#[cfg(feature = "redact-generated-debug")]
9219impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlma {
9220    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9221        f.debug_struct("UpdatePaymentMethodConfigurationAlma").finish_non_exhaustive()
9222    }
9223}
9224impl UpdatePaymentMethodConfigurationAlma {
9225    pub fn new() -> Self {
9226        Self { display_preference: None }
9227    }
9228}
9229impl Default for UpdatePaymentMethodConfigurationAlma {
9230    fn default() -> Self {
9231        Self::new()
9232    }
9233}
9234/// Whether or not the payment method should be displayed.
9235#[derive(Clone, Eq, PartialEq)]
9236#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9237#[derive(serde::Serialize)]
9238pub struct UpdatePaymentMethodConfigurationAlmaDisplayPreference {
9239    /// The account's preference for whether or not to display this payment method.
9240    #[serde(skip_serializing_if = "Option::is_none")]
9241    pub preference: Option<UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference>,
9242}
9243#[cfg(feature = "redact-generated-debug")]
9244impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlmaDisplayPreference {
9245    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9246        f.debug_struct("UpdatePaymentMethodConfigurationAlmaDisplayPreference")
9247            .finish_non_exhaustive()
9248    }
9249}
9250impl UpdatePaymentMethodConfigurationAlmaDisplayPreference {
9251    pub fn new() -> Self {
9252        Self { preference: None }
9253    }
9254}
9255impl Default for UpdatePaymentMethodConfigurationAlmaDisplayPreference {
9256    fn default() -> Self {
9257        Self::new()
9258    }
9259}
9260/// The account's preference for whether or not to display this payment method.
9261#[derive(Clone, Eq, PartialEq)]
9262#[non_exhaustive]
9263pub enum UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9264    None,
9265    Off,
9266    On,
9267    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9268    Unknown(String),
9269}
9270impl UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9271    pub fn as_str(&self) -> &str {
9272        use UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference::*;
9273        match self {
9274            None => "none",
9275            Off => "off",
9276            On => "on",
9277            Unknown(v) => v,
9278        }
9279    }
9280}
9281
9282impl std::str::FromStr for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9283    type Err = std::convert::Infallible;
9284    fn from_str(s: &str) -> Result<Self, Self::Err> {
9285        use UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference::*;
9286        match s {
9287            "none" => Ok(None),
9288            "off" => Ok(Off),
9289            "on" => Ok(On),
9290            v => {
9291                tracing::warn!(
9292                    "Unknown value '{}' for enum '{}'",
9293                    v,
9294                    "UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference"
9295                );
9296                Ok(Unknown(v.to_owned()))
9297            }
9298        }
9299    }
9300}
9301impl std::fmt::Display for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9302    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9303        f.write_str(self.as_str())
9304    }
9305}
9306
9307#[cfg(not(feature = "redact-generated-debug"))]
9308impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9309    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9310        f.write_str(self.as_str())
9311    }
9312}
9313#[cfg(feature = "redact-generated-debug")]
9314impl std::fmt::Debug for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9315    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9316        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference))
9317            .finish_non_exhaustive()
9318    }
9319}
9320impl serde::Serialize for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference {
9321    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9322    where
9323        S: serde::Serializer,
9324    {
9325        serializer.serialize_str(self.as_str())
9326    }
9327}
9328#[cfg(feature = "deserialize")]
9329impl<'de> serde::Deserialize<'de>
9330    for UpdatePaymentMethodConfigurationAlmaDisplayPreferencePreference
9331{
9332    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9333        use std::str::FromStr;
9334        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9335        Ok(Self::from_str(&s).expect("infallible"))
9336    }
9337}
9338/// Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.
9339#[derive(Clone, Eq, PartialEq)]
9340#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9341#[derive(serde::Serialize)]
9342pub struct UpdatePaymentMethodConfigurationAmazonPay {
9343    /// Whether or not the payment method should be displayed.
9344    #[serde(skip_serializing_if = "Option::is_none")]
9345    pub display_preference: Option<UpdatePaymentMethodConfigurationAmazonPayDisplayPreference>,
9346}
9347#[cfg(feature = "redact-generated-debug")]
9348impl std::fmt::Debug for UpdatePaymentMethodConfigurationAmazonPay {
9349    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9350        f.debug_struct("UpdatePaymentMethodConfigurationAmazonPay").finish_non_exhaustive()
9351    }
9352}
9353impl UpdatePaymentMethodConfigurationAmazonPay {
9354    pub fn new() -> Self {
9355        Self { display_preference: None }
9356    }
9357}
9358impl Default for UpdatePaymentMethodConfigurationAmazonPay {
9359    fn default() -> Self {
9360        Self::new()
9361    }
9362}
9363/// Whether or not the payment method should be displayed.
9364#[derive(Clone, Eq, PartialEq)]
9365#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9366#[derive(serde::Serialize)]
9367pub struct UpdatePaymentMethodConfigurationAmazonPayDisplayPreference {
9368    /// The account's preference for whether or not to display this payment method.
9369    #[serde(skip_serializing_if = "Option::is_none")]
9370    pub preference: Option<UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference>,
9371}
9372#[cfg(feature = "redact-generated-debug")]
9373impl std::fmt::Debug for UpdatePaymentMethodConfigurationAmazonPayDisplayPreference {
9374    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9375        f.debug_struct("UpdatePaymentMethodConfigurationAmazonPayDisplayPreference")
9376            .finish_non_exhaustive()
9377    }
9378}
9379impl UpdatePaymentMethodConfigurationAmazonPayDisplayPreference {
9380    pub fn new() -> Self {
9381        Self { preference: None }
9382    }
9383}
9384impl Default for UpdatePaymentMethodConfigurationAmazonPayDisplayPreference {
9385    fn default() -> Self {
9386        Self::new()
9387    }
9388}
9389/// The account's preference for whether or not to display this payment method.
9390#[derive(Clone, Eq, PartialEq)]
9391#[non_exhaustive]
9392pub enum UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9393    None,
9394    Off,
9395    On,
9396    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9397    Unknown(String),
9398}
9399impl UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9400    pub fn as_str(&self) -> &str {
9401        use UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference::*;
9402        match self {
9403            None => "none",
9404            Off => "off",
9405            On => "on",
9406            Unknown(v) => v,
9407        }
9408    }
9409}
9410
9411impl std::str::FromStr for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9412    type Err = std::convert::Infallible;
9413    fn from_str(s: &str) -> Result<Self, Self::Err> {
9414        use UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference::*;
9415        match s {
9416            "none" => Ok(None),
9417            "off" => Ok(Off),
9418            "on" => Ok(On),
9419            v => {
9420                tracing::warn!(
9421                    "Unknown value '{}' for enum '{}'",
9422                    v,
9423                    "UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference"
9424                );
9425                Ok(Unknown(v.to_owned()))
9426            }
9427        }
9428    }
9429}
9430impl std::fmt::Display for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9431    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9432        f.write_str(self.as_str())
9433    }
9434}
9435
9436#[cfg(not(feature = "redact-generated-debug"))]
9437impl std::fmt::Debug for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9438    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9439        f.write_str(self.as_str())
9440    }
9441}
9442#[cfg(feature = "redact-generated-debug")]
9443impl std::fmt::Debug for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9444    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9445        f.debug_struct(stringify!(
9446            UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference
9447        ))
9448        .finish_non_exhaustive()
9449    }
9450}
9451impl serde::Serialize for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference {
9452    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9453    where
9454        S: serde::Serializer,
9455    {
9456        serializer.serialize_str(self.as_str())
9457    }
9458}
9459#[cfg(feature = "deserialize")]
9460impl<'de> serde::Deserialize<'de>
9461    for UpdatePaymentMethodConfigurationAmazonPayDisplayPreferencePreference
9462{
9463    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9464        use std::str::FromStr;
9465        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9466        Ok(Self::from_str(&s).expect("infallible"))
9467    }
9468}
9469/// Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra.
9470/// There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions.
9471/// Check this [page](https://docs.stripe.com/apple-pay) for more details.
9472#[derive(Clone, Eq, PartialEq)]
9473#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9474#[derive(serde::Serialize)]
9475pub struct UpdatePaymentMethodConfigurationApplePay {
9476    /// Whether or not the payment method should be displayed.
9477    #[serde(skip_serializing_if = "Option::is_none")]
9478    pub display_preference: Option<UpdatePaymentMethodConfigurationApplePayDisplayPreference>,
9479}
9480#[cfg(feature = "redact-generated-debug")]
9481impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePay {
9482    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9483        f.debug_struct("UpdatePaymentMethodConfigurationApplePay").finish_non_exhaustive()
9484    }
9485}
9486impl UpdatePaymentMethodConfigurationApplePay {
9487    pub fn new() -> Self {
9488        Self { display_preference: None }
9489    }
9490}
9491impl Default for UpdatePaymentMethodConfigurationApplePay {
9492    fn default() -> Self {
9493        Self::new()
9494    }
9495}
9496/// Whether or not the payment method should be displayed.
9497#[derive(Clone, Eq, PartialEq)]
9498#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9499#[derive(serde::Serialize)]
9500pub struct UpdatePaymentMethodConfigurationApplePayDisplayPreference {
9501    /// The account's preference for whether or not to display this payment method.
9502    #[serde(skip_serializing_if = "Option::is_none")]
9503    pub preference: Option<UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference>,
9504}
9505#[cfg(feature = "redact-generated-debug")]
9506impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayDisplayPreference {
9507    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9508        f.debug_struct("UpdatePaymentMethodConfigurationApplePayDisplayPreference")
9509            .finish_non_exhaustive()
9510    }
9511}
9512impl UpdatePaymentMethodConfigurationApplePayDisplayPreference {
9513    pub fn new() -> Self {
9514        Self { preference: None }
9515    }
9516}
9517impl Default for UpdatePaymentMethodConfigurationApplePayDisplayPreference {
9518    fn default() -> Self {
9519        Self::new()
9520    }
9521}
9522/// The account's preference for whether or not to display this payment method.
9523#[derive(Clone, Eq, PartialEq)]
9524#[non_exhaustive]
9525pub enum UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9526    None,
9527    Off,
9528    On,
9529    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9530    Unknown(String),
9531}
9532impl UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9533    pub fn as_str(&self) -> &str {
9534        use UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference::*;
9535        match self {
9536            None => "none",
9537            Off => "off",
9538            On => "on",
9539            Unknown(v) => v,
9540        }
9541    }
9542}
9543
9544impl std::str::FromStr for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9545    type Err = std::convert::Infallible;
9546    fn from_str(s: &str) -> Result<Self, Self::Err> {
9547        use UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference::*;
9548        match s {
9549            "none" => Ok(None),
9550            "off" => Ok(Off),
9551            "on" => Ok(On),
9552            v => {
9553                tracing::warn!(
9554                    "Unknown value '{}' for enum '{}'",
9555                    v,
9556                    "UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference"
9557                );
9558                Ok(Unknown(v.to_owned()))
9559            }
9560        }
9561    }
9562}
9563impl std::fmt::Display for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9564    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9565        f.write_str(self.as_str())
9566    }
9567}
9568
9569#[cfg(not(feature = "redact-generated-debug"))]
9570impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9571    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9572        f.write_str(self.as_str())
9573    }
9574}
9575#[cfg(feature = "redact-generated-debug")]
9576impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9577    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9578        f.debug_struct(stringify!(
9579            UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference
9580        ))
9581        .finish_non_exhaustive()
9582    }
9583}
9584impl serde::Serialize for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference {
9585    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9586    where
9587        S: serde::Serializer,
9588    {
9589        serializer.serialize_str(self.as_str())
9590    }
9591}
9592#[cfg(feature = "deserialize")]
9593impl<'de> serde::Deserialize<'de>
9594    for UpdatePaymentMethodConfigurationApplePayDisplayPreferencePreference
9595{
9596    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9597        use std::str::FromStr;
9598        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9599        Ok(Self::from_str(&s).expect("infallible"))
9600    }
9601}
9602/// Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.
9603#[derive(Clone, Eq, PartialEq)]
9604#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9605#[derive(serde::Serialize)]
9606pub struct UpdatePaymentMethodConfigurationApplePayLater {
9607    /// Whether or not the payment method should be displayed.
9608    #[serde(skip_serializing_if = "Option::is_none")]
9609    pub display_preference: Option<UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference>,
9610}
9611#[cfg(feature = "redact-generated-debug")]
9612impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayLater {
9613    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9614        f.debug_struct("UpdatePaymentMethodConfigurationApplePayLater").finish_non_exhaustive()
9615    }
9616}
9617impl UpdatePaymentMethodConfigurationApplePayLater {
9618    pub fn new() -> Self {
9619        Self { display_preference: None }
9620    }
9621}
9622impl Default for UpdatePaymentMethodConfigurationApplePayLater {
9623    fn default() -> Self {
9624        Self::new()
9625    }
9626}
9627/// Whether or not the payment method should be displayed.
9628#[derive(Clone, Eq, PartialEq)]
9629#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9630#[derive(serde::Serialize)]
9631pub struct UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference {
9632    /// The account's preference for whether or not to display this payment method.
9633    #[serde(skip_serializing_if = "Option::is_none")]
9634    pub preference:
9635        Option<UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference>,
9636}
9637#[cfg(feature = "redact-generated-debug")]
9638impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference {
9639    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9640        f.debug_struct("UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference")
9641            .finish_non_exhaustive()
9642    }
9643}
9644impl UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference {
9645    pub fn new() -> Self {
9646        Self { preference: None }
9647    }
9648}
9649impl Default for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreference {
9650    fn default() -> Self {
9651        Self::new()
9652    }
9653}
9654/// The account's preference for whether or not to display this payment method.
9655#[derive(Clone, Eq, PartialEq)]
9656#[non_exhaustive]
9657pub enum UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
9658    None,
9659    Off,
9660    On,
9661    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9662    Unknown(String),
9663}
9664impl UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
9665    pub fn as_str(&self) -> &str {
9666        use UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference::*;
9667        match self {
9668            None => "none",
9669            Off => "off",
9670            On => "on",
9671            Unknown(v) => v,
9672        }
9673    }
9674}
9675
9676impl std::str::FromStr
9677    for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
9678{
9679    type Err = std::convert::Infallible;
9680    fn from_str(s: &str) -> Result<Self, Self::Err> {
9681        use UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference::*;
9682        match s {
9683            "none" => Ok(None),
9684            "off" => Ok(Off),
9685            "on" => Ok(On),
9686            v => {
9687                tracing::warn!(
9688                    "Unknown value '{}' for enum '{}'",
9689                    v,
9690                    "UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference"
9691                );
9692                Ok(Unknown(v.to_owned()))
9693            }
9694        }
9695    }
9696}
9697impl std::fmt::Display
9698    for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
9699{
9700    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9701        f.write_str(self.as_str())
9702    }
9703}
9704
9705#[cfg(not(feature = "redact-generated-debug"))]
9706impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
9707    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9708        f.write_str(self.as_str())
9709    }
9710}
9711#[cfg(feature = "redact-generated-debug")]
9712impl std::fmt::Debug for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
9713    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9714        f.debug_struct(stringify!(
9715            UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
9716        ))
9717        .finish_non_exhaustive()
9718    }
9719}
9720impl serde::Serialize for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference {
9721    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9722    where
9723        S: serde::Serializer,
9724    {
9725        serializer.serialize_str(self.as_str())
9726    }
9727}
9728#[cfg(feature = "deserialize")]
9729impl<'de> serde::Deserialize<'de>
9730    for UpdatePaymentMethodConfigurationApplePayLaterDisplayPreferencePreference
9731{
9732    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9733        use std::str::FromStr;
9734        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9735        Ok(Self::from_str(&s).expect("infallible"))
9736    }
9737}
9738/// Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account.
9739/// Check this [page](https://docs.stripe.com/payments/au-becs-debit) for more details.
9740#[derive(Clone, Eq, PartialEq)]
9741#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9742#[derive(serde::Serialize)]
9743pub struct UpdatePaymentMethodConfigurationAuBecsDebit {
9744    /// Whether or not the payment method should be displayed.
9745    #[serde(skip_serializing_if = "Option::is_none")]
9746    pub display_preference: Option<UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference>,
9747}
9748#[cfg(feature = "redact-generated-debug")]
9749impl std::fmt::Debug for UpdatePaymentMethodConfigurationAuBecsDebit {
9750    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9751        f.debug_struct("UpdatePaymentMethodConfigurationAuBecsDebit").finish_non_exhaustive()
9752    }
9753}
9754impl UpdatePaymentMethodConfigurationAuBecsDebit {
9755    pub fn new() -> Self {
9756        Self { display_preference: None }
9757    }
9758}
9759impl Default for UpdatePaymentMethodConfigurationAuBecsDebit {
9760    fn default() -> Self {
9761        Self::new()
9762    }
9763}
9764/// Whether or not the payment method should be displayed.
9765#[derive(Clone, Eq, PartialEq)]
9766#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9767#[derive(serde::Serialize)]
9768pub struct UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
9769    /// The account's preference for whether or not to display this payment method.
9770    #[serde(skip_serializing_if = "Option::is_none")]
9771    pub preference: Option<UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference>,
9772}
9773#[cfg(feature = "redact-generated-debug")]
9774impl std::fmt::Debug for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
9775    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9776        f.debug_struct("UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference")
9777            .finish_non_exhaustive()
9778    }
9779}
9780impl UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
9781    pub fn new() -> Self {
9782        Self { preference: None }
9783    }
9784}
9785impl Default for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreference {
9786    fn default() -> Self {
9787        Self::new()
9788    }
9789}
9790/// The account's preference for whether or not to display this payment method.
9791#[derive(Clone, Eq, PartialEq)]
9792#[non_exhaustive]
9793pub enum UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9794    None,
9795    Off,
9796    On,
9797    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9798    Unknown(String),
9799}
9800impl UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9801    pub fn as_str(&self) -> &str {
9802        use UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference::*;
9803        match self {
9804            None => "none",
9805            Off => "off",
9806            On => "on",
9807            Unknown(v) => v,
9808        }
9809    }
9810}
9811
9812impl std::str::FromStr for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9813    type Err = std::convert::Infallible;
9814    fn from_str(s: &str) -> Result<Self, Self::Err> {
9815        use UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference::*;
9816        match s {
9817            "none" => Ok(None),
9818            "off" => Ok(Off),
9819            "on" => Ok(On),
9820            v => {
9821                tracing::warn!(
9822                    "Unknown value '{}' for enum '{}'",
9823                    v,
9824                    "UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference"
9825                );
9826                Ok(Unknown(v.to_owned()))
9827            }
9828        }
9829    }
9830}
9831impl std::fmt::Display for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9832    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9833        f.write_str(self.as_str())
9834    }
9835}
9836
9837#[cfg(not(feature = "redact-generated-debug"))]
9838impl std::fmt::Debug for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9839    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9840        f.write_str(self.as_str())
9841    }
9842}
9843#[cfg(feature = "redact-generated-debug")]
9844impl std::fmt::Debug for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9845    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9846        f.debug_struct(stringify!(
9847            UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference
9848        ))
9849        .finish_non_exhaustive()
9850    }
9851}
9852impl serde::Serialize for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference {
9853    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9854    where
9855        S: serde::Serializer,
9856    {
9857        serializer.serialize_str(self.as_str())
9858    }
9859}
9860#[cfg(feature = "deserialize")]
9861impl<'de> serde::Deserialize<'de>
9862    for UpdatePaymentMethodConfigurationAuBecsDebitDisplayPreferencePreference
9863{
9864    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9865        use std::str::FromStr;
9866        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9867        Ok(Self::from_str(&s).expect("infallible"))
9868    }
9869}
9870/// Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://docs.stripe.com/payments/payment-methods/bacs-debit) for more details.
9871#[derive(Clone, Eq, PartialEq)]
9872#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9873#[derive(serde::Serialize)]
9874pub struct UpdatePaymentMethodConfigurationBacsDebit {
9875    /// Whether or not the payment method should be displayed.
9876    #[serde(skip_serializing_if = "Option::is_none")]
9877    pub display_preference: Option<UpdatePaymentMethodConfigurationBacsDebitDisplayPreference>,
9878}
9879#[cfg(feature = "redact-generated-debug")]
9880impl std::fmt::Debug for UpdatePaymentMethodConfigurationBacsDebit {
9881    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9882        f.debug_struct("UpdatePaymentMethodConfigurationBacsDebit").finish_non_exhaustive()
9883    }
9884}
9885impl UpdatePaymentMethodConfigurationBacsDebit {
9886    pub fn new() -> Self {
9887        Self { display_preference: None }
9888    }
9889}
9890impl Default for UpdatePaymentMethodConfigurationBacsDebit {
9891    fn default() -> Self {
9892        Self::new()
9893    }
9894}
9895/// Whether or not the payment method should be displayed.
9896#[derive(Clone, Eq, PartialEq)]
9897#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
9898#[derive(serde::Serialize)]
9899pub struct UpdatePaymentMethodConfigurationBacsDebitDisplayPreference {
9900    /// The account's preference for whether or not to display this payment method.
9901    #[serde(skip_serializing_if = "Option::is_none")]
9902    pub preference: Option<UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference>,
9903}
9904#[cfg(feature = "redact-generated-debug")]
9905impl std::fmt::Debug for UpdatePaymentMethodConfigurationBacsDebitDisplayPreference {
9906    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9907        f.debug_struct("UpdatePaymentMethodConfigurationBacsDebitDisplayPreference")
9908            .finish_non_exhaustive()
9909    }
9910}
9911impl UpdatePaymentMethodConfigurationBacsDebitDisplayPreference {
9912    pub fn new() -> Self {
9913        Self { preference: None }
9914    }
9915}
9916impl Default for UpdatePaymentMethodConfigurationBacsDebitDisplayPreference {
9917    fn default() -> Self {
9918        Self::new()
9919    }
9920}
9921/// The account's preference for whether or not to display this payment method.
9922#[derive(Clone, Eq, PartialEq)]
9923#[non_exhaustive]
9924pub enum UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9925    None,
9926    Off,
9927    On,
9928    /// An unrecognized value from Stripe. Should not be used as a request parameter.
9929    Unknown(String),
9930}
9931impl UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9932    pub fn as_str(&self) -> &str {
9933        use UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference::*;
9934        match self {
9935            None => "none",
9936            Off => "off",
9937            On => "on",
9938            Unknown(v) => v,
9939        }
9940    }
9941}
9942
9943impl std::str::FromStr for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9944    type Err = std::convert::Infallible;
9945    fn from_str(s: &str) -> Result<Self, Self::Err> {
9946        use UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference::*;
9947        match s {
9948            "none" => Ok(None),
9949            "off" => Ok(Off),
9950            "on" => Ok(On),
9951            v => {
9952                tracing::warn!(
9953                    "Unknown value '{}' for enum '{}'",
9954                    v,
9955                    "UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference"
9956                );
9957                Ok(Unknown(v.to_owned()))
9958            }
9959        }
9960    }
9961}
9962impl std::fmt::Display for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9963    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9964        f.write_str(self.as_str())
9965    }
9966}
9967
9968#[cfg(not(feature = "redact-generated-debug"))]
9969impl std::fmt::Debug for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9970    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9971        f.write_str(self.as_str())
9972    }
9973}
9974#[cfg(feature = "redact-generated-debug")]
9975impl std::fmt::Debug for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9976    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9977        f.debug_struct(stringify!(
9978            UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference
9979        ))
9980        .finish_non_exhaustive()
9981    }
9982}
9983impl serde::Serialize for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference {
9984    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9985    where
9986        S: serde::Serializer,
9987    {
9988        serializer.serialize_str(self.as_str())
9989    }
9990}
9991#[cfg(feature = "deserialize")]
9992impl<'de> serde::Deserialize<'de>
9993    for UpdatePaymentMethodConfigurationBacsDebitDisplayPreferencePreference
9994{
9995    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9996        use std::str::FromStr;
9997        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
9998        Ok(Self::from_str(&s).expect("infallible"))
9999    }
10000}
10001/// Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation.
10002/// [Customers](https://docs.stripe.com/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately.
10003/// Check this [page](https://docs.stripe.com/payments/bancontact) for more details.
10004#[derive(Clone, Eq, PartialEq)]
10005#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10006#[derive(serde::Serialize)]
10007pub struct UpdatePaymentMethodConfigurationBancontact {
10008    /// Whether or not the payment method should be displayed.
10009    #[serde(skip_serializing_if = "Option::is_none")]
10010    pub display_preference: Option<UpdatePaymentMethodConfigurationBancontactDisplayPreference>,
10011}
10012#[cfg(feature = "redact-generated-debug")]
10013impl std::fmt::Debug for UpdatePaymentMethodConfigurationBancontact {
10014    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10015        f.debug_struct("UpdatePaymentMethodConfigurationBancontact").finish_non_exhaustive()
10016    }
10017}
10018impl UpdatePaymentMethodConfigurationBancontact {
10019    pub fn new() -> Self {
10020        Self { display_preference: None }
10021    }
10022}
10023impl Default for UpdatePaymentMethodConfigurationBancontact {
10024    fn default() -> Self {
10025        Self::new()
10026    }
10027}
10028/// Whether or not the payment method should be displayed.
10029#[derive(Clone, Eq, PartialEq)]
10030#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10031#[derive(serde::Serialize)]
10032pub struct UpdatePaymentMethodConfigurationBancontactDisplayPreference {
10033    /// The account's preference for whether or not to display this payment method.
10034    #[serde(skip_serializing_if = "Option::is_none")]
10035    pub preference: Option<UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference>,
10036}
10037#[cfg(feature = "redact-generated-debug")]
10038impl std::fmt::Debug for UpdatePaymentMethodConfigurationBancontactDisplayPreference {
10039    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10040        f.debug_struct("UpdatePaymentMethodConfigurationBancontactDisplayPreference")
10041            .finish_non_exhaustive()
10042    }
10043}
10044impl UpdatePaymentMethodConfigurationBancontactDisplayPreference {
10045    pub fn new() -> Self {
10046        Self { preference: None }
10047    }
10048}
10049impl Default for UpdatePaymentMethodConfigurationBancontactDisplayPreference {
10050    fn default() -> Self {
10051        Self::new()
10052    }
10053}
10054/// The account's preference for whether or not to display this payment method.
10055#[derive(Clone, Eq, PartialEq)]
10056#[non_exhaustive]
10057pub enum UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10058    None,
10059    Off,
10060    On,
10061    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10062    Unknown(String),
10063}
10064impl UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10065    pub fn as_str(&self) -> &str {
10066        use UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference::*;
10067        match self {
10068            None => "none",
10069            Off => "off",
10070            On => "on",
10071            Unknown(v) => v,
10072        }
10073    }
10074}
10075
10076impl std::str::FromStr for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10077    type Err = std::convert::Infallible;
10078    fn from_str(s: &str) -> Result<Self, Self::Err> {
10079        use UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference::*;
10080        match s {
10081            "none" => Ok(None),
10082            "off" => Ok(Off),
10083            "on" => Ok(On),
10084            v => {
10085                tracing::warn!(
10086                    "Unknown value '{}' for enum '{}'",
10087                    v,
10088                    "UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference"
10089                );
10090                Ok(Unknown(v.to_owned()))
10091            }
10092        }
10093    }
10094}
10095impl std::fmt::Display for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10096    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10097        f.write_str(self.as_str())
10098    }
10099}
10100
10101#[cfg(not(feature = "redact-generated-debug"))]
10102impl std::fmt::Debug for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10103    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10104        f.write_str(self.as_str())
10105    }
10106}
10107#[cfg(feature = "redact-generated-debug")]
10108impl std::fmt::Debug for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10109    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10110        f.debug_struct(stringify!(
10111            UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference
10112        ))
10113        .finish_non_exhaustive()
10114    }
10115}
10116impl serde::Serialize for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference {
10117    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10118    where
10119        S: serde::Serializer,
10120    {
10121        serializer.serialize_str(self.as_str())
10122    }
10123}
10124#[cfg(feature = "deserialize")]
10125impl<'de> serde::Deserialize<'de>
10126    for UpdatePaymentMethodConfigurationBancontactDisplayPreferencePreference
10127{
10128    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10129        use std::str::FromStr;
10130        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10131        Ok(Self::from_str(&s).expect("infallible"))
10132    }
10133}
10134/// Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days.
10135/// Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app.
10136/// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
10137#[derive(Clone, Eq, PartialEq)]
10138#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10139#[derive(serde::Serialize)]
10140pub struct UpdatePaymentMethodConfigurationBillie {
10141    /// Whether or not the payment method should be displayed.
10142    #[serde(skip_serializing_if = "Option::is_none")]
10143    pub display_preference: Option<UpdatePaymentMethodConfigurationBillieDisplayPreference>,
10144}
10145#[cfg(feature = "redact-generated-debug")]
10146impl std::fmt::Debug for UpdatePaymentMethodConfigurationBillie {
10147    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10148        f.debug_struct("UpdatePaymentMethodConfigurationBillie").finish_non_exhaustive()
10149    }
10150}
10151impl UpdatePaymentMethodConfigurationBillie {
10152    pub fn new() -> Self {
10153        Self { display_preference: None }
10154    }
10155}
10156impl Default for UpdatePaymentMethodConfigurationBillie {
10157    fn default() -> Self {
10158        Self::new()
10159    }
10160}
10161/// Whether or not the payment method should be displayed.
10162#[derive(Clone, Eq, PartialEq)]
10163#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10164#[derive(serde::Serialize)]
10165pub struct UpdatePaymentMethodConfigurationBillieDisplayPreference {
10166    /// The account's preference for whether or not to display this payment method.
10167    #[serde(skip_serializing_if = "Option::is_none")]
10168    pub preference: Option<UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference>,
10169}
10170#[cfg(feature = "redact-generated-debug")]
10171impl std::fmt::Debug for UpdatePaymentMethodConfigurationBillieDisplayPreference {
10172    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10173        f.debug_struct("UpdatePaymentMethodConfigurationBillieDisplayPreference")
10174            .finish_non_exhaustive()
10175    }
10176}
10177impl UpdatePaymentMethodConfigurationBillieDisplayPreference {
10178    pub fn new() -> Self {
10179        Self { preference: None }
10180    }
10181}
10182impl Default for UpdatePaymentMethodConfigurationBillieDisplayPreference {
10183    fn default() -> Self {
10184        Self::new()
10185    }
10186}
10187/// The account's preference for whether or not to display this payment method.
10188#[derive(Clone, Eq, PartialEq)]
10189#[non_exhaustive]
10190pub enum UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10191    None,
10192    Off,
10193    On,
10194    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10195    Unknown(String),
10196}
10197impl UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10198    pub fn as_str(&self) -> &str {
10199        use UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference::*;
10200        match self {
10201            None => "none",
10202            Off => "off",
10203            On => "on",
10204            Unknown(v) => v,
10205        }
10206    }
10207}
10208
10209impl std::str::FromStr for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10210    type Err = std::convert::Infallible;
10211    fn from_str(s: &str) -> Result<Self, Self::Err> {
10212        use UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference::*;
10213        match s {
10214            "none" => Ok(None),
10215            "off" => Ok(Off),
10216            "on" => Ok(On),
10217            v => {
10218                tracing::warn!(
10219                    "Unknown value '{}' for enum '{}'",
10220                    v,
10221                    "UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference"
10222                );
10223                Ok(Unknown(v.to_owned()))
10224            }
10225        }
10226    }
10227}
10228impl std::fmt::Display for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10229    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10230        f.write_str(self.as_str())
10231    }
10232}
10233
10234#[cfg(not(feature = "redact-generated-debug"))]
10235impl std::fmt::Debug for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10236    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10237        f.write_str(self.as_str())
10238    }
10239}
10240#[cfg(feature = "redact-generated-debug")]
10241impl std::fmt::Debug for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10242    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10243        f.debug_struct(stringify!(
10244            UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference
10245        ))
10246        .finish_non_exhaustive()
10247    }
10248}
10249impl serde::Serialize for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference {
10250    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10251    where
10252        S: serde::Serializer,
10253    {
10254        serializer.serialize_str(self.as_str())
10255    }
10256}
10257#[cfg(feature = "deserialize")]
10258impl<'de> serde::Deserialize<'de>
10259    for UpdatePaymentMethodConfigurationBillieDisplayPreferencePreference
10260{
10261    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10262        use std::str::FromStr;
10263        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10264        Ok(Self::from_str(&s).expect("infallible"))
10265    }
10266}
10267/// BLIK is a [single use](https://docs.stripe.com/payments/payment-methods#usage) payment method that requires customers to authenticate their payments.
10268/// When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form.
10269/// Check this [page](https://docs.stripe.com/payments/blik) for more details.
10270#[derive(Clone, Eq, PartialEq)]
10271#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10272#[derive(serde::Serialize)]
10273pub struct UpdatePaymentMethodConfigurationBlik {
10274    /// Whether or not the payment method should be displayed.
10275    #[serde(skip_serializing_if = "Option::is_none")]
10276    pub display_preference: Option<UpdatePaymentMethodConfigurationBlikDisplayPreference>,
10277}
10278#[cfg(feature = "redact-generated-debug")]
10279impl std::fmt::Debug for UpdatePaymentMethodConfigurationBlik {
10280    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10281        f.debug_struct("UpdatePaymentMethodConfigurationBlik").finish_non_exhaustive()
10282    }
10283}
10284impl UpdatePaymentMethodConfigurationBlik {
10285    pub fn new() -> Self {
10286        Self { display_preference: None }
10287    }
10288}
10289impl Default for UpdatePaymentMethodConfigurationBlik {
10290    fn default() -> Self {
10291        Self::new()
10292    }
10293}
10294/// Whether or not the payment method should be displayed.
10295#[derive(Clone, Eq, PartialEq)]
10296#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10297#[derive(serde::Serialize)]
10298pub struct UpdatePaymentMethodConfigurationBlikDisplayPreference {
10299    /// The account's preference for whether or not to display this payment method.
10300    #[serde(skip_serializing_if = "Option::is_none")]
10301    pub preference: Option<UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference>,
10302}
10303#[cfg(feature = "redact-generated-debug")]
10304impl std::fmt::Debug for UpdatePaymentMethodConfigurationBlikDisplayPreference {
10305    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10306        f.debug_struct("UpdatePaymentMethodConfigurationBlikDisplayPreference")
10307            .finish_non_exhaustive()
10308    }
10309}
10310impl UpdatePaymentMethodConfigurationBlikDisplayPreference {
10311    pub fn new() -> Self {
10312        Self { preference: None }
10313    }
10314}
10315impl Default for UpdatePaymentMethodConfigurationBlikDisplayPreference {
10316    fn default() -> Self {
10317        Self::new()
10318    }
10319}
10320/// The account's preference for whether or not to display this payment method.
10321#[derive(Clone, Eq, PartialEq)]
10322#[non_exhaustive]
10323pub enum UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10324    None,
10325    Off,
10326    On,
10327    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10328    Unknown(String),
10329}
10330impl UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10331    pub fn as_str(&self) -> &str {
10332        use UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference::*;
10333        match self {
10334            None => "none",
10335            Off => "off",
10336            On => "on",
10337            Unknown(v) => v,
10338        }
10339    }
10340}
10341
10342impl std::str::FromStr for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10343    type Err = std::convert::Infallible;
10344    fn from_str(s: &str) -> Result<Self, Self::Err> {
10345        use UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference::*;
10346        match s {
10347            "none" => Ok(None),
10348            "off" => Ok(Off),
10349            "on" => Ok(On),
10350            v => {
10351                tracing::warn!(
10352                    "Unknown value '{}' for enum '{}'",
10353                    v,
10354                    "UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference"
10355                );
10356                Ok(Unknown(v.to_owned()))
10357            }
10358        }
10359    }
10360}
10361impl std::fmt::Display for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10362    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10363        f.write_str(self.as_str())
10364    }
10365}
10366
10367#[cfg(not(feature = "redact-generated-debug"))]
10368impl std::fmt::Debug for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10369    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10370        f.write_str(self.as_str())
10371    }
10372}
10373#[cfg(feature = "redact-generated-debug")]
10374impl std::fmt::Debug for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10375    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10376        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference))
10377            .finish_non_exhaustive()
10378    }
10379}
10380impl serde::Serialize for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference {
10381    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10382    where
10383        S: serde::Serializer,
10384    {
10385        serializer.serialize_str(self.as_str())
10386    }
10387}
10388#[cfg(feature = "deserialize")]
10389impl<'de> serde::Deserialize<'de>
10390    for UpdatePaymentMethodConfigurationBlikDisplayPreferencePreference
10391{
10392    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10393        use std::str::FromStr;
10394        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10395        Ok(Self::from_str(&s).expect("infallible"))
10396    }
10397}
10398/// Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil.
10399/// Check this [page](https://docs.stripe.com/payments/boleto) for more details.
10400#[derive(Clone, Eq, PartialEq)]
10401#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10402#[derive(serde::Serialize)]
10403pub struct UpdatePaymentMethodConfigurationBoleto {
10404    /// Whether or not the payment method should be displayed.
10405    #[serde(skip_serializing_if = "Option::is_none")]
10406    pub display_preference: Option<UpdatePaymentMethodConfigurationBoletoDisplayPreference>,
10407}
10408#[cfg(feature = "redact-generated-debug")]
10409impl std::fmt::Debug for UpdatePaymentMethodConfigurationBoleto {
10410    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10411        f.debug_struct("UpdatePaymentMethodConfigurationBoleto").finish_non_exhaustive()
10412    }
10413}
10414impl UpdatePaymentMethodConfigurationBoleto {
10415    pub fn new() -> Self {
10416        Self { display_preference: None }
10417    }
10418}
10419impl Default for UpdatePaymentMethodConfigurationBoleto {
10420    fn default() -> Self {
10421        Self::new()
10422    }
10423}
10424/// Whether or not the payment method should be displayed.
10425#[derive(Clone, Eq, PartialEq)]
10426#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10427#[derive(serde::Serialize)]
10428pub struct UpdatePaymentMethodConfigurationBoletoDisplayPreference {
10429    /// The account's preference for whether or not to display this payment method.
10430    #[serde(skip_serializing_if = "Option::is_none")]
10431    pub preference: Option<UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference>,
10432}
10433#[cfg(feature = "redact-generated-debug")]
10434impl std::fmt::Debug for UpdatePaymentMethodConfigurationBoletoDisplayPreference {
10435    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10436        f.debug_struct("UpdatePaymentMethodConfigurationBoletoDisplayPreference")
10437            .finish_non_exhaustive()
10438    }
10439}
10440impl UpdatePaymentMethodConfigurationBoletoDisplayPreference {
10441    pub fn new() -> Self {
10442        Self { preference: None }
10443    }
10444}
10445impl Default for UpdatePaymentMethodConfigurationBoletoDisplayPreference {
10446    fn default() -> Self {
10447        Self::new()
10448    }
10449}
10450/// The account's preference for whether or not to display this payment method.
10451#[derive(Clone, Eq, PartialEq)]
10452#[non_exhaustive]
10453pub enum UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10454    None,
10455    Off,
10456    On,
10457    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10458    Unknown(String),
10459}
10460impl UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10461    pub fn as_str(&self) -> &str {
10462        use UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference::*;
10463        match self {
10464            None => "none",
10465            Off => "off",
10466            On => "on",
10467            Unknown(v) => v,
10468        }
10469    }
10470}
10471
10472impl std::str::FromStr for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10473    type Err = std::convert::Infallible;
10474    fn from_str(s: &str) -> Result<Self, Self::Err> {
10475        use UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference::*;
10476        match s {
10477            "none" => Ok(None),
10478            "off" => Ok(Off),
10479            "on" => Ok(On),
10480            v => {
10481                tracing::warn!(
10482                    "Unknown value '{}' for enum '{}'",
10483                    v,
10484                    "UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference"
10485                );
10486                Ok(Unknown(v.to_owned()))
10487            }
10488        }
10489    }
10490}
10491impl std::fmt::Display for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10492    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10493        f.write_str(self.as_str())
10494    }
10495}
10496
10497#[cfg(not(feature = "redact-generated-debug"))]
10498impl std::fmt::Debug for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10499    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10500        f.write_str(self.as_str())
10501    }
10502}
10503#[cfg(feature = "redact-generated-debug")]
10504impl std::fmt::Debug for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10505    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10506        f.debug_struct(stringify!(
10507            UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference
10508        ))
10509        .finish_non_exhaustive()
10510    }
10511}
10512impl serde::Serialize for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference {
10513    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10514    where
10515        S: serde::Serializer,
10516    {
10517        serializer.serialize_str(self.as_str())
10518    }
10519}
10520#[cfg(feature = "deserialize")]
10521impl<'de> serde::Deserialize<'de>
10522    for UpdatePaymentMethodConfigurationBoletoDisplayPreferencePreference
10523{
10524    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10525        use std::str::FromStr;
10526        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10527        Ok(Self::from_str(&s).expect("infallible"))
10528    }
10529}
10530/// Cards are a popular way for consumers and businesses to pay online or in person.
10531/// Stripe supports global and local card networks.
10532#[derive(Clone, Eq, PartialEq)]
10533#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10534#[derive(serde::Serialize)]
10535pub struct UpdatePaymentMethodConfigurationCard {
10536    /// Whether or not the payment method should be displayed.
10537    #[serde(skip_serializing_if = "Option::is_none")]
10538    pub display_preference: Option<UpdatePaymentMethodConfigurationCardDisplayPreference>,
10539}
10540#[cfg(feature = "redact-generated-debug")]
10541impl std::fmt::Debug for UpdatePaymentMethodConfigurationCard {
10542    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10543        f.debug_struct("UpdatePaymentMethodConfigurationCard").finish_non_exhaustive()
10544    }
10545}
10546impl UpdatePaymentMethodConfigurationCard {
10547    pub fn new() -> Self {
10548        Self { display_preference: None }
10549    }
10550}
10551impl Default for UpdatePaymentMethodConfigurationCard {
10552    fn default() -> Self {
10553        Self::new()
10554    }
10555}
10556/// Whether or not the payment method should be displayed.
10557#[derive(Clone, Eq, PartialEq)]
10558#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10559#[derive(serde::Serialize)]
10560pub struct UpdatePaymentMethodConfigurationCardDisplayPreference {
10561    /// The account's preference for whether or not to display this payment method.
10562    #[serde(skip_serializing_if = "Option::is_none")]
10563    pub preference: Option<UpdatePaymentMethodConfigurationCardDisplayPreferencePreference>,
10564}
10565#[cfg(feature = "redact-generated-debug")]
10566impl std::fmt::Debug for UpdatePaymentMethodConfigurationCardDisplayPreference {
10567    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10568        f.debug_struct("UpdatePaymentMethodConfigurationCardDisplayPreference")
10569            .finish_non_exhaustive()
10570    }
10571}
10572impl UpdatePaymentMethodConfigurationCardDisplayPreference {
10573    pub fn new() -> Self {
10574        Self { preference: None }
10575    }
10576}
10577impl Default for UpdatePaymentMethodConfigurationCardDisplayPreference {
10578    fn default() -> Self {
10579        Self::new()
10580    }
10581}
10582/// The account's preference for whether or not to display this payment method.
10583#[derive(Clone, Eq, PartialEq)]
10584#[non_exhaustive]
10585pub enum UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10586    None,
10587    Off,
10588    On,
10589    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10590    Unknown(String),
10591}
10592impl UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10593    pub fn as_str(&self) -> &str {
10594        use UpdatePaymentMethodConfigurationCardDisplayPreferencePreference::*;
10595        match self {
10596            None => "none",
10597            Off => "off",
10598            On => "on",
10599            Unknown(v) => v,
10600        }
10601    }
10602}
10603
10604impl std::str::FromStr for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10605    type Err = std::convert::Infallible;
10606    fn from_str(s: &str) -> Result<Self, Self::Err> {
10607        use UpdatePaymentMethodConfigurationCardDisplayPreferencePreference::*;
10608        match s {
10609            "none" => Ok(None),
10610            "off" => Ok(Off),
10611            "on" => Ok(On),
10612            v => {
10613                tracing::warn!(
10614                    "Unknown value '{}' for enum '{}'",
10615                    v,
10616                    "UpdatePaymentMethodConfigurationCardDisplayPreferencePreference"
10617                );
10618                Ok(Unknown(v.to_owned()))
10619            }
10620        }
10621    }
10622}
10623impl std::fmt::Display for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10624    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10625        f.write_str(self.as_str())
10626    }
10627}
10628
10629#[cfg(not(feature = "redact-generated-debug"))]
10630impl std::fmt::Debug for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10631    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10632        f.write_str(self.as_str())
10633    }
10634}
10635#[cfg(feature = "redact-generated-debug")]
10636impl std::fmt::Debug for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10637    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10638        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationCardDisplayPreferencePreference))
10639            .finish_non_exhaustive()
10640    }
10641}
10642impl serde::Serialize for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference {
10643    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10644    where
10645        S: serde::Serializer,
10646    {
10647        serializer.serialize_str(self.as_str())
10648    }
10649}
10650#[cfg(feature = "deserialize")]
10651impl<'de> serde::Deserialize<'de>
10652    for UpdatePaymentMethodConfigurationCardDisplayPreferencePreference
10653{
10654    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10655        use std::str::FromStr;
10656        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10657        Ok(Self::from_str(&s).expect("infallible"))
10658    }
10659}
10660/// Cartes Bancaires is France's local card network.
10661/// More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks.
10662/// Check this [page](https://docs.stripe.com/payments/cartes-bancaires) for more details.
10663#[derive(Clone, Eq, PartialEq)]
10664#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10665#[derive(serde::Serialize)]
10666pub struct UpdatePaymentMethodConfigurationCartesBancaires {
10667    /// Whether or not the payment method should be displayed.
10668    #[serde(skip_serializing_if = "Option::is_none")]
10669    pub display_preference:
10670        Option<UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference>,
10671}
10672#[cfg(feature = "redact-generated-debug")]
10673impl std::fmt::Debug for UpdatePaymentMethodConfigurationCartesBancaires {
10674    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10675        f.debug_struct("UpdatePaymentMethodConfigurationCartesBancaires").finish_non_exhaustive()
10676    }
10677}
10678impl UpdatePaymentMethodConfigurationCartesBancaires {
10679    pub fn new() -> Self {
10680        Self { display_preference: None }
10681    }
10682}
10683impl Default for UpdatePaymentMethodConfigurationCartesBancaires {
10684    fn default() -> Self {
10685        Self::new()
10686    }
10687}
10688/// Whether or not the payment method should be displayed.
10689#[derive(Clone, Eq, PartialEq)]
10690#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10691#[derive(serde::Serialize)]
10692pub struct UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference {
10693    /// The account's preference for whether or not to display this payment method.
10694    #[serde(skip_serializing_if = "Option::is_none")]
10695    pub preference:
10696        Option<UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference>,
10697}
10698#[cfg(feature = "redact-generated-debug")]
10699impl std::fmt::Debug for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference {
10700    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10701        f.debug_struct("UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference")
10702            .finish_non_exhaustive()
10703    }
10704}
10705impl UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference {
10706    pub fn new() -> Self {
10707        Self { preference: None }
10708    }
10709}
10710impl Default for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreference {
10711    fn default() -> Self {
10712        Self::new()
10713    }
10714}
10715/// The account's preference for whether or not to display this payment method.
10716#[derive(Clone, Eq, PartialEq)]
10717#[non_exhaustive]
10718pub enum UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference {
10719    None,
10720    Off,
10721    On,
10722    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10723    Unknown(String),
10724}
10725impl UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference {
10726    pub fn as_str(&self) -> &str {
10727        use UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference::*;
10728        match self {
10729            None => "none",
10730            Off => "off",
10731            On => "on",
10732            Unknown(v) => v,
10733        }
10734    }
10735}
10736
10737impl std::str::FromStr
10738    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10739{
10740    type Err = std::convert::Infallible;
10741    fn from_str(s: &str) -> Result<Self, Self::Err> {
10742        use UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference::*;
10743        match s {
10744            "none" => Ok(None),
10745            "off" => Ok(Off),
10746            "on" => Ok(On),
10747            v => {
10748                tracing::warn!(
10749                    "Unknown value '{}' for enum '{}'",
10750                    v,
10751                    "UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference"
10752                );
10753                Ok(Unknown(v.to_owned()))
10754            }
10755        }
10756    }
10757}
10758impl std::fmt::Display
10759    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10760{
10761    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10762        f.write_str(self.as_str())
10763    }
10764}
10765
10766#[cfg(not(feature = "redact-generated-debug"))]
10767impl std::fmt::Debug
10768    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10769{
10770    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10771        f.write_str(self.as_str())
10772    }
10773}
10774#[cfg(feature = "redact-generated-debug")]
10775impl std::fmt::Debug
10776    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10777{
10778    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10779        f.debug_struct(stringify!(
10780            UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10781        ))
10782        .finish_non_exhaustive()
10783    }
10784}
10785impl serde::Serialize
10786    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10787{
10788    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10789    where
10790        S: serde::Serializer,
10791    {
10792        serializer.serialize_str(self.as_str())
10793    }
10794}
10795#[cfg(feature = "deserialize")]
10796impl<'de> serde::Deserialize<'de>
10797    for UpdatePaymentMethodConfigurationCartesBancairesDisplayPreferencePreference
10798{
10799    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10800        use std::str::FromStr;
10801        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10802        Ok(Self::from_str(&s).expect("infallible"))
10803    }
10804}
10805/// Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet.
10806/// Check this [page](https://docs.stripe.com/payments/cash-app-pay) for more details.
10807#[derive(Clone, Eq, PartialEq)]
10808#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10809#[derive(serde::Serialize)]
10810pub struct UpdatePaymentMethodConfigurationCashapp {
10811    /// Whether or not the payment method should be displayed.
10812    #[serde(skip_serializing_if = "Option::is_none")]
10813    pub display_preference: Option<UpdatePaymentMethodConfigurationCashappDisplayPreference>,
10814}
10815#[cfg(feature = "redact-generated-debug")]
10816impl std::fmt::Debug for UpdatePaymentMethodConfigurationCashapp {
10817    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10818        f.debug_struct("UpdatePaymentMethodConfigurationCashapp").finish_non_exhaustive()
10819    }
10820}
10821impl UpdatePaymentMethodConfigurationCashapp {
10822    pub fn new() -> Self {
10823        Self { display_preference: None }
10824    }
10825}
10826impl Default for UpdatePaymentMethodConfigurationCashapp {
10827    fn default() -> Self {
10828        Self::new()
10829    }
10830}
10831/// Whether or not the payment method should be displayed.
10832#[derive(Clone, Eq, PartialEq)]
10833#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10834#[derive(serde::Serialize)]
10835pub struct UpdatePaymentMethodConfigurationCashappDisplayPreference {
10836    /// The account's preference for whether or not to display this payment method.
10837    #[serde(skip_serializing_if = "Option::is_none")]
10838    pub preference: Option<UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference>,
10839}
10840#[cfg(feature = "redact-generated-debug")]
10841impl std::fmt::Debug for UpdatePaymentMethodConfigurationCashappDisplayPreference {
10842    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10843        f.debug_struct("UpdatePaymentMethodConfigurationCashappDisplayPreference")
10844            .finish_non_exhaustive()
10845    }
10846}
10847impl UpdatePaymentMethodConfigurationCashappDisplayPreference {
10848    pub fn new() -> Self {
10849        Self { preference: None }
10850    }
10851}
10852impl Default for UpdatePaymentMethodConfigurationCashappDisplayPreference {
10853    fn default() -> Self {
10854        Self::new()
10855    }
10856}
10857/// The account's preference for whether or not to display this payment method.
10858#[derive(Clone, Eq, PartialEq)]
10859#[non_exhaustive]
10860pub enum UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10861    None,
10862    Off,
10863    On,
10864    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10865    Unknown(String),
10866}
10867impl UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10868    pub fn as_str(&self) -> &str {
10869        use UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference::*;
10870        match self {
10871            None => "none",
10872            Off => "off",
10873            On => "on",
10874            Unknown(v) => v,
10875        }
10876    }
10877}
10878
10879impl std::str::FromStr for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10880    type Err = std::convert::Infallible;
10881    fn from_str(s: &str) -> Result<Self, Self::Err> {
10882        use UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference::*;
10883        match s {
10884            "none" => Ok(None),
10885            "off" => Ok(Off),
10886            "on" => Ok(On),
10887            v => {
10888                tracing::warn!(
10889                    "Unknown value '{}' for enum '{}'",
10890                    v,
10891                    "UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference"
10892                );
10893                Ok(Unknown(v.to_owned()))
10894            }
10895        }
10896    }
10897}
10898impl std::fmt::Display for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10899    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10900        f.write_str(self.as_str())
10901    }
10902}
10903
10904#[cfg(not(feature = "redact-generated-debug"))]
10905impl std::fmt::Debug for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10906    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10907        f.write_str(self.as_str())
10908    }
10909}
10910#[cfg(feature = "redact-generated-debug")]
10911impl std::fmt::Debug for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10912    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10913        f.debug_struct(stringify!(
10914            UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference
10915        ))
10916        .finish_non_exhaustive()
10917    }
10918}
10919impl serde::Serialize for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference {
10920    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10921    where
10922        S: serde::Serializer,
10923    {
10924        serializer.serialize_str(self.as_str())
10925    }
10926}
10927#[cfg(feature = "deserialize")]
10928impl<'de> serde::Deserialize<'de>
10929    for UpdatePaymentMethodConfigurationCashappDisplayPreferencePreference
10930{
10931    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10932        use std::str::FromStr;
10933        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
10934        Ok(Self::from_str(&s).expect("infallible"))
10935    }
10936}
10937/// [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask.
10938#[derive(Clone, Eq, PartialEq)]
10939#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10940#[derive(serde::Serialize)]
10941pub struct UpdatePaymentMethodConfigurationCrypto {
10942    /// Whether or not the payment method should be displayed.
10943    #[serde(skip_serializing_if = "Option::is_none")]
10944    pub display_preference: Option<UpdatePaymentMethodConfigurationCryptoDisplayPreference>,
10945}
10946#[cfg(feature = "redact-generated-debug")]
10947impl std::fmt::Debug for UpdatePaymentMethodConfigurationCrypto {
10948    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10949        f.debug_struct("UpdatePaymentMethodConfigurationCrypto").finish_non_exhaustive()
10950    }
10951}
10952impl UpdatePaymentMethodConfigurationCrypto {
10953    pub fn new() -> Self {
10954        Self { display_preference: None }
10955    }
10956}
10957impl Default for UpdatePaymentMethodConfigurationCrypto {
10958    fn default() -> Self {
10959        Self::new()
10960    }
10961}
10962/// Whether or not the payment method should be displayed.
10963#[derive(Clone, Eq, PartialEq)]
10964#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
10965#[derive(serde::Serialize)]
10966pub struct UpdatePaymentMethodConfigurationCryptoDisplayPreference {
10967    /// The account's preference for whether or not to display this payment method.
10968    #[serde(skip_serializing_if = "Option::is_none")]
10969    pub preference: Option<UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference>,
10970}
10971#[cfg(feature = "redact-generated-debug")]
10972impl std::fmt::Debug for UpdatePaymentMethodConfigurationCryptoDisplayPreference {
10973    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10974        f.debug_struct("UpdatePaymentMethodConfigurationCryptoDisplayPreference")
10975            .finish_non_exhaustive()
10976    }
10977}
10978impl UpdatePaymentMethodConfigurationCryptoDisplayPreference {
10979    pub fn new() -> Self {
10980        Self { preference: None }
10981    }
10982}
10983impl Default for UpdatePaymentMethodConfigurationCryptoDisplayPreference {
10984    fn default() -> Self {
10985        Self::new()
10986    }
10987}
10988/// The account's preference for whether or not to display this payment method.
10989#[derive(Clone, Eq, PartialEq)]
10990#[non_exhaustive]
10991pub enum UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
10992    None,
10993    Off,
10994    On,
10995    /// An unrecognized value from Stripe. Should not be used as a request parameter.
10996    Unknown(String),
10997}
10998impl UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
10999    pub fn as_str(&self) -> &str {
11000        use UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference::*;
11001        match self {
11002            None => "none",
11003            Off => "off",
11004            On => "on",
11005            Unknown(v) => v,
11006        }
11007    }
11008}
11009
11010impl std::str::FromStr for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
11011    type Err = std::convert::Infallible;
11012    fn from_str(s: &str) -> Result<Self, Self::Err> {
11013        use UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference::*;
11014        match s {
11015            "none" => Ok(None),
11016            "off" => Ok(Off),
11017            "on" => Ok(On),
11018            v => {
11019                tracing::warn!(
11020                    "Unknown value '{}' for enum '{}'",
11021                    v,
11022                    "UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference"
11023                );
11024                Ok(Unknown(v.to_owned()))
11025            }
11026        }
11027    }
11028}
11029impl std::fmt::Display for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
11030    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11031        f.write_str(self.as_str())
11032    }
11033}
11034
11035#[cfg(not(feature = "redact-generated-debug"))]
11036impl std::fmt::Debug for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
11037    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11038        f.write_str(self.as_str())
11039    }
11040}
11041#[cfg(feature = "redact-generated-debug")]
11042impl std::fmt::Debug for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
11043    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11044        f.debug_struct(stringify!(
11045            UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference
11046        ))
11047        .finish_non_exhaustive()
11048    }
11049}
11050impl serde::Serialize for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference {
11051    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11052    where
11053        S: serde::Serializer,
11054    {
11055        serializer.serialize_str(self.as_str())
11056    }
11057}
11058#[cfg(feature = "deserialize")]
11059impl<'de> serde::Deserialize<'de>
11060    for UpdatePaymentMethodConfigurationCryptoDisplayPreferencePreference
11061{
11062    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11063        use std::str::FromStr;
11064        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11065        Ok(Self::from_str(&s).expect("infallible"))
11066    }
11067}
11068/// Uses a customer’s [cash balance](https://docs.stripe.com/payments/customer-balance) for the payment.
11069/// The cash balance can be funded via a bank transfer.
11070/// Check this [page](https://docs.stripe.com/payments/bank-transfers) for more details.
11071#[derive(Clone, Eq, PartialEq)]
11072#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11073#[derive(serde::Serialize)]
11074pub struct UpdatePaymentMethodConfigurationCustomerBalance {
11075    /// Whether or not the payment method should be displayed.
11076    #[serde(skip_serializing_if = "Option::is_none")]
11077    pub display_preference:
11078        Option<UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference>,
11079}
11080#[cfg(feature = "redact-generated-debug")]
11081impl std::fmt::Debug for UpdatePaymentMethodConfigurationCustomerBalance {
11082    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11083        f.debug_struct("UpdatePaymentMethodConfigurationCustomerBalance").finish_non_exhaustive()
11084    }
11085}
11086impl UpdatePaymentMethodConfigurationCustomerBalance {
11087    pub fn new() -> Self {
11088        Self { display_preference: None }
11089    }
11090}
11091impl Default for UpdatePaymentMethodConfigurationCustomerBalance {
11092    fn default() -> Self {
11093        Self::new()
11094    }
11095}
11096/// Whether or not the payment method should be displayed.
11097#[derive(Clone, Eq, PartialEq)]
11098#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11099#[derive(serde::Serialize)]
11100pub struct UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
11101    /// The account's preference for whether or not to display this payment method.
11102    #[serde(skip_serializing_if = "Option::is_none")]
11103    pub preference:
11104        Option<UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference>,
11105}
11106#[cfg(feature = "redact-generated-debug")]
11107impl std::fmt::Debug for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
11108    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11109        f.debug_struct("UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference")
11110            .finish_non_exhaustive()
11111    }
11112}
11113impl UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
11114    pub fn new() -> Self {
11115        Self { preference: None }
11116    }
11117}
11118impl Default for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreference {
11119    fn default() -> Self {
11120        Self::new()
11121    }
11122}
11123/// The account's preference for whether or not to display this payment method.
11124#[derive(Clone, Eq, PartialEq)]
11125#[non_exhaustive]
11126pub enum UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference {
11127    None,
11128    Off,
11129    On,
11130    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11131    Unknown(String),
11132}
11133impl UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference {
11134    pub fn as_str(&self) -> &str {
11135        use UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference::*;
11136        match self {
11137            None => "none",
11138            Off => "off",
11139            On => "on",
11140            Unknown(v) => v,
11141        }
11142    }
11143}
11144
11145impl std::str::FromStr
11146    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11147{
11148    type Err = std::convert::Infallible;
11149    fn from_str(s: &str) -> Result<Self, Self::Err> {
11150        use UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference::*;
11151        match s {
11152            "none" => Ok(None),
11153            "off" => Ok(Off),
11154            "on" => Ok(On),
11155            v => {
11156                tracing::warn!(
11157                    "Unknown value '{}' for enum '{}'",
11158                    v,
11159                    "UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference"
11160                );
11161                Ok(Unknown(v.to_owned()))
11162            }
11163        }
11164    }
11165}
11166impl std::fmt::Display
11167    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11168{
11169    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11170        f.write_str(self.as_str())
11171    }
11172}
11173
11174#[cfg(not(feature = "redact-generated-debug"))]
11175impl std::fmt::Debug
11176    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11177{
11178    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11179        f.write_str(self.as_str())
11180    }
11181}
11182#[cfg(feature = "redact-generated-debug")]
11183impl std::fmt::Debug
11184    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11185{
11186    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11187        f.debug_struct(stringify!(
11188            UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11189        ))
11190        .finish_non_exhaustive()
11191    }
11192}
11193impl serde::Serialize
11194    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11195{
11196    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11197    where
11198        S: serde::Serializer,
11199    {
11200        serializer.serialize_str(self.as_str())
11201    }
11202}
11203#[cfg(feature = "deserialize")]
11204impl<'de> serde::Deserialize<'de>
11205    for UpdatePaymentMethodConfigurationCustomerBalanceDisplayPreferencePreference
11206{
11207    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11208        use std::str::FromStr;
11209        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11210        Ok(Self::from_str(&s).expect("infallible"))
11211    }
11212}
11213/// EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials.
11214/// EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers.
11215/// Check this [page](https://docs.stripe.com/payments/eps) for more details.
11216#[derive(Clone, Eq, PartialEq)]
11217#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11218#[derive(serde::Serialize)]
11219pub struct UpdatePaymentMethodConfigurationEps {
11220    /// Whether or not the payment method should be displayed.
11221    #[serde(skip_serializing_if = "Option::is_none")]
11222    pub display_preference: Option<UpdatePaymentMethodConfigurationEpsDisplayPreference>,
11223}
11224#[cfg(feature = "redact-generated-debug")]
11225impl std::fmt::Debug for UpdatePaymentMethodConfigurationEps {
11226    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11227        f.debug_struct("UpdatePaymentMethodConfigurationEps").finish_non_exhaustive()
11228    }
11229}
11230impl UpdatePaymentMethodConfigurationEps {
11231    pub fn new() -> Self {
11232        Self { display_preference: None }
11233    }
11234}
11235impl Default for UpdatePaymentMethodConfigurationEps {
11236    fn default() -> Self {
11237        Self::new()
11238    }
11239}
11240/// Whether or not the payment method should be displayed.
11241#[derive(Clone, Eq, PartialEq)]
11242#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11243#[derive(serde::Serialize)]
11244pub struct UpdatePaymentMethodConfigurationEpsDisplayPreference {
11245    /// The account's preference for whether or not to display this payment method.
11246    #[serde(skip_serializing_if = "Option::is_none")]
11247    pub preference: Option<UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference>,
11248}
11249#[cfg(feature = "redact-generated-debug")]
11250impl std::fmt::Debug for UpdatePaymentMethodConfigurationEpsDisplayPreference {
11251    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11252        f.debug_struct("UpdatePaymentMethodConfigurationEpsDisplayPreference")
11253            .finish_non_exhaustive()
11254    }
11255}
11256impl UpdatePaymentMethodConfigurationEpsDisplayPreference {
11257    pub fn new() -> Self {
11258        Self { preference: None }
11259    }
11260}
11261impl Default for UpdatePaymentMethodConfigurationEpsDisplayPreference {
11262    fn default() -> Self {
11263        Self::new()
11264    }
11265}
11266/// The account's preference for whether or not to display this payment method.
11267#[derive(Clone, Eq, PartialEq)]
11268#[non_exhaustive]
11269pub enum UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11270    None,
11271    Off,
11272    On,
11273    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11274    Unknown(String),
11275}
11276impl UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11277    pub fn as_str(&self) -> &str {
11278        use UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference::*;
11279        match self {
11280            None => "none",
11281            Off => "off",
11282            On => "on",
11283            Unknown(v) => v,
11284        }
11285    }
11286}
11287
11288impl std::str::FromStr for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11289    type Err = std::convert::Infallible;
11290    fn from_str(s: &str) -> Result<Self, Self::Err> {
11291        use UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference::*;
11292        match s {
11293            "none" => Ok(None),
11294            "off" => Ok(Off),
11295            "on" => Ok(On),
11296            v => {
11297                tracing::warn!(
11298                    "Unknown value '{}' for enum '{}'",
11299                    v,
11300                    "UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference"
11301                );
11302                Ok(Unknown(v.to_owned()))
11303            }
11304        }
11305    }
11306}
11307impl std::fmt::Display for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11308    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11309        f.write_str(self.as_str())
11310    }
11311}
11312
11313#[cfg(not(feature = "redact-generated-debug"))]
11314impl std::fmt::Debug for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11315    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11316        f.write_str(self.as_str())
11317    }
11318}
11319#[cfg(feature = "redact-generated-debug")]
11320impl std::fmt::Debug for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11321    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11322        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference))
11323            .finish_non_exhaustive()
11324    }
11325}
11326impl serde::Serialize for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference {
11327    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11328    where
11329        S: serde::Serializer,
11330    {
11331        serializer.serialize_str(self.as_str())
11332    }
11333}
11334#[cfg(feature = "deserialize")]
11335impl<'de> serde::Deserialize<'de>
11336    for UpdatePaymentMethodConfigurationEpsDisplayPreferencePreference
11337{
11338    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11339        use std::str::FromStr;
11340        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11341        Ok(Self::from_str(&s).expect("infallible"))
11342    }
11343}
11344/// Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials.
11345/// Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX.
11346/// It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM.
11347/// Check this [page](https://docs.stripe.com/payments/fpx) for more details.
11348#[derive(Clone, Eq, PartialEq)]
11349#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11350#[derive(serde::Serialize)]
11351pub struct UpdatePaymentMethodConfigurationFpx {
11352    /// Whether or not the payment method should be displayed.
11353    #[serde(skip_serializing_if = "Option::is_none")]
11354    pub display_preference: Option<UpdatePaymentMethodConfigurationFpxDisplayPreference>,
11355}
11356#[cfg(feature = "redact-generated-debug")]
11357impl std::fmt::Debug for UpdatePaymentMethodConfigurationFpx {
11358    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11359        f.debug_struct("UpdatePaymentMethodConfigurationFpx").finish_non_exhaustive()
11360    }
11361}
11362impl UpdatePaymentMethodConfigurationFpx {
11363    pub fn new() -> Self {
11364        Self { display_preference: None }
11365    }
11366}
11367impl Default for UpdatePaymentMethodConfigurationFpx {
11368    fn default() -> Self {
11369        Self::new()
11370    }
11371}
11372/// Whether or not the payment method should be displayed.
11373#[derive(Clone, Eq, PartialEq)]
11374#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11375#[derive(serde::Serialize)]
11376pub struct UpdatePaymentMethodConfigurationFpxDisplayPreference {
11377    /// The account's preference for whether or not to display this payment method.
11378    #[serde(skip_serializing_if = "Option::is_none")]
11379    pub preference: Option<UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference>,
11380}
11381#[cfg(feature = "redact-generated-debug")]
11382impl std::fmt::Debug for UpdatePaymentMethodConfigurationFpxDisplayPreference {
11383    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11384        f.debug_struct("UpdatePaymentMethodConfigurationFpxDisplayPreference")
11385            .finish_non_exhaustive()
11386    }
11387}
11388impl UpdatePaymentMethodConfigurationFpxDisplayPreference {
11389    pub fn new() -> Self {
11390        Self { preference: None }
11391    }
11392}
11393impl Default for UpdatePaymentMethodConfigurationFpxDisplayPreference {
11394    fn default() -> Self {
11395        Self::new()
11396    }
11397}
11398/// The account's preference for whether or not to display this payment method.
11399#[derive(Clone, Eq, PartialEq)]
11400#[non_exhaustive]
11401pub enum UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11402    None,
11403    Off,
11404    On,
11405    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11406    Unknown(String),
11407}
11408impl UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11409    pub fn as_str(&self) -> &str {
11410        use UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference::*;
11411        match self {
11412            None => "none",
11413            Off => "off",
11414            On => "on",
11415            Unknown(v) => v,
11416        }
11417    }
11418}
11419
11420impl std::str::FromStr for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11421    type Err = std::convert::Infallible;
11422    fn from_str(s: &str) -> Result<Self, Self::Err> {
11423        use UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference::*;
11424        match s {
11425            "none" => Ok(None),
11426            "off" => Ok(Off),
11427            "on" => Ok(On),
11428            v => {
11429                tracing::warn!(
11430                    "Unknown value '{}' for enum '{}'",
11431                    v,
11432                    "UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference"
11433                );
11434                Ok(Unknown(v.to_owned()))
11435            }
11436        }
11437    }
11438}
11439impl std::fmt::Display for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11440    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11441        f.write_str(self.as_str())
11442    }
11443}
11444
11445#[cfg(not(feature = "redact-generated-debug"))]
11446impl std::fmt::Debug for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11447    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11448        f.write_str(self.as_str())
11449    }
11450}
11451#[cfg(feature = "redact-generated-debug")]
11452impl std::fmt::Debug for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11453    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11454        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference))
11455            .finish_non_exhaustive()
11456    }
11457}
11458impl serde::Serialize for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference {
11459    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11460    where
11461        S: serde::Serializer,
11462    {
11463        serializer.serialize_str(self.as_str())
11464    }
11465}
11466#[cfg(feature = "deserialize")]
11467impl<'de> serde::Deserialize<'de>
11468    for UpdatePaymentMethodConfigurationFpxDisplayPreferencePreference
11469{
11470    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11471        use std::str::FromStr;
11472        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11473        Ok(Self::from_str(&s).expect("infallible"))
11474    }
11475}
11476/// Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days.
11477/// Check this [page](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers) for more details.
11478#[derive(Clone, Eq, PartialEq)]
11479#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11480#[derive(serde::Serialize)]
11481pub struct UpdatePaymentMethodConfigurationFrMealVoucherConecs {
11482    /// Whether or not the payment method should be displayed.
11483    #[serde(skip_serializing_if = "Option::is_none")]
11484    pub display_preference:
11485        Option<UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference>,
11486}
11487#[cfg(feature = "redact-generated-debug")]
11488impl std::fmt::Debug for UpdatePaymentMethodConfigurationFrMealVoucherConecs {
11489    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11490        f.debug_struct("UpdatePaymentMethodConfigurationFrMealVoucherConecs")
11491            .finish_non_exhaustive()
11492    }
11493}
11494impl UpdatePaymentMethodConfigurationFrMealVoucherConecs {
11495    pub fn new() -> Self {
11496        Self { display_preference: None }
11497    }
11498}
11499impl Default for UpdatePaymentMethodConfigurationFrMealVoucherConecs {
11500    fn default() -> Self {
11501        Self::new()
11502    }
11503}
11504/// Whether or not the payment method should be displayed.
11505#[derive(Clone, Eq, PartialEq)]
11506#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11507#[derive(serde::Serialize)]
11508pub struct UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
11509    /// The account's preference for whether or not to display this payment method.
11510    #[serde(skip_serializing_if = "Option::is_none")]
11511    pub preference:
11512        Option<UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference>,
11513}
11514#[cfg(feature = "redact-generated-debug")]
11515impl std::fmt::Debug for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
11516    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11517        f.debug_struct("UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference")
11518            .finish_non_exhaustive()
11519    }
11520}
11521impl UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
11522    pub fn new() -> Self {
11523        Self { preference: None }
11524    }
11525}
11526impl Default for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreference {
11527    fn default() -> Self {
11528        Self::new()
11529    }
11530}
11531/// The account's preference for whether or not to display this payment method.
11532#[derive(Clone, Eq, PartialEq)]
11533#[non_exhaustive]
11534pub enum UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference {
11535    None,
11536    Off,
11537    On,
11538    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11539    Unknown(String),
11540}
11541impl UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference {
11542    pub fn as_str(&self) -> &str {
11543        use UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference::*;
11544        match self {
11545            None => "none",
11546            Off => "off",
11547            On => "on",
11548            Unknown(v) => v,
11549        }
11550    }
11551}
11552
11553impl std::str::FromStr
11554    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11555{
11556    type Err = std::convert::Infallible;
11557    fn from_str(s: &str) -> Result<Self, Self::Err> {
11558        use UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference::*;
11559        match s {
11560            "none" => Ok(None),
11561            "off" => Ok(Off),
11562            "on" => Ok(On),
11563            v => {
11564                tracing::warn!(
11565                    "Unknown value '{}' for enum '{}'",
11566                    v,
11567                    "UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference"
11568                );
11569                Ok(Unknown(v.to_owned()))
11570            }
11571        }
11572    }
11573}
11574impl std::fmt::Display
11575    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11576{
11577    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11578        f.write_str(self.as_str())
11579    }
11580}
11581
11582#[cfg(not(feature = "redact-generated-debug"))]
11583impl std::fmt::Debug
11584    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11585{
11586    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11587        f.write_str(self.as_str())
11588    }
11589}
11590#[cfg(feature = "redact-generated-debug")]
11591impl std::fmt::Debug
11592    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11593{
11594    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11595        f.debug_struct(stringify!(
11596            UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11597        ))
11598        .finish_non_exhaustive()
11599    }
11600}
11601impl serde::Serialize
11602    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11603{
11604    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11605    where
11606        S: serde::Serializer,
11607    {
11608        serializer.serialize_str(self.as_str())
11609    }
11610}
11611#[cfg(feature = "deserialize")]
11612impl<'de> serde::Deserialize<'de>
11613    for UpdatePaymentMethodConfigurationFrMealVoucherConecsDisplayPreferencePreference
11614{
11615    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11616        use std::str::FromStr;
11617        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11618        Ok(Self::from_str(&s).expect("infallible"))
11619    }
11620}
11621/// giropay is a German payment method based on online banking, introduced in 2006.
11622/// It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account.
11623/// Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN.
11624/// giropay accounts for 10% of online checkouts in Germany.
11625/// Check this [page](https://docs.stripe.com/payments/giropay) for more details.
11626#[derive(Clone, Eq, PartialEq)]
11627#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11628#[derive(serde::Serialize)]
11629pub struct UpdatePaymentMethodConfigurationGiropay {
11630    /// Whether or not the payment method should be displayed.
11631    #[serde(skip_serializing_if = "Option::is_none")]
11632    pub display_preference: Option<UpdatePaymentMethodConfigurationGiropayDisplayPreference>,
11633}
11634#[cfg(feature = "redact-generated-debug")]
11635impl std::fmt::Debug for UpdatePaymentMethodConfigurationGiropay {
11636    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11637        f.debug_struct("UpdatePaymentMethodConfigurationGiropay").finish_non_exhaustive()
11638    }
11639}
11640impl UpdatePaymentMethodConfigurationGiropay {
11641    pub fn new() -> Self {
11642        Self { display_preference: None }
11643    }
11644}
11645impl Default for UpdatePaymentMethodConfigurationGiropay {
11646    fn default() -> Self {
11647        Self::new()
11648    }
11649}
11650/// Whether or not the payment method should be displayed.
11651#[derive(Clone, Eq, PartialEq)]
11652#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11653#[derive(serde::Serialize)]
11654pub struct UpdatePaymentMethodConfigurationGiropayDisplayPreference {
11655    /// The account's preference for whether or not to display this payment method.
11656    #[serde(skip_serializing_if = "Option::is_none")]
11657    pub preference: Option<UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference>,
11658}
11659#[cfg(feature = "redact-generated-debug")]
11660impl std::fmt::Debug for UpdatePaymentMethodConfigurationGiropayDisplayPreference {
11661    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11662        f.debug_struct("UpdatePaymentMethodConfigurationGiropayDisplayPreference")
11663            .finish_non_exhaustive()
11664    }
11665}
11666impl UpdatePaymentMethodConfigurationGiropayDisplayPreference {
11667    pub fn new() -> Self {
11668        Self { preference: None }
11669    }
11670}
11671impl Default for UpdatePaymentMethodConfigurationGiropayDisplayPreference {
11672    fn default() -> Self {
11673        Self::new()
11674    }
11675}
11676/// The account's preference for whether or not to display this payment method.
11677#[derive(Clone, Eq, PartialEq)]
11678#[non_exhaustive]
11679pub enum UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11680    None,
11681    Off,
11682    On,
11683    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11684    Unknown(String),
11685}
11686impl UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11687    pub fn as_str(&self) -> &str {
11688        use UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference::*;
11689        match self {
11690            None => "none",
11691            Off => "off",
11692            On => "on",
11693            Unknown(v) => v,
11694        }
11695    }
11696}
11697
11698impl std::str::FromStr for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11699    type Err = std::convert::Infallible;
11700    fn from_str(s: &str) -> Result<Self, Self::Err> {
11701        use UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference::*;
11702        match s {
11703            "none" => Ok(None),
11704            "off" => Ok(Off),
11705            "on" => Ok(On),
11706            v => {
11707                tracing::warn!(
11708                    "Unknown value '{}' for enum '{}'",
11709                    v,
11710                    "UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference"
11711                );
11712                Ok(Unknown(v.to_owned()))
11713            }
11714        }
11715    }
11716}
11717impl std::fmt::Display for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11718    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11719        f.write_str(self.as_str())
11720    }
11721}
11722
11723#[cfg(not(feature = "redact-generated-debug"))]
11724impl std::fmt::Debug for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11725    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11726        f.write_str(self.as_str())
11727    }
11728}
11729#[cfg(feature = "redact-generated-debug")]
11730impl std::fmt::Debug for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11731    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11732        f.debug_struct(stringify!(
11733            UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference
11734        ))
11735        .finish_non_exhaustive()
11736    }
11737}
11738impl serde::Serialize for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference {
11739    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11740    where
11741        S: serde::Serializer,
11742    {
11743        serializer.serialize_str(self.as_str())
11744    }
11745}
11746#[cfg(feature = "deserialize")]
11747impl<'de> serde::Deserialize<'de>
11748    for UpdatePaymentMethodConfigurationGiropayDisplayPreferencePreference
11749{
11750    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11751        use std::str::FromStr;
11752        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11753        Ok(Self::from_str(&s).expect("infallible"))
11754    }
11755}
11756/// Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device.
11757/// Use the Google Pay API to request any credit or debit card stored in your customer's Google account.
11758/// Check this [page](https://docs.stripe.com/google-pay) for more details.
11759#[derive(Clone, Eq, PartialEq)]
11760#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11761#[derive(serde::Serialize)]
11762pub struct UpdatePaymentMethodConfigurationGooglePay {
11763    /// Whether or not the payment method should be displayed.
11764    #[serde(skip_serializing_if = "Option::is_none")]
11765    pub display_preference: Option<UpdatePaymentMethodConfigurationGooglePayDisplayPreference>,
11766}
11767#[cfg(feature = "redact-generated-debug")]
11768impl std::fmt::Debug for UpdatePaymentMethodConfigurationGooglePay {
11769    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11770        f.debug_struct("UpdatePaymentMethodConfigurationGooglePay").finish_non_exhaustive()
11771    }
11772}
11773impl UpdatePaymentMethodConfigurationGooglePay {
11774    pub fn new() -> Self {
11775        Self { display_preference: None }
11776    }
11777}
11778impl Default for UpdatePaymentMethodConfigurationGooglePay {
11779    fn default() -> Self {
11780        Self::new()
11781    }
11782}
11783/// Whether or not the payment method should be displayed.
11784#[derive(Clone, Eq, PartialEq)]
11785#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11786#[derive(serde::Serialize)]
11787pub struct UpdatePaymentMethodConfigurationGooglePayDisplayPreference {
11788    /// The account's preference for whether or not to display this payment method.
11789    #[serde(skip_serializing_if = "Option::is_none")]
11790    pub preference: Option<UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference>,
11791}
11792#[cfg(feature = "redact-generated-debug")]
11793impl std::fmt::Debug for UpdatePaymentMethodConfigurationGooglePayDisplayPreference {
11794    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11795        f.debug_struct("UpdatePaymentMethodConfigurationGooglePayDisplayPreference")
11796            .finish_non_exhaustive()
11797    }
11798}
11799impl UpdatePaymentMethodConfigurationGooglePayDisplayPreference {
11800    pub fn new() -> Self {
11801        Self { preference: None }
11802    }
11803}
11804impl Default for UpdatePaymentMethodConfigurationGooglePayDisplayPreference {
11805    fn default() -> Self {
11806        Self::new()
11807    }
11808}
11809/// The account's preference for whether or not to display this payment method.
11810#[derive(Clone, Eq, PartialEq)]
11811#[non_exhaustive]
11812pub enum UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11813    None,
11814    Off,
11815    On,
11816    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11817    Unknown(String),
11818}
11819impl UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11820    pub fn as_str(&self) -> &str {
11821        use UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference::*;
11822        match self {
11823            None => "none",
11824            Off => "off",
11825            On => "on",
11826            Unknown(v) => v,
11827        }
11828    }
11829}
11830
11831impl std::str::FromStr for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11832    type Err = std::convert::Infallible;
11833    fn from_str(s: &str) -> Result<Self, Self::Err> {
11834        use UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference::*;
11835        match s {
11836            "none" => Ok(None),
11837            "off" => Ok(Off),
11838            "on" => Ok(On),
11839            v => {
11840                tracing::warn!(
11841                    "Unknown value '{}' for enum '{}'",
11842                    v,
11843                    "UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference"
11844                );
11845                Ok(Unknown(v.to_owned()))
11846            }
11847        }
11848    }
11849}
11850impl std::fmt::Display for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11851    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11852        f.write_str(self.as_str())
11853    }
11854}
11855
11856#[cfg(not(feature = "redact-generated-debug"))]
11857impl std::fmt::Debug for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11858    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11859        f.write_str(self.as_str())
11860    }
11861}
11862#[cfg(feature = "redact-generated-debug")]
11863impl std::fmt::Debug for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11864    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11865        f.debug_struct(stringify!(
11866            UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference
11867        ))
11868        .finish_non_exhaustive()
11869    }
11870}
11871impl serde::Serialize for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference {
11872    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11873    where
11874        S: serde::Serializer,
11875    {
11876        serializer.serialize_str(self.as_str())
11877    }
11878}
11879#[cfg(feature = "deserialize")]
11880impl<'de> serde::Deserialize<'de>
11881    for UpdatePaymentMethodConfigurationGooglePayDisplayPreferencePreference
11882{
11883    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11884        use std::str::FromStr;
11885        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
11886        Ok(Self::from_str(&s).expect("infallible"))
11887    }
11888}
11889/// GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/).
11890/// GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with.
11891/// Check this [page](https://docs.stripe.com/payments/grabpay) for more details.
11892#[derive(Clone, Eq, PartialEq)]
11893#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11894#[derive(serde::Serialize)]
11895pub struct UpdatePaymentMethodConfigurationGrabpay {
11896    /// Whether or not the payment method should be displayed.
11897    #[serde(skip_serializing_if = "Option::is_none")]
11898    pub display_preference: Option<UpdatePaymentMethodConfigurationGrabpayDisplayPreference>,
11899}
11900#[cfg(feature = "redact-generated-debug")]
11901impl std::fmt::Debug for UpdatePaymentMethodConfigurationGrabpay {
11902    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11903        f.debug_struct("UpdatePaymentMethodConfigurationGrabpay").finish_non_exhaustive()
11904    }
11905}
11906impl UpdatePaymentMethodConfigurationGrabpay {
11907    pub fn new() -> Self {
11908        Self { display_preference: None }
11909    }
11910}
11911impl Default for UpdatePaymentMethodConfigurationGrabpay {
11912    fn default() -> Self {
11913        Self::new()
11914    }
11915}
11916/// Whether or not the payment method should be displayed.
11917#[derive(Clone, Eq, PartialEq)]
11918#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
11919#[derive(serde::Serialize)]
11920pub struct UpdatePaymentMethodConfigurationGrabpayDisplayPreference {
11921    /// The account's preference for whether or not to display this payment method.
11922    #[serde(skip_serializing_if = "Option::is_none")]
11923    pub preference: Option<UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference>,
11924}
11925#[cfg(feature = "redact-generated-debug")]
11926impl std::fmt::Debug for UpdatePaymentMethodConfigurationGrabpayDisplayPreference {
11927    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11928        f.debug_struct("UpdatePaymentMethodConfigurationGrabpayDisplayPreference")
11929            .finish_non_exhaustive()
11930    }
11931}
11932impl UpdatePaymentMethodConfigurationGrabpayDisplayPreference {
11933    pub fn new() -> Self {
11934        Self { preference: None }
11935    }
11936}
11937impl Default for UpdatePaymentMethodConfigurationGrabpayDisplayPreference {
11938    fn default() -> Self {
11939        Self::new()
11940    }
11941}
11942/// The account's preference for whether or not to display this payment method.
11943#[derive(Clone, Eq, PartialEq)]
11944#[non_exhaustive]
11945pub enum UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11946    None,
11947    Off,
11948    On,
11949    /// An unrecognized value from Stripe. Should not be used as a request parameter.
11950    Unknown(String),
11951}
11952impl UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11953    pub fn as_str(&self) -> &str {
11954        use UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference::*;
11955        match self {
11956            None => "none",
11957            Off => "off",
11958            On => "on",
11959            Unknown(v) => v,
11960        }
11961    }
11962}
11963
11964impl std::str::FromStr for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11965    type Err = std::convert::Infallible;
11966    fn from_str(s: &str) -> Result<Self, Self::Err> {
11967        use UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference::*;
11968        match s {
11969            "none" => Ok(None),
11970            "off" => Ok(Off),
11971            "on" => Ok(On),
11972            v => {
11973                tracing::warn!(
11974                    "Unknown value '{}' for enum '{}'",
11975                    v,
11976                    "UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference"
11977                );
11978                Ok(Unknown(v.to_owned()))
11979            }
11980        }
11981    }
11982}
11983impl std::fmt::Display for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11984    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11985        f.write_str(self.as_str())
11986    }
11987}
11988
11989#[cfg(not(feature = "redact-generated-debug"))]
11990impl std::fmt::Debug for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11991    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11992        f.write_str(self.as_str())
11993    }
11994}
11995#[cfg(feature = "redact-generated-debug")]
11996impl std::fmt::Debug for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
11997    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11998        f.debug_struct(stringify!(
11999            UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference
12000        ))
12001        .finish_non_exhaustive()
12002    }
12003}
12004impl serde::Serialize for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference {
12005    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12006    where
12007        S: serde::Serializer,
12008    {
12009        serializer.serialize_str(self.as_str())
12010    }
12011}
12012#[cfg(feature = "deserialize")]
12013impl<'de> serde::Deserialize<'de>
12014    for UpdatePaymentMethodConfigurationGrabpayDisplayPreferencePreference
12015{
12016    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12017        use std::str::FromStr;
12018        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12019        Ok(Self::from_str(&s).expect("infallible"))
12020    }
12021}
12022/// iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials.
12023/// All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%.
12024/// Check this [page](https://docs.stripe.com/payments/ideal) for more details.
12025#[derive(Clone, Eq, PartialEq)]
12026#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12027#[derive(serde::Serialize)]
12028pub struct UpdatePaymentMethodConfigurationIdeal {
12029    /// Whether or not the payment method should be displayed.
12030    #[serde(skip_serializing_if = "Option::is_none")]
12031    pub display_preference: Option<UpdatePaymentMethodConfigurationIdealDisplayPreference>,
12032}
12033#[cfg(feature = "redact-generated-debug")]
12034impl std::fmt::Debug for UpdatePaymentMethodConfigurationIdeal {
12035    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12036        f.debug_struct("UpdatePaymentMethodConfigurationIdeal").finish_non_exhaustive()
12037    }
12038}
12039impl UpdatePaymentMethodConfigurationIdeal {
12040    pub fn new() -> Self {
12041        Self { display_preference: None }
12042    }
12043}
12044impl Default for UpdatePaymentMethodConfigurationIdeal {
12045    fn default() -> Self {
12046        Self::new()
12047    }
12048}
12049/// Whether or not the payment method should be displayed.
12050#[derive(Clone, Eq, PartialEq)]
12051#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12052#[derive(serde::Serialize)]
12053pub struct UpdatePaymentMethodConfigurationIdealDisplayPreference {
12054    /// The account's preference for whether or not to display this payment method.
12055    #[serde(skip_serializing_if = "Option::is_none")]
12056    pub preference: Option<UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference>,
12057}
12058#[cfg(feature = "redact-generated-debug")]
12059impl std::fmt::Debug for UpdatePaymentMethodConfigurationIdealDisplayPreference {
12060    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12061        f.debug_struct("UpdatePaymentMethodConfigurationIdealDisplayPreference")
12062            .finish_non_exhaustive()
12063    }
12064}
12065impl UpdatePaymentMethodConfigurationIdealDisplayPreference {
12066    pub fn new() -> Self {
12067        Self { preference: None }
12068    }
12069}
12070impl Default for UpdatePaymentMethodConfigurationIdealDisplayPreference {
12071    fn default() -> Self {
12072        Self::new()
12073    }
12074}
12075/// The account's preference for whether or not to display this payment method.
12076#[derive(Clone, Eq, PartialEq)]
12077#[non_exhaustive]
12078pub enum UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12079    None,
12080    Off,
12081    On,
12082    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12083    Unknown(String),
12084}
12085impl UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12086    pub fn as_str(&self) -> &str {
12087        use UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference::*;
12088        match self {
12089            None => "none",
12090            Off => "off",
12091            On => "on",
12092            Unknown(v) => v,
12093        }
12094    }
12095}
12096
12097impl std::str::FromStr for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12098    type Err = std::convert::Infallible;
12099    fn from_str(s: &str) -> Result<Self, Self::Err> {
12100        use UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference::*;
12101        match s {
12102            "none" => Ok(None),
12103            "off" => Ok(Off),
12104            "on" => Ok(On),
12105            v => {
12106                tracing::warn!(
12107                    "Unknown value '{}' for enum '{}'",
12108                    v,
12109                    "UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference"
12110                );
12111                Ok(Unknown(v.to_owned()))
12112            }
12113        }
12114    }
12115}
12116impl std::fmt::Display for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12117    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12118        f.write_str(self.as_str())
12119    }
12120}
12121
12122#[cfg(not(feature = "redact-generated-debug"))]
12123impl std::fmt::Debug for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12124    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12125        f.write_str(self.as_str())
12126    }
12127}
12128#[cfg(feature = "redact-generated-debug")]
12129impl std::fmt::Debug for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12130    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12131        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference))
12132            .finish_non_exhaustive()
12133    }
12134}
12135impl serde::Serialize for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference {
12136    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12137    where
12138        S: serde::Serializer,
12139    {
12140        serializer.serialize_str(self.as_str())
12141    }
12142}
12143#[cfg(feature = "deserialize")]
12144impl<'de> serde::Deserialize<'de>
12145    for UpdatePaymentMethodConfigurationIdealDisplayPreferencePreference
12146{
12147    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12148        use std::str::FromStr;
12149        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12150        Ok(Self::from_str(&s).expect("infallible"))
12151    }
12152}
12153/// JCB is a credit card company based in Japan.
12154/// JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland.
12155/// Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.
12156#[derive(Clone, Eq, PartialEq)]
12157#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12158#[derive(serde::Serialize)]
12159pub struct UpdatePaymentMethodConfigurationJcb {
12160    /// Whether or not the payment method should be displayed.
12161    #[serde(skip_serializing_if = "Option::is_none")]
12162    pub display_preference: Option<UpdatePaymentMethodConfigurationJcbDisplayPreference>,
12163}
12164#[cfg(feature = "redact-generated-debug")]
12165impl std::fmt::Debug for UpdatePaymentMethodConfigurationJcb {
12166    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12167        f.debug_struct("UpdatePaymentMethodConfigurationJcb").finish_non_exhaustive()
12168    }
12169}
12170impl UpdatePaymentMethodConfigurationJcb {
12171    pub fn new() -> Self {
12172        Self { display_preference: None }
12173    }
12174}
12175impl Default for UpdatePaymentMethodConfigurationJcb {
12176    fn default() -> Self {
12177        Self::new()
12178    }
12179}
12180/// Whether or not the payment method should be displayed.
12181#[derive(Clone, Eq, PartialEq)]
12182#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12183#[derive(serde::Serialize)]
12184pub struct UpdatePaymentMethodConfigurationJcbDisplayPreference {
12185    /// The account's preference for whether or not to display this payment method.
12186    #[serde(skip_serializing_if = "Option::is_none")]
12187    pub preference: Option<UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference>,
12188}
12189#[cfg(feature = "redact-generated-debug")]
12190impl std::fmt::Debug for UpdatePaymentMethodConfigurationJcbDisplayPreference {
12191    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12192        f.debug_struct("UpdatePaymentMethodConfigurationJcbDisplayPreference")
12193            .finish_non_exhaustive()
12194    }
12195}
12196impl UpdatePaymentMethodConfigurationJcbDisplayPreference {
12197    pub fn new() -> Self {
12198        Self { preference: None }
12199    }
12200}
12201impl Default for UpdatePaymentMethodConfigurationJcbDisplayPreference {
12202    fn default() -> Self {
12203        Self::new()
12204    }
12205}
12206/// The account's preference for whether or not to display this payment method.
12207#[derive(Clone, Eq, PartialEq)]
12208#[non_exhaustive]
12209pub enum UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12210    None,
12211    Off,
12212    On,
12213    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12214    Unknown(String),
12215}
12216impl UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12217    pub fn as_str(&self) -> &str {
12218        use UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference::*;
12219        match self {
12220            None => "none",
12221            Off => "off",
12222            On => "on",
12223            Unknown(v) => v,
12224        }
12225    }
12226}
12227
12228impl std::str::FromStr for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12229    type Err = std::convert::Infallible;
12230    fn from_str(s: &str) -> Result<Self, Self::Err> {
12231        use UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference::*;
12232        match s {
12233            "none" => Ok(None),
12234            "off" => Ok(Off),
12235            "on" => Ok(On),
12236            v => {
12237                tracing::warn!(
12238                    "Unknown value '{}' for enum '{}'",
12239                    v,
12240                    "UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference"
12241                );
12242                Ok(Unknown(v.to_owned()))
12243            }
12244        }
12245    }
12246}
12247impl std::fmt::Display for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12248    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12249        f.write_str(self.as_str())
12250    }
12251}
12252
12253#[cfg(not(feature = "redact-generated-debug"))]
12254impl std::fmt::Debug for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12255    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12256        f.write_str(self.as_str())
12257    }
12258}
12259#[cfg(feature = "redact-generated-debug")]
12260impl std::fmt::Debug for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12261    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12262        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference))
12263            .finish_non_exhaustive()
12264    }
12265}
12266impl serde::Serialize for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference {
12267    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12268    where
12269        S: serde::Serializer,
12270    {
12271        serializer.serialize_str(self.as_str())
12272    }
12273}
12274#[cfg(feature = "deserialize")]
12275impl<'de> serde::Deserialize<'de>
12276    for UpdatePaymentMethodConfigurationJcbDisplayPreferencePreference
12277{
12278    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12279        use std::str::FromStr;
12280        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12281        Ok(Self::from_str(&s).expect("infallible"))
12282    }
12283}
12284/// Kakao Pay is a popular local wallet available in South Korea.
12285#[derive(Clone, Eq, PartialEq)]
12286#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12287#[derive(serde::Serialize)]
12288pub struct UpdatePaymentMethodConfigurationKakaoPay {
12289    /// Whether or not the payment method should be displayed.
12290    #[serde(skip_serializing_if = "Option::is_none")]
12291    pub display_preference: Option<UpdatePaymentMethodConfigurationKakaoPayDisplayPreference>,
12292}
12293#[cfg(feature = "redact-generated-debug")]
12294impl std::fmt::Debug for UpdatePaymentMethodConfigurationKakaoPay {
12295    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12296        f.debug_struct("UpdatePaymentMethodConfigurationKakaoPay").finish_non_exhaustive()
12297    }
12298}
12299impl UpdatePaymentMethodConfigurationKakaoPay {
12300    pub fn new() -> Self {
12301        Self { display_preference: None }
12302    }
12303}
12304impl Default for UpdatePaymentMethodConfigurationKakaoPay {
12305    fn default() -> Self {
12306        Self::new()
12307    }
12308}
12309/// Whether or not the payment method should be displayed.
12310#[derive(Clone, Eq, PartialEq)]
12311#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12312#[derive(serde::Serialize)]
12313pub struct UpdatePaymentMethodConfigurationKakaoPayDisplayPreference {
12314    /// The account's preference for whether or not to display this payment method.
12315    #[serde(skip_serializing_if = "Option::is_none")]
12316    pub preference: Option<UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference>,
12317}
12318#[cfg(feature = "redact-generated-debug")]
12319impl std::fmt::Debug for UpdatePaymentMethodConfigurationKakaoPayDisplayPreference {
12320    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12321        f.debug_struct("UpdatePaymentMethodConfigurationKakaoPayDisplayPreference")
12322            .finish_non_exhaustive()
12323    }
12324}
12325impl UpdatePaymentMethodConfigurationKakaoPayDisplayPreference {
12326    pub fn new() -> Self {
12327        Self { preference: None }
12328    }
12329}
12330impl Default for UpdatePaymentMethodConfigurationKakaoPayDisplayPreference {
12331    fn default() -> Self {
12332        Self::new()
12333    }
12334}
12335/// The account's preference for whether or not to display this payment method.
12336#[derive(Clone, Eq, PartialEq)]
12337#[non_exhaustive]
12338pub enum UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12339    None,
12340    Off,
12341    On,
12342    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12343    Unknown(String),
12344}
12345impl UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12346    pub fn as_str(&self) -> &str {
12347        use UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference::*;
12348        match self {
12349            None => "none",
12350            Off => "off",
12351            On => "on",
12352            Unknown(v) => v,
12353        }
12354    }
12355}
12356
12357impl std::str::FromStr for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12358    type Err = std::convert::Infallible;
12359    fn from_str(s: &str) -> Result<Self, Self::Err> {
12360        use UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference::*;
12361        match s {
12362            "none" => Ok(None),
12363            "off" => Ok(Off),
12364            "on" => Ok(On),
12365            v => {
12366                tracing::warn!(
12367                    "Unknown value '{}' for enum '{}'",
12368                    v,
12369                    "UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference"
12370                );
12371                Ok(Unknown(v.to_owned()))
12372            }
12373        }
12374    }
12375}
12376impl std::fmt::Display for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12377    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12378        f.write_str(self.as_str())
12379    }
12380}
12381
12382#[cfg(not(feature = "redact-generated-debug"))]
12383impl std::fmt::Debug for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12384    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12385        f.write_str(self.as_str())
12386    }
12387}
12388#[cfg(feature = "redact-generated-debug")]
12389impl std::fmt::Debug for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12390    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12391        f.debug_struct(stringify!(
12392            UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference
12393        ))
12394        .finish_non_exhaustive()
12395    }
12396}
12397impl serde::Serialize for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference {
12398    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12399    where
12400        S: serde::Serializer,
12401    {
12402        serializer.serialize_str(self.as_str())
12403    }
12404}
12405#[cfg(feature = "deserialize")]
12406impl<'de> serde::Deserialize<'de>
12407    for UpdatePaymentMethodConfigurationKakaoPayDisplayPreferencePreference
12408{
12409    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12410        use std::str::FromStr;
12411        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12412        Ok(Self::from_str(&s).expect("infallible"))
12413    }
12414}
12415/// Klarna gives customers a range of [payment options](https://docs.stripe.com/payments/klarna#payment-options) during checkout.
12416/// Available payment options vary depending on the customer's billing address and the transaction amount.
12417/// These payment options make it convenient for customers to purchase items in all price ranges.
12418/// Check this [page](https://docs.stripe.com/payments/klarna) for more details.
12419#[derive(Clone, Eq, PartialEq)]
12420#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12421#[derive(serde::Serialize)]
12422pub struct UpdatePaymentMethodConfigurationKlarna {
12423    /// Whether or not the payment method should be displayed.
12424    #[serde(skip_serializing_if = "Option::is_none")]
12425    pub display_preference: Option<UpdatePaymentMethodConfigurationKlarnaDisplayPreference>,
12426}
12427#[cfg(feature = "redact-generated-debug")]
12428impl std::fmt::Debug for UpdatePaymentMethodConfigurationKlarna {
12429    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12430        f.debug_struct("UpdatePaymentMethodConfigurationKlarna").finish_non_exhaustive()
12431    }
12432}
12433impl UpdatePaymentMethodConfigurationKlarna {
12434    pub fn new() -> Self {
12435        Self { display_preference: None }
12436    }
12437}
12438impl Default for UpdatePaymentMethodConfigurationKlarna {
12439    fn default() -> Self {
12440        Self::new()
12441    }
12442}
12443/// Whether or not the payment method should be displayed.
12444#[derive(Clone, Eq, PartialEq)]
12445#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12446#[derive(serde::Serialize)]
12447pub struct UpdatePaymentMethodConfigurationKlarnaDisplayPreference {
12448    /// The account's preference for whether or not to display this payment method.
12449    #[serde(skip_serializing_if = "Option::is_none")]
12450    pub preference: Option<UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference>,
12451}
12452#[cfg(feature = "redact-generated-debug")]
12453impl std::fmt::Debug for UpdatePaymentMethodConfigurationKlarnaDisplayPreference {
12454    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12455        f.debug_struct("UpdatePaymentMethodConfigurationKlarnaDisplayPreference")
12456            .finish_non_exhaustive()
12457    }
12458}
12459impl UpdatePaymentMethodConfigurationKlarnaDisplayPreference {
12460    pub fn new() -> Self {
12461        Self { preference: None }
12462    }
12463}
12464impl Default for UpdatePaymentMethodConfigurationKlarnaDisplayPreference {
12465    fn default() -> Self {
12466        Self::new()
12467    }
12468}
12469/// The account's preference for whether or not to display this payment method.
12470#[derive(Clone, Eq, PartialEq)]
12471#[non_exhaustive]
12472pub enum UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12473    None,
12474    Off,
12475    On,
12476    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12477    Unknown(String),
12478}
12479impl UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12480    pub fn as_str(&self) -> &str {
12481        use UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference::*;
12482        match self {
12483            None => "none",
12484            Off => "off",
12485            On => "on",
12486            Unknown(v) => v,
12487        }
12488    }
12489}
12490
12491impl std::str::FromStr for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12492    type Err = std::convert::Infallible;
12493    fn from_str(s: &str) -> Result<Self, Self::Err> {
12494        use UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference::*;
12495        match s {
12496            "none" => Ok(None),
12497            "off" => Ok(Off),
12498            "on" => Ok(On),
12499            v => {
12500                tracing::warn!(
12501                    "Unknown value '{}' for enum '{}'",
12502                    v,
12503                    "UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference"
12504                );
12505                Ok(Unknown(v.to_owned()))
12506            }
12507        }
12508    }
12509}
12510impl std::fmt::Display for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12511    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12512        f.write_str(self.as_str())
12513    }
12514}
12515
12516#[cfg(not(feature = "redact-generated-debug"))]
12517impl std::fmt::Debug for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12518    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12519        f.write_str(self.as_str())
12520    }
12521}
12522#[cfg(feature = "redact-generated-debug")]
12523impl std::fmt::Debug for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12524    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12525        f.debug_struct(stringify!(
12526            UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference
12527        ))
12528        .finish_non_exhaustive()
12529    }
12530}
12531impl serde::Serialize for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference {
12532    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12533    where
12534        S: serde::Serializer,
12535    {
12536        serializer.serialize_str(self.as_str())
12537    }
12538}
12539#[cfg(feature = "deserialize")]
12540impl<'de> serde::Deserialize<'de>
12541    for UpdatePaymentMethodConfigurationKlarnaDisplayPreferencePreference
12542{
12543    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12544        use std::str::FromStr;
12545        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12546        Ok(Self::from_str(&s).expect("infallible"))
12547    }
12548}
12549/// Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash.
12550/// Check this [page](https://docs.stripe.com/payments/konbini) for more details.
12551#[derive(Clone, Eq, PartialEq)]
12552#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12553#[derive(serde::Serialize)]
12554pub struct UpdatePaymentMethodConfigurationKonbini {
12555    /// Whether or not the payment method should be displayed.
12556    #[serde(skip_serializing_if = "Option::is_none")]
12557    pub display_preference: Option<UpdatePaymentMethodConfigurationKonbiniDisplayPreference>,
12558}
12559#[cfg(feature = "redact-generated-debug")]
12560impl std::fmt::Debug for UpdatePaymentMethodConfigurationKonbini {
12561    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12562        f.debug_struct("UpdatePaymentMethodConfigurationKonbini").finish_non_exhaustive()
12563    }
12564}
12565impl UpdatePaymentMethodConfigurationKonbini {
12566    pub fn new() -> Self {
12567        Self { display_preference: None }
12568    }
12569}
12570impl Default for UpdatePaymentMethodConfigurationKonbini {
12571    fn default() -> Self {
12572        Self::new()
12573    }
12574}
12575/// Whether or not the payment method should be displayed.
12576#[derive(Clone, Eq, PartialEq)]
12577#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12578#[derive(serde::Serialize)]
12579pub struct UpdatePaymentMethodConfigurationKonbiniDisplayPreference {
12580    /// The account's preference for whether or not to display this payment method.
12581    #[serde(skip_serializing_if = "Option::is_none")]
12582    pub preference: Option<UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference>,
12583}
12584#[cfg(feature = "redact-generated-debug")]
12585impl std::fmt::Debug for UpdatePaymentMethodConfigurationKonbiniDisplayPreference {
12586    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12587        f.debug_struct("UpdatePaymentMethodConfigurationKonbiniDisplayPreference")
12588            .finish_non_exhaustive()
12589    }
12590}
12591impl UpdatePaymentMethodConfigurationKonbiniDisplayPreference {
12592    pub fn new() -> Self {
12593        Self { preference: None }
12594    }
12595}
12596impl Default for UpdatePaymentMethodConfigurationKonbiniDisplayPreference {
12597    fn default() -> Self {
12598        Self::new()
12599    }
12600}
12601/// The account's preference for whether or not to display this payment method.
12602#[derive(Clone, Eq, PartialEq)]
12603#[non_exhaustive]
12604pub enum UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12605    None,
12606    Off,
12607    On,
12608    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12609    Unknown(String),
12610}
12611impl UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12612    pub fn as_str(&self) -> &str {
12613        use UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference::*;
12614        match self {
12615            None => "none",
12616            Off => "off",
12617            On => "on",
12618            Unknown(v) => v,
12619        }
12620    }
12621}
12622
12623impl std::str::FromStr for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12624    type Err = std::convert::Infallible;
12625    fn from_str(s: &str) -> Result<Self, Self::Err> {
12626        use UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference::*;
12627        match s {
12628            "none" => Ok(None),
12629            "off" => Ok(Off),
12630            "on" => Ok(On),
12631            v => {
12632                tracing::warn!(
12633                    "Unknown value '{}' for enum '{}'",
12634                    v,
12635                    "UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference"
12636                );
12637                Ok(Unknown(v.to_owned()))
12638            }
12639        }
12640    }
12641}
12642impl std::fmt::Display for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12643    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12644        f.write_str(self.as_str())
12645    }
12646}
12647
12648#[cfg(not(feature = "redact-generated-debug"))]
12649impl std::fmt::Debug for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12650    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12651        f.write_str(self.as_str())
12652    }
12653}
12654#[cfg(feature = "redact-generated-debug")]
12655impl std::fmt::Debug for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12656    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12657        f.debug_struct(stringify!(
12658            UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference
12659        ))
12660        .finish_non_exhaustive()
12661    }
12662}
12663impl serde::Serialize for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference {
12664    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12665    where
12666        S: serde::Serializer,
12667    {
12668        serializer.serialize_str(self.as_str())
12669    }
12670}
12671#[cfg(feature = "deserialize")]
12672impl<'de> serde::Deserialize<'de>
12673    for UpdatePaymentMethodConfigurationKonbiniDisplayPreferencePreference
12674{
12675    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12676        use std::str::FromStr;
12677        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12678        Ok(Self::from_str(&s).expect("infallible"))
12679    }
12680}
12681/// Korean cards let users pay using locally issued cards from South Korea.
12682#[derive(Clone, Eq, PartialEq)]
12683#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12684#[derive(serde::Serialize)]
12685pub struct UpdatePaymentMethodConfigurationKrCard {
12686    /// Whether or not the payment method should be displayed.
12687    #[serde(skip_serializing_if = "Option::is_none")]
12688    pub display_preference: Option<UpdatePaymentMethodConfigurationKrCardDisplayPreference>,
12689}
12690#[cfg(feature = "redact-generated-debug")]
12691impl std::fmt::Debug for UpdatePaymentMethodConfigurationKrCard {
12692    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12693        f.debug_struct("UpdatePaymentMethodConfigurationKrCard").finish_non_exhaustive()
12694    }
12695}
12696impl UpdatePaymentMethodConfigurationKrCard {
12697    pub fn new() -> Self {
12698        Self { display_preference: None }
12699    }
12700}
12701impl Default for UpdatePaymentMethodConfigurationKrCard {
12702    fn default() -> Self {
12703        Self::new()
12704    }
12705}
12706/// Whether or not the payment method should be displayed.
12707#[derive(Clone, Eq, PartialEq)]
12708#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12709#[derive(serde::Serialize)]
12710pub struct UpdatePaymentMethodConfigurationKrCardDisplayPreference {
12711    /// The account's preference for whether or not to display this payment method.
12712    #[serde(skip_serializing_if = "Option::is_none")]
12713    pub preference: Option<UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference>,
12714}
12715#[cfg(feature = "redact-generated-debug")]
12716impl std::fmt::Debug for UpdatePaymentMethodConfigurationKrCardDisplayPreference {
12717    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12718        f.debug_struct("UpdatePaymentMethodConfigurationKrCardDisplayPreference")
12719            .finish_non_exhaustive()
12720    }
12721}
12722impl UpdatePaymentMethodConfigurationKrCardDisplayPreference {
12723    pub fn new() -> Self {
12724        Self { preference: None }
12725    }
12726}
12727impl Default for UpdatePaymentMethodConfigurationKrCardDisplayPreference {
12728    fn default() -> Self {
12729        Self::new()
12730    }
12731}
12732/// The account's preference for whether or not to display this payment method.
12733#[derive(Clone, Eq, PartialEq)]
12734#[non_exhaustive]
12735pub enum UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12736    None,
12737    Off,
12738    On,
12739    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12740    Unknown(String),
12741}
12742impl UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12743    pub fn as_str(&self) -> &str {
12744        use UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference::*;
12745        match self {
12746            None => "none",
12747            Off => "off",
12748            On => "on",
12749            Unknown(v) => v,
12750        }
12751    }
12752}
12753
12754impl std::str::FromStr for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12755    type Err = std::convert::Infallible;
12756    fn from_str(s: &str) -> Result<Self, Self::Err> {
12757        use UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference::*;
12758        match s {
12759            "none" => Ok(None),
12760            "off" => Ok(Off),
12761            "on" => Ok(On),
12762            v => {
12763                tracing::warn!(
12764                    "Unknown value '{}' for enum '{}'",
12765                    v,
12766                    "UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference"
12767                );
12768                Ok(Unknown(v.to_owned()))
12769            }
12770        }
12771    }
12772}
12773impl std::fmt::Display for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12774    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12775        f.write_str(self.as_str())
12776    }
12777}
12778
12779#[cfg(not(feature = "redact-generated-debug"))]
12780impl std::fmt::Debug for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12781    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12782        f.write_str(self.as_str())
12783    }
12784}
12785#[cfg(feature = "redact-generated-debug")]
12786impl std::fmt::Debug for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12787    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12788        f.debug_struct(stringify!(
12789            UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference
12790        ))
12791        .finish_non_exhaustive()
12792    }
12793}
12794impl serde::Serialize for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference {
12795    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12796    where
12797        S: serde::Serializer,
12798    {
12799        serializer.serialize_str(self.as_str())
12800    }
12801}
12802#[cfg(feature = "deserialize")]
12803impl<'de> serde::Deserialize<'de>
12804    for UpdatePaymentMethodConfigurationKrCardDisplayPreferencePreference
12805{
12806    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12807        use std::str::FromStr;
12808        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12809        Ok(Self::from_str(&s).expect("infallible"))
12810    }
12811}
12812/// [Link](https://docs.stripe.com/payments/link) is a payment method network.
12813/// With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.
12814#[derive(Clone, Eq, PartialEq)]
12815#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12816#[derive(serde::Serialize)]
12817pub struct UpdatePaymentMethodConfigurationLink {
12818    /// Whether or not the payment method should be displayed.
12819    #[serde(skip_serializing_if = "Option::is_none")]
12820    pub display_preference: Option<UpdatePaymentMethodConfigurationLinkDisplayPreference>,
12821}
12822#[cfg(feature = "redact-generated-debug")]
12823impl std::fmt::Debug for UpdatePaymentMethodConfigurationLink {
12824    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12825        f.debug_struct("UpdatePaymentMethodConfigurationLink").finish_non_exhaustive()
12826    }
12827}
12828impl UpdatePaymentMethodConfigurationLink {
12829    pub fn new() -> Self {
12830        Self { display_preference: None }
12831    }
12832}
12833impl Default for UpdatePaymentMethodConfigurationLink {
12834    fn default() -> Self {
12835        Self::new()
12836    }
12837}
12838/// Whether or not the payment method should be displayed.
12839#[derive(Clone, Eq, PartialEq)]
12840#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12841#[derive(serde::Serialize)]
12842pub struct UpdatePaymentMethodConfigurationLinkDisplayPreference {
12843    /// The account's preference for whether or not to display this payment method.
12844    #[serde(skip_serializing_if = "Option::is_none")]
12845    pub preference: Option<UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference>,
12846}
12847#[cfg(feature = "redact-generated-debug")]
12848impl std::fmt::Debug for UpdatePaymentMethodConfigurationLinkDisplayPreference {
12849    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12850        f.debug_struct("UpdatePaymentMethodConfigurationLinkDisplayPreference")
12851            .finish_non_exhaustive()
12852    }
12853}
12854impl UpdatePaymentMethodConfigurationLinkDisplayPreference {
12855    pub fn new() -> Self {
12856        Self { preference: None }
12857    }
12858}
12859impl Default for UpdatePaymentMethodConfigurationLinkDisplayPreference {
12860    fn default() -> Self {
12861        Self::new()
12862    }
12863}
12864/// The account's preference for whether or not to display this payment method.
12865#[derive(Clone, Eq, PartialEq)]
12866#[non_exhaustive]
12867pub enum UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12868    None,
12869    Off,
12870    On,
12871    /// An unrecognized value from Stripe. Should not be used as a request parameter.
12872    Unknown(String),
12873}
12874impl UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12875    pub fn as_str(&self) -> &str {
12876        use UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference::*;
12877        match self {
12878            None => "none",
12879            Off => "off",
12880            On => "on",
12881            Unknown(v) => v,
12882        }
12883    }
12884}
12885
12886impl std::str::FromStr for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12887    type Err = std::convert::Infallible;
12888    fn from_str(s: &str) -> Result<Self, Self::Err> {
12889        use UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference::*;
12890        match s {
12891            "none" => Ok(None),
12892            "off" => Ok(Off),
12893            "on" => Ok(On),
12894            v => {
12895                tracing::warn!(
12896                    "Unknown value '{}' for enum '{}'",
12897                    v,
12898                    "UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference"
12899                );
12900                Ok(Unknown(v.to_owned()))
12901            }
12902        }
12903    }
12904}
12905impl std::fmt::Display for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12906    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12907        f.write_str(self.as_str())
12908    }
12909}
12910
12911#[cfg(not(feature = "redact-generated-debug"))]
12912impl std::fmt::Debug for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12913    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12914        f.write_str(self.as_str())
12915    }
12916}
12917#[cfg(feature = "redact-generated-debug")]
12918impl std::fmt::Debug for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12919    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12920        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference))
12921            .finish_non_exhaustive()
12922    }
12923}
12924impl serde::Serialize for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference {
12925    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
12926    where
12927        S: serde::Serializer,
12928    {
12929        serializer.serialize_str(self.as_str())
12930    }
12931}
12932#[cfg(feature = "deserialize")]
12933impl<'de> serde::Deserialize<'de>
12934    for UpdatePaymentMethodConfigurationLinkDisplayPreferencePreference
12935{
12936    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12937        use std::str::FromStr;
12938        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
12939        Ok(Self::from_str(&s).expect("infallible"))
12940    }
12941}
12942/// MB WAY is the most popular wallet in Portugal.
12943/// After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app.
12944/// Check this [page](https://docs.stripe.com/payments/mb-way) for more details.
12945#[derive(Clone, Eq, PartialEq)]
12946#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12947#[derive(serde::Serialize)]
12948pub struct UpdatePaymentMethodConfigurationMbWay {
12949    /// Whether or not the payment method should be displayed.
12950    #[serde(skip_serializing_if = "Option::is_none")]
12951    pub display_preference: Option<UpdatePaymentMethodConfigurationMbWayDisplayPreference>,
12952}
12953#[cfg(feature = "redact-generated-debug")]
12954impl std::fmt::Debug for UpdatePaymentMethodConfigurationMbWay {
12955    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12956        f.debug_struct("UpdatePaymentMethodConfigurationMbWay").finish_non_exhaustive()
12957    }
12958}
12959impl UpdatePaymentMethodConfigurationMbWay {
12960    pub fn new() -> Self {
12961        Self { display_preference: None }
12962    }
12963}
12964impl Default for UpdatePaymentMethodConfigurationMbWay {
12965    fn default() -> Self {
12966        Self::new()
12967    }
12968}
12969/// Whether or not the payment method should be displayed.
12970#[derive(Clone, Eq, PartialEq)]
12971#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
12972#[derive(serde::Serialize)]
12973pub struct UpdatePaymentMethodConfigurationMbWayDisplayPreference {
12974    /// The account's preference for whether or not to display this payment method.
12975    #[serde(skip_serializing_if = "Option::is_none")]
12976    pub preference: Option<UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference>,
12977}
12978#[cfg(feature = "redact-generated-debug")]
12979impl std::fmt::Debug for UpdatePaymentMethodConfigurationMbWayDisplayPreference {
12980    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12981        f.debug_struct("UpdatePaymentMethodConfigurationMbWayDisplayPreference")
12982            .finish_non_exhaustive()
12983    }
12984}
12985impl UpdatePaymentMethodConfigurationMbWayDisplayPreference {
12986    pub fn new() -> Self {
12987        Self { preference: None }
12988    }
12989}
12990impl Default for UpdatePaymentMethodConfigurationMbWayDisplayPreference {
12991    fn default() -> Self {
12992        Self::new()
12993    }
12994}
12995/// The account's preference for whether or not to display this payment method.
12996#[derive(Clone, Eq, PartialEq)]
12997#[non_exhaustive]
12998pub enum UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
12999    None,
13000    Off,
13001    On,
13002    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13003    Unknown(String),
13004}
13005impl UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13006    pub fn as_str(&self) -> &str {
13007        use UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference::*;
13008        match self {
13009            None => "none",
13010            Off => "off",
13011            On => "on",
13012            Unknown(v) => v,
13013        }
13014    }
13015}
13016
13017impl std::str::FromStr for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13018    type Err = std::convert::Infallible;
13019    fn from_str(s: &str) -> Result<Self, Self::Err> {
13020        use UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference::*;
13021        match s {
13022            "none" => Ok(None),
13023            "off" => Ok(Off),
13024            "on" => Ok(On),
13025            v => {
13026                tracing::warn!(
13027                    "Unknown value '{}' for enum '{}'",
13028                    v,
13029                    "UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference"
13030                );
13031                Ok(Unknown(v.to_owned()))
13032            }
13033        }
13034    }
13035}
13036impl std::fmt::Display for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13037    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13038        f.write_str(self.as_str())
13039    }
13040}
13041
13042#[cfg(not(feature = "redact-generated-debug"))]
13043impl std::fmt::Debug for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13044    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13045        f.write_str(self.as_str())
13046    }
13047}
13048#[cfg(feature = "redact-generated-debug")]
13049impl std::fmt::Debug for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13050    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13051        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference))
13052            .finish_non_exhaustive()
13053    }
13054}
13055impl serde::Serialize for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference {
13056    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13057    where
13058        S: serde::Serializer,
13059    {
13060        serializer.serialize_str(self.as_str())
13061    }
13062}
13063#[cfg(feature = "deserialize")]
13064impl<'de> serde::Deserialize<'de>
13065    for UpdatePaymentMethodConfigurationMbWayDisplayPreferencePreference
13066{
13067    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13068        use std::str::FromStr;
13069        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13070        Ok(Self::from_str(&s).expect("infallible"))
13071    }
13072}
13073/// MobilePay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland.
13074/// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the MobilePay app.
13075/// Check this [page](https://docs.stripe.com/payments/mobilepay) for more details.
13076#[derive(Clone, Eq, PartialEq)]
13077#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13078#[derive(serde::Serialize)]
13079pub struct UpdatePaymentMethodConfigurationMobilepay {
13080    /// Whether or not the payment method should be displayed.
13081    #[serde(skip_serializing_if = "Option::is_none")]
13082    pub display_preference: Option<UpdatePaymentMethodConfigurationMobilepayDisplayPreference>,
13083}
13084#[cfg(feature = "redact-generated-debug")]
13085impl std::fmt::Debug for UpdatePaymentMethodConfigurationMobilepay {
13086    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13087        f.debug_struct("UpdatePaymentMethodConfigurationMobilepay").finish_non_exhaustive()
13088    }
13089}
13090impl UpdatePaymentMethodConfigurationMobilepay {
13091    pub fn new() -> Self {
13092        Self { display_preference: None }
13093    }
13094}
13095impl Default for UpdatePaymentMethodConfigurationMobilepay {
13096    fn default() -> Self {
13097        Self::new()
13098    }
13099}
13100/// Whether or not the payment method should be displayed.
13101#[derive(Clone, Eq, PartialEq)]
13102#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13103#[derive(serde::Serialize)]
13104pub struct UpdatePaymentMethodConfigurationMobilepayDisplayPreference {
13105    /// The account's preference for whether or not to display this payment method.
13106    #[serde(skip_serializing_if = "Option::is_none")]
13107    pub preference: Option<UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference>,
13108}
13109#[cfg(feature = "redact-generated-debug")]
13110impl std::fmt::Debug for UpdatePaymentMethodConfigurationMobilepayDisplayPreference {
13111    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13112        f.debug_struct("UpdatePaymentMethodConfigurationMobilepayDisplayPreference")
13113            .finish_non_exhaustive()
13114    }
13115}
13116impl UpdatePaymentMethodConfigurationMobilepayDisplayPreference {
13117    pub fn new() -> Self {
13118        Self { preference: None }
13119    }
13120}
13121impl Default for UpdatePaymentMethodConfigurationMobilepayDisplayPreference {
13122    fn default() -> Self {
13123        Self::new()
13124    }
13125}
13126/// The account's preference for whether or not to display this payment method.
13127#[derive(Clone, Eq, PartialEq)]
13128#[non_exhaustive]
13129pub enum UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13130    None,
13131    Off,
13132    On,
13133    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13134    Unknown(String),
13135}
13136impl UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13137    pub fn as_str(&self) -> &str {
13138        use UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference::*;
13139        match self {
13140            None => "none",
13141            Off => "off",
13142            On => "on",
13143            Unknown(v) => v,
13144        }
13145    }
13146}
13147
13148impl std::str::FromStr for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13149    type Err = std::convert::Infallible;
13150    fn from_str(s: &str) -> Result<Self, Self::Err> {
13151        use UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference::*;
13152        match s {
13153            "none" => Ok(None),
13154            "off" => Ok(Off),
13155            "on" => Ok(On),
13156            v => {
13157                tracing::warn!(
13158                    "Unknown value '{}' for enum '{}'",
13159                    v,
13160                    "UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference"
13161                );
13162                Ok(Unknown(v.to_owned()))
13163            }
13164        }
13165    }
13166}
13167impl std::fmt::Display for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13168    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13169        f.write_str(self.as_str())
13170    }
13171}
13172
13173#[cfg(not(feature = "redact-generated-debug"))]
13174impl std::fmt::Debug for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13175    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13176        f.write_str(self.as_str())
13177    }
13178}
13179#[cfg(feature = "redact-generated-debug")]
13180impl std::fmt::Debug for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13181    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13182        f.debug_struct(stringify!(
13183            UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference
13184        ))
13185        .finish_non_exhaustive()
13186    }
13187}
13188impl serde::Serialize for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference {
13189    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13190    where
13191        S: serde::Serializer,
13192    {
13193        serializer.serialize_str(self.as_str())
13194    }
13195}
13196#[cfg(feature = "deserialize")]
13197impl<'de> serde::Deserialize<'de>
13198    for UpdatePaymentMethodConfigurationMobilepayDisplayPreferencePreference
13199{
13200    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13201        use std::str::FromStr;
13202        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13203        Ok(Self::from_str(&s).expect("infallible"))
13204    }
13205}
13206/// Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.
13207#[derive(Clone, Eq, PartialEq)]
13208#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13209#[derive(serde::Serialize)]
13210pub struct UpdatePaymentMethodConfigurationMultibanco {
13211    /// Whether or not the payment method should be displayed.
13212    #[serde(skip_serializing_if = "Option::is_none")]
13213    pub display_preference: Option<UpdatePaymentMethodConfigurationMultibancoDisplayPreference>,
13214}
13215#[cfg(feature = "redact-generated-debug")]
13216impl std::fmt::Debug for UpdatePaymentMethodConfigurationMultibanco {
13217    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13218        f.debug_struct("UpdatePaymentMethodConfigurationMultibanco").finish_non_exhaustive()
13219    }
13220}
13221impl UpdatePaymentMethodConfigurationMultibanco {
13222    pub fn new() -> Self {
13223        Self { display_preference: None }
13224    }
13225}
13226impl Default for UpdatePaymentMethodConfigurationMultibanco {
13227    fn default() -> Self {
13228        Self::new()
13229    }
13230}
13231/// Whether or not the payment method should be displayed.
13232#[derive(Clone, Eq, PartialEq)]
13233#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13234#[derive(serde::Serialize)]
13235pub struct UpdatePaymentMethodConfigurationMultibancoDisplayPreference {
13236    /// The account's preference for whether or not to display this payment method.
13237    #[serde(skip_serializing_if = "Option::is_none")]
13238    pub preference: Option<UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference>,
13239}
13240#[cfg(feature = "redact-generated-debug")]
13241impl std::fmt::Debug for UpdatePaymentMethodConfigurationMultibancoDisplayPreference {
13242    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13243        f.debug_struct("UpdatePaymentMethodConfigurationMultibancoDisplayPreference")
13244            .finish_non_exhaustive()
13245    }
13246}
13247impl UpdatePaymentMethodConfigurationMultibancoDisplayPreference {
13248    pub fn new() -> Self {
13249        Self { preference: None }
13250    }
13251}
13252impl Default for UpdatePaymentMethodConfigurationMultibancoDisplayPreference {
13253    fn default() -> Self {
13254        Self::new()
13255    }
13256}
13257/// The account's preference for whether or not to display this payment method.
13258#[derive(Clone, Eq, PartialEq)]
13259#[non_exhaustive]
13260pub enum UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13261    None,
13262    Off,
13263    On,
13264    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13265    Unknown(String),
13266}
13267impl UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13268    pub fn as_str(&self) -> &str {
13269        use UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference::*;
13270        match self {
13271            None => "none",
13272            Off => "off",
13273            On => "on",
13274            Unknown(v) => v,
13275        }
13276    }
13277}
13278
13279impl std::str::FromStr for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13280    type Err = std::convert::Infallible;
13281    fn from_str(s: &str) -> Result<Self, Self::Err> {
13282        use UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference::*;
13283        match s {
13284            "none" => Ok(None),
13285            "off" => Ok(Off),
13286            "on" => Ok(On),
13287            v => {
13288                tracing::warn!(
13289                    "Unknown value '{}' for enum '{}'",
13290                    v,
13291                    "UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference"
13292                );
13293                Ok(Unknown(v.to_owned()))
13294            }
13295        }
13296    }
13297}
13298impl std::fmt::Display for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13299    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13300        f.write_str(self.as_str())
13301    }
13302}
13303
13304#[cfg(not(feature = "redact-generated-debug"))]
13305impl std::fmt::Debug for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13306    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13307        f.write_str(self.as_str())
13308    }
13309}
13310#[cfg(feature = "redact-generated-debug")]
13311impl std::fmt::Debug for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13312    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13313        f.debug_struct(stringify!(
13314            UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference
13315        ))
13316        .finish_non_exhaustive()
13317    }
13318}
13319impl serde::Serialize for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference {
13320    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13321    where
13322        S: serde::Serializer,
13323    {
13324        serializer.serialize_str(self.as_str())
13325    }
13326}
13327#[cfg(feature = "deserialize")]
13328impl<'de> serde::Deserialize<'de>
13329    for UpdatePaymentMethodConfigurationMultibancoDisplayPreferencePreference
13330{
13331    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13332        use std::str::FromStr;
13333        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13334        Ok(Self::from_str(&s).expect("infallible"))
13335    }
13336}
13337/// Naver Pay is a popular local wallet available in South Korea.
13338#[derive(Clone, Eq, PartialEq)]
13339#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13340#[derive(serde::Serialize)]
13341pub struct UpdatePaymentMethodConfigurationNaverPay {
13342    /// Whether or not the payment method should be displayed.
13343    #[serde(skip_serializing_if = "Option::is_none")]
13344    pub display_preference: Option<UpdatePaymentMethodConfigurationNaverPayDisplayPreference>,
13345}
13346#[cfg(feature = "redact-generated-debug")]
13347impl std::fmt::Debug for UpdatePaymentMethodConfigurationNaverPay {
13348    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13349        f.debug_struct("UpdatePaymentMethodConfigurationNaverPay").finish_non_exhaustive()
13350    }
13351}
13352impl UpdatePaymentMethodConfigurationNaverPay {
13353    pub fn new() -> Self {
13354        Self { display_preference: None }
13355    }
13356}
13357impl Default for UpdatePaymentMethodConfigurationNaverPay {
13358    fn default() -> Self {
13359        Self::new()
13360    }
13361}
13362/// Whether or not the payment method should be displayed.
13363#[derive(Clone, Eq, PartialEq)]
13364#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13365#[derive(serde::Serialize)]
13366pub struct UpdatePaymentMethodConfigurationNaverPayDisplayPreference {
13367    /// The account's preference for whether or not to display this payment method.
13368    #[serde(skip_serializing_if = "Option::is_none")]
13369    pub preference: Option<UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference>,
13370}
13371#[cfg(feature = "redact-generated-debug")]
13372impl std::fmt::Debug for UpdatePaymentMethodConfigurationNaverPayDisplayPreference {
13373    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13374        f.debug_struct("UpdatePaymentMethodConfigurationNaverPayDisplayPreference")
13375            .finish_non_exhaustive()
13376    }
13377}
13378impl UpdatePaymentMethodConfigurationNaverPayDisplayPreference {
13379    pub fn new() -> Self {
13380        Self { preference: None }
13381    }
13382}
13383impl Default for UpdatePaymentMethodConfigurationNaverPayDisplayPreference {
13384    fn default() -> Self {
13385        Self::new()
13386    }
13387}
13388/// The account's preference for whether or not to display this payment method.
13389#[derive(Clone, Eq, PartialEq)]
13390#[non_exhaustive]
13391pub enum UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13392    None,
13393    Off,
13394    On,
13395    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13396    Unknown(String),
13397}
13398impl UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13399    pub fn as_str(&self) -> &str {
13400        use UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference::*;
13401        match self {
13402            None => "none",
13403            Off => "off",
13404            On => "on",
13405            Unknown(v) => v,
13406        }
13407    }
13408}
13409
13410impl std::str::FromStr for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13411    type Err = std::convert::Infallible;
13412    fn from_str(s: &str) -> Result<Self, Self::Err> {
13413        use UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference::*;
13414        match s {
13415            "none" => Ok(None),
13416            "off" => Ok(Off),
13417            "on" => Ok(On),
13418            v => {
13419                tracing::warn!(
13420                    "Unknown value '{}' for enum '{}'",
13421                    v,
13422                    "UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference"
13423                );
13424                Ok(Unknown(v.to_owned()))
13425            }
13426        }
13427    }
13428}
13429impl std::fmt::Display for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13430    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13431        f.write_str(self.as_str())
13432    }
13433}
13434
13435#[cfg(not(feature = "redact-generated-debug"))]
13436impl std::fmt::Debug for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13437    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13438        f.write_str(self.as_str())
13439    }
13440}
13441#[cfg(feature = "redact-generated-debug")]
13442impl std::fmt::Debug for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13443    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13444        f.debug_struct(stringify!(
13445            UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference
13446        ))
13447        .finish_non_exhaustive()
13448    }
13449}
13450impl serde::Serialize for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference {
13451    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13452    where
13453        S: serde::Serializer,
13454    {
13455        serializer.serialize_str(self.as_str())
13456    }
13457}
13458#[cfg(feature = "deserialize")]
13459impl<'de> serde::Deserialize<'de>
13460    for UpdatePaymentMethodConfigurationNaverPayDisplayPreferencePreference
13461{
13462    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13463        use std::str::FromStr;
13464        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13465        Ok(Self::from_str(&s).expect("infallible"))
13466    }
13467}
13468/// Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account.
13469/// Check this [page](https://docs.stripe.com/payments/nz-bank-account) for more details.
13470#[derive(Clone, Eq, PartialEq)]
13471#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13472#[derive(serde::Serialize)]
13473pub struct UpdatePaymentMethodConfigurationNzBankAccount {
13474    /// Whether or not the payment method should be displayed.
13475    #[serde(skip_serializing_if = "Option::is_none")]
13476    pub display_preference: Option<UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference>,
13477}
13478#[cfg(feature = "redact-generated-debug")]
13479impl std::fmt::Debug for UpdatePaymentMethodConfigurationNzBankAccount {
13480    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13481        f.debug_struct("UpdatePaymentMethodConfigurationNzBankAccount").finish_non_exhaustive()
13482    }
13483}
13484impl UpdatePaymentMethodConfigurationNzBankAccount {
13485    pub fn new() -> Self {
13486        Self { display_preference: None }
13487    }
13488}
13489impl Default for UpdatePaymentMethodConfigurationNzBankAccount {
13490    fn default() -> Self {
13491        Self::new()
13492    }
13493}
13494/// Whether or not the payment method should be displayed.
13495#[derive(Clone, Eq, PartialEq)]
13496#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13497#[derive(serde::Serialize)]
13498pub struct UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference {
13499    /// The account's preference for whether or not to display this payment method.
13500    #[serde(skip_serializing_if = "Option::is_none")]
13501    pub preference:
13502        Option<UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference>,
13503}
13504#[cfg(feature = "redact-generated-debug")]
13505impl std::fmt::Debug for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference {
13506    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13507        f.debug_struct("UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference")
13508            .finish_non_exhaustive()
13509    }
13510}
13511impl UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference {
13512    pub fn new() -> Self {
13513        Self { preference: None }
13514    }
13515}
13516impl Default for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreference {
13517    fn default() -> Self {
13518        Self::new()
13519    }
13520}
13521/// The account's preference for whether or not to display this payment method.
13522#[derive(Clone, Eq, PartialEq)]
13523#[non_exhaustive]
13524pub enum UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
13525    None,
13526    Off,
13527    On,
13528    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13529    Unknown(String),
13530}
13531impl UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
13532    pub fn as_str(&self) -> &str {
13533        use UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference::*;
13534        match self {
13535            None => "none",
13536            Off => "off",
13537            On => "on",
13538            Unknown(v) => v,
13539        }
13540    }
13541}
13542
13543impl std::str::FromStr
13544    for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
13545{
13546    type Err = std::convert::Infallible;
13547    fn from_str(s: &str) -> Result<Self, Self::Err> {
13548        use UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference::*;
13549        match s {
13550            "none" => Ok(None),
13551            "off" => Ok(Off),
13552            "on" => Ok(On),
13553            v => {
13554                tracing::warn!(
13555                    "Unknown value '{}' for enum '{}'",
13556                    v,
13557                    "UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference"
13558                );
13559                Ok(Unknown(v.to_owned()))
13560            }
13561        }
13562    }
13563}
13564impl std::fmt::Display
13565    for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
13566{
13567    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13568        f.write_str(self.as_str())
13569    }
13570}
13571
13572#[cfg(not(feature = "redact-generated-debug"))]
13573impl std::fmt::Debug for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
13574    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13575        f.write_str(self.as_str())
13576    }
13577}
13578#[cfg(feature = "redact-generated-debug")]
13579impl std::fmt::Debug for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
13580    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13581        f.debug_struct(stringify!(
13582            UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
13583        ))
13584        .finish_non_exhaustive()
13585    }
13586}
13587impl serde::Serialize for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference {
13588    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13589    where
13590        S: serde::Serializer,
13591    {
13592        serializer.serialize_str(self.as_str())
13593    }
13594}
13595#[cfg(feature = "deserialize")]
13596impl<'de> serde::Deserialize<'de>
13597    for UpdatePaymentMethodConfigurationNzBankAccountDisplayPreferencePreference
13598{
13599    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13600        use std::str::FromStr;
13601        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13602        Ok(Self::from_str(&s).expect("infallible"))
13603    }
13604}
13605/// OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico.
13606/// OXXO allows customers to pay bills and online purchases in-store with cash.
13607/// Check this [page](https://docs.stripe.com/payments/oxxo) for more details.
13608#[derive(Clone, Eq, PartialEq)]
13609#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13610#[derive(serde::Serialize)]
13611pub struct UpdatePaymentMethodConfigurationOxxo {
13612    /// Whether or not the payment method should be displayed.
13613    #[serde(skip_serializing_if = "Option::is_none")]
13614    pub display_preference: Option<UpdatePaymentMethodConfigurationOxxoDisplayPreference>,
13615}
13616#[cfg(feature = "redact-generated-debug")]
13617impl std::fmt::Debug for UpdatePaymentMethodConfigurationOxxo {
13618    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13619        f.debug_struct("UpdatePaymentMethodConfigurationOxxo").finish_non_exhaustive()
13620    }
13621}
13622impl UpdatePaymentMethodConfigurationOxxo {
13623    pub fn new() -> Self {
13624        Self { display_preference: None }
13625    }
13626}
13627impl Default for UpdatePaymentMethodConfigurationOxxo {
13628    fn default() -> Self {
13629        Self::new()
13630    }
13631}
13632/// Whether or not the payment method should be displayed.
13633#[derive(Clone, Eq, PartialEq)]
13634#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13635#[derive(serde::Serialize)]
13636pub struct UpdatePaymentMethodConfigurationOxxoDisplayPreference {
13637    /// The account's preference for whether or not to display this payment method.
13638    #[serde(skip_serializing_if = "Option::is_none")]
13639    pub preference: Option<UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference>,
13640}
13641#[cfg(feature = "redact-generated-debug")]
13642impl std::fmt::Debug for UpdatePaymentMethodConfigurationOxxoDisplayPreference {
13643    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13644        f.debug_struct("UpdatePaymentMethodConfigurationOxxoDisplayPreference")
13645            .finish_non_exhaustive()
13646    }
13647}
13648impl UpdatePaymentMethodConfigurationOxxoDisplayPreference {
13649    pub fn new() -> Self {
13650        Self { preference: None }
13651    }
13652}
13653impl Default for UpdatePaymentMethodConfigurationOxxoDisplayPreference {
13654    fn default() -> Self {
13655        Self::new()
13656    }
13657}
13658/// The account's preference for whether or not to display this payment method.
13659#[derive(Clone, Eq, PartialEq)]
13660#[non_exhaustive]
13661pub enum UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13662    None,
13663    Off,
13664    On,
13665    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13666    Unknown(String),
13667}
13668impl UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13669    pub fn as_str(&self) -> &str {
13670        use UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference::*;
13671        match self {
13672            None => "none",
13673            Off => "off",
13674            On => "on",
13675            Unknown(v) => v,
13676        }
13677    }
13678}
13679
13680impl std::str::FromStr for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13681    type Err = std::convert::Infallible;
13682    fn from_str(s: &str) -> Result<Self, Self::Err> {
13683        use UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference::*;
13684        match s {
13685            "none" => Ok(None),
13686            "off" => Ok(Off),
13687            "on" => Ok(On),
13688            v => {
13689                tracing::warn!(
13690                    "Unknown value '{}' for enum '{}'",
13691                    v,
13692                    "UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference"
13693                );
13694                Ok(Unknown(v.to_owned()))
13695            }
13696        }
13697    }
13698}
13699impl std::fmt::Display for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13700    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13701        f.write_str(self.as_str())
13702    }
13703}
13704
13705#[cfg(not(feature = "redact-generated-debug"))]
13706impl std::fmt::Debug for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13707    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13708        f.write_str(self.as_str())
13709    }
13710}
13711#[cfg(feature = "redact-generated-debug")]
13712impl std::fmt::Debug for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13713    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13714        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference))
13715            .finish_non_exhaustive()
13716    }
13717}
13718impl serde::Serialize for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference {
13719    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13720    where
13721        S: serde::Serializer,
13722    {
13723        serializer.serialize_str(self.as_str())
13724    }
13725}
13726#[cfg(feature = "deserialize")]
13727impl<'de> serde::Deserialize<'de>
13728    for UpdatePaymentMethodConfigurationOxxoDisplayPreferencePreference
13729{
13730    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13731        use std::str::FromStr;
13732        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13733        Ok(Self::from_str(&s).expect("infallible"))
13734    }
13735}
13736/// Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods.
13737/// Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks.
13738/// Check this [page](https://docs.stripe.com/payments/p24) for more details.
13739#[derive(Clone, Eq, PartialEq)]
13740#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13741#[derive(serde::Serialize)]
13742pub struct UpdatePaymentMethodConfigurationP24 {
13743    /// Whether or not the payment method should be displayed.
13744    #[serde(skip_serializing_if = "Option::is_none")]
13745    pub display_preference: Option<UpdatePaymentMethodConfigurationP24DisplayPreference>,
13746}
13747#[cfg(feature = "redact-generated-debug")]
13748impl std::fmt::Debug for UpdatePaymentMethodConfigurationP24 {
13749    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13750        f.debug_struct("UpdatePaymentMethodConfigurationP24").finish_non_exhaustive()
13751    }
13752}
13753impl UpdatePaymentMethodConfigurationP24 {
13754    pub fn new() -> Self {
13755        Self { display_preference: None }
13756    }
13757}
13758impl Default for UpdatePaymentMethodConfigurationP24 {
13759    fn default() -> Self {
13760        Self::new()
13761    }
13762}
13763/// Whether or not the payment method should be displayed.
13764#[derive(Clone, Eq, PartialEq)]
13765#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13766#[derive(serde::Serialize)]
13767pub struct UpdatePaymentMethodConfigurationP24DisplayPreference {
13768    /// The account's preference for whether or not to display this payment method.
13769    #[serde(skip_serializing_if = "Option::is_none")]
13770    pub preference: Option<UpdatePaymentMethodConfigurationP24DisplayPreferencePreference>,
13771}
13772#[cfg(feature = "redact-generated-debug")]
13773impl std::fmt::Debug for UpdatePaymentMethodConfigurationP24DisplayPreference {
13774    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13775        f.debug_struct("UpdatePaymentMethodConfigurationP24DisplayPreference")
13776            .finish_non_exhaustive()
13777    }
13778}
13779impl UpdatePaymentMethodConfigurationP24DisplayPreference {
13780    pub fn new() -> Self {
13781        Self { preference: None }
13782    }
13783}
13784impl Default for UpdatePaymentMethodConfigurationP24DisplayPreference {
13785    fn default() -> Self {
13786        Self::new()
13787    }
13788}
13789/// The account's preference for whether or not to display this payment method.
13790#[derive(Clone, Eq, PartialEq)]
13791#[non_exhaustive]
13792pub enum UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13793    None,
13794    Off,
13795    On,
13796    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13797    Unknown(String),
13798}
13799impl UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13800    pub fn as_str(&self) -> &str {
13801        use UpdatePaymentMethodConfigurationP24DisplayPreferencePreference::*;
13802        match self {
13803            None => "none",
13804            Off => "off",
13805            On => "on",
13806            Unknown(v) => v,
13807        }
13808    }
13809}
13810
13811impl std::str::FromStr for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13812    type Err = std::convert::Infallible;
13813    fn from_str(s: &str) -> Result<Self, Self::Err> {
13814        use UpdatePaymentMethodConfigurationP24DisplayPreferencePreference::*;
13815        match s {
13816            "none" => Ok(None),
13817            "off" => Ok(Off),
13818            "on" => Ok(On),
13819            v => {
13820                tracing::warn!(
13821                    "Unknown value '{}' for enum '{}'",
13822                    v,
13823                    "UpdatePaymentMethodConfigurationP24DisplayPreferencePreference"
13824                );
13825                Ok(Unknown(v.to_owned()))
13826            }
13827        }
13828    }
13829}
13830impl std::fmt::Display for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13831    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13832        f.write_str(self.as_str())
13833    }
13834}
13835
13836#[cfg(not(feature = "redact-generated-debug"))]
13837impl std::fmt::Debug for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13838    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13839        f.write_str(self.as_str())
13840    }
13841}
13842#[cfg(feature = "redact-generated-debug")]
13843impl std::fmt::Debug for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13844    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13845        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationP24DisplayPreferencePreference))
13846            .finish_non_exhaustive()
13847    }
13848}
13849impl serde::Serialize for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference {
13850    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13851    where
13852        S: serde::Serializer,
13853    {
13854        serializer.serialize_str(self.as_str())
13855    }
13856}
13857#[cfg(feature = "deserialize")]
13858impl<'de> serde::Deserialize<'de>
13859    for UpdatePaymentMethodConfigurationP24DisplayPreferencePreference
13860{
13861    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13862        use std::str::FromStr;
13863        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13864        Ok(Self::from_str(&s).expect("infallible"))
13865    }
13866}
13867/// Pay by bank is a redirect payment method backed by bank transfers.
13868/// A customer is redirected to their bank to authorize a bank transfer for a given amount.
13869/// This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments.
13870#[derive(Clone, Eq, PartialEq)]
13871#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13872#[derive(serde::Serialize)]
13873pub struct UpdatePaymentMethodConfigurationPayByBank {
13874    /// Whether or not the payment method should be displayed.
13875    #[serde(skip_serializing_if = "Option::is_none")]
13876    pub display_preference: Option<UpdatePaymentMethodConfigurationPayByBankDisplayPreference>,
13877}
13878#[cfg(feature = "redact-generated-debug")]
13879impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayByBank {
13880    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13881        f.debug_struct("UpdatePaymentMethodConfigurationPayByBank").finish_non_exhaustive()
13882    }
13883}
13884impl UpdatePaymentMethodConfigurationPayByBank {
13885    pub fn new() -> Self {
13886        Self { display_preference: None }
13887    }
13888}
13889impl Default for UpdatePaymentMethodConfigurationPayByBank {
13890    fn default() -> Self {
13891        Self::new()
13892    }
13893}
13894/// Whether or not the payment method should be displayed.
13895#[derive(Clone, Eq, PartialEq)]
13896#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
13897#[derive(serde::Serialize)]
13898pub struct UpdatePaymentMethodConfigurationPayByBankDisplayPreference {
13899    /// The account's preference for whether or not to display this payment method.
13900    #[serde(skip_serializing_if = "Option::is_none")]
13901    pub preference: Option<UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference>,
13902}
13903#[cfg(feature = "redact-generated-debug")]
13904impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayByBankDisplayPreference {
13905    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13906        f.debug_struct("UpdatePaymentMethodConfigurationPayByBankDisplayPreference")
13907            .finish_non_exhaustive()
13908    }
13909}
13910impl UpdatePaymentMethodConfigurationPayByBankDisplayPreference {
13911    pub fn new() -> Self {
13912        Self { preference: None }
13913    }
13914}
13915impl Default for UpdatePaymentMethodConfigurationPayByBankDisplayPreference {
13916    fn default() -> Self {
13917        Self::new()
13918    }
13919}
13920/// The account's preference for whether or not to display this payment method.
13921#[derive(Clone, Eq, PartialEq)]
13922#[non_exhaustive]
13923pub enum UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13924    None,
13925    Off,
13926    On,
13927    /// An unrecognized value from Stripe. Should not be used as a request parameter.
13928    Unknown(String),
13929}
13930impl UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13931    pub fn as_str(&self) -> &str {
13932        use UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference::*;
13933        match self {
13934            None => "none",
13935            Off => "off",
13936            On => "on",
13937            Unknown(v) => v,
13938        }
13939    }
13940}
13941
13942impl std::str::FromStr for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13943    type Err = std::convert::Infallible;
13944    fn from_str(s: &str) -> Result<Self, Self::Err> {
13945        use UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference::*;
13946        match s {
13947            "none" => Ok(None),
13948            "off" => Ok(Off),
13949            "on" => Ok(On),
13950            v => {
13951                tracing::warn!(
13952                    "Unknown value '{}' for enum '{}'",
13953                    v,
13954                    "UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference"
13955                );
13956                Ok(Unknown(v.to_owned()))
13957            }
13958        }
13959    }
13960}
13961impl std::fmt::Display for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13962    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13963        f.write_str(self.as_str())
13964    }
13965}
13966
13967#[cfg(not(feature = "redact-generated-debug"))]
13968impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13969    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13970        f.write_str(self.as_str())
13971    }
13972}
13973#[cfg(feature = "redact-generated-debug")]
13974impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13975    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13976        f.debug_struct(stringify!(
13977            UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference
13978        ))
13979        .finish_non_exhaustive()
13980    }
13981}
13982impl serde::Serialize for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference {
13983    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
13984    where
13985        S: serde::Serializer,
13986    {
13987        serializer.serialize_str(self.as_str())
13988    }
13989}
13990#[cfg(feature = "deserialize")]
13991impl<'de> serde::Deserialize<'de>
13992    for UpdatePaymentMethodConfigurationPayByBankDisplayPreferencePreference
13993{
13994    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13995        use std::str::FromStr;
13996        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
13997        Ok(Self::from_str(&s).expect("infallible"))
13998    }
13999}
14000/// PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
14001#[derive(Clone, Eq, PartialEq)]
14002#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14003#[derive(serde::Serialize)]
14004pub struct UpdatePaymentMethodConfigurationPayco {
14005    /// Whether or not the payment method should be displayed.
14006    #[serde(skip_serializing_if = "Option::is_none")]
14007    pub display_preference: Option<UpdatePaymentMethodConfigurationPaycoDisplayPreference>,
14008}
14009#[cfg(feature = "redact-generated-debug")]
14010impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayco {
14011    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14012        f.debug_struct("UpdatePaymentMethodConfigurationPayco").finish_non_exhaustive()
14013    }
14014}
14015impl UpdatePaymentMethodConfigurationPayco {
14016    pub fn new() -> Self {
14017        Self { display_preference: None }
14018    }
14019}
14020impl Default for UpdatePaymentMethodConfigurationPayco {
14021    fn default() -> Self {
14022        Self::new()
14023    }
14024}
14025/// Whether or not the payment method should be displayed.
14026#[derive(Clone, Eq, PartialEq)]
14027#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14028#[derive(serde::Serialize)]
14029pub struct UpdatePaymentMethodConfigurationPaycoDisplayPreference {
14030    /// The account's preference for whether or not to display this payment method.
14031    #[serde(skip_serializing_if = "Option::is_none")]
14032    pub preference: Option<UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference>,
14033}
14034#[cfg(feature = "redact-generated-debug")]
14035impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaycoDisplayPreference {
14036    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14037        f.debug_struct("UpdatePaymentMethodConfigurationPaycoDisplayPreference")
14038            .finish_non_exhaustive()
14039    }
14040}
14041impl UpdatePaymentMethodConfigurationPaycoDisplayPreference {
14042    pub fn new() -> Self {
14043        Self { preference: None }
14044    }
14045}
14046impl Default for UpdatePaymentMethodConfigurationPaycoDisplayPreference {
14047    fn default() -> Self {
14048        Self::new()
14049    }
14050}
14051/// The account's preference for whether or not to display this payment method.
14052#[derive(Clone, Eq, PartialEq)]
14053#[non_exhaustive]
14054pub enum UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14055    None,
14056    Off,
14057    On,
14058    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14059    Unknown(String),
14060}
14061impl UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14062    pub fn as_str(&self) -> &str {
14063        use UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference::*;
14064        match self {
14065            None => "none",
14066            Off => "off",
14067            On => "on",
14068            Unknown(v) => v,
14069        }
14070    }
14071}
14072
14073impl std::str::FromStr for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14074    type Err = std::convert::Infallible;
14075    fn from_str(s: &str) -> Result<Self, Self::Err> {
14076        use UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference::*;
14077        match s {
14078            "none" => Ok(None),
14079            "off" => Ok(Off),
14080            "on" => Ok(On),
14081            v => {
14082                tracing::warn!(
14083                    "Unknown value '{}' for enum '{}'",
14084                    v,
14085                    "UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference"
14086                );
14087                Ok(Unknown(v.to_owned()))
14088            }
14089        }
14090    }
14091}
14092impl std::fmt::Display for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14093    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14094        f.write_str(self.as_str())
14095    }
14096}
14097
14098#[cfg(not(feature = "redact-generated-debug"))]
14099impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14100    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14101        f.write_str(self.as_str())
14102    }
14103}
14104#[cfg(feature = "redact-generated-debug")]
14105impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14106    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14107        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference))
14108            .finish_non_exhaustive()
14109    }
14110}
14111impl serde::Serialize for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference {
14112    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14113    where
14114        S: serde::Serializer,
14115    {
14116        serializer.serialize_str(self.as_str())
14117    }
14118}
14119#[cfg(feature = "deserialize")]
14120impl<'de> serde::Deserialize<'de>
14121    for UpdatePaymentMethodConfigurationPaycoDisplayPreferencePreference
14122{
14123    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14124        use std::str::FromStr;
14125        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14126        Ok(Self::from_str(&s).expect("infallible"))
14127    }
14128}
14129/// PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions.
14130/// Check this [page](https://docs.stripe.com/payments/paynow) for more details.
14131#[derive(Clone, Eq, PartialEq)]
14132#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14133#[derive(serde::Serialize)]
14134pub struct UpdatePaymentMethodConfigurationPaynow {
14135    /// Whether or not the payment method should be displayed.
14136    #[serde(skip_serializing_if = "Option::is_none")]
14137    pub display_preference: Option<UpdatePaymentMethodConfigurationPaynowDisplayPreference>,
14138}
14139#[cfg(feature = "redact-generated-debug")]
14140impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaynow {
14141    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14142        f.debug_struct("UpdatePaymentMethodConfigurationPaynow").finish_non_exhaustive()
14143    }
14144}
14145impl UpdatePaymentMethodConfigurationPaynow {
14146    pub fn new() -> Self {
14147        Self { display_preference: None }
14148    }
14149}
14150impl Default for UpdatePaymentMethodConfigurationPaynow {
14151    fn default() -> Self {
14152        Self::new()
14153    }
14154}
14155/// Whether or not the payment method should be displayed.
14156#[derive(Clone, Eq, PartialEq)]
14157#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14158#[derive(serde::Serialize)]
14159pub struct UpdatePaymentMethodConfigurationPaynowDisplayPreference {
14160    /// The account's preference for whether or not to display this payment method.
14161    #[serde(skip_serializing_if = "Option::is_none")]
14162    pub preference: Option<UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference>,
14163}
14164#[cfg(feature = "redact-generated-debug")]
14165impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaynowDisplayPreference {
14166    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14167        f.debug_struct("UpdatePaymentMethodConfigurationPaynowDisplayPreference")
14168            .finish_non_exhaustive()
14169    }
14170}
14171impl UpdatePaymentMethodConfigurationPaynowDisplayPreference {
14172    pub fn new() -> Self {
14173        Self { preference: None }
14174    }
14175}
14176impl Default for UpdatePaymentMethodConfigurationPaynowDisplayPreference {
14177    fn default() -> Self {
14178        Self::new()
14179    }
14180}
14181/// The account's preference for whether or not to display this payment method.
14182#[derive(Clone, Eq, PartialEq)]
14183#[non_exhaustive]
14184pub enum UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14185    None,
14186    Off,
14187    On,
14188    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14189    Unknown(String),
14190}
14191impl UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14192    pub fn as_str(&self) -> &str {
14193        use UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference::*;
14194        match self {
14195            None => "none",
14196            Off => "off",
14197            On => "on",
14198            Unknown(v) => v,
14199        }
14200    }
14201}
14202
14203impl std::str::FromStr for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14204    type Err = std::convert::Infallible;
14205    fn from_str(s: &str) -> Result<Self, Self::Err> {
14206        use UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference::*;
14207        match s {
14208            "none" => Ok(None),
14209            "off" => Ok(Off),
14210            "on" => Ok(On),
14211            v => {
14212                tracing::warn!(
14213                    "Unknown value '{}' for enum '{}'",
14214                    v,
14215                    "UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference"
14216                );
14217                Ok(Unknown(v.to_owned()))
14218            }
14219        }
14220    }
14221}
14222impl std::fmt::Display for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14223    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14224        f.write_str(self.as_str())
14225    }
14226}
14227
14228#[cfg(not(feature = "redact-generated-debug"))]
14229impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14230    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14231        f.write_str(self.as_str())
14232    }
14233}
14234#[cfg(feature = "redact-generated-debug")]
14235impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14236    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14237        f.debug_struct(stringify!(
14238            UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference
14239        ))
14240        .finish_non_exhaustive()
14241    }
14242}
14243impl serde::Serialize for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference {
14244    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14245    where
14246        S: serde::Serializer,
14247    {
14248        serializer.serialize_str(self.as_str())
14249    }
14250}
14251#[cfg(feature = "deserialize")]
14252impl<'de> serde::Deserialize<'de>
14253    for UpdatePaymentMethodConfigurationPaynowDisplayPreferencePreference
14254{
14255    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14256        use std::str::FromStr;
14257        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14258        Ok(Self::from_str(&s).expect("infallible"))
14259    }
14260}
14261/// PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account.
14262/// Check this [page](https://docs.stripe.com/payments/paypal) for more details.
14263#[derive(Clone, Eq, PartialEq)]
14264#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14265#[derive(serde::Serialize)]
14266pub struct UpdatePaymentMethodConfigurationPaypal {
14267    /// Whether or not the payment method should be displayed.
14268    #[serde(skip_serializing_if = "Option::is_none")]
14269    pub display_preference: Option<UpdatePaymentMethodConfigurationPaypalDisplayPreference>,
14270}
14271#[cfg(feature = "redact-generated-debug")]
14272impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaypal {
14273    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14274        f.debug_struct("UpdatePaymentMethodConfigurationPaypal").finish_non_exhaustive()
14275    }
14276}
14277impl UpdatePaymentMethodConfigurationPaypal {
14278    pub fn new() -> Self {
14279        Self { display_preference: None }
14280    }
14281}
14282impl Default for UpdatePaymentMethodConfigurationPaypal {
14283    fn default() -> Self {
14284        Self::new()
14285    }
14286}
14287/// Whether or not the payment method should be displayed.
14288#[derive(Clone, Eq, PartialEq)]
14289#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14290#[derive(serde::Serialize)]
14291pub struct UpdatePaymentMethodConfigurationPaypalDisplayPreference {
14292    /// The account's preference for whether or not to display this payment method.
14293    #[serde(skip_serializing_if = "Option::is_none")]
14294    pub preference: Option<UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference>,
14295}
14296#[cfg(feature = "redact-generated-debug")]
14297impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaypalDisplayPreference {
14298    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14299        f.debug_struct("UpdatePaymentMethodConfigurationPaypalDisplayPreference")
14300            .finish_non_exhaustive()
14301    }
14302}
14303impl UpdatePaymentMethodConfigurationPaypalDisplayPreference {
14304    pub fn new() -> Self {
14305        Self { preference: None }
14306    }
14307}
14308impl Default for UpdatePaymentMethodConfigurationPaypalDisplayPreference {
14309    fn default() -> Self {
14310        Self::new()
14311    }
14312}
14313/// The account's preference for whether or not to display this payment method.
14314#[derive(Clone, Eq, PartialEq)]
14315#[non_exhaustive]
14316pub enum UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14317    None,
14318    Off,
14319    On,
14320    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14321    Unknown(String),
14322}
14323impl UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14324    pub fn as_str(&self) -> &str {
14325        use UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference::*;
14326        match self {
14327            None => "none",
14328            Off => "off",
14329            On => "on",
14330            Unknown(v) => v,
14331        }
14332    }
14333}
14334
14335impl std::str::FromStr for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14336    type Err = std::convert::Infallible;
14337    fn from_str(s: &str) -> Result<Self, Self::Err> {
14338        use UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference::*;
14339        match s {
14340            "none" => Ok(None),
14341            "off" => Ok(Off),
14342            "on" => Ok(On),
14343            v => {
14344                tracing::warn!(
14345                    "Unknown value '{}' for enum '{}'",
14346                    v,
14347                    "UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference"
14348                );
14349                Ok(Unknown(v.to_owned()))
14350            }
14351        }
14352    }
14353}
14354impl std::fmt::Display for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14355    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14356        f.write_str(self.as_str())
14357    }
14358}
14359
14360#[cfg(not(feature = "redact-generated-debug"))]
14361impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14362    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14363        f.write_str(self.as_str())
14364    }
14365}
14366#[cfg(feature = "redact-generated-debug")]
14367impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14368    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14369        f.debug_struct(stringify!(
14370            UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference
14371        ))
14372        .finish_non_exhaustive()
14373    }
14374}
14375impl serde::Serialize for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference {
14376    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14377    where
14378        S: serde::Serializer,
14379    {
14380        serializer.serialize_str(self.as_str())
14381    }
14382}
14383#[cfg(feature = "deserialize")]
14384impl<'de> serde::Deserialize<'de>
14385    for UpdatePaymentMethodConfigurationPaypalDisplayPreferencePreference
14386{
14387    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14388        use std::str::FromStr;
14389        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14390        Ok(Self::from_str(&s).expect("infallible"))
14391    }
14392}
14393/// PayTo is a [real-time](https://docs.stripe.com/payments/real-time) payment method that enables customers in Australia to pay by providing their bank account details.
14394/// Customers must accept a mandate authorizing you to debit their account.
14395/// Check this [page](https://docs.stripe.com/payments/payto) for more details.
14396#[derive(Clone, Eq, PartialEq)]
14397#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14398#[derive(serde::Serialize)]
14399pub struct UpdatePaymentMethodConfigurationPayto {
14400    /// Whether or not the payment method should be displayed.
14401    #[serde(skip_serializing_if = "Option::is_none")]
14402    pub display_preference: Option<UpdatePaymentMethodConfigurationPaytoDisplayPreference>,
14403}
14404#[cfg(feature = "redact-generated-debug")]
14405impl std::fmt::Debug for UpdatePaymentMethodConfigurationPayto {
14406    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14407        f.debug_struct("UpdatePaymentMethodConfigurationPayto").finish_non_exhaustive()
14408    }
14409}
14410impl UpdatePaymentMethodConfigurationPayto {
14411    pub fn new() -> Self {
14412        Self { display_preference: None }
14413    }
14414}
14415impl Default for UpdatePaymentMethodConfigurationPayto {
14416    fn default() -> Self {
14417        Self::new()
14418    }
14419}
14420/// Whether or not the payment method should be displayed.
14421#[derive(Clone, Eq, PartialEq)]
14422#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14423#[derive(serde::Serialize)]
14424pub struct UpdatePaymentMethodConfigurationPaytoDisplayPreference {
14425    /// The account's preference for whether or not to display this payment method.
14426    #[serde(skip_serializing_if = "Option::is_none")]
14427    pub preference: Option<UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference>,
14428}
14429#[cfg(feature = "redact-generated-debug")]
14430impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaytoDisplayPreference {
14431    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14432        f.debug_struct("UpdatePaymentMethodConfigurationPaytoDisplayPreference")
14433            .finish_non_exhaustive()
14434    }
14435}
14436impl UpdatePaymentMethodConfigurationPaytoDisplayPreference {
14437    pub fn new() -> Self {
14438        Self { preference: None }
14439    }
14440}
14441impl Default for UpdatePaymentMethodConfigurationPaytoDisplayPreference {
14442    fn default() -> Self {
14443        Self::new()
14444    }
14445}
14446/// The account's preference for whether or not to display this payment method.
14447#[derive(Clone, Eq, PartialEq)]
14448#[non_exhaustive]
14449pub enum UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14450    None,
14451    Off,
14452    On,
14453    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14454    Unknown(String),
14455}
14456impl UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14457    pub fn as_str(&self) -> &str {
14458        use UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference::*;
14459        match self {
14460            None => "none",
14461            Off => "off",
14462            On => "on",
14463            Unknown(v) => v,
14464        }
14465    }
14466}
14467
14468impl std::str::FromStr for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14469    type Err = std::convert::Infallible;
14470    fn from_str(s: &str) -> Result<Self, Self::Err> {
14471        use UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference::*;
14472        match s {
14473            "none" => Ok(None),
14474            "off" => Ok(Off),
14475            "on" => Ok(On),
14476            v => {
14477                tracing::warn!(
14478                    "Unknown value '{}' for enum '{}'",
14479                    v,
14480                    "UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference"
14481                );
14482                Ok(Unknown(v.to_owned()))
14483            }
14484        }
14485    }
14486}
14487impl std::fmt::Display for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14488    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14489        f.write_str(self.as_str())
14490    }
14491}
14492
14493#[cfg(not(feature = "redact-generated-debug"))]
14494impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14495    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14496        f.write_str(self.as_str())
14497    }
14498}
14499#[cfg(feature = "redact-generated-debug")]
14500impl std::fmt::Debug for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14501    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14502        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference))
14503            .finish_non_exhaustive()
14504    }
14505}
14506impl serde::Serialize for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference {
14507    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14508    where
14509        S: serde::Serializer,
14510    {
14511        serializer.serialize_str(self.as_str())
14512    }
14513}
14514#[cfg(feature = "deserialize")]
14515impl<'de> serde::Deserialize<'de>
14516    for UpdatePaymentMethodConfigurationPaytoDisplayPreferencePreference
14517{
14518    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14519        use std::str::FromStr;
14520        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14521        Ok(Self::from_str(&s).expect("infallible"))
14522    }
14523}
14524/// Pix is a payment method popular in Brazil.
14525/// When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app.
14526/// Check this [page](https://docs.stripe.com/payments/pix) for more details.
14527#[derive(Clone, Eq, PartialEq)]
14528#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14529#[derive(serde::Serialize)]
14530pub struct UpdatePaymentMethodConfigurationPix {
14531    /// Whether or not the payment method should be displayed.
14532    #[serde(skip_serializing_if = "Option::is_none")]
14533    pub display_preference: Option<UpdatePaymentMethodConfigurationPixDisplayPreference>,
14534}
14535#[cfg(feature = "redact-generated-debug")]
14536impl std::fmt::Debug for UpdatePaymentMethodConfigurationPix {
14537    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14538        f.debug_struct("UpdatePaymentMethodConfigurationPix").finish_non_exhaustive()
14539    }
14540}
14541impl UpdatePaymentMethodConfigurationPix {
14542    pub fn new() -> Self {
14543        Self { display_preference: None }
14544    }
14545}
14546impl Default for UpdatePaymentMethodConfigurationPix {
14547    fn default() -> Self {
14548        Self::new()
14549    }
14550}
14551/// Whether or not the payment method should be displayed.
14552#[derive(Clone, Eq, PartialEq)]
14553#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14554#[derive(serde::Serialize)]
14555pub struct UpdatePaymentMethodConfigurationPixDisplayPreference {
14556    /// The account's preference for whether or not to display this payment method.
14557    #[serde(skip_serializing_if = "Option::is_none")]
14558    pub preference: Option<UpdatePaymentMethodConfigurationPixDisplayPreferencePreference>,
14559}
14560#[cfg(feature = "redact-generated-debug")]
14561impl std::fmt::Debug for UpdatePaymentMethodConfigurationPixDisplayPreference {
14562    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14563        f.debug_struct("UpdatePaymentMethodConfigurationPixDisplayPreference")
14564            .finish_non_exhaustive()
14565    }
14566}
14567impl UpdatePaymentMethodConfigurationPixDisplayPreference {
14568    pub fn new() -> Self {
14569        Self { preference: None }
14570    }
14571}
14572impl Default for UpdatePaymentMethodConfigurationPixDisplayPreference {
14573    fn default() -> Self {
14574        Self::new()
14575    }
14576}
14577/// The account's preference for whether or not to display this payment method.
14578#[derive(Clone, Eq, PartialEq)]
14579#[non_exhaustive]
14580pub enum UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14581    None,
14582    Off,
14583    On,
14584    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14585    Unknown(String),
14586}
14587impl UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14588    pub fn as_str(&self) -> &str {
14589        use UpdatePaymentMethodConfigurationPixDisplayPreferencePreference::*;
14590        match self {
14591            None => "none",
14592            Off => "off",
14593            On => "on",
14594            Unknown(v) => v,
14595        }
14596    }
14597}
14598
14599impl std::str::FromStr for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14600    type Err = std::convert::Infallible;
14601    fn from_str(s: &str) -> Result<Self, Self::Err> {
14602        use UpdatePaymentMethodConfigurationPixDisplayPreferencePreference::*;
14603        match s {
14604            "none" => Ok(None),
14605            "off" => Ok(Off),
14606            "on" => Ok(On),
14607            v => {
14608                tracing::warn!(
14609                    "Unknown value '{}' for enum '{}'",
14610                    v,
14611                    "UpdatePaymentMethodConfigurationPixDisplayPreferencePreference"
14612                );
14613                Ok(Unknown(v.to_owned()))
14614            }
14615        }
14616    }
14617}
14618impl std::fmt::Display for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14619    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14620        f.write_str(self.as_str())
14621    }
14622}
14623
14624#[cfg(not(feature = "redact-generated-debug"))]
14625impl std::fmt::Debug for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14626    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14627        f.write_str(self.as_str())
14628    }
14629}
14630#[cfg(feature = "redact-generated-debug")]
14631impl std::fmt::Debug for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14632    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14633        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationPixDisplayPreferencePreference))
14634            .finish_non_exhaustive()
14635    }
14636}
14637impl serde::Serialize for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference {
14638    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14639    where
14640        S: serde::Serializer,
14641    {
14642        serializer.serialize_str(self.as_str())
14643    }
14644}
14645#[cfg(feature = "deserialize")]
14646impl<'de> serde::Deserialize<'de>
14647    for UpdatePaymentMethodConfigurationPixDisplayPreferencePreference
14648{
14649    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14650        use std::str::FromStr;
14651        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14652        Ok(Self::from_str(&s).expect("infallible"))
14653    }
14654}
14655/// PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks.
14656/// Check this [page](https://docs.stripe.com/payments/promptpay) for more details.
14657#[derive(Clone, Eq, PartialEq)]
14658#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14659#[derive(serde::Serialize)]
14660pub struct UpdatePaymentMethodConfigurationPromptpay {
14661    /// Whether or not the payment method should be displayed.
14662    #[serde(skip_serializing_if = "Option::is_none")]
14663    pub display_preference: Option<UpdatePaymentMethodConfigurationPromptpayDisplayPreference>,
14664}
14665#[cfg(feature = "redact-generated-debug")]
14666impl std::fmt::Debug for UpdatePaymentMethodConfigurationPromptpay {
14667    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14668        f.debug_struct("UpdatePaymentMethodConfigurationPromptpay").finish_non_exhaustive()
14669    }
14670}
14671impl UpdatePaymentMethodConfigurationPromptpay {
14672    pub fn new() -> Self {
14673        Self { display_preference: None }
14674    }
14675}
14676impl Default for UpdatePaymentMethodConfigurationPromptpay {
14677    fn default() -> Self {
14678        Self::new()
14679    }
14680}
14681/// Whether or not the payment method should be displayed.
14682#[derive(Clone, Eq, PartialEq)]
14683#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14684#[derive(serde::Serialize)]
14685pub struct UpdatePaymentMethodConfigurationPromptpayDisplayPreference {
14686    /// The account's preference for whether or not to display this payment method.
14687    #[serde(skip_serializing_if = "Option::is_none")]
14688    pub preference: Option<UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference>,
14689}
14690#[cfg(feature = "redact-generated-debug")]
14691impl std::fmt::Debug for UpdatePaymentMethodConfigurationPromptpayDisplayPreference {
14692    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14693        f.debug_struct("UpdatePaymentMethodConfigurationPromptpayDisplayPreference")
14694            .finish_non_exhaustive()
14695    }
14696}
14697impl UpdatePaymentMethodConfigurationPromptpayDisplayPreference {
14698    pub fn new() -> Self {
14699        Self { preference: None }
14700    }
14701}
14702impl Default for UpdatePaymentMethodConfigurationPromptpayDisplayPreference {
14703    fn default() -> Self {
14704        Self::new()
14705    }
14706}
14707/// The account's preference for whether or not to display this payment method.
14708#[derive(Clone, Eq, PartialEq)]
14709#[non_exhaustive]
14710pub enum UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14711    None,
14712    Off,
14713    On,
14714    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14715    Unknown(String),
14716}
14717impl UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14718    pub fn as_str(&self) -> &str {
14719        use UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference::*;
14720        match self {
14721            None => "none",
14722            Off => "off",
14723            On => "on",
14724            Unknown(v) => v,
14725        }
14726    }
14727}
14728
14729impl std::str::FromStr for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14730    type Err = std::convert::Infallible;
14731    fn from_str(s: &str) -> Result<Self, Self::Err> {
14732        use UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference::*;
14733        match s {
14734            "none" => Ok(None),
14735            "off" => Ok(Off),
14736            "on" => Ok(On),
14737            v => {
14738                tracing::warn!(
14739                    "Unknown value '{}' for enum '{}'",
14740                    v,
14741                    "UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference"
14742                );
14743                Ok(Unknown(v.to_owned()))
14744            }
14745        }
14746    }
14747}
14748impl std::fmt::Display for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14749    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14750        f.write_str(self.as_str())
14751    }
14752}
14753
14754#[cfg(not(feature = "redact-generated-debug"))]
14755impl std::fmt::Debug for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14756    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14757        f.write_str(self.as_str())
14758    }
14759}
14760#[cfg(feature = "redact-generated-debug")]
14761impl std::fmt::Debug for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14762    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14763        f.debug_struct(stringify!(
14764            UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference
14765        ))
14766        .finish_non_exhaustive()
14767    }
14768}
14769impl serde::Serialize for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference {
14770    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14771    where
14772        S: serde::Serializer,
14773    {
14774        serializer.serialize_str(self.as_str())
14775    }
14776}
14777#[cfg(feature = "deserialize")]
14778impl<'de> serde::Deserialize<'de>
14779    for UpdatePaymentMethodConfigurationPromptpayDisplayPreferencePreference
14780{
14781    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14782        use std::str::FromStr;
14783        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14784        Ok(Self::from_str(&s).expect("infallible"))
14785    }
14786}
14787/// Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method.
14788/// Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.
14789#[derive(Clone, Eq, PartialEq)]
14790#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14791#[derive(serde::Serialize)]
14792pub struct UpdatePaymentMethodConfigurationRevolutPay {
14793    /// Whether or not the payment method should be displayed.
14794    #[serde(skip_serializing_if = "Option::is_none")]
14795    pub display_preference: Option<UpdatePaymentMethodConfigurationRevolutPayDisplayPreference>,
14796}
14797#[cfg(feature = "redact-generated-debug")]
14798impl std::fmt::Debug for UpdatePaymentMethodConfigurationRevolutPay {
14799    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14800        f.debug_struct("UpdatePaymentMethodConfigurationRevolutPay").finish_non_exhaustive()
14801    }
14802}
14803impl UpdatePaymentMethodConfigurationRevolutPay {
14804    pub fn new() -> Self {
14805        Self { display_preference: None }
14806    }
14807}
14808impl Default for UpdatePaymentMethodConfigurationRevolutPay {
14809    fn default() -> Self {
14810        Self::new()
14811    }
14812}
14813/// Whether or not the payment method should be displayed.
14814#[derive(Clone, Eq, PartialEq)]
14815#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14816#[derive(serde::Serialize)]
14817pub struct UpdatePaymentMethodConfigurationRevolutPayDisplayPreference {
14818    /// The account's preference for whether or not to display this payment method.
14819    #[serde(skip_serializing_if = "Option::is_none")]
14820    pub preference: Option<UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference>,
14821}
14822#[cfg(feature = "redact-generated-debug")]
14823impl std::fmt::Debug for UpdatePaymentMethodConfigurationRevolutPayDisplayPreference {
14824    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14825        f.debug_struct("UpdatePaymentMethodConfigurationRevolutPayDisplayPreference")
14826            .finish_non_exhaustive()
14827    }
14828}
14829impl UpdatePaymentMethodConfigurationRevolutPayDisplayPreference {
14830    pub fn new() -> Self {
14831        Self { preference: None }
14832    }
14833}
14834impl Default for UpdatePaymentMethodConfigurationRevolutPayDisplayPreference {
14835    fn default() -> Self {
14836        Self::new()
14837    }
14838}
14839/// The account's preference for whether or not to display this payment method.
14840#[derive(Clone, Eq, PartialEq)]
14841#[non_exhaustive]
14842pub enum UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14843    None,
14844    Off,
14845    On,
14846    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14847    Unknown(String),
14848}
14849impl UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14850    pub fn as_str(&self) -> &str {
14851        use UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference::*;
14852        match self {
14853            None => "none",
14854            Off => "off",
14855            On => "on",
14856            Unknown(v) => v,
14857        }
14858    }
14859}
14860
14861impl std::str::FromStr for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14862    type Err = std::convert::Infallible;
14863    fn from_str(s: &str) -> Result<Self, Self::Err> {
14864        use UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference::*;
14865        match s {
14866            "none" => Ok(None),
14867            "off" => Ok(Off),
14868            "on" => Ok(On),
14869            v => {
14870                tracing::warn!(
14871                    "Unknown value '{}' for enum '{}'",
14872                    v,
14873                    "UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference"
14874                );
14875                Ok(Unknown(v.to_owned()))
14876            }
14877        }
14878    }
14879}
14880impl std::fmt::Display for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14881    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14882        f.write_str(self.as_str())
14883    }
14884}
14885
14886#[cfg(not(feature = "redact-generated-debug"))]
14887impl std::fmt::Debug for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14888    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14889        f.write_str(self.as_str())
14890    }
14891}
14892#[cfg(feature = "redact-generated-debug")]
14893impl std::fmt::Debug for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14894    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14895        f.debug_struct(stringify!(
14896            UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference
14897        ))
14898        .finish_non_exhaustive()
14899    }
14900}
14901impl serde::Serialize for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference {
14902    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
14903    where
14904        S: serde::Serializer,
14905    {
14906        serializer.serialize_str(self.as_str())
14907    }
14908}
14909#[cfg(feature = "deserialize")]
14910impl<'de> serde::Deserialize<'de>
14911    for UpdatePaymentMethodConfigurationRevolutPayDisplayPreferencePreference
14912{
14913    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14914        use std::str::FromStr;
14915        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
14916        Ok(Self::from_str(&s).expect("infallible"))
14917    }
14918}
14919/// Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
14920#[derive(Clone, Eq, PartialEq)]
14921#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14922#[derive(serde::Serialize)]
14923pub struct UpdatePaymentMethodConfigurationSamsungPay {
14924    /// Whether or not the payment method should be displayed.
14925    #[serde(skip_serializing_if = "Option::is_none")]
14926    pub display_preference: Option<UpdatePaymentMethodConfigurationSamsungPayDisplayPreference>,
14927}
14928#[cfg(feature = "redact-generated-debug")]
14929impl std::fmt::Debug for UpdatePaymentMethodConfigurationSamsungPay {
14930    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14931        f.debug_struct("UpdatePaymentMethodConfigurationSamsungPay").finish_non_exhaustive()
14932    }
14933}
14934impl UpdatePaymentMethodConfigurationSamsungPay {
14935    pub fn new() -> Self {
14936        Self { display_preference: None }
14937    }
14938}
14939impl Default for UpdatePaymentMethodConfigurationSamsungPay {
14940    fn default() -> Self {
14941        Self::new()
14942    }
14943}
14944/// Whether or not the payment method should be displayed.
14945#[derive(Clone, Eq, PartialEq)]
14946#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
14947#[derive(serde::Serialize)]
14948pub struct UpdatePaymentMethodConfigurationSamsungPayDisplayPreference {
14949    /// The account's preference for whether or not to display this payment method.
14950    #[serde(skip_serializing_if = "Option::is_none")]
14951    pub preference: Option<UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference>,
14952}
14953#[cfg(feature = "redact-generated-debug")]
14954impl std::fmt::Debug for UpdatePaymentMethodConfigurationSamsungPayDisplayPreference {
14955    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14956        f.debug_struct("UpdatePaymentMethodConfigurationSamsungPayDisplayPreference")
14957            .finish_non_exhaustive()
14958    }
14959}
14960impl UpdatePaymentMethodConfigurationSamsungPayDisplayPreference {
14961    pub fn new() -> Self {
14962        Self { preference: None }
14963    }
14964}
14965impl Default for UpdatePaymentMethodConfigurationSamsungPayDisplayPreference {
14966    fn default() -> Self {
14967        Self::new()
14968    }
14969}
14970/// The account's preference for whether or not to display this payment method.
14971#[derive(Clone, Eq, PartialEq)]
14972#[non_exhaustive]
14973pub enum UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
14974    None,
14975    Off,
14976    On,
14977    /// An unrecognized value from Stripe. Should not be used as a request parameter.
14978    Unknown(String),
14979}
14980impl UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
14981    pub fn as_str(&self) -> &str {
14982        use UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference::*;
14983        match self {
14984            None => "none",
14985            Off => "off",
14986            On => "on",
14987            Unknown(v) => v,
14988        }
14989    }
14990}
14991
14992impl std::str::FromStr for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
14993    type Err = std::convert::Infallible;
14994    fn from_str(s: &str) -> Result<Self, Self::Err> {
14995        use UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference::*;
14996        match s {
14997            "none" => Ok(None),
14998            "off" => Ok(Off),
14999            "on" => Ok(On),
15000            v => {
15001                tracing::warn!(
15002                    "Unknown value '{}' for enum '{}'",
15003                    v,
15004                    "UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference"
15005                );
15006                Ok(Unknown(v.to_owned()))
15007            }
15008        }
15009    }
15010}
15011impl std::fmt::Display for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
15012    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15013        f.write_str(self.as_str())
15014    }
15015}
15016
15017#[cfg(not(feature = "redact-generated-debug"))]
15018impl std::fmt::Debug for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
15019    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15020        f.write_str(self.as_str())
15021    }
15022}
15023#[cfg(feature = "redact-generated-debug")]
15024impl std::fmt::Debug for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
15025    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15026        f.debug_struct(stringify!(
15027            UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference
15028        ))
15029        .finish_non_exhaustive()
15030    }
15031}
15032impl serde::Serialize for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference {
15033    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15034    where
15035        S: serde::Serializer,
15036    {
15037        serializer.serialize_str(self.as_str())
15038    }
15039}
15040#[cfg(feature = "deserialize")]
15041impl<'de> serde::Deserialize<'de>
15042    for UpdatePaymentMethodConfigurationSamsungPayDisplayPreferencePreference
15043{
15044    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15045        use std::str::FromStr;
15046        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15047        Ok(Self::from_str(&s).expect("infallible"))
15048    }
15049}
15050/// Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](/payments/payment-methods#customer-actions) their payment.
15051/// Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app.
15052/// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
15053#[derive(Clone, Eq, PartialEq)]
15054#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15055#[derive(serde::Serialize)]
15056pub struct UpdatePaymentMethodConfigurationSatispay {
15057    /// Whether or not the payment method should be displayed.
15058    #[serde(skip_serializing_if = "Option::is_none")]
15059    pub display_preference: Option<UpdatePaymentMethodConfigurationSatispayDisplayPreference>,
15060}
15061#[cfg(feature = "redact-generated-debug")]
15062impl std::fmt::Debug for UpdatePaymentMethodConfigurationSatispay {
15063    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15064        f.debug_struct("UpdatePaymentMethodConfigurationSatispay").finish_non_exhaustive()
15065    }
15066}
15067impl UpdatePaymentMethodConfigurationSatispay {
15068    pub fn new() -> Self {
15069        Self { display_preference: None }
15070    }
15071}
15072impl Default for UpdatePaymentMethodConfigurationSatispay {
15073    fn default() -> Self {
15074        Self::new()
15075    }
15076}
15077/// Whether or not the payment method should be displayed.
15078#[derive(Clone, Eq, PartialEq)]
15079#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15080#[derive(serde::Serialize)]
15081pub struct UpdatePaymentMethodConfigurationSatispayDisplayPreference {
15082    /// The account's preference for whether or not to display this payment method.
15083    #[serde(skip_serializing_if = "Option::is_none")]
15084    pub preference: Option<UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference>,
15085}
15086#[cfg(feature = "redact-generated-debug")]
15087impl std::fmt::Debug for UpdatePaymentMethodConfigurationSatispayDisplayPreference {
15088    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15089        f.debug_struct("UpdatePaymentMethodConfigurationSatispayDisplayPreference")
15090            .finish_non_exhaustive()
15091    }
15092}
15093impl UpdatePaymentMethodConfigurationSatispayDisplayPreference {
15094    pub fn new() -> Self {
15095        Self { preference: None }
15096    }
15097}
15098impl Default for UpdatePaymentMethodConfigurationSatispayDisplayPreference {
15099    fn default() -> Self {
15100        Self::new()
15101    }
15102}
15103/// The account's preference for whether or not to display this payment method.
15104#[derive(Clone, Eq, PartialEq)]
15105#[non_exhaustive]
15106pub enum UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15107    None,
15108    Off,
15109    On,
15110    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15111    Unknown(String),
15112}
15113impl UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15114    pub fn as_str(&self) -> &str {
15115        use UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference::*;
15116        match self {
15117            None => "none",
15118            Off => "off",
15119            On => "on",
15120            Unknown(v) => v,
15121        }
15122    }
15123}
15124
15125impl std::str::FromStr for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15126    type Err = std::convert::Infallible;
15127    fn from_str(s: &str) -> Result<Self, Self::Err> {
15128        use UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference::*;
15129        match s {
15130            "none" => Ok(None),
15131            "off" => Ok(Off),
15132            "on" => Ok(On),
15133            v => {
15134                tracing::warn!(
15135                    "Unknown value '{}' for enum '{}'",
15136                    v,
15137                    "UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference"
15138                );
15139                Ok(Unknown(v.to_owned()))
15140            }
15141        }
15142    }
15143}
15144impl std::fmt::Display for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15145    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15146        f.write_str(self.as_str())
15147    }
15148}
15149
15150#[cfg(not(feature = "redact-generated-debug"))]
15151impl std::fmt::Debug for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15152    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15153        f.write_str(self.as_str())
15154    }
15155}
15156#[cfg(feature = "redact-generated-debug")]
15157impl std::fmt::Debug for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15158    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15159        f.debug_struct(stringify!(
15160            UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference
15161        ))
15162        .finish_non_exhaustive()
15163    }
15164}
15165impl serde::Serialize for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference {
15166    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15167    where
15168        S: serde::Serializer,
15169    {
15170        serializer.serialize_str(self.as_str())
15171    }
15172}
15173#[cfg(feature = "deserialize")]
15174impl<'de> serde::Deserialize<'de>
15175    for UpdatePaymentMethodConfigurationSatispayDisplayPreferencePreference
15176{
15177    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15178        use std::str::FromStr;
15179        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15180        Ok(Self::from_str(&s).expect("infallible"))
15181    }
15182}
15183/// The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries.
15184/// SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://docs.stripe.com/payments/sepa-debit) for more details.
15185#[derive(Clone, Eq, PartialEq)]
15186#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15187#[derive(serde::Serialize)]
15188pub struct UpdatePaymentMethodConfigurationSepaDebit {
15189    /// Whether or not the payment method should be displayed.
15190    #[serde(skip_serializing_if = "Option::is_none")]
15191    pub display_preference: Option<UpdatePaymentMethodConfigurationSepaDebitDisplayPreference>,
15192}
15193#[cfg(feature = "redact-generated-debug")]
15194impl std::fmt::Debug for UpdatePaymentMethodConfigurationSepaDebit {
15195    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15196        f.debug_struct("UpdatePaymentMethodConfigurationSepaDebit").finish_non_exhaustive()
15197    }
15198}
15199impl UpdatePaymentMethodConfigurationSepaDebit {
15200    pub fn new() -> Self {
15201        Self { display_preference: None }
15202    }
15203}
15204impl Default for UpdatePaymentMethodConfigurationSepaDebit {
15205    fn default() -> Self {
15206        Self::new()
15207    }
15208}
15209/// Whether or not the payment method should be displayed.
15210#[derive(Clone, Eq, PartialEq)]
15211#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15212#[derive(serde::Serialize)]
15213pub struct UpdatePaymentMethodConfigurationSepaDebitDisplayPreference {
15214    /// The account's preference for whether or not to display this payment method.
15215    #[serde(skip_serializing_if = "Option::is_none")]
15216    pub preference: Option<UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference>,
15217}
15218#[cfg(feature = "redact-generated-debug")]
15219impl std::fmt::Debug for UpdatePaymentMethodConfigurationSepaDebitDisplayPreference {
15220    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15221        f.debug_struct("UpdatePaymentMethodConfigurationSepaDebitDisplayPreference")
15222            .finish_non_exhaustive()
15223    }
15224}
15225impl UpdatePaymentMethodConfigurationSepaDebitDisplayPreference {
15226    pub fn new() -> Self {
15227        Self { preference: None }
15228    }
15229}
15230impl Default for UpdatePaymentMethodConfigurationSepaDebitDisplayPreference {
15231    fn default() -> Self {
15232        Self::new()
15233    }
15234}
15235/// The account's preference for whether or not to display this payment method.
15236#[derive(Clone, Eq, PartialEq)]
15237#[non_exhaustive]
15238pub enum UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15239    None,
15240    Off,
15241    On,
15242    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15243    Unknown(String),
15244}
15245impl UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15246    pub fn as_str(&self) -> &str {
15247        use UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference::*;
15248        match self {
15249            None => "none",
15250            Off => "off",
15251            On => "on",
15252            Unknown(v) => v,
15253        }
15254    }
15255}
15256
15257impl std::str::FromStr for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15258    type Err = std::convert::Infallible;
15259    fn from_str(s: &str) -> Result<Self, Self::Err> {
15260        use UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference::*;
15261        match s {
15262            "none" => Ok(None),
15263            "off" => Ok(Off),
15264            "on" => Ok(On),
15265            v => {
15266                tracing::warn!(
15267                    "Unknown value '{}' for enum '{}'",
15268                    v,
15269                    "UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference"
15270                );
15271                Ok(Unknown(v.to_owned()))
15272            }
15273        }
15274    }
15275}
15276impl std::fmt::Display for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15277    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15278        f.write_str(self.as_str())
15279    }
15280}
15281
15282#[cfg(not(feature = "redact-generated-debug"))]
15283impl std::fmt::Debug for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15284    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15285        f.write_str(self.as_str())
15286    }
15287}
15288#[cfg(feature = "redact-generated-debug")]
15289impl std::fmt::Debug for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15290    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15291        f.debug_struct(stringify!(
15292            UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference
15293        ))
15294        .finish_non_exhaustive()
15295    }
15296}
15297impl serde::Serialize for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference {
15298    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15299    where
15300        S: serde::Serializer,
15301    {
15302        serializer.serialize_str(self.as_str())
15303    }
15304}
15305#[cfg(feature = "deserialize")]
15306impl<'de> serde::Deserialize<'de>
15307    for UpdatePaymentMethodConfigurationSepaDebitDisplayPreferencePreference
15308{
15309    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15310        use std::str::FromStr;
15311        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15312        Ok(Self::from_str(&s).expect("infallible"))
15313    }
15314}
15315/// Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers.
15316/// Check this [page](https://docs.stripe.com/payments/sofort) for more details.
15317#[derive(Clone, Eq, PartialEq)]
15318#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15319#[derive(serde::Serialize)]
15320pub struct UpdatePaymentMethodConfigurationSofort {
15321    /// Whether or not the payment method should be displayed.
15322    #[serde(skip_serializing_if = "Option::is_none")]
15323    pub display_preference: Option<UpdatePaymentMethodConfigurationSofortDisplayPreference>,
15324}
15325#[cfg(feature = "redact-generated-debug")]
15326impl std::fmt::Debug for UpdatePaymentMethodConfigurationSofort {
15327    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15328        f.debug_struct("UpdatePaymentMethodConfigurationSofort").finish_non_exhaustive()
15329    }
15330}
15331impl UpdatePaymentMethodConfigurationSofort {
15332    pub fn new() -> Self {
15333        Self { display_preference: None }
15334    }
15335}
15336impl Default for UpdatePaymentMethodConfigurationSofort {
15337    fn default() -> Self {
15338        Self::new()
15339    }
15340}
15341/// Whether or not the payment method should be displayed.
15342#[derive(Clone, Eq, PartialEq)]
15343#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15344#[derive(serde::Serialize)]
15345pub struct UpdatePaymentMethodConfigurationSofortDisplayPreference {
15346    /// The account's preference for whether or not to display this payment method.
15347    #[serde(skip_serializing_if = "Option::is_none")]
15348    pub preference: Option<UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference>,
15349}
15350#[cfg(feature = "redact-generated-debug")]
15351impl std::fmt::Debug for UpdatePaymentMethodConfigurationSofortDisplayPreference {
15352    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15353        f.debug_struct("UpdatePaymentMethodConfigurationSofortDisplayPreference")
15354            .finish_non_exhaustive()
15355    }
15356}
15357impl UpdatePaymentMethodConfigurationSofortDisplayPreference {
15358    pub fn new() -> Self {
15359        Self { preference: None }
15360    }
15361}
15362impl Default for UpdatePaymentMethodConfigurationSofortDisplayPreference {
15363    fn default() -> Self {
15364        Self::new()
15365    }
15366}
15367/// The account's preference for whether or not to display this payment method.
15368#[derive(Clone, Eq, PartialEq)]
15369#[non_exhaustive]
15370pub enum UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15371    None,
15372    Off,
15373    On,
15374    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15375    Unknown(String),
15376}
15377impl UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15378    pub fn as_str(&self) -> &str {
15379        use UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference::*;
15380        match self {
15381            None => "none",
15382            Off => "off",
15383            On => "on",
15384            Unknown(v) => v,
15385        }
15386    }
15387}
15388
15389impl std::str::FromStr for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15390    type Err = std::convert::Infallible;
15391    fn from_str(s: &str) -> Result<Self, Self::Err> {
15392        use UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference::*;
15393        match s {
15394            "none" => Ok(None),
15395            "off" => Ok(Off),
15396            "on" => Ok(On),
15397            v => {
15398                tracing::warn!(
15399                    "Unknown value '{}' for enum '{}'",
15400                    v,
15401                    "UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference"
15402                );
15403                Ok(Unknown(v.to_owned()))
15404            }
15405        }
15406    }
15407}
15408impl std::fmt::Display for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15409    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15410        f.write_str(self.as_str())
15411    }
15412}
15413
15414#[cfg(not(feature = "redact-generated-debug"))]
15415impl std::fmt::Debug for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15416    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15417        f.write_str(self.as_str())
15418    }
15419}
15420#[cfg(feature = "redact-generated-debug")]
15421impl std::fmt::Debug for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15422    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15423        f.debug_struct(stringify!(
15424            UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference
15425        ))
15426        .finish_non_exhaustive()
15427    }
15428}
15429impl serde::Serialize for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference {
15430    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15431    where
15432        S: serde::Serializer,
15433    {
15434        serializer.serialize_str(self.as_str())
15435    }
15436}
15437#[cfg(feature = "deserialize")]
15438impl<'de> serde::Deserialize<'de>
15439    for UpdatePaymentMethodConfigurationSofortDisplayPreferencePreference
15440{
15441    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15442        use std::str::FromStr;
15443        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15444        Ok(Self::from_str(&s).expect("infallible"))
15445    }
15446}
15447/// Swish is a [real-time](https://docs.stripe.com/payments/real-time) payment method popular in Sweden.
15448/// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app.
15449/// Check this [page](https://docs.stripe.com/payments/swish) for more details.
15450#[derive(Clone, Eq, PartialEq)]
15451#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15452#[derive(serde::Serialize)]
15453pub struct UpdatePaymentMethodConfigurationSwish {
15454    /// Whether or not the payment method should be displayed.
15455    #[serde(skip_serializing_if = "Option::is_none")]
15456    pub display_preference: Option<UpdatePaymentMethodConfigurationSwishDisplayPreference>,
15457}
15458#[cfg(feature = "redact-generated-debug")]
15459impl std::fmt::Debug for UpdatePaymentMethodConfigurationSwish {
15460    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15461        f.debug_struct("UpdatePaymentMethodConfigurationSwish").finish_non_exhaustive()
15462    }
15463}
15464impl UpdatePaymentMethodConfigurationSwish {
15465    pub fn new() -> Self {
15466        Self { display_preference: None }
15467    }
15468}
15469impl Default for UpdatePaymentMethodConfigurationSwish {
15470    fn default() -> Self {
15471        Self::new()
15472    }
15473}
15474/// Whether or not the payment method should be displayed.
15475#[derive(Clone, Eq, PartialEq)]
15476#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15477#[derive(serde::Serialize)]
15478pub struct UpdatePaymentMethodConfigurationSwishDisplayPreference {
15479    /// The account's preference for whether or not to display this payment method.
15480    #[serde(skip_serializing_if = "Option::is_none")]
15481    pub preference: Option<UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference>,
15482}
15483#[cfg(feature = "redact-generated-debug")]
15484impl std::fmt::Debug for UpdatePaymentMethodConfigurationSwishDisplayPreference {
15485    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15486        f.debug_struct("UpdatePaymentMethodConfigurationSwishDisplayPreference")
15487            .finish_non_exhaustive()
15488    }
15489}
15490impl UpdatePaymentMethodConfigurationSwishDisplayPreference {
15491    pub fn new() -> Self {
15492        Self { preference: None }
15493    }
15494}
15495impl Default for UpdatePaymentMethodConfigurationSwishDisplayPreference {
15496    fn default() -> Self {
15497        Self::new()
15498    }
15499}
15500/// The account's preference for whether or not to display this payment method.
15501#[derive(Clone, Eq, PartialEq)]
15502#[non_exhaustive]
15503pub enum UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15504    None,
15505    Off,
15506    On,
15507    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15508    Unknown(String),
15509}
15510impl UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15511    pub fn as_str(&self) -> &str {
15512        use UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference::*;
15513        match self {
15514            None => "none",
15515            Off => "off",
15516            On => "on",
15517            Unknown(v) => v,
15518        }
15519    }
15520}
15521
15522impl std::str::FromStr for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15523    type Err = std::convert::Infallible;
15524    fn from_str(s: &str) -> Result<Self, Self::Err> {
15525        use UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference::*;
15526        match s {
15527            "none" => Ok(None),
15528            "off" => Ok(Off),
15529            "on" => Ok(On),
15530            v => {
15531                tracing::warn!(
15532                    "Unknown value '{}' for enum '{}'",
15533                    v,
15534                    "UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference"
15535                );
15536                Ok(Unknown(v.to_owned()))
15537            }
15538        }
15539    }
15540}
15541impl std::fmt::Display for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15542    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15543        f.write_str(self.as_str())
15544    }
15545}
15546
15547#[cfg(not(feature = "redact-generated-debug"))]
15548impl std::fmt::Debug for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15549    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15550        f.write_str(self.as_str())
15551    }
15552}
15553#[cfg(feature = "redact-generated-debug")]
15554impl std::fmt::Debug for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15555    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15556        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference))
15557            .finish_non_exhaustive()
15558    }
15559}
15560impl serde::Serialize for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference {
15561    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15562    where
15563        S: serde::Serializer,
15564    {
15565        serializer.serialize_str(self.as_str())
15566    }
15567}
15568#[cfg(feature = "deserialize")]
15569impl<'de> serde::Deserialize<'de>
15570    for UpdatePaymentMethodConfigurationSwishDisplayPreferencePreference
15571{
15572    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15573        use std::str::FromStr;
15574        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15575        Ok(Self::from_str(&s).expect("infallible"))
15576    }
15577}
15578/// Twint is a payment method popular in Switzerland.
15579/// It allows customers to pay using their mobile phone.
15580/// Check this [page](https://docs.stripe.com/payments/twint) for more details.
15581#[derive(Clone, Eq, PartialEq)]
15582#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15583#[derive(serde::Serialize)]
15584pub struct UpdatePaymentMethodConfigurationTwint {
15585    /// Whether or not the payment method should be displayed.
15586    #[serde(skip_serializing_if = "Option::is_none")]
15587    pub display_preference: Option<UpdatePaymentMethodConfigurationTwintDisplayPreference>,
15588}
15589#[cfg(feature = "redact-generated-debug")]
15590impl std::fmt::Debug for UpdatePaymentMethodConfigurationTwint {
15591    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15592        f.debug_struct("UpdatePaymentMethodConfigurationTwint").finish_non_exhaustive()
15593    }
15594}
15595impl UpdatePaymentMethodConfigurationTwint {
15596    pub fn new() -> Self {
15597        Self { display_preference: None }
15598    }
15599}
15600impl Default for UpdatePaymentMethodConfigurationTwint {
15601    fn default() -> Self {
15602        Self::new()
15603    }
15604}
15605/// Whether or not the payment method should be displayed.
15606#[derive(Clone, Eq, PartialEq)]
15607#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15608#[derive(serde::Serialize)]
15609pub struct UpdatePaymentMethodConfigurationTwintDisplayPreference {
15610    /// The account's preference for whether or not to display this payment method.
15611    #[serde(skip_serializing_if = "Option::is_none")]
15612    pub preference: Option<UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference>,
15613}
15614#[cfg(feature = "redact-generated-debug")]
15615impl std::fmt::Debug for UpdatePaymentMethodConfigurationTwintDisplayPreference {
15616    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15617        f.debug_struct("UpdatePaymentMethodConfigurationTwintDisplayPreference")
15618            .finish_non_exhaustive()
15619    }
15620}
15621impl UpdatePaymentMethodConfigurationTwintDisplayPreference {
15622    pub fn new() -> Self {
15623        Self { preference: None }
15624    }
15625}
15626impl Default for UpdatePaymentMethodConfigurationTwintDisplayPreference {
15627    fn default() -> Self {
15628        Self::new()
15629    }
15630}
15631/// The account's preference for whether or not to display this payment method.
15632#[derive(Clone, Eq, PartialEq)]
15633#[non_exhaustive]
15634pub enum UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15635    None,
15636    Off,
15637    On,
15638    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15639    Unknown(String),
15640}
15641impl UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15642    pub fn as_str(&self) -> &str {
15643        use UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference::*;
15644        match self {
15645            None => "none",
15646            Off => "off",
15647            On => "on",
15648            Unknown(v) => v,
15649        }
15650    }
15651}
15652
15653impl std::str::FromStr for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15654    type Err = std::convert::Infallible;
15655    fn from_str(s: &str) -> Result<Self, Self::Err> {
15656        use UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference::*;
15657        match s {
15658            "none" => Ok(None),
15659            "off" => Ok(Off),
15660            "on" => Ok(On),
15661            v => {
15662                tracing::warn!(
15663                    "Unknown value '{}' for enum '{}'",
15664                    v,
15665                    "UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference"
15666                );
15667                Ok(Unknown(v.to_owned()))
15668            }
15669        }
15670    }
15671}
15672impl std::fmt::Display for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15673    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15674        f.write_str(self.as_str())
15675    }
15676}
15677
15678#[cfg(not(feature = "redact-generated-debug"))]
15679impl std::fmt::Debug for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15680    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15681        f.write_str(self.as_str())
15682    }
15683}
15684#[cfg(feature = "redact-generated-debug")]
15685impl std::fmt::Debug for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15686    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15687        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference))
15688            .finish_non_exhaustive()
15689    }
15690}
15691impl serde::Serialize for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference {
15692    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15693    where
15694        S: serde::Serializer,
15695    {
15696        serializer.serialize_str(self.as_str())
15697    }
15698}
15699#[cfg(feature = "deserialize")]
15700impl<'de> serde::Deserialize<'de>
15701    for UpdatePaymentMethodConfigurationTwintDisplayPreferencePreference
15702{
15703    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15704        use std::str::FromStr;
15705        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15706        Ok(Self::from_str(&s).expect("infallible"))
15707    }
15708}
15709/// Unified Payment Interface (UPI) is India's leading payment method with exponential growth since it launched in 2016.
15710#[derive(Clone, Eq, PartialEq)]
15711#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15712#[derive(serde::Serialize)]
15713pub struct UpdatePaymentMethodConfigurationUpi {
15714    /// Whether or not the payment method should be displayed.
15715    #[serde(skip_serializing_if = "Option::is_none")]
15716    pub display_preference: Option<UpdatePaymentMethodConfigurationUpiDisplayPreference>,
15717}
15718#[cfg(feature = "redact-generated-debug")]
15719impl std::fmt::Debug for UpdatePaymentMethodConfigurationUpi {
15720    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15721        f.debug_struct("UpdatePaymentMethodConfigurationUpi").finish_non_exhaustive()
15722    }
15723}
15724impl UpdatePaymentMethodConfigurationUpi {
15725    pub fn new() -> Self {
15726        Self { display_preference: None }
15727    }
15728}
15729impl Default for UpdatePaymentMethodConfigurationUpi {
15730    fn default() -> Self {
15731        Self::new()
15732    }
15733}
15734/// Whether or not the payment method should be displayed.
15735#[derive(Clone, Eq, PartialEq)]
15736#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15737#[derive(serde::Serialize)]
15738pub struct UpdatePaymentMethodConfigurationUpiDisplayPreference {
15739    /// The account's preference for whether or not to display this payment method.
15740    #[serde(skip_serializing_if = "Option::is_none")]
15741    pub preference: Option<UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference>,
15742}
15743#[cfg(feature = "redact-generated-debug")]
15744impl std::fmt::Debug for UpdatePaymentMethodConfigurationUpiDisplayPreference {
15745    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15746        f.debug_struct("UpdatePaymentMethodConfigurationUpiDisplayPreference")
15747            .finish_non_exhaustive()
15748    }
15749}
15750impl UpdatePaymentMethodConfigurationUpiDisplayPreference {
15751    pub fn new() -> Self {
15752        Self { preference: None }
15753    }
15754}
15755impl Default for UpdatePaymentMethodConfigurationUpiDisplayPreference {
15756    fn default() -> Self {
15757        Self::new()
15758    }
15759}
15760/// The account's preference for whether or not to display this payment method.
15761#[derive(Clone, Eq, PartialEq)]
15762#[non_exhaustive]
15763pub enum UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15764    None,
15765    Off,
15766    On,
15767    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15768    Unknown(String),
15769}
15770impl UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15771    pub fn as_str(&self) -> &str {
15772        use UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference::*;
15773        match self {
15774            None => "none",
15775            Off => "off",
15776            On => "on",
15777            Unknown(v) => v,
15778        }
15779    }
15780}
15781
15782impl std::str::FromStr for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15783    type Err = std::convert::Infallible;
15784    fn from_str(s: &str) -> Result<Self, Self::Err> {
15785        use UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference::*;
15786        match s {
15787            "none" => Ok(None),
15788            "off" => Ok(Off),
15789            "on" => Ok(On),
15790            v => {
15791                tracing::warn!(
15792                    "Unknown value '{}' for enum '{}'",
15793                    v,
15794                    "UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference"
15795                );
15796                Ok(Unknown(v.to_owned()))
15797            }
15798        }
15799    }
15800}
15801impl std::fmt::Display for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15802    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15803        f.write_str(self.as_str())
15804    }
15805}
15806
15807#[cfg(not(feature = "redact-generated-debug"))]
15808impl std::fmt::Debug for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15809    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15810        f.write_str(self.as_str())
15811    }
15812}
15813#[cfg(feature = "redact-generated-debug")]
15814impl std::fmt::Debug for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15815    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15816        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference))
15817            .finish_non_exhaustive()
15818    }
15819}
15820impl serde::Serialize for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference {
15821    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15822    where
15823        S: serde::Serializer,
15824    {
15825        serializer.serialize_str(self.as_str())
15826    }
15827}
15828#[cfg(feature = "deserialize")]
15829impl<'de> serde::Deserialize<'de>
15830    for UpdatePaymentMethodConfigurationUpiDisplayPreferencePreference
15831{
15832    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15833        use std::str::FromStr;
15834        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15835        Ok(Self::from_str(&s).expect("infallible"))
15836    }
15837}
15838/// Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha.
15839/// Check this [page](https://docs.stripe.com/payments/ach-direct-debit) for more details.
15840#[derive(Clone, Eq, PartialEq)]
15841#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15842#[derive(serde::Serialize)]
15843pub struct UpdatePaymentMethodConfigurationUsBankAccount {
15844    /// Whether or not the payment method should be displayed.
15845    #[serde(skip_serializing_if = "Option::is_none")]
15846    pub display_preference: Option<UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference>,
15847}
15848#[cfg(feature = "redact-generated-debug")]
15849impl std::fmt::Debug for UpdatePaymentMethodConfigurationUsBankAccount {
15850    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15851        f.debug_struct("UpdatePaymentMethodConfigurationUsBankAccount").finish_non_exhaustive()
15852    }
15853}
15854impl UpdatePaymentMethodConfigurationUsBankAccount {
15855    pub fn new() -> Self {
15856        Self { display_preference: None }
15857    }
15858}
15859impl Default for UpdatePaymentMethodConfigurationUsBankAccount {
15860    fn default() -> Self {
15861        Self::new()
15862    }
15863}
15864/// Whether or not the payment method should be displayed.
15865#[derive(Clone, Eq, PartialEq)]
15866#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15867#[derive(serde::Serialize)]
15868pub struct UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference {
15869    /// The account's preference for whether or not to display this payment method.
15870    #[serde(skip_serializing_if = "Option::is_none")]
15871    pub preference:
15872        Option<UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference>,
15873}
15874#[cfg(feature = "redact-generated-debug")]
15875impl std::fmt::Debug for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference {
15876    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15877        f.debug_struct("UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference")
15878            .finish_non_exhaustive()
15879    }
15880}
15881impl UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference {
15882    pub fn new() -> Self {
15883        Self { preference: None }
15884    }
15885}
15886impl Default for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreference {
15887    fn default() -> Self {
15888        Self::new()
15889    }
15890}
15891/// The account's preference for whether or not to display this payment method.
15892#[derive(Clone, Eq, PartialEq)]
15893#[non_exhaustive]
15894pub enum UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
15895    None,
15896    Off,
15897    On,
15898    /// An unrecognized value from Stripe. Should not be used as a request parameter.
15899    Unknown(String),
15900}
15901impl UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
15902    pub fn as_str(&self) -> &str {
15903        use UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference::*;
15904        match self {
15905            None => "none",
15906            Off => "off",
15907            On => "on",
15908            Unknown(v) => v,
15909        }
15910    }
15911}
15912
15913impl std::str::FromStr
15914    for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
15915{
15916    type Err = std::convert::Infallible;
15917    fn from_str(s: &str) -> Result<Self, Self::Err> {
15918        use UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference::*;
15919        match s {
15920            "none" => Ok(None),
15921            "off" => Ok(Off),
15922            "on" => Ok(On),
15923            v => {
15924                tracing::warn!(
15925                    "Unknown value '{}' for enum '{}'",
15926                    v,
15927                    "UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference"
15928                );
15929                Ok(Unknown(v.to_owned()))
15930            }
15931        }
15932    }
15933}
15934impl std::fmt::Display
15935    for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
15936{
15937    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15938        f.write_str(self.as_str())
15939    }
15940}
15941
15942#[cfg(not(feature = "redact-generated-debug"))]
15943impl std::fmt::Debug for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
15944    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15945        f.write_str(self.as_str())
15946    }
15947}
15948#[cfg(feature = "redact-generated-debug")]
15949impl std::fmt::Debug for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
15950    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15951        f.debug_struct(stringify!(
15952            UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
15953        ))
15954        .finish_non_exhaustive()
15955    }
15956}
15957impl serde::Serialize for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference {
15958    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15959    where
15960        S: serde::Serializer,
15961    {
15962        serializer.serialize_str(self.as_str())
15963    }
15964}
15965#[cfg(feature = "deserialize")]
15966impl<'de> serde::Deserialize<'de>
15967    for UpdatePaymentMethodConfigurationUsBankAccountDisplayPreferencePreference
15968{
15969    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15970        use std::str::FromStr;
15971        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
15972        Ok(Self::from_str(&s).expect("infallible"))
15973    }
15974}
15975/// WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users.
15976/// Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites.
15977/// WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition.
15978/// Check this [page](https://docs.stripe.com/payments/wechat-pay) for more details.
15979#[derive(Clone, Eq, PartialEq)]
15980#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
15981#[derive(serde::Serialize)]
15982pub struct UpdatePaymentMethodConfigurationWechatPay {
15983    /// Whether or not the payment method should be displayed.
15984    #[serde(skip_serializing_if = "Option::is_none")]
15985    pub display_preference: Option<UpdatePaymentMethodConfigurationWechatPayDisplayPreference>,
15986}
15987#[cfg(feature = "redact-generated-debug")]
15988impl std::fmt::Debug for UpdatePaymentMethodConfigurationWechatPay {
15989    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15990        f.debug_struct("UpdatePaymentMethodConfigurationWechatPay").finish_non_exhaustive()
15991    }
15992}
15993impl UpdatePaymentMethodConfigurationWechatPay {
15994    pub fn new() -> Self {
15995        Self { display_preference: None }
15996    }
15997}
15998impl Default for UpdatePaymentMethodConfigurationWechatPay {
15999    fn default() -> Self {
16000        Self::new()
16001    }
16002}
16003/// Whether or not the payment method should be displayed.
16004#[derive(Clone, Eq, PartialEq)]
16005#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
16006#[derive(serde::Serialize)]
16007pub struct UpdatePaymentMethodConfigurationWechatPayDisplayPreference {
16008    /// The account's preference for whether or not to display this payment method.
16009    #[serde(skip_serializing_if = "Option::is_none")]
16010    pub preference: Option<UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference>,
16011}
16012#[cfg(feature = "redact-generated-debug")]
16013impl std::fmt::Debug for UpdatePaymentMethodConfigurationWechatPayDisplayPreference {
16014    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16015        f.debug_struct("UpdatePaymentMethodConfigurationWechatPayDisplayPreference")
16016            .finish_non_exhaustive()
16017    }
16018}
16019impl UpdatePaymentMethodConfigurationWechatPayDisplayPreference {
16020    pub fn new() -> Self {
16021        Self { preference: None }
16022    }
16023}
16024impl Default for UpdatePaymentMethodConfigurationWechatPayDisplayPreference {
16025    fn default() -> Self {
16026        Self::new()
16027    }
16028}
16029/// The account's preference for whether or not to display this payment method.
16030#[derive(Clone, Eq, PartialEq)]
16031#[non_exhaustive]
16032pub enum UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16033    None,
16034    Off,
16035    On,
16036    /// An unrecognized value from Stripe. Should not be used as a request parameter.
16037    Unknown(String),
16038}
16039impl UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16040    pub fn as_str(&self) -> &str {
16041        use UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference::*;
16042        match self {
16043            None => "none",
16044            Off => "off",
16045            On => "on",
16046            Unknown(v) => v,
16047        }
16048    }
16049}
16050
16051impl std::str::FromStr for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16052    type Err = std::convert::Infallible;
16053    fn from_str(s: &str) -> Result<Self, Self::Err> {
16054        use UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference::*;
16055        match s {
16056            "none" => Ok(None),
16057            "off" => Ok(Off),
16058            "on" => Ok(On),
16059            v => {
16060                tracing::warn!(
16061                    "Unknown value '{}' for enum '{}'",
16062                    v,
16063                    "UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference"
16064                );
16065                Ok(Unknown(v.to_owned()))
16066            }
16067        }
16068    }
16069}
16070impl std::fmt::Display for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16071    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16072        f.write_str(self.as_str())
16073    }
16074}
16075
16076#[cfg(not(feature = "redact-generated-debug"))]
16077impl std::fmt::Debug for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16078    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16079        f.write_str(self.as_str())
16080    }
16081}
16082#[cfg(feature = "redact-generated-debug")]
16083impl std::fmt::Debug for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16084    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16085        f.debug_struct(stringify!(
16086            UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference
16087        ))
16088        .finish_non_exhaustive()
16089    }
16090}
16091impl serde::Serialize for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference {
16092    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
16093    where
16094        S: serde::Serializer,
16095    {
16096        serializer.serialize_str(self.as_str())
16097    }
16098}
16099#[cfg(feature = "deserialize")]
16100impl<'de> serde::Deserialize<'de>
16101    for UpdatePaymentMethodConfigurationWechatPayDisplayPreferencePreference
16102{
16103    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16104        use std::str::FromStr;
16105        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
16106        Ok(Self::from_str(&s).expect("infallible"))
16107    }
16108}
16109/// Zip gives your customers a way to split purchases over a series of payments.
16110/// Check this [page](https://docs.stripe.com/payments/zip) for more details like country availability.
16111#[derive(Clone, Eq, PartialEq)]
16112#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
16113#[derive(serde::Serialize)]
16114pub struct UpdatePaymentMethodConfigurationZip {
16115    /// Whether or not the payment method should be displayed.
16116    #[serde(skip_serializing_if = "Option::is_none")]
16117    pub display_preference: Option<UpdatePaymentMethodConfigurationZipDisplayPreference>,
16118}
16119#[cfg(feature = "redact-generated-debug")]
16120impl std::fmt::Debug for UpdatePaymentMethodConfigurationZip {
16121    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16122        f.debug_struct("UpdatePaymentMethodConfigurationZip").finish_non_exhaustive()
16123    }
16124}
16125impl UpdatePaymentMethodConfigurationZip {
16126    pub fn new() -> Self {
16127        Self { display_preference: None }
16128    }
16129}
16130impl Default for UpdatePaymentMethodConfigurationZip {
16131    fn default() -> Self {
16132        Self::new()
16133    }
16134}
16135/// Whether or not the payment method should be displayed.
16136#[derive(Clone, Eq, PartialEq)]
16137#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
16138#[derive(serde::Serialize)]
16139pub struct UpdatePaymentMethodConfigurationZipDisplayPreference {
16140    /// The account's preference for whether or not to display this payment method.
16141    #[serde(skip_serializing_if = "Option::is_none")]
16142    pub preference: Option<UpdatePaymentMethodConfigurationZipDisplayPreferencePreference>,
16143}
16144#[cfg(feature = "redact-generated-debug")]
16145impl std::fmt::Debug for UpdatePaymentMethodConfigurationZipDisplayPreference {
16146    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16147        f.debug_struct("UpdatePaymentMethodConfigurationZipDisplayPreference")
16148            .finish_non_exhaustive()
16149    }
16150}
16151impl UpdatePaymentMethodConfigurationZipDisplayPreference {
16152    pub fn new() -> Self {
16153        Self { preference: None }
16154    }
16155}
16156impl Default for UpdatePaymentMethodConfigurationZipDisplayPreference {
16157    fn default() -> Self {
16158        Self::new()
16159    }
16160}
16161/// The account's preference for whether or not to display this payment method.
16162#[derive(Clone, Eq, PartialEq)]
16163#[non_exhaustive]
16164pub enum UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16165    None,
16166    Off,
16167    On,
16168    /// An unrecognized value from Stripe. Should not be used as a request parameter.
16169    Unknown(String),
16170}
16171impl UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16172    pub fn as_str(&self) -> &str {
16173        use UpdatePaymentMethodConfigurationZipDisplayPreferencePreference::*;
16174        match self {
16175            None => "none",
16176            Off => "off",
16177            On => "on",
16178            Unknown(v) => v,
16179        }
16180    }
16181}
16182
16183impl std::str::FromStr for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16184    type Err = std::convert::Infallible;
16185    fn from_str(s: &str) -> Result<Self, Self::Err> {
16186        use UpdatePaymentMethodConfigurationZipDisplayPreferencePreference::*;
16187        match s {
16188            "none" => Ok(None),
16189            "off" => Ok(Off),
16190            "on" => Ok(On),
16191            v => {
16192                tracing::warn!(
16193                    "Unknown value '{}' for enum '{}'",
16194                    v,
16195                    "UpdatePaymentMethodConfigurationZipDisplayPreferencePreference"
16196                );
16197                Ok(Unknown(v.to_owned()))
16198            }
16199        }
16200    }
16201}
16202impl std::fmt::Display for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16203    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16204        f.write_str(self.as_str())
16205    }
16206}
16207
16208#[cfg(not(feature = "redact-generated-debug"))]
16209impl std::fmt::Debug for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16210    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16211        f.write_str(self.as_str())
16212    }
16213}
16214#[cfg(feature = "redact-generated-debug")]
16215impl std::fmt::Debug for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16216    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16217        f.debug_struct(stringify!(UpdatePaymentMethodConfigurationZipDisplayPreferencePreference))
16218            .finish_non_exhaustive()
16219    }
16220}
16221impl serde::Serialize for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference {
16222    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
16223    where
16224        S: serde::Serializer,
16225    {
16226        serializer.serialize_str(self.as_str())
16227    }
16228}
16229#[cfg(feature = "deserialize")]
16230impl<'de> serde::Deserialize<'de>
16231    for UpdatePaymentMethodConfigurationZipDisplayPreferencePreference
16232{
16233    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16234        use std::str::FromStr;
16235        let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
16236        Ok(Self::from_str(&s).expect("infallible"))
16237    }
16238}
16239/// Update payment method configuration
16240#[derive(Clone)]
16241#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
16242#[derive(serde::Serialize)]
16243pub struct UpdatePaymentMethodConfiguration {
16244    inner: UpdatePaymentMethodConfigurationBuilder,
16245    configuration: stripe_payment::PaymentMethodConfigurationId,
16246}
16247#[cfg(feature = "redact-generated-debug")]
16248impl std::fmt::Debug for UpdatePaymentMethodConfiguration {
16249    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16250        f.debug_struct("UpdatePaymentMethodConfiguration").finish_non_exhaustive()
16251    }
16252}
16253impl UpdatePaymentMethodConfiguration {
16254    /// Construct a new `UpdatePaymentMethodConfiguration`.
16255    pub fn new(configuration: impl Into<stripe_payment::PaymentMethodConfigurationId>) -> Self {
16256        Self {
16257            configuration: configuration.into(),
16258            inner: UpdatePaymentMethodConfigurationBuilder::new(),
16259        }
16260    }
16261    /// Canadian pre-authorized debit payments, check this [page](https://docs.stripe.com/payments/acss-debit) for more details like country availability.
16262    pub fn acss_debit(
16263        mut self,
16264        acss_debit: impl Into<UpdatePaymentMethodConfigurationAcssDebit>,
16265    ) -> Self {
16266        self.inner.acss_debit = Some(acss_debit.into());
16267        self
16268    }
16269    /// Whether the configuration can be used for new payments.
16270    pub fn active(mut self, active: impl Into<bool>) -> Self {
16271        self.inner.active = Some(active.into());
16272        self
16273    }
16274    /// [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments.
16275    /// Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest.
16276    /// Check this [page](https://docs.stripe.com/payments/affirm) for more details like country availability.
16277    pub fn affirm(mut self, affirm: impl Into<UpdatePaymentMethodConfigurationAffirm>) -> Self {
16278        self.inner.affirm = Some(affirm.into());
16279        self
16280    }
16281    /// Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://docs.stripe.com/payments/afterpay-clearpay) for more details like country availability.
16282    /// Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.
16283    pub fn afterpay_clearpay(
16284        mut self,
16285        afterpay_clearpay: impl Into<UpdatePaymentMethodConfigurationAfterpayClearpay>,
16286    ) -> Self {
16287        self.inner.afterpay_clearpay = Some(afterpay_clearpay.into());
16288        self
16289    }
16290    /// Alipay is a digital wallet in China that has more than a billion active users worldwide.
16291    /// Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app.
16292    /// Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials.
16293    /// Check this [page](https://docs.stripe.com/payments/alipay) for more details.
16294    pub fn alipay(mut self, alipay: impl Into<UpdatePaymentMethodConfigurationAlipay>) -> Self {
16295        self.inner.alipay = Some(alipay.into());
16296        self
16297    }
16298    /// Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments.
16299    pub fn alma(mut self, alma: impl Into<UpdatePaymentMethodConfigurationAlma>) -> Self {
16300        self.inner.alma = Some(alma.into());
16301        self
16302    }
16303    /// Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.
16304    pub fn amazon_pay(
16305        mut self,
16306        amazon_pay: impl Into<UpdatePaymentMethodConfigurationAmazonPay>,
16307    ) -> Self {
16308        self.inner.amazon_pay = Some(amazon_pay.into());
16309        self
16310    }
16311    /// Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra.
16312    /// There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions.
16313    /// Check this [page](https://docs.stripe.com/apple-pay) for more details.
16314    pub fn apple_pay(
16315        mut self,
16316        apple_pay: impl Into<UpdatePaymentMethodConfigurationApplePay>,
16317    ) -> Self {
16318        self.inner.apple_pay = Some(apple_pay.into());
16319        self
16320    }
16321    /// Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.
16322    pub fn apple_pay_later(
16323        mut self,
16324        apple_pay_later: impl Into<UpdatePaymentMethodConfigurationApplePayLater>,
16325    ) -> Self {
16326        self.inner.apple_pay_later = Some(apple_pay_later.into());
16327        self
16328    }
16329    /// Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account.
16330    /// Check this [page](https://docs.stripe.com/payments/au-becs-debit) for more details.
16331    pub fn au_becs_debit(
16332        mut self,
16333        au_becs_debit: impl Into<UpdatePaymentMethodConfigurationAuBecsDebit>,
16334    ) -> Self {
16335        self.inner.au_becs_debit = Some(au_becs_debit.into());
16336        self
16337    }
16338    /// Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://docs.stripe.com/payments/payment-methods/bacs-debit) for more details.
16339    pub fn bacs_debit(
16340        mut self,
16341        bacs_debit: impl Into<UpdatePaymentMethodConfigurationBacsDebit>,
16342    ) -> Self {
16343        self.inner.bacs_debit = Some(bacs_debit.into());
16344        self
16345    }
16346    /// Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation.
16347    /// [Customers](https://docs.stripe.com/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately.
16348    /// Check this [page](https://docs.stripe.com/payments/bancontact) for more details.
16349    pub fn bancontact(
16350        mut self,
16351        bancontact: impl Into<UpdatePaymentMethodConfigurationBancontact>,
16352    ) -> Self {
16353        self.inner.bancontact = Some(bancontact.into());
16354        self
16355    }
16356    /// Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days.
16357    /// Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app.
16358    /// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
16359    pub fn billie(mut self, billie: impl Into<UpdatePaymentMethodConfigurationBillie>) -> Self {
16360        self.inner.billie = Some(billie.into());
16361        self
16362    }
16363    /// BLIK is a [single use](https://docs.stripe.com/payments/payment-methods#usage) payment method that requires customers to authenticate their payments.
16364    /// When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form.
16365    /// Check this [page](https://docs.stripe.com/payments/blik) for more details.
16366    pub fn blik(mut self, blik: impl Into<UpdatePaymentMethodConfigurationBlik>) -> Self {
16367        self.inner.blik = Some(blik.into());
16368        self
16369    }
16370    /// Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil.
16371    /// Check this [page](https://docs.stripe.com/payments/boleto) for more details.
16372    pub fn boleto(mut self, boleto: impl Into<UpdatePaymentMethodConfigurationBoleto>) -> Self {
16373        self.inner.boleto = Some(boleto.into());
16374        self
16375    }
16376    /// Cards are a popular way for consumers and businesses to pay online or in person.
16377    /// Stripe supports global and local card networks.
16378    pub fn card(mut self, card: impl Into<UpdatePaymentMethodConfigurationCard>) -> Self {
16379        self.inner.card = Some(card.into());
16380        self
16381    }
16382    /// Cartes Bancaires is France's local card network.
16383    /// More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks.
16384    /// Check this [page](https://docs.stripe.com/payments/cartes-bancaires) for more details.
16385    pub fn cartes_bancaires(
16386        mut self,
16387        cartes_bancaires: impl Into<UpdatePaymentMethodConfigurationCartesBancaires>,
16388    ) -> Self {
16389        self.inner.cartes_bancaires = Some(cartes_bancaires.into());
16390        self
16391    }
16392    /// Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet.
16393    /// Check this [page](https://docs.stripe.com/payments/cash-app-pay) for more details.
16394    pub fn cashapp(mut self, cashapp: impl Into<UpdatePaymentMethodConfigurationCashapp>) -> Self {
16395        self.inner.cashapp = Some(cashapp.into());
16396        self
16397    }
16398    /// [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask.
16399    pub fn crypto(mut self, crypto: impl Into<UpdatePaymentMethodConfigurationCrypto>) -> Self {
16400        self.inner.crypto = Some(crypto.into());
16401        self
16402    }
16403    /// Uses a customer’s [cash balance](https://docs.stripe.com/payments/customer-balance) for the payment.
16404    /// The cash balance can be funded via a bank transfer.
16405    /// Check this [page](https://docs.stripe.com/payments/bank-transfers) for more details.
16406    pub fn customer_balance(
16407        mut self,
16408        customer_balance: impl Into<UpdatePaymentMethodConfigurationCustomerBalance>,
16409    ) -> Self {
16410        self.inner.customer_balance = Some(customer_balance.into());
16411        self
16412    }
16413    /// EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials.
16414    /// EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers.
16415    /// Check this [page](https://docs.stripe.com/payments/eps) for more details.
16416    pub fn eps(mut self, eps: impl Into<UpdatePaymentMethodConfigurationEps>) -> Self {
16417        self.inner.eps = Some(eps.into());
16418        self
16419    }
16420    /// Specifies which fields in the response should be expanded.
16421    pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
16422        self.inner.expand = Some(expand.into());
16423        self
16424    }
16425    /// Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials.
16426    /// Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX.
16427    /// It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM.
16428    /// Check this [page](https://docs.stripe.com/payments/fpx) for more details.
16429    pub fn fpx(mut self, fpx: impl Into<UpdatePaymentMethodConfigurationFpx>) -> Self {
16430        self.inner.fpx = Some(fpx.into());
16431        self
16432    }
16433    /// Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days.
16434    /// Check this [page](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers) for more details.
16435    pub fn fr_meal_voucher_conecs(
16436        mut self,
16437        fr_meal_voucher_conecs: impl Into<UpdatePaymentMethodConfigurationFrMealVoucherConecs>,
16438    ) -> Self {
16439        self.inner.fr_meal_voucher_conecs = Some(fr_meal_voucher_conecs.into());
16440        self
16441    }
16442    /// giropay is a German payment method based on online banking, introduced in 2006.
16443    /// It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account.
16444    /// Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN.
16445    /// giropay accounts for 10% of online checkouts in Germany.
16446    /// Check this [page](https://docs.stripe.com/payments/giropay) for more details.
16447    pub fn giropay(mut self, giropay: impl Into<UpdatePaymentMethodConfigurationGiropay>) -> Self {
16448        self.inner.giropay = Some(giropay.into());
16449        self
16450    }
16451    /// Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device.
16452    /// Use the Google Pay API to request any credit or debit card stored in your customer's Google account.
16453    /// Check this [page](https://docs.stripe.com/google-pay) for more details.
16454    pub fn google_pay(
16455        mut self,
16456        google_pay: impl Into<UpdatePaymentMethodConfigurationGooglePay>,
16457    ) -> Self {
16458        self.inner.google_pay = Some(google_pay.into());
16459        self
16460    }
16461    /// GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/).
16462    /// GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with.
16463    /// Check this [page](https://docs.stripe.com/payments/grabpay) for more details.
16464    pub fn grabpay(mut self, grabpay: impl Into<UpdatePaymentMethodConfigurationGrabpay>) -> Self {
16465        self.inner.grabpay = Some(grabpay.into());
16466        self
16467    }
16468    /// iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials.
16469    /// All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%.
16470    /// Check this [page](https://docs.stripe.com/payments/ideal) for more details.
16471    pub fn ideal(mut self, ideal: impl Into<UpdatePaymentMethodConfigurationIdeal>) -> Self {
16472        self.inner.ideal = Some(ideal.into());
16473        self
16474    }
16475    /// JCB is a credit card company based in Japan.
16476    /// JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland.
16477    /// Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.
16478    pub fn jcb(mut self, jcb: impl Into<UpdatePaymentMethodConfigurationJcb>) -> Self {
16479        self.inner.jcb = Some(jcb.into());
16480        self
16481    }
16482    /// Kakao Pay is a popular local wallet available in South Korea.
16483    pub fn kakao_pay(
16484        mut self,
16485        kakao_pay: impl Into<UpdatePaymentMethodConfigurationKakaoPay>,
16486    ) -> Self {
16487        self.inner.kakao_pay = Some(kakao_pay.into());
16488        self
16489    }
16490    /// Klarna gives customers a range of [payment options](https://docs.stripe.com/payments/klarna#payment-options) during checkout.
16491    /// Available payment options vary depending on the customer's billing address and the transaction amount.
16492    /// These payment options make it convenient for customers to purchase items in all price ranges.
16493    /// Check this [page](https://docs.stripe.com/payments/klarna) for more details.
16494    pub fn klarna(mut self, klarna: impl Into<UpdatePaymentMethodConfigurationKlarna>) -> Self {
16495        self.inner.klarna = Some(klarna.into());
16496        self
16497    }
16498    /// Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash.
16499    /// Check this [page](https://docs.stripe.com/payments/konbini) for more details.
16500    pub fn konbini(mut self, konbini: impl Into<UpdatePaymentMethodConfigurationKonbini>) -> Self {
16501        self.inner.konbini = Some(konbini.into());
16502        self
16503    }
16504    /// Korean cards let users pay using locally issued cards from South Korea.
16505    pub fn kr_card(mut self, kr_card: impl Into<UpdatePaymentMethodConfigurationKrCard>) -> Self {
16506        self.inner.kr_card = Some(kr_card.into());
16507        self
16508    }
16509    /// [Link](https://docs.stripe.com/payments/link) is a payment method network.
16510    /// With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.
16511    pub fn link(mut self, link: impl Into<UpdatePaymentMethodConfigurationLink>) -> Self {
16512        self.inner.link = Some(link.into());
16513        self
16514    }
16515    /// MB WAY is the most popular wallet in Portugal.
16516    /// After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app.
16517    /// Check this [page](https://docs.stripe.com/payments/mb-way) for more details.
16518    pub fn mb_way(mut self, mb_way: impl Into<UpdatePaymentMethodConfigurationMbWay>) -> Self {
16519        self.inner.mb_way = Some(mb_way.into());
16520        self
16521    }
16522    /// MobilePay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland.
16523    /// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the MobilePay app.
16524    /// Check this [page](https://docs.stripe.com/payments/mobilepay) for more details.
16525    pub fn mobilepay(
16526        mut self,
16527        mobilepay: impl Into<UpdatePaymentMethodConfigurationMobilepay>,
16528    ) -> Self {
16529        self.inner.mobilepay = Some(mobilepay.into());
16530        self
16531    }
16532    /// Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.
16533    pub fn multibanco(
16534        mut self,
16535        multibanco: impl Into<UpdatePaymentMethodConfigurationMultibanco>,
16536    ) -> Self {
16537        self.inner.multibanco = Some(multibanco.into());
16538        self
16539    }
16540    /// Configuration name.
16541    pub fn name(mut self, name: impl Into<String>) -> Self {
16542        self.inner.name = Some(name.into());
16543        self
16544    }
16545    /// Naver Pay is a popular local wallet available in South Korea.
16546    pub fn naver_pay(
16547        mut self,
16548        naver_pay: impl Into<UpdatePaymentMethodConfigurationNaverPay>,
16549    ) -> Self {
16550        self.inner.naver_pay = Some(naver_pay.into());
16551        self
16552    }
16553    /// Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account.
16554    /// Check this [page](https://docs.stripe.com/payments/nz-bank-account) for more details.
16555    pub fn nz_bank_account(
16556        mut self,
16557        nz_bank_account: impl Into<UpdatePaymentMethodConfigurationNzBankAccount>,
16558    ) -> Self {
16559        self.inner.nz_bank_account = Some(nz_bank_account.into());
16560        self
16561    }
16562    /// OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico.
16563    /// OXXO allows customers to pay bills and online purchases in-store with cash.
16564    /// Check this [page](https://docs.stripe.com/payments/oxxo) for more details.
16565    pub fn oxxo(mut self, oxxo: impl Into<UpdatePaymentMethodConfigurationOxxo>) -> Self {
16566        self.inner.oxxo = Some(oxxo.into());
16567        self
16568    }
16569    /// Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods.
16570    /// Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks.
16571    /// Check this [page](https://docs.stripe.com/payments/p24) for more details.
16572    pub fn p24(mut self, p24: impl Into<UpdatePaymentMethodConfigurationP24>) -> Self {
16573        self.inner.p24 = Some(p24.into());
16574        self
16575    }
16576    /// Pay by bank is a redirect payment method backed by bank transfers.
16577    /// A customer is redirected to their bank to authorize a bank transfer for a given amount.
16578    /// This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments.
16579    pub fn pay_by_bank(
16580        mut self,
16581        pay_by_bank: impl Into<UpdatePaymentMethodConfigurationPayByBank>,
16582    ) -> Self {
16583        self.inner.pay_by_bank = Some(pay_by_bank.into());
16584        self
16585    }
16586    /// PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
16587    pub fn payco(mut self, payco: impl Into<UpdatePaymentMethodConfigurationPayco>) -> Self {
16588        self.inner.payco = Some(payco.into());
16589        self
16590    }
16591    /// PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions.
16592    /// Check this [page](https://docs.stripe.com/payments/paynow) for more details.
16593    pub fn paynow(mut self, paynow: impl Into<UpdatePaymentMethodConfigurationPaynow>) -> Self {
16594        self.inner.paynow = Some(paynow.into());
16595        self
16596    }
16597    /// PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account.
16598    /// Check this [page](https://docs.stripe.com/payments/paypal) for more details.
16599    pub fn paypal(mut self, paypal: impl Into<UpdatePaymentMethodConfigurationPaypal>) -> Self {
16600        self.inner.paypal = Some(paypal.into());
16601        self
16602    }
16603    /// PayTo is a [real-time](https://docs.stripe.com/payments/real-time) payment method that enables customers in Australia to pay by providing their bank account details.
16604    /// Customers must accept a mandate authorizing you to debit their account.
16605    /// Check this [page](https://docs.stripe.com/payments/payto) for more details.
16606    pub fn payto(mut self, payto: impl Into<UpdatePaymentMethodConfigurationPayto>) -> Self {
16607        self.inner.payto = Some(payto.into());
16608        self
16609    }
16610    /// Pix is a payment method popular in Brazil.
16611    /// When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app.
16612    /// Check this [page](https://docs.stripe.com/payments/pix) for more details.
16613    pub fn pix(mut self, pix: impl Into<UpdatePaymentMethodConfigurationPix>) -> Self {
16614        self.inner.pix = Some(pix.into());
16615        self
16616    }
16617    /// PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks.
16618    /// Check this [page](https://docs.stripe.com/payments/promptpay) for more details.
16619    pub fn promptpay(
16620        mut self,
16621        promptpay: impl Into<UpdatePaymentMethodConfigurationPromptpay>,
16622    ) -> Self {
16623        self.inner.promptpay = Some(promptpay.into());
16624        self
16625    }
16626    /// Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method.
16627    /// Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.
16628    pub fn revolut_pay(
16629        mut self,
16630        revolut_pay: impl Into<UpdatePaymentMethodConfigurationRevolutPay>,
16631    ) -> Self {
16632        self.inner.revolut_pay = Some(revolut_pay.into());
16633        self
16634    }
16635    /// Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea.
16636    pub fn samsung_pay(
16637        mut self,
16638        samsung_pay: impl Into<UpdatePaymentMethodConfigurationSamsungPay>,
16639    ) -> Self {
16640        self.inner.samsung_pay = Some(samsung_pay.into());
16641        self
16642    }
16643    /// Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](/payments/payment-methods#customer-actions) their payment.
16644    /// Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app.
16645    /// You get [immediate notification](/payments/payment-methods#payment-notification) of whether the payment succeeded or failed.
16646    pub fn satispay(
16647        mut self,
16648        satispay: impl Into<UpdatePaymentMethodConfigurationSatispay>,
16649    ) -> Self {
16650        self.inner.satispay = Some(satispay.into());
16651        self
16652    }
16653    /// The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries.
16654    /// SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://docs.stripe.com/payments/sepa-debit) for more details.
16655    pub fn sepa_debit(
16656        mut self,
16657        sepa_debit: impl Into<UpdatePaymentMethodConfigurationSepaDebit>,
16658    ) -> Self {
16659        self.inner.sepa_debit = Some(sepa_debit.into());
16660        self
16661    }
16662    /// Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers.
16663    /// Check this [page](https://docs.stripe.com/payments/sofort) for more details.
16664    pub fn sofort(mut self, sofort: impl Into<UpdatePaymentMethodConfigurationSofort>) -> Self {
16665        self.inner.sofort = Some(sofort.into());
16666        self
16667    }
16668    /// Swish is a [real-time](https://docs.stripe.com/payments/real-time) payment method popular in Sweden.
16669    /// It allows customers to [authenticate and approve](https://docs.stripe.com/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app.
16670    /// Check this [page](https://docs.stripe.com/payments/swish) for more details.
16671    pub fn swish(mut self, swish: impl Into<UpdatePaymentMethodConfigurationSwish>) -> Self {
16672        self.inner.swish = Some(swish.into());
16673        self
16674    }
16675    /// Twint is a payment method popular in Switzerland.
16676    /// It allows customers to pay using their mobile phone.
16677    /// Check this [page](https://docs.stripe.com/payments/twint) for more details.
16678    pub fn twint(mut self, twint: impl Into<UpdatePaymentMethodConfigurationTwint>) -> Self {
16679        self.inner.twint = Some(twint.into());
16680        self
16681    }
16682    /// Unified Payment Interface (UPI) is India's leading payment method with exponential growth since it launched in 2016.
16683    pub fn upi(mut self, upi: impl Into<UpdatePaymentMethodConfigurationUpi>) -> Self {
16684        self.inner.upi = Some(upi.into());
16685        self
16686    }
16687    /// Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha.
16688    /// Check this [page](https://docs.stripe.com/payments/ach-direct-debit) for more details.
16689    pub fn us_bank_account(
16690        mut self,
16691        us_bank_account: impl Into<UpdatePaymentMethodConfigurationUsBankAccount>,
16692    ) -> Self {
16693        self.inner.us_bank_account = Some(us_bank_account.into());
16694        self
16695    }
16696    /// WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users.
16697    /// Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites.
16698    /// WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition.
16699    /// Check this [page](https://docs.stripe.com/payments/wechat-pay) for more details.
16700    pub fn wechat_pay(
16701        mut self,
16702        wechat_pay: impl Into<UpdatePaymentMethodConfigurationWechatPay>,
16703    ) -> Self {
16704        self.inner.wechat_pay = Some(wechat_pay.into());
16705        self
16706    }
16707    /// Zip gives your customers a way to split purchases over a series of payments.
16708    /// Check this [page](https://docs.stripe.com/payments/zip) for more details like country availability.
16709    pub fn zip(mut self, zip: impl Into<UpdatePaymentMethodConfigurationZip>) -> Self {
16710        self.inner.zip = Some(zip.into());
16711        self
16712    }
16713}
16714impl UpdatePaymentMethodConfiguration {
16715    /// Send the request and return the deserialized response.
16716    pub async fn send<C: StripeClient>(
16717        &self,
16718        client: &C,
16719    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
16720        self.customize().send(client).await
16721    }
16722
16723    /// Send the request and return the deserialized response, blocking until completion.
16724    pub fn send_blocking<C: StripeBlockingClient>(
16725        &self,
16726        client: &C,
16727    ) -> Result<<Self as StripeRequest>::Output, C::Err> {
16728        self.customize().send_blocking(client)
16729    }
16730}
16731
16732impl StripeRequest for UpdatePaymentMethodConfiguration {
16733    type Output = stripe_payment::PaymentMethodConfiguration;
16734
16735    fn build(&self) -> RequestBuilder {
16736        let configuration = &self.configuration;
16737        RequestBuilder::new(
16738            StripeMethod::Post,
16739            format!("/payment_method_configurations/{configuration}"),
16740        )
16741        .form(&self.inner)
16742    }
16743}