1use stripe_client_core::{
2 RequestBuilder, StripeBlockingClient, StripeClient, StripeMethod, StripeRequest,
3};
4
5#[derive(Clone, Debug, serde::Serialize)]
6struct CreateCustomerSessionBuilder {
7 components: CreateCustomerSessionComponents,
8 customer: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 expand: Option<Vec<String>>,
11}
12impl CreateCustomerSessionBuilder {
13 fn new(
14 components: impl Into<CreateCustomerSessionComponents>,
15 customer: impl Into<String>,
16 ) -> Self {
17 Self { components: components.into(), customer: customer.into(), expand: None }
18 }
19}
20#[derive(Clone, Debug, serde::Serialize)]
22pub struct CreateCustomerSessionComponents {
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub buy_button: Option<CreateCustomerSessionComponentsBuyButton>,
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub customer_sheet: Option<CreateCustomerSessionComponentsCustomerSheet>,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub mobile_payment_element: Option<CreateCustomerSessionComponentsMobilePaymentElement>,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub payment_element: Option<CreateCustomerSessionComponentsPaymentElement>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub pricing_table: Option<CreateCustomerSessionComponentsPricingTable>,
38}
39impl CreateCustomerSessionComponents {
40 pub fn new() -> Self {
41 Self {
42 buy_button: None,
43 customer_sheet: None,
44 mobile_payment_element: None,
45 payment_element: None,
46 pricing_table: None,
47 }
48 }
49}
50impl Default for CreateCustomerSessionComponents {
51 fn default() -> Self {
52 Self::new()
53 }
54}
55#[derive(Copy, Clone, Debug, serde::Serialize)]
57pub struct CreateCustomerSessionComponentsBuyButton {
58 pub enabled: bool,
60}
61impl CreateCustomerSessionComponentsBuyButton {
62 pub fn new(enabled: impl Into<bool>) -> Self {
63 Self { enabled: enabled.into() }
64 }
65}
66#[derive(Clone, Debug, serde::Serialize)]
68pub struct CreateCustomerSessionComponentsCustomerSheet {
69 pub enabled: bool,
71 #[serde(skip_serializing_if = "Option::is_none")]
73 pub features: Option<CreateCustomerSessionComponentsCustomerSheetFeatures>,
74}
75impl CreateCustomerSessionComponentsCustomerSheet {
76 pub fn new(enabled: impl Into<bool>) -> Self {
77 Self { enabled: enabled.into(), features: None }
78 }
79}
80#[derive(Clone, Debug, serde::Serialize)]
82pub struct CreateCustomerSessionComponentsCustomerSheetFeatures {
83 #[serde(skip_serializing_if = "Option::is_none")]
88 pub payment_method_allow_redisplay_filters: Option<
89 Vec<CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters>,
90 >,
91 #[serde(skip_serializing_if = "Option::is_none")]
96 pub payment_method_remove:
97 Option<CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove>,
98}
99impl CreateCustomerSessionComponentsCustomerSheetFeatures {
100 pub fn new() -> Self {
101 Self { payment_method_allow_redisplay_filters: None, payment_method_remove: None }
102 }
103}
104impl Default for CreateCustomerSessionComponentsCustomerSheetFeatures {
105 fn default() -> Self {
106 Self::new()
107 }
108}
109#[derive(Copy, Clone, Eq, PartialEq)]
114pub enum CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters {
115 Always,
116 Limited,
117 Unspecified,
118}
119impl CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters {
120 pub fn as_str(self) -> &'static str {
121 use CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters::*;
122 match self {
123 Always => "always",
124 Limited => "limited",
125 Unspecified => "unspecified",
126 }
127 }
128}
129
130impl std::str::FromStr
131 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters
132{
133 type Err = stripe_types::StripeParseError;
134 fn from_str(s: &str) -> Result<Self, Self::Err> {
135 use CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters::*;
136 match s {
137 "always" => Ok(Always),
138 "limited" => Ok(Limited),
139 "unspecified" => Ok(Unspecified),
140 _ => Err(stripe_types::StripeParseError),
141 }
142 }
143}
144impl std::fmt::Display
145 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters
146{
147 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
148 f.write_str(self.as_str())
149 }
150}
151
152impl std::fmt::Debug
153 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters
154{
155 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
156 f.write_str(self.as_str())
157 }
158}
159impl serde::Serialize
160 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters
161{
162 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
163 where
164 S: serde::Serializer,
165 {
166 serializer.serialize_str(self.as_str())
167 }
168}
169#[cfg(feature = "deserialize")]
170impl<'de> serde::Deserialize<'de>
171 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters
172{
173 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
174 use std::str::FromStr;
175 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
176 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodAllowRedisplayFilters"))
177 }
178}
179#[derive(Copy, Clone, Eq, PartialEq)]
184pub enum CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
185 Disabled,
186 Enabled,
187}
188impl CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
189 pub fn as_str(self) -> &'static str {
190 use CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove::*;
191 match self {
192 Disabled => "disabled",
193 Enabled => "enabled",
194 }
195 }
196}
197
198impl std::str::FromStr for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
199 type Err = stripe_types::StripeParseError;
200 fn from_str(s: &str) -> Result<Self, Self::Err> {
201 use CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove::*;
202 match s {
203 "disabled" => Ok(Disabled),
204 "enabled" => Ok(Enabled),
205 _ => Err(stripe_types::StripeParseError),
206 }
207 }
208}
209impl std::fmt::Display for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
210 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
211 f.write_str(self.as_str())
212 }
213}
214
215impl std::fmt::Debug for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
216 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
217 f.write_str(self.as_str())
218 }
219}
220impl serde::Serialize for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove {
221 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
222 where
223 S: serde::Serializer,
224 {
225 serializer.serialize_str(self.as_str())
226 }
227}
228#[cfg(feature = "deserialize")]
229impl<'de> serde::Deserialize<'de>
230 for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove
231{
232 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
233 use std::str::FromStr;
234 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
235 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsCustomerSheetFeaturesPaymentMethodRemove"))
236 }
237}
238#[derive(Clone, Debug, serde::Serialize)]
240pub struct CreateCustomerSessionComponentsMobilePaymentElement {
241 pub enabled: bool,
243 #[serde(skip_serializing_if = "Option::is_none")]
245 pub features: Option<CreateCustomerSessionComponentsMobilePaymentElementFeatures>,
246}
247impl CreateCustomerSessionComponentsMobilePaymentElement {
248 pub fn new(enabled: impl Into<bool>) -> Self {
249 Self { enabled: enabled.into(), features: None }
250 }
251}
252#[derive(Clone, Debug, serde::Serialize)]
254pub struct CreateCustomerSessionComponentsMobilePaymentElementFeatures {
255 #[serde(skip_serializing_if = "Option::is_none")]
260pub payment_method_allow_redisplay_filters: Option<Vec<CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters>>,
261 #[serde(skip_serializing_if = "Option::is_none")]
263pub payment_method_redisplay: Option<CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay>,
264 #[serde(skip_serializing_if = "Option::is_none")]
269pub payment_method_remove: Option<CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove>,
270 #[serde(skip_serializing_if = "Option::is_none")]
275pub payment_method_save: Option<CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave>,
276 #[serde(skip_serializing_if = "Option::is_none")]
281pub payment_method_save_allow_redisplay_override: Option<CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride>,
282
283}
284impl CreateCustomerSessionComponentsMobilePaymentElementFeatures {
285 pub fn new() -> Self {
286 Self {
287 payment_method_allow_redisplay_filters: None,
288 payment_method_redisplay: None,
289 payment_method_remove: None,
290 payment_method_save: None,
291 payment_method_save_allow_redisplay_override: None,
292 }
293 }
294}
295impl Default for CreateCustomerSessionComponentsMobilePaymentElementFeatures {
296 fn default() -> Self {
297 Self::new()
298 }
299}
300#[derive(Copy, Clone, Eq, PartialEq)]
305pub enum CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters
306{
307 Always,
308 Limited,
309 Unspecified,
310}
311impl CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
312 pub fn as_str(self) -> &'static str {
313 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters::*;
314 match self {
315 Always => "always",
316 Limited => "limited",
317 Unspecified => "unspecified",
318 }
319 }
320}
321
322impl std::str::FromStr for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
323 type Err = stripe_types::StripeParseError;
324 fn from_str(s: &str) -> Result<Self, Self::Err> {
325 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters::*;
326 match s {
327 "always" => Ok(Always),
328"limited" => Ok(Limited),
329"unspecified" => Ok(Unspecified),
330_ => Err(stripe_types::StripeParseError)
331
332 }
333 }
334}
335impl std::fmt::Display for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
336 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
337 f.write_str(self.as_str())
338 }
339}
340
341impl std::fmt::Debug for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
342 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
343 f.write_str(self.as_str())
344 }
345}
346impl serde::Serialize for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
347 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
348 serializer.serialize_str(self.as_str())
349 }
350}
351#[cfg(feature = "deserialize")]
352impl<'de> serde::Deserialize<'de> for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
353 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
354 use std::str::FromStr;
355 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
356 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodAllowRedisplayFilters"))
357 }
358}
359#[derive(Copy, Clone, Eq, PartialEq)]
361pub enum CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay {
362 Disabled,
363 Enabled,
364}
365impl CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay {
366 pub fn as_str(self) -> &'static str {
367 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay::*;
368 match self {
369 Disabled => "disabled",
370 Enabled => "enabled",
371 }
372 }
373}
374
375impl std::str::FromStr
376 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay
377{
378 type Err = stripe_types::StripeParseError;
379 fn from_str(s: &str) -> Result<Self, Self::Err> {
380 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay::*;
381 match s {
382 "disabled" => Ok(Disabled),
383 "enabled" => Ok(Enabled),
384 _ => Err(stripe_types::StripeParseError),
385 }
386 }
387}
388impl std::fmt::Display
389 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay
390{
391 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
392 f.write_str(self.as_str())
393 }
394}
395
396impl std::fmt::Debug
397 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay
398{
399 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
400 f.write_str(self.as_str())
401 }
402}
403impl serde::Serialize
404 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay
405{
406 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
407 where
408 S: serde::Serializer,
409 {
410 serializer.serialize_str(self.as_str())
411 }
412}
413#[cfg(feature = "deserialize")]
414impl<'de> serde::Deserialize<'de>
415 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay
416{
417 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
418 use std::str::FromStr;
419 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
420 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRedisplay"))
421 }
422}
423#[derive(Copy, Clone, Eq, PartialEq)]
428pub enum CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove {
429 Disabled,
430 Enabled,
431}
432impl CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove {
433 pub fn as_str(self) -> &'static str {
434 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove::*;
435 match self {
436 Disabled => "disabled",
437 Enabled => "enabled",
438 }
439 }
440}
441
442impl std::str::FromStr
443 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove
444{
445 type Err = stripe_types::StripeParseError;
446 fn from_str(s: &str) -> Result<Self, Self::Err> {
447 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove::*;
448 match s {
449 "disabled" => Ok(Disabled),
450 "enabled" => Ok(Enabled),
451 _ => Err(stripe_types::StripeParseError),
452 }
453 }
454}
455impl std::fmt::Display
456 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove
457{
458 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
459 f.write_str(self.as_str())
460 }
461}
462
463impl std::fmt::Debug
464 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove
465{
466 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
467 f.write_str(self.as_str())
468 }
469}
470impl serde::Serialize
471 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove
472{
473 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
474 where
475 S: serde::Serializer,
476 {
477 serializer.serialize_str(self.as_str())
478 }
479}
480#[cfg(feature = "deserialize")]
481impl<'de> serde::Deserialize<'de>
482 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove
483{
484 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
485 use std::str::FromStr;
486 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
487 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodRemove"))
488 }
489}
490#[derive(Copy, Clone, Eq, PartialEq)]
495pub enum CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave {
496 Disabled,
497 Enabled,
498}
499impl CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave {
500 pub fn as_str(self) -> &'static str {
501 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave::*;
502 match self {
503 Disabled => "disabled",
504 Enabled => "enabled",
505 }
506 }
507}
508
509impl std::str::FromStr
510 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave
511{
512 type Err = stripe_types::StripeParseError;
513 fn from_str(s: &str) -> Result<Self, Self::Err> {
514 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave::*;
515 match s {
516 "disabled" => Ok(Disabled),
517 "enabled" => Ok(Enabled),
518 _ => Err(stripe_types::StripeParseError),
519 }
520 }
521}
522impl std::fmt::Display
523 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave
524{
525 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
526 f.write_str(self.as_str())
527 }
528}
529
530impl std::fmt::Debug
531 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave
532{
533 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
534 f.write_str(self.as_str())
535 }
536}
537impl serde::Serialize
538 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave
539{
540 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
541 where
542 S: serde::Serializer,
543 {
544 serializer.serialize_str(self.as_str())
545 }
546}
547#[cfg(feature = "deserialize")]
548impl<'de> serde::Deserialize<'de>
549 for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave
550{
551 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
552 use std::str::FromStr;
553 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
554 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSave"))
555 }
556}
557#[derive(Copy, Clone, Eq, PartialEq)]
562pub enum CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride
563{
564 Always,
565 Limited,
566 Unspecified,
567}
568impl CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
569 pub fn as_str(self) -> &'static str {
570 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride::*;
571 match self {
572Always => "always",
573Limited => "limited",
574Unspecified => "unspecified",
575
576 }
577 }
578}
579
580impl std::str::FromStr for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
581 type Err = stripe_types::StripeParseError;
582 fn from_str(s: &str) -> Result<Self, Self::Err> {
583 use CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride::*;
584 match s {
585 "always" => Ok(Always),
586"limited" => Ok(Limited),
587"unspecified" => Ok(Unspecified),
588_ => Err(stripe_types::StripeParseError)
589
590 }
591 }
592}
593impl std::fmt::Display for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
594 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
595 f.write_str(self.as_str())
596 }
597}
598
599impl std::fmt::Debug for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
600 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
601 f.write_str(self.as_str())
602 }
603}
604impl serde::Serialize for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
605 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
606 serializer.serialize_str(self.as_str())
607 }
608}
609#[cfg(feature = "deserialize")]
610impl<'de> serde::Deserialize<'de> for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride {
611 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
612 use std::str::FromStr;
613 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
614 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsMobilePaymentElementFeaturesPaymentMethodSaveAllowRedisplayOverride"))
615 }
616}
617#[derive(Clone, Debug, serde::Serialize)]
619pub struct CreateCustomerSessionComponentsPaymentElement {
620 pub enabled: bool,
622 #[serde(skip_serializing_if = "Option::is_none")]
624 pub features: Option<CreateCustomerSessionComponentsPaymentElementFeatures>,
625}
626impl CreateCustomerSessionComponentsPaymentElement {
627 pub fn new(enabled: impl Into<bool>) -> Self {
628 Self { enabled: enabled.into(), features: None }
629 }
630}
631#[derive(Clone, Debug, serde::Serialize)]
633pub struct CreateCustomerSessionComponentsPaymentElementFeatures {
634 #[serde(skip_serializing_if = "Option::is_none")]
639 pub payment_method_allow_redisplay_filters: Option<
640 Vec<
641 CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters,
642 >,
643 >,
644 #[serde(skip_serializing_if = "Option::is_none")]
647 pub payment_method_redisplay:
648 Option<CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay>,
649 #[serde(skip_serializing_if = "Option::is_none")]
653 pub payment_method_redisplay_limit: Option<i64>,
654 #[serde(skip_serializing_if = "Option::is_none")]
660 pub payment_method_remove:
661 Option<CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove>,
662 #[serde(skip_serializing_if = "Option::is_none")]
668 pub payment_method_save:
669 Option<CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave>,
670 #[serde(skip_serializing_if = "Option::is_none")]
674 pub payment_method_save_usage:
675 Option<CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage>,
676}
677impl CreateCustomerSessionComponentsPaymentElementFeatures {
678 pub fn new() -> Self {
679 Self {
680 payment_method_allow_redisplay_filters: None,
681 payment_method_redisplay: None,
682 payment_method_redisplay_limit: None,
683 payment_method_remove: None,
684 payment_method_save: None,
685 payment_method_save_usage: None,
686 }
687 }
688}
689impl Default for CreateCustomerSessionComponentsPaymentElementFeatures {
690 fn default() -> Self {
691 Self::new()
692 }
693}
694#[derive(Copy, Clone, Eq, PartialEq)]
699pub enum CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
700 Always,
701 Limited,
702 Unspecified,
703}
704impl CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters {
705 pub fn as_str(self) -> &'static str {
706 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters::*;
707 match self {
708 Always => "always",
709 Limited => "limited",
710 Unspecified => "unspecified",
711 }
712 }
713}
714
715impl std::str::FromStr
716 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters
717{
718 type Err = stripe_types::StripeParseError;
719 fn from_str(s: &str) -> Result<Self, Self::Err> {
720 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters::*;
721 match s {
722 "always" => Ok(Always),
723 "limited" => Ok(Limited),
724 "unspecified" => Ok(Unspecified),
725 _ => Err(stripe_types::StripeParseError),
726 }
727 }
728}
729impl std::fmt::Display
730 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters
731{
732 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
733 f.write_str(self.as_str())
734 }
735}
736
737impl std::fmt::Debug
738 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters
739{
740 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
741 f.write_str(self.as_str())
742 }
743}
744impl serde::Serialize
745 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters
746{
747 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
748 where
749 S: serde::Serializer,
750 {
751 serializer.serialize_str(self.as_str())
752 }
753}
754#[cfg(feature = "deserialize")]
755impl<'de> serde::Deserialize<'de>
756 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters
757{
758 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
759 use std::str::FromStr;
760 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
761 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodAllowRedisplayFilters"))
762 }
763}
764#[derive(Copy, Clone, Eq, PartialEq)]
767pub enum CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay {
768 Disabled,
769 Enabled,
770}
771impl CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay {
772 pub fn as_str(self) -> &'static str {
773 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay::*;
774 match self {
775 Disabled => "disabled",
776 Enabled => "enabled",
777 }
778 }
779}
780
781impl std::str::FromStr
782 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay
783{
784 type Err = stripe_types::StripeParseError;
785 fn from_str(s: &str) -> Result<Self, Self::Err> {
786 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay::*;
787 match s {
788 "disabled" => Ok(Disabled),
789 "enabled" => Ok(Enabled),
790 _ => Err(stripe_types::StripeParseError),
791 }
792 }
793}
794impl std::fmt::Display
795 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay
796{
797 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
798 f.write_str(self.as_str())
799 }
800}
801
802impl std::fmt::Debug
803 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay
804{
805 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
806 f.write_str(self.as_str())
807 }
808}
809impl serde::Serialize
810 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay
811{
812 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
813 where
814 S: serde::Serializer,
815 {
816 serializer.serialize_str(self.as_str())
817 }
818}
819#[cfg(feature = "deserialize")]
820impl<'de> serde::Deserialize<'de>
821 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay
822{
823 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
824 use std::str::FromStr;
825 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
826 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRedisplay"))
827 }
828}
829#[derive(Copy, Clone, Eq, PartialEq)]
835pub enum CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove {
836 Disabled,
837 Enabled,
838}
839impl CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove {
840 pub fn as_str(self) -> &'static str {
841 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove::*;
842 match self {
843 Disabled => "disabled",
844 Enabled => "enabled",
845 }
846 }
847}
848
849impl std::str::FromStr
850 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove
851{
852 type Err = stripe_types::StripeParseError;
853 fn from_str(s: &str) -> Result<Self, Self::Err> {
854 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove::*;
855 match s {
856 "disabled" => Ok(Disabled),
857 "enabled" => Ok(Enabled),
858 _ => Err(stripe_types::StripeParseError),
859 }
860 }
861}
862impl std::fmt::Display
863 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove
864{
865 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
866 f.write_str(self.as_str())
867 }
868}
869
870impl std::fmt::Debug for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove {
871 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
872 f.write_str(self.as_str())
873 }
874}
875impl serde::Serialize for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove {
876 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
877 where
878 S: serde::Serializer,
879 {
880 serializer.serialize_str(self.as_str())
881 }
882}
883#[cfg(feature = "deserialize")]
884impl<'de> serde::Deserialize<'de>
885 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove
886{
887 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
888 use std::str::FromStr;
889 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
890 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodRemove"))
891 }
892}
893#[derive(Copy, Clone, Eq, PartialEq)]
899pub enum CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
900 Disabled,
901 Enabled,
902}
903impl CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
904 pub fn as_str(self) -> &'static str {
905 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave::*;
906 match self {
907 Disabled => "disabled",
908 Enabled => "enabled",
909 }
910 }
911}
912
913impl std::str::FromStr for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
914 type Err = stripe_types::StripeParseError;
915 fn from_str(s: &str) -> Result<Self, Self::Err> {
916 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave::*;
917 match s {
918 "disabled" => Ok(Disabled),
919 "enabled" => Ok(Enabled),
920 _ => Err(stripe_types::StripeParseError),
921 }
922 }
923}
924impl std::fmt::Display for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
925 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
926 f.write_str(self.as_str())
927 }
928}
929
930impl std::fmt::Debug for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
931 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
932 f.write_str(self.as_str())
933 }
934}
935impl serde::Serialize for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave {
936 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
937 where
938 S: serde::Serializer,
939 {
940 serializer.serialize_str(self.as_str())
941 }
942}
943#[cfg(feature = "deserialize")]
944impl<'de> serde::Deserialize<'de>
945 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave
946{
947 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
948 use std::str::FromStr;
949 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
950 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSave"))
951 }
952}
953#[derive(Copy, Clone, Eq, PartialEq)]
957pub enum CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage {
958 OffSession,
959 OnSession,
960}
961impl CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage {
962 pub fn as_str(self) -> &'static str {
963 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage::*;
964 match self {
965 OffSession => "off_session",
966 OnSession => "on_session",
967 }
968 }
969}
970
971impl std::str::FromStr
972 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage
973{
974 type Err = stripe_types::StripeParseError;
975 fn from_str(s: &str) -> Result<Self, Self::Err> {
976 use CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage::*;
977 match s {
978 "off_session" => Ok(OffSession),
979 "on_session" => Ok(OnSession),
980 _ => Err(stripe_types::StripeParseError),
981 }
982 }
983}
984impl std::fmt::Display
985 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage
986{
987 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
988 f.write_str(self.as_str())
989 }
990}
991
992impl std::fmt::Debug
993 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage
994{
995 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
996 f.write_str(self.as_str())
997 }
998}
999impl serde::Serialize
1000 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage
1001{
1002 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1003 where
1004 S: serde::Serializer,
1005 {
1006 serializer.serialize_str(self.as_str())
1007 }
1008}
1009#[cfg(feature = "deserialize")]
1010impl<'de> serde::Deserialize<'de>
1011 for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage
1012{
1013 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1014 use std::str::FromStr;
1015 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
1016 Self::from_str(&s).map_err(|_| serde::de::Error::custom("Unknown value for CreateCustomerSessionComponentsPaymentElementFeaturesPaymentMethodSaveUsage"))
1017 }
1018}
1019#[derive(Copy, Clone, Debug, serde::Serialize)]
1021pub struct CreateCustomerSessionComponentsPricingTable {
1022 pub enabled: bool,
1024}
1025impl CreateCustomerSessionComponentsPricingTable {
1026 pub fn new(enabled: impl Into<bool>) -> Self {
1027 Self { enabled: enabled.into() }
1028 }
1029}
1030#[derive(Clone, Debug, serde::Serialize)]
1032pub struct CreateCustomerSession {
1033 inner: CreateCustomerSessionBuilder,
1034}
1035impl CreateCustomerSession {
1036 pub fn new(
1038 components: impl Into<CreateCustomerSessionComponents>,
1039 customer: impl Into<String>,
1040 ) -> Self {
1041 Self { inner: CreateCustomerSessionBuilder::new(components.into(), customer.into()) }
1042 }
1043 pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
1045 self.inner.expand = Some(expand.into());
1046 self
1047 }
1048}
1049impl CreateCustomerSession {
1050 pub async fn send<C: StripeClient>(
1052 &self,
1053 client: &C,
1054 ) -> Result<<Self as StripeRequest>::Output, C::Err> {
1055 self.customize().send(client).await
1056 }
1057
1058 pub fn send_blocking<C: StripeBlockingClient>(
1060 &self,
1061 client: &C,
1062 ) -> Result<<Self as StripeRequest>::Output, C::Err> {
1063 self.customize().send_blocking(client)
1064 }
1065}
1066
1067impl StripeRequest for CreateCustomerSession {
1068 type Output = stripe_core::CustomerSession;
1069
1070 fn build(&self) -> RequestBuilder {
1071 RequestBuilder::new(StripeMethod::Post, "/customer_sessions").form(&self.inner)
1072 }
1073}