stripe/resources/generated/
terminal_location.rs1use crate::client::{Client, Response};
6use crate::ids::TerminalLocationId;
7use crate::params::{Expand, List, Metadata, Object, Paginable};
8use crate::resources::Address;
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Default, Deserialize, Serialize)]
15pub struct TerminalLocation {
16 pub id: TerminalLocationId,
18
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub address: Option<Address>,
21
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub configuration_overrides: Option<String>,
25
26 #[serde(default)]
28 pub deleted: bool,
29
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub display_name: Option<String>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub livemode: Option<bool>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
42 pub metadata: Option<Metadata>,
43}
44
45impl TerminalLocation {
46 pub fn list(
48 client: &Client,
49 params: &ListTerminalLocations<'_>,
50 ) -> Response<List<TerminalLocation>> {
51 client.get_query("/terminal/locations", params)
52 }
53
54 pub fn create(
57 client: &Client,
58 params: CreateTerminalLocation<'_>,
59 ) -> Response<TerminalLocation> {
60 #[allow(clippy::needless_borrows_for_generic_args)]
61 client.post_form("/terminal/locations", ¶ms)
62 }
63}
64
65impl Object for TerminalLocation {
66 type Id = TerminalLocationId;
67 fn id(&self) -> Self::Id {
68 self.id.clone()
69 }
70 fn object(&self) -> &'static str {
71 "terminal.location"
72 }
73}
74
75#[derive(Clone, Debug, Serialize)]
77pub struct CreateTerminalLocation<'a> {
78 pub address: CreateTerminalLocationAddress,
80
81 #[serde(skip_serializing_if = "Option::is_none")]
83 pub configuration_overrides: Option<&'a str>,
84
85 pub display_name: &'a str,
87
88 #[serde(skip_serializing_if = "Expand::is_empty")]
90 pub expand: &'a [&'a str],
91
92 #[serde(skip_serializing_if = "Option::is_none")]
98 pub metadata: Option<Metadata>,
99}
100
101impl<'a> CreateTerminalLocation<'a> {
102 pub fn new(address: CreateTerminalLocationAddress, display_name: &'a str) -> Self {
103 CreateTerminalLocation {
104 address,
105 configuration_overrides: Default::default(),
106 display_name,
107 expand: Default::default(),
108 metadata: Default::default(),
109 }
110 }
111}
112
113#[derive(Clone, Debug, Serialize, Default)]
115pub struct ListTerminalLocations<'a> {
116 #[serde(skip_serializing_if = "Option::is_none")]
121 pub ending_before: Option<TerminalLocationId>,
122
123 #[serde(skip_serializing_if = "Expand::is_empty")]
125 pub expand: &'a [&'a str],
126
127 #[serde(skip_serializing_if = "Option::is_none")]
131 pub limit: Option<u64>,
132
133 #[serde(skip_serializing_if = "Option::is_none")]
138 pub starting_after: Option<TerminalLocationId>,
139}
140
141impl<'a> ListTerminalLocations<'a> {
142 pub fn new() -> Self {
143 ListTerminalLocations {
144 ending_before: Default::default(),
145 expand: Default::default(),
146 limit: Default::default(),
147 starting_after: Default::default(),
148 }
149 }
150}
151impl Paginable for ListTerminalLocations<'_> {
152 type O = TerminalLocation;
153 fn set_last(&mut self, item: Self::O) {
154 self.starting_after = Some(item.id());
155 }
156}
157#[derive(Clone, Debug, Default, Deserialize, Serialize)]
158pub struct CreateTerminalLocationAddress {
159 #[serde(skip_serializing_if = "Option::is_none")]
161 pub city: Option<String>,
162
163 pub country: String,
165
166 #[serde(skip_serializing_if = "Option::is_none")]
168 pub line1: Option<String>,
169
170 #[serde(skip_serializing_if = "Option::is_none")]
172 pub line2: Option<String>,
173
174 #[serde(skip_serializing_if = "Option::is_none")]
176 pub postal_code: Option<String>,
177
178 #[serde(skip_serializing_if = "Option::is_none")]
180 pub state: Option<String>,
181}