stripe/resources/generated/
customer_session.rs1use crate::client::{Client, Response};
6use crate::ids::CustomerId;
7use crate::params::{Expand, Expandable, Object, Timestamp};
8use crate::resources::Customer;
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Default, Deserialize, Serialize)]
15pub struct CustomerSession {
16 pub client_secret: String,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub components: Option<CustomerSessionResourceComponents>,
25
26 pub created: Timestamp,
30
31 pub customer: Expandable<Customer>,
33
34 pub expires_at: Timestamp,
36
37 pub livemode: bool,
39}
40
41impl CustomerSession {
42 pub fn create(client: &Client, params: CreateCustomerSession<'_>) -> Response<CustomerSession> {
44 #[allow(clippy::needless_borrows_for_generic_args)]
45 client.post_form("/customer_sessions", ¶ms)
46 }
47}
48
49impl Object for CustomerSession {
50 type Id = ();
51 fn id(&self) -> Self::Id {}
52 fn object(&self) -> &'static str {
53 "customer_session"
54 }
55}
56
57#[derive(Clone, Debug, Default, Deserialize, Serialize)]
58pub struct CustomerSessionResourceComponents {
59 pub buy_button: CustomerSessionResourceComponentsResourceBuyButton,
60
61 pub pricing_table: CustomerSessionResourceComponentsResourcePricingTable,
62}
63
64#[derive(Clone, Debug, Default, Deserialize, Serialize)]
65pub struct CustomerSessionResourceComponentsResourceBuyButton {
66 pub enabled: bool,
68}
69
70#[derive(Clone, Debug, Default, Deserialize, Serialize)]
71pub struct CustomerSessionResourceComponentsResourcePricingTable {
72 pub enabled: bool,
74}
75
76#[derive(Clone, Debug, Serialize)]
78pub struct CreateCustomerSession<'a> {
79 pub components: CreateCustomerSessionComponents,
83
84 pub customer: CustomerId,
86
87 #[serde(skip_serializing_if = "Expand::is_empty")]
89 pub expand: &'a [&'a str],
90}
91
92impl<'a> CreateCustomerSession<'a> {
93 pub fn new(components: CreateCustomerSessionComponents, customer: CustomerId) -> Self {
94 CreateCustomerSession { components, customer, expand: Default::default() }
95 }
96}
97
98#[derive(Clone, Debug, Default, Deserialize, Serialize)]
99pub struct CreateCustomerSessionComponents {
100 #[serde(skip_serializing_if = "Option::is_none")]
102 pub buy_button: Option<CreateCustomerSessionComponentsBuyButton>,
103
104 #[serde(skip_serializing_if = "Option::is_none")]
106 pub pricing_table: Option<CreateCustomerSessionComponentsPricingTable>,
107}
108
109#[derive(Clone, Debug, Default, Deserialize, Serialize)]
110pub struct CreateCustomerSessionComponentsBuyButton {
111 pub enabled: bool,
113}
114
115#[derive(Clone, Debug, Default, Deserialize, Serialize)]
116pub struct CreateCustomerSessionComponentsPricingTable {
117 pub enabled: bool,
119}