stripe/resources/generated/
terminal_configuration.rs

1// ======================================
2// This file was automatically generated.
3// ======================================
4
5use crate::client::{Client, Response};
6use crate::ids::TerminalConfigurationId;
7use crate::params::{Expand, Expandable, List, Object, Paginable};
8use crate::resources::File;
9use serde::{Deserialize, Serialize};
10
11/// The resource representing a Stripe "TerminalConfigurationConfiguration".
12///
13/// For more details see <https://stripe.com/docs/api/terminal/configuration/object>
14#[derive(Clone, Debug, Default, Deserialize, Serialize)]
15pub struct TerminalConfiguration {
16    /// Unique identifier for the object.
17    pub id: TerminalConfigurationId,
18
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub bbpos_wisepos_e: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
21
22    // Always true for a deleted object
23    #[serde(default)]
24    pub deleted: bool,
25
26    /// Whether this Configuration is the default for your account.
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub is_account_default: Option<bool>,
29
30    /// Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub livemode: Option<bool>,
33
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub offline: Option<TerminalConfigurationConfigurationResourceOfflineConfig>,
36
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub tipping: Option<TerminalConfigurationConfigurationResourceTipping>,
39
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub verifone_p400: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
42}
43
44impl TerminalConfiguration {
45    /// Returns a list of `Configuration` objects.
46    pub fn list(
47        client: &Client,
48        params: &ListTerminalConfigurations<'_>,
49    ) -> Response<List<TerminalConfiguration>> {
50        client.get_query("/terminal/configurations", params)
51    }
52
53    /// Creates a new `Configuration` object.
54    pub fn create(
55        client: &Client,
56        params: CreateTerminalConfiguration<'_>,
57    ) -> Response<TerminalConfiguration> {
58        #[allow(clippy::needless_borrows_for_generic_args)]
59        client.post_form("/terminal/configurations", &params)
60    }
61}
62
63impl Object for TerminalConfiguration {
64    type Id = TerminalConfigurationId;
65    fn id(&self) -> Self::Id {
66        self.id.clone()
67    }
68    fn object(&self) -> &'static str {
69        "terminal.configuration"
70    }
71}
72
73#[derive(Clone, Debug, Default, Deserialize, Serialize)]
74pub struct TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig {
75    /// A File ID representing an image you would like displayed on the reader.
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub splashscreen: Option<Expandable<File>>,
78}
79
80#[derive(Clone, Debug, Default, Deserialize, Serialize)]
81pub struct TerminalConfigurationConfigurationResourceOfflineConfig {
82    /// Determines whether to allow transactions to be collected while reader is offline.
83    ///
84    /// Defaults to false.
85    pub enabled: Option<bool>,
86}
87
88#[derive(Clone, Debug, Default, Deserialize, Serialize)]
89pub struct TerminalConfigurationConfigurationResourceTipping {
90    #[serde(skip_serializing_if = "Option::is_none")]
91    pub aud: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
92
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub cad: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
95
96    #[serde(skip_serializing_if = "Option::is_none")]
97    pub chf: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
98
99    #[serde(skip_serializing_if = "Option::is_none")]
100    pub czk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
101
102    #[serde(skip_serializing_if = "Option::is_none")]
103    pub dkk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
104
105    #[serde(skip_serializing_if = "Option::is_none")]
106    pub eur: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
107
108    #[serde(skip_serializing_if = "Option::is_none")]
109    pub gbp: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
110
111    #[serde(skip_serializing_if = "Option::is_none")]
112    pub hkd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
113
114    #[serde(skip_serializing_if = "Option::is_none")]
115    pub myr: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
116
117    #[serde(skip_serializing_if = "Option::is_none")]
118    pub nok: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
119
120    #[serde(skip_serializing_if = "Option::is_none")]
121    pub nzd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
122
123    #[serde(skip_serializing_if = "Option::is_none")]
124    pub sek: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
125
126    #[serde(skip_serializing_if = "Option::is_none")]
127    pub sgd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
128
129    #[serde(skip_serializing_if = "Option::is_none")]
130    pub usd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
131}
132
133#[derive(Clone, Debug, Default, Deserialize, Serialize)]
134pub struct TerminalConfigurationConfigurationResourceCurrencySpecificConfig {
135    /// Fixed amounts displayed when collecting a tip.
136    #[serde(skip_serializing_if = "Option::is_none")]
137    pub fixed_amounts: Option<Vec<i64>>,
138
139    /// Percentages displayed when collecting a tip.
140    #[serde(skip_serializing_if = "Option::is_none")]
141    pub percentages: Option<Vec<i64>>,
142
143    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
144    #[serde(skip_serializing_if = "Option::is_none")]
145    pub smart_tip_threshold: Option<i64>,
146}
147
148/// The parameters for `TerminalConfiguration::create`.
149#[derive(Clone, Debug, Serialize, Default)]
150pub struct CreateTerminalConfiguration<'a> {
151    /// An object containing device type specific settings for BBPOS WisePOS E readers.
152    #[serde(skip_serializing_if = "Option::is_none")]
153    pub bbpos_wisepos_e: Option<CreateTerminalConfigurationBbposWiseposE>,
154
155    /// Specifies which fields in the response should be expanded.
156    #[serde(skip_serializing_if = "Expand::is_empty")]
157    pub expand: &'a [&'a str],
158
159    /// Configurations for collecting transactions offline.
160    #[serde(skip_serializing_if = "Option::is_none")]
161    pub offline: Option<CreateTerminalConfigurationOffline>,
162
163    /// Tipping configurations for readers supporting on-reader tips.
164    #[serde(skip_serializing_if = "Option::is_none")]
165    pub tipping: Option<CreateTerminalConfigurationTipping>,
166
167    /// An object containing device type specific settings for Verifone P400 readers.
168    #[serde(skip_serializing_if = "Option::is_none")]
169    pub verifone_p400: Option<CreateTerminalConfigurationVerifoneP400>,
170}
171
172impl<'a> CreateTerminalConfiguration<'a> {
173    pub fn new() -> Self {
174        CreateTerminalConfiguration {
175            bbpos_wisepos_e: Default::default(),
176            expand: Default::default(),
177            offline: Default::default(),
178            tipping: Default::default(),
179            verifone_p400: Default::default(),
180        }
181    }
182}
183
184/// The parameters for `TerminalConfiguration::list`.
185#[derive(Clone, Debug, Serialize, Default)]
186pub struct ListTerminalConfigurations<'a> {
187    /// A cursor for use in pagination.
188    ///
189    /// `ending_before` is an object ID that defines your place in the list.
190    /// 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.
191    #[serde(skip_serializing_if = "Option::is_none")]
192    pub ending_before: Option<TerminalConfigurationId>,
193
194    /// Specifies which fields in the response should be expanded.
195    #[serde(skip_serializing_if = "Expand::is_empty")]
196    pub expand: &'a [&'a str],
197
198    /// if present, only return the account default or non-default configurations.
199    #[serde(skip_serializing_if = "Option::is_none")]
200    pub is_account_default: Option<bool>,
201
202    /// A limit on the number of objects to be returned.
203    ///
204    /// Limit can range between 1 and 100, and the default is 10.
205    #[serde(skip_serializing_if = "Option::is_none")]
206    pub limit: Option<u64>,
207
208    /// A cursor for use in pagination.
209    ///
210    /// `starting_after` is an object ID that defines your place in the list.
211    /// 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.
212    #[serde(skip_serializing_if = "Option::is_none")]
213    pub starting_after: Option<TerminalConfigurationId>,
214}
215
216impl<'a> ListTerminalConfigurations<'a> {
217    pub fn new() -> Self {
218        ListTerminalConfigurations {
219            ending_before: Default::default(),
220            expand: Default::default(),
221            is_account_default: Default::default(),
222            limit: Default::default(),
223            starting_after: Default::default(),
224        }
225    }
226}
227impl Paginable for ListTerminalConfigurations<'_> {
228    type O = TerminalConfiguration;
229    fn set_last(&mut self, item: Self::O) {
230        self.starting_after = Some(item.id());
231    }
232}
233#[derive(Clone, Debug, Default, Deserialize, Serialize)]
234pub struct CreateTerminalConfigurationBbposWiseposE {
235    /// A File ID representing an image you would like displayed on the reader.
236    #[serde(skip_serializing_if = "Option::is_none")]
237    pub splashscreen: Option<String>,
238}
239
240#[derive(Clone, Debug, Default, Deserialize, Serialize)]
241pub struct CreateTerminalConfigurationOffline {
242    /// Determines whether to allow transactions to be collected while reader is offline.
243    ///
244    /// Defaults to false.
245    pub enabled: bool,
246}
247
248#[derive(Clone, Debug, Default, Deserialize, Serialize)]
249pub struct CreateTerminalConfigurationTipping {
250    /// Tipping configuration for AUD.
251    #[serde(skip_serializing_if = "Option::is_none")]
252    pub aud: Option<CreateTerminalConfigurationTippingAud>,
253
254    /// Tipping configuration for CAD.
255    #[serde(skip_serializing_if = "Option::is_none")]
256    pub cad: Option<CreateTerminalConfigurationTippingCad>,
257
258    /// Tipping configuration for CHF.
259    #[serde(skip_serializing_if = "Option::is_none")]
260    pub chf: Option<CreateTerminalConfigurationTippingChf>,
261
262    /// Tipping configuration for CZK.
263    #[serde(skip_serializing_if = "Option::is_none")]
264    pub czk: Option<CreateTerminalConfigurationTippingCzk>,
265
266    /// Tipping configuration for DKK.
267    #[serde(skip_serializing_if = "Option::is_none")]
268    pub dkk: Option<CreateTerminalConfigurationTippingDkk>,
269
270    /// Tipping configuration for EUR.
271    #[serde(skip_serializing_if = "Option::is_none")]
272    pub eur: Option<CreateTerminalConfigurationTippingEur>,
273
274    /// Tipping configuration for GBP.
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub gbp: Option<CreateTerminalConfigurationTippingGbp>,
277
278    /// Tipping configuration for HKD.
279    #[serde(skip_serializing_if = "Option::is_none")]
280    pub hkd: Option<CreateTerminalConfigurationTippingHkd>,
281
282    /// Tipping configuration for MYR.
283    #[serde(skip_serializing_if = "Option::is_none")]
284    pub myr: Option<CreateTerminalConfigurationTippingMyr>,
285
286    /// Tipping configuration for NOK.
287    #[serde(skip_serializing_if = "Option::is_none")]
288    pub nok: Option<CreateTerminalConfigurationTippingNok>,
289
290    /// Tipping configuration for NZD.
291    #[serde(skip_serializing_if = "Option::is_none")]
292    pub nzd: Option<CreateTerminalConfigurationTippingNzd>,
293
294    /// Tipping configuration for SEK.
295    #[serde(skip_serializing_if = "Option::is_none")]
296    pub sek: Option<CreateTerminalConfigurationTippingSek>,
297
298    /// Tipping configuration for SGD.
299    #[serde(skip_serializing_if = "Option::is_none")]
300    pub sgd: Option<CreateTerminalConfigurationTippingSgd>,
301
302    /// Tipping configuration for USD.
303    #[serde(skip_serializing_if = "Option::is_none")]
304    pub usd: Option<CreateTerminalConfigurationTippingUsd>,
305}
306
307#[derive(Clone, Debug, Default, Deserialize, Serialize)]
308pub struct CreateTerminalConfigurationVerifoneP400 {
309    /// A File ID representing an image you would like displayed on the reader.
310    #[serde(skip_serializing_if = "Option::is_none")]
311    pub splashscreen: Option<String>,
312}
313
314#[derive(Clone, Debug, Default, Deserialize, Serialize)]
315pub struct CreateTerminalConfigurationTippingAud {
316    /// Fixed amounts displayed when collecting a tip.
317    #[serde(skip_serializing_if = "Option::is_none")]
318    pub fixed_amounts: Option<Vec<i64>>,
319
320    /// Percentages displayed when collecting a tip.
321    #[serde(skip_serializing_if = "Option::is_none")]
322    pub percentages: Option<Vec<i64>>,
323
324    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
325    #[serde(skip_serializing_if = "Option::is_none")]
326    pub smart_tip_threshold: Option<i64>,
327}
328
329#[derive(Clone, Debug, Default, Deserialize, Serialize)]
330pub struct CreateTerminalConfigurationTippingCad {
331    /// Fixed amounts displayed when collecting a tip.
332    #[serde(skip_serializing_if = "Option::is_none")]
333    pub fixed_amounts: Option<Vec<i64>>,
334
335    /// Percentages displayed when collecting a tip.
336    #[serde(skip_serializing_if = "Option::is_none")]
337    pub percentages: Option<Vec<i64>>,
338
339    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
340    #[serde(skip_serializing_if = "Option::is_none")]
341    pub smart_tip_threshold: Option<i64>,
342}
343
344#[derive(Clone, Debug, Default, Deserialize, Serialize)]
345pub struct CreateTerminalConfigurationTippingChf {
346    /// Fixed amounts displayed when collecting a tip.
347    #[serde(skip_serializing_if = "Option::is_none")]
348    pub fixed_amounts: Option<Vec<i64>>,
349
350    /// Percentages displayed when collecting a tip.
351    #[serde(skip_serializing_if = "Option::is_none")]
352    pub percentages: Option<Vec<i64>>,
353
354    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
355    #[serde(skip_serializing_if = "Option::is_none")]
356    pub smart_tip_threshold: Option<i64>,
357}
358
359#[derive(Clone, Debug, Default, Deserialize, Serialize)]
360pub struct CreateTerminalConfigurationTippingCzk {
361    /// Fixed amounts displayed when collecting a tip.
362    #[serde(skip_serializing_if = "Option::is_none")]
363    pub fixed_amounts: Option<Vec<i64>>,
364
365    /// Percentages displayed when collecting a tip.
366    #[serde(skip_serializing_if = "Option::is_none")]
367    pub percentages: Option<Vec<i64>>,
368
369    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
370    #[serde(skip_serializing_if = "Option::is_none")]
371    pub smart_tip_threshold: Option<i64>,
372}
373
374#[derive(Clone, Debug, Default, Deserialize, Serialize)]
375pub struct CreateTerminalConfigurationTippingDkk {
376    /// Fixed amounts displayed when collecting a tip.
377    #[serde(skip_serializing_if = "Option::is_none")]
378    pub fixed_amounts: Option<Vec<i64>>,
379
380    /// Percentages displayed when collecting a tip.
381    #[serde(skip_serializing_if = "Option::is_none")]
382    pub percentages: Option<Vec<i64>>,
383
384    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
385    #[serde(skip_serializing_if = "Option::is_none")]
386    pub smart_tip_threshold: Option<i64>,
387}
388
389#[derive(Clone, Debug, Default, Deserialize, Serialize)]
390pub struct CreateTerminalConfigurationTippingEur {
391    /// Fixed amounts displayed when collecting a tip.
392    #[serde(skip_serializing_if = "Option::is_none")]
393    pub fixed_amounts: Option<Vec<i64>>,
394
395    /// Percentages displayed when collecting a tip.
396    #[serde(skip_serializing_if = "Option::is_none")]
397    pub percentages: Option<Vec<i64>>,
398
399    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
400    #[serde(skip_serializing_if = "Option::is_none")]
401    pub smart_tip_threshold: Option<i64>,
402}
403
404#[derive(Clone, Debug, Default, Deserialize, Serialize)]
405pub struct CreateTerminalConfigurationTippingGbp {
406    /// Fixed amounts displayed when collecting a tip.
407    #[serde(skip_serializing_if = "Option::is_none")]
408    pub fixed_amounts: Option<Vec<i64>>,
409
410    /// Percentages displayed when collecting a tip.
411    #[serde(skip_serializing_if = "Option::is_none")]
412    pub percentages: Option<Vec<i64>>,
413
414    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
415    #[serde(skip_serializing_if = "Option::is_none")]
416    pub smart_tip_threshold: Option<i64>,
417}
418
419#[derive(Clone, Debug, Default, Deserialize, Serialize)]
420pub struct CreateTerminalConfigurationTippingHkd {
421    /// Fixed amounts displayed when collecting a tip.
422    #[serde(skip_serializing_if = "Option::is_none")]
423    pub fixed_amounts: Option<Vec<i64>>,
424
425    /// Percentages displayed when collecting a tip.
426    #[serde(skip_serializing_if = "Option::is_none")]
427    pub percentages: Option<Vec<i64>>,
428
429    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
430    #[serde(skip_serializing_if = "Option::is_none")]
431    pub smart_tip_threshold: Option<i64>,
432}
433
434#[derive(Clone, Debug, Default, Deserialize, Serialize)]
435pub struct CreateTerminalConfigurationTippingMyr {
436    /// Fixed amounts displayed when collecting a tip.
437    #[serde(skip_serializing_if = "Option::is_none")]
438    pub fixed_amounts: Option<Vec<i64>>,
439
440    /// Percentages displayed when collecting a tip.
441    #[serde(skip_serializing_if = "Option::is_none")]
442    pub percentages: Option<Vec<i64>>,
443
444    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
445    #[serde(skip_serializing_if = "Option::is_none")]
446    pub smart_tip_threshold: Option<i64>,
447}
448
449#[derive(Clone, Debug, Default, Deserialize, Serialize)]
450pub struct CreateTerminalConfigurationTippingNok {
451    /// Fixed amounts displayed when collecting a tip.
452    #[serde(skip_serializing_if = "Option::is_none")]
453    pub fixed_amounts: Option<Vec<i64>>,
454
455    /// Percentages displayed when collecting a tip.
456    #[serde(skip_serializing_if = "Option::is_none")]
457    pub percentages: Option<Vec<i64>>,
458
459    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
460    #[serde(skip_serializing_if = "Option::is_none")]
461    pub smart_tip_threshold: Option<i64>,
462}
463
464#[derive(Clone, Debug, Default, Deserialize, Serialize)]
465pub struct CreateTerminalConfigurationTippingNzd {
466    /// Fixed amounts displayed when collecting a tip.
467    #[serde(skip_serializing_if = "Option::is_none")]
468    pub fixed_amounts: Option<Vec<i64>>,
469
470    /// Percentages displayed when collecting a tip.
471    #[serde(skip_serializing_if = "Option::is_none")]
472    pub percentages: Option<Vec<i64>>,
473
474    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
475    #[serde(skip_serializing_if = "Option::is_none")]
476    pub smart_tip_threshold: Option<i64>,
477}
478
479#[derive(Clone, Debug, Default, Deserialize, Serialize)]
480pub struct CreateTerminalConfigurationTippingSek {
481    /// Fixed amounts displayed when collecting a tip.
482    #[serde(skip_serializing_if = "Option::is_none")]
483    pub fixed_amounts: Option<Vec<i64>>,
484
485    /// Percentages displayed when collecting a tip.
486    #[serde(skip_serializing_if = "Option::is_none")]
487    pub percentages: Option<Vec<i64>>,
488
489    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
490    #[serde(skip_serializing_if = "Option::is_none")]
491    pub smart_tip_threshold: Option<i64>,
492}
493
494#[derive(Clone, Debug, Default, Deserialize, Serialize)]
495pub struct CreateTerminalConfigurationTippingSgd {
496    /// Fixed amounts displayed when collecting a tip.
497    #[serde(skip_serializing_if = "Option::is_none")]
498    pub fixed_amounts: Option<Vec<i64>>,
499
500    /// Percentages displayed when collecting a tip.
501    #[serde(skip_serializing_if = "Option::is_none")]
502    pub percentages: Option<Vec<i64>>,
503
504    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
505    #[serde(skip_serializing_if = "Option::is_none")]
506    pub smart_tip_threshold: Option<i64>,
507}
508
509#[derive(Clone, Debug, Default, Deserialize, Serialize)]
510pub struct CreateTerminalConfigurationTippingUsd {
511    /// Fixed amounts displayed when collecting a tip.
512    #[serde(skip_serializing_if = "Option::is_none")]
513    pub fixed_amounts: Option<Vec<i64>>,
514
515    /// Percentages displayed when collecting a tip.
516    #[serde(skip_serializing_if = "Option::is_none")]
517    pub percentages: Option<Vec<i64>>,
518
519    /// Below this amount, fixed amounts will be displayed; above it, percentages will be displayed.
520    #[serde(skip_serializing_if = "Option::is_none")]
521    pub smart_tip_threshold: Option<i64>,
522}