1#[derive(Copy, Clone, Eq, PartialEq)]
2#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
4#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
5pub struct ConnectEmbeddedAccountSessionCreateComponents {
6 pub account_management: stripe_connect::ConnectEmbeddedAccountConfigClaim,
7 pub account_onboarding: stripe_connect::ConnectEmbeddedAccountConfigClaim,
8 pub balances: stripe_connect::ConnectEmbeddedPayoutsConfig,
9 pub disputes_list: stripe_connect::ConnectEmbeddedDisputesListConfig,
10 pub documents: stripe_connect::ConnectEmbeddedBaseConfigClaim,
11 pub financial_account: stripe_connect::ConnectEmbeddedFinancialAccountConfigClaim,
12 pub financial_account_transactions:
13 stripe_connect::ConnectEmbeddedFinancialAccountTransactionsConfigClaim,
14 pub instant_payouts_promotion: stripe_connect::ConnectEmbeddedInstantPayoutsPromotionConfig,
15 pub issuing_card: stripe_connect::ConnectEmbeddedIssuingCardConfigClaim,
16 pub issuing_cards_list: stripe_connect::ConnectEmbeddedIssuingCardsListConfigClaim,
17 pub notification_banner: stripe_connect::ConnectEmbeddedAccountConfigClaim,
18 pub payment_details: stripe_connect::ConnectEmbeddedPaymentsConfigClaim,
19 pub payment_disputes: stripe_connect::ConnectEmbeddedPaymentDisputesConfig,
20 pub payments: stripe_connect::ConnectEmbeddedPaymentsConfigClaim,
21 pub payout_details: stripe_connect::ConnectEmbeddedBaseConfigClaim,
22 pub payouts: stripe_connect::ConnectEmbeddedPayoutsConfig,
23 pub payouts_list: stripe_connect::ConnectEmbeddedBaseConfigClaim,
24 pub tax_registrations: stripe_connect::ConnectEmbeddedBaseConfigClaim,
25 pub tax_settings: stripe_connect::ConnectEmbeddedBaseConfigClaim,
26}
27#[cfg(feature = "redact-generated-debug")]
28impl std::fmt::Debug for ConnectEmbeddedAccountSessionCreateComponents {
29 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
30 f.debug_struct("ConnectEmbeddedAccountSessionCreateComponents").finish_non_exhaustive()
31 }
32}
33#[doc(hidden)]
34pub struct ConnectEmbeddedAccountSessionCreateComponentsBuilder {
35 account_management: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
36 account_onboarding: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
37 balances: Option<stripe_connect::ConnectEmbeddedPayoutsConfig>,
38 disputes_list: Option<stripe_connect::ConnectEmbeddedDisputesListConfig>,
39 documents: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
40 financial_account: Option<stripe_connect::ConnectEmbeddedFinancialAccountConfigClaim>,
41 financial_account_transactions:
42 Option<stripe_connect::ConnectEmbeddedFinancialAccountTransactionsConfigClaim>,
43 instant_payouts_promotion: Option<stripe_connect::ConnectEmbeddedInstantPayoutsPromotionConfig>,
44 issuing_card: Option<stripe_connect::ConnectEmbeddedIssuingCardConfigClaim>,
45 issuing_cards_list: Option<stripe_connect::ConnectEmbeddedIssuingCardsListConfigClaim>,
46 notification_banner: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
47 payment_details: Option<stripe_connect::ConnectEmbeddedPaymentsConfigClaim>,
48 payment_disputes: Option<stripe_connect::ConnectEmbeddedPaymentDisputesConfig>,
49 payments: Option<stripe_connect::ConnectEmbeddedPaymentsConfigClaim>,
50 payout_details: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
51 payouts: Option<stripe_connect::ConnectEmbeddedPayoutsConfig>,
52 payouts_list: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
53 tax_registrations: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
54 tax_settings: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
55}
56
57#[allow(
58 unused_variables,
59 irrefutable_let_patterns,
60 clippy::let_unit_value,
61 clippy::match_single_binding,
62 clippy::single_match
63)]
64const _: () = {
65 use miniserde::de::{Map, Visitor};
66 use miniserde::json::Value;
67 use miniserde::{Deserialize, Result, make_place};
68 use stripe_types::miniserde_helpers::FromValueOpt;
69 use stripe_types::{MapBuilder, ObjectDeser};
70
71 make_place!(Place);
72
73 impl Deserialize for ConnectEmbeddedAccountSessionCreateComponents {
74 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
75 Place::new(out)
76 }
77 }
78
79 struct Builder<'a> {
80 out: &'a mut Option<ConnectEmbeddedAccountSessionCreateComponents>,
81 builder: ConnectEmbeddedAccountSessionCreateComponentsBuilder,
82 }
83
84 impl Visitor for Place<ConnectEmbeddedAccountSessionCreateComponents> {
85 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
86 Ok(Box::new(Builder {
87 out: &mut self.out,
88 builder: ConnectEmbeddedAccountSessionCreateComponentsBuilder::deser_default(),
89 }))
90 }
91 }
92
93 impl MapBuilder for ConnectEmbeddedAccountSessionCreateComponentsBuilder {
94 type Out = ConnectEmbeddedAccountSessionCreateComponents;
95 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
96 Ok(match k {
97 "account_management" => Deserialize::begin(&mut self.account_management),
98 "account_onboarding" => Deserialize::begin(&mut self.account_onboarding),
99 "balances" => Deserialize::begin(&mut self.balances),
100 "disputes_list" => Deserialize::begin(&mut self.disputes_list),
101 "documents" => Deserialize::begin(&mut self.documents),
102 "financial_account" => Deserialize::begin(&mut self.financial_account),
103 "financial_account_transactions" => {
104 Deserialize::begin(&mut self.financial_account_transactions)
105 }
106 "instant_payouts_promotion" => {
107 Deserialize::begin(&mut self.instant_payouts_promotion)
108 }
109 "issuing_card" => Deserialize::begin(&mut self.issuing_card),
110 "issuing_cards_list" => Deserialize::begin(&mut self.issuing_cards_list),
111 "notification_banner" => Deserialize::begin(&mut self.notification_banner),
112 "payment_details" => Deserialize::begin(&mut self.payment_details),
113 "payment_disputes" => Deserialize::begin(&mut self.payment_disputes),
114 "payments" => Deserialize::begin(&mut self.payments),
115 "payout_details" => Deserialize::begin(&mut self.payout_details),
116 "payouts" => Deserialize::begin(&mut self.payouts),
117 "payouts_list" => Deserialize::begin(&mut self.payouts_list),
118 "tax_registrations" => Deserialize::begin(&mut self.tax_registrations),
119 "tax_settings" => Deserialize::begin(&mut self.tax_settings),
120 _ => <dyn Visitor>::ignore(),
121 })
122 }
123
124 fn deser_default() -> Self {
125 Self {
126 account_management: Deserialize::default(),
127 account_onboarding: Deserialize::default(),
128 balances: Deserialize::default(),
129 disputes_list: Deserialize::default(),
130 documents: Deserialize::default(),
131 financial_account: Deserialize::default(),
132 financial_account_transactions: Deserialize::default(),
133 instant_payouts_promotion: Deserialize::default(),
134 issuing_card: Deserialize::default(),
135 issuing_cards_list: Deserialize::default(),
136 notification_banner: Deserialize::default(),
137 payment_details: Deserialize::default(),
138 payment_disputes: Deserialize::default(),
139 payments: Deserialize::default(),
140 payout_details: Deserialize::default(),
141 payouts: Deserialize::default(),
142 payouts_list: Deserialize::default(),
143 tax_registrations: Deserialize::default(),
144 tax_settings: Deserialize::default(),
145 }
146 }
147
148 fn take_out(&mut self) -> Option<Self::Out> {
149 let (
150 Some(account_management),
151 Some(account_onboarding),
152 Some(balances),
153 Some(disputes_list),
154 Some(documents),
155 Some(financial_account),
156 Some(financial_account_transactions),
157 Some(instant_payouts_promotion),
158 Some(issuing_card),
159 Some(issuing_cards_list),
160 Some(notification_banner),
161 Some(payment_details),
162 Some(payment_disputes),
163 Some(payments),
164 Some(payout_details),
165 Some(payouts),
166 Some(payouts_list),
167 Some(tax_registrations),
168 Some(tax_settings),
169 ) = (
170 self.account_management,
171 self.account_onboarding,
172 self.balances,
173 self.disputes_list,
174 self.documents,
175 self.financial_account,
176 self.financial_account_transactions,
177 self.instant_payouts_promotion,
178 self.issuing_card,
179 self.issuing_cards_list,
180 self.notification_banner,
181 self.payment_details,
182 self.payment_disputes,
183 self.payments,
184 self.payout_details,
185 self.payouts,
186 self.payouts_list,
187 self.tax_registrations,
188 self.tax_settings,
189 )
190 else {
191 return None;
192 };
193 Some(Self::Out {
194 account_management,
195 account_onboarding,
196 balances,
197 disputes_list,
198 documents,
199 financial_account,
200 financial_account_transactions,
201 instant_payouts_promotion,
202 issuing_card,
203 issuing_cards_list,
204 notification_banner,
205 payment_details,
206 payment_disputes,
207 payments,
208 payout_details,
209 payouts,
210 payouts_list,
211 tax_registrations,
212 tax_settings,
213 })
214 }
215 }
216
217 impl Map for Builder<'_> {
218 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
219 self.builder.key(k)
220 }
221
222 fn finish(&mut self) -> Result<()> {
223 *self.out = self.builder.take_out();
224 Ok(())
225 }
226 }
227
228 impl ObjectDeser for ConnectEmbeddedAccountSessionCreateComponents {
229 type Builder = ConnectEmbeddedAccountSessionCreateComponentsBuilder;
230 }
231
232 impl FromValueOpt for ConnectEmbeddedAccountSessionCreateComponents {
233 fn from_value(v: Value) -> Option<Self> {
234 let Value::Object(obj) = v else {
235 return None;
236 };
237 let mut b = ConnectEmbeddedAccountSessionCreateComponentsBuilder::deser_default();
238 for (k, v) in obj {
239 match k.as_str() {
240 "account_management" => b.account_management = FromValueOpt::from_value(v),
241 "account_onboarding" => b.account_onboarding = FromValueOpt::from_value(v),
242 "balances" => b.balances = FromValueOpt::from_value(v),
243 "disputes_list" => b.disputes_list = FromValueOpt::from_value(v),
244 "documents" => b.documents = FromValueOpt::from_value(v),
245 "financial_account" => b.financial_account = FromValueOpt::from_value(v),
246 "financial_account_transactions" => {
247 b.financial_account_transactions = FromValueOpt::from_value(v)
248 }
249 "instant_payouts_promotion" => {
250 b.instant_payouts_promotion = FromValueOpt::from_value(v)
251 }
252 "issuing_card" => b.issuing_card = FromValueOpt::from_value(v),
253 "issuing_cards_list" => b.issuing_cards_list = FromValueOpt::from_value(v),
254 "notification_banner" => b.notification_banner = FromValueOpt::from_value(v),
255 "payment_details" => b.payment_details = FromValueOpt::from_value(v),
256 "payment_disputes" => b.payment_disputes = FromValueOpt::from_value(v),
257 "payments" => b.payments = FromValueOpt::from_value(v),
258 "payout_details" => b.payout_details = FromValueOpt::from_value(v),
259 "payouts" => b.payouts = FromValueOpt::from_value(v),
260 "payouts_list" => b.payouts_list = FromValueOpt::from_value(v),
261 "tax_registrations" => b.tax_registrations = FromValueOpt::from_value(v),
262 "tax_settings" => b.tax_settings = FromValueOpt::from_value(v),
263 _ => {}
264 }
265 }
266 b.take_out()
267 }
268 }
269};