iso_20022_caad/
caad_008_001_01.rs

1// Copyright 2023 Emergent Financial, LLC - All Rights Reserved
2//
3//
4// This software is licensed under the Emergent Financial Limited Public License Version 1.0
5// (EF-LPLv1). You may use, copy, modify, and distribute this software under the terms and
6// conditions of the EF-LPL. For more information, please refer to the full text of the license
7// at https://github.com/emergentfinancial/ef-lpl.
8//
9//
10// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
11// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
14// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16//
17// See ISO-20022 Intellectual Property Rights Policy at
18// <https://www.iso20022.org/intellectual-property-rights>
19// for more information.
20
21use validator::Validate;
22
23::lazy_static::lazy_static! {
24    static ref EXACT_1_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1}"#).unwrap();
25}
26
27::lazy_static::lazy_static! {
28    static ref PHONE_NUMBER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"\+[0-9]{1,3}-[0-9()+\-]{1,30}"#).unwrap();
29}
30
31::lazy_static::lazy_static! {
32    static ref MAX_100_K_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36    static ref ISO_8583_MESSAGE_REASON_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{4,4}"#).unwrap();
37}
38
39::lazy_static::lazy_static! {
40    static ref ISO_8583_RESPONSE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44    static ref MAX_8_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,8}"#).unwrap();
45}
46
47::lazy_static::lazy_static! {
48    static ref ISO_8583_ACCOUNT_TYPE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
49}
50
51::lazy_static::lazy_static! {
52    static ref MAX_35_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
53}
54
55::lazy_static::lazy_static! {
56    static ref MAX_10_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,10}"#).unwrap();
57}
58
59::lazy_static::lazy_static! {
60    static ref MAX_35_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,35}"#).unwrap();
61}
62
63::lazy_static::lazy_static! {
64    static ref MAX_16_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,16}"#).unwrap();
65}
66
67::lazy_static::lazy_static! {
68    static ref MAX_23_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,23}"#).unwrap();
69}
70
71::lazy_static::lazy_static! {
72    static ref MAX_5000_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
73}
74
75::lazy_static::lazy_static! {
76    static ref MAX_500_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
77}
78
79::lazy_static::lazy_static! {
80    static ref MAX_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,2}"#).unwrap();
81}
82
83::lazy_static::lazy_static! {
84    static ref EXACT_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3}"#).unwrap();
85}
86
87::lazy_static::lazy_static! {
88    static ref MAX_4_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,4}"#).unwrap();
89}
90
91::lazy_static::lazy_static! {
92    static ref ISO_8583_AMOUNT_TYPE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
93}
94
95::lazy_static::lazy_static! {
96    static ref ISO_YEAR_MONTH_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}-(0[1-9]|1[0-2])([+-]\d{2}:\d{2}|Z)?$"#).unwrap();
97}
98
99::lazy_static::lazy_static! {
100    static ref MAX_6_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,6}"#).unwrap();
101}
102
103::lazy_static::lazy_static! {
104    static ref ISO_3_NUMERIC_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
105}
106
107::lazy_static::lazy_static! {
108    static ref MAX_19_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,19}"#).unwrap();
109}
110
111::lazy_static::lazy_static! {
112    static ref MAX_10_K_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,10000}  "#).unwrap();
113}
114
115::lazy_static::lazy_static! {
116    static ref ISO_MAX_3_A_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
117}
118
119::lazy_static::lazy_static! {
120    static ref ISO_8583_TRANSACTION_TYPE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
121}
122
123::lazy_static::lazy_static! {
124    static ref ISO_3_NUMERIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
125}
126
127::lazy_static::lazy_static! {
128    static ref EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,3}"#).unwrap();
129}
130
131::lazy_static::lazy_static! {
132    static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
133}
134
135::lazy_static::lazy_static! {
136    static ref MAX_12_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,12}"#).unwrap();
137}
138
139::lazy_static::lazy_static! {
140    static ref MAX_19_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,19}"#).unwrap();
141}
142
143::lazy_static::lazy_static! {
144    static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap();
145}
146
147::lazy_static::lazy_static! {
148    static ref MAX_140_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
149}
150
151::lazy_static::lazy_static! {
152    static ref ISO_COUNTRY_SUB_DIVISION_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
153}
154
155::lazy_static::lazy_static! {
156    static ref ISO_2_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,2}"#).unwrap();
157}
158
159::lazy_static::lazy_static! {
160    static ref GEOGRAPHIC_POINT_IN_DECIMAL_DEGREES_REGEX: ::regex::Regex = ::regex::Regex::new(r#"(\+|-)?[\d]{1,3}(\.[\d]{1,8})?/(\+|-)?[\d]{1,3}(\.[\d]{1,8})?"#).unwrap();
161}
162
163::lazy_static::lazy_static! {
164    static ref ISO_MAX_3_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,3}"#).unwrap();
165}
166
167::lazy_static::lazy_static! {
168    static ref EXACT_6_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9\s]{6}"#).unwrap();
169}
170
171::lazy_static::lazy_static! {
172    static ref MAX_3000_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
173}
174
175::lazy_static::lazy_static! {
176    static ref ISO_18245_MERCHANT_CATEGORY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{4,4}"#).unwrap();
177}
178
179::lazy_static::lazy_static! {
180    static ref MAX_32_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,32}"#).unwrap();
181}
182
183::lazy_static::lazy_static! {
184    static ref MAX_11_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,11}"#).unwrap();
185}
186
187::lazy_static::lazy_static! {
188    static ref MAX_15_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,15}"#).unwrap();
189}
190
191::lazy_static::lazy_static! {
192    static ref MIN_2_MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2,3}"#).unwrap();
193}
194
195::lazy_static::lazy_static! {
196    static ref MAX_9999_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,9999}"#).unwrap();
197}
198
199::lazy_static::lazy_static! {
200    static ref EXACT_1_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]"#).unwrap();
201}
202
203::lazy_static::lazy_static! {
204    static ref MAX_8_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,8}"#).unwrap();
205}
206
207::lazy_static::lazy_static! {
208    static ref MIN_5_MAX_16_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).unwrap();
209}
210
211::lazy_static::lazy_static! {
212    static ref EXACT_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2}"#).unwrap();
213}
214
215/// Returns the namespace of the schema
216pub fn namespace() -> String {
217    "urn:iso:std:iso:20022:tech:xsd:caad.008.001.01".to_string()
218}
219
220#[derive(
221    Debug,
222    Default,
223    Clone,
224    PartialEq,
225    ::serde::Serialize,
226    ::serde::Deserialize,
227    ::derive_builder::Builder,
228    ::validator::Validate,
229)]
230pub struct Exact1HexBinaryText {
231    #[validate(regex = "EXACT_1_HEX_BINARY_TEXT_REGEX")]
232    #[serde(rename = "$text")]
233    pub value: String,
234}
235#[derive(
236    Debug,
237    Default,
238    Clone,
239    PartialEq,
240    ::serde::Serialize,
241    ::serde::Deserialize,
242    ::derive_builder::Builder,
243    ::validator::Validate,
244)]
245pub struct Max76Text {
246    #[validate(length(min = 1, max = 76,))]
247    #[serde(rename = "$text")]
248    pub value: String,
249}
250#[derive(
251    Debug,
252    Default,
253    Clone,
254    PartialEq,
255    ::serde::Serialize,
256    ::serde::Deserialize,
257    ::derive_builder::Builder,
258    ::validator::Validate,
259)]
260pub struct CarrierIdentification1 {
261    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
262    pub nm: Option<Max70Text>,
263    #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
264    pub cd: Option<Max35Text>,
265    #[serde(rename = "IATACd", skip_serializing_if = "Option::is_none")]
266    pub iata_cd: Option<Max35Text>,
267}
268#[derive(
269    Debug,
270    Default,
271    Clone,
272    PartialEq,
273    ::serde::Serialize,
274    ::serde::Deserialize,
275    ::derive_builder::Builder,
276    ::validator::Validate,
277)]
278pub struct AdministrativeInitiationV01<
279    A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
280> {
281    #[validate]
282    #[serde(rename = "Hdr")]
283    pub hdr: Header66,
284    #[validate]
285    #[serde(rename = "Body")]
286    pub body: AdministrativeInitiation1<A>,
287    #[serde(rename = "SctyTrlr", skip_serializing_if = "Option::is_none")]
288    pub scty_trlr: Option<ContentInformationType20>,
289}
290#[derive(
291    Debug,
292    Default,
293    Clone,
294    PartialEq,
295    ::serde::Serialize,
296    ::serde::Deserialize,
297    ::derive_builder::Builder,
298    ::validator::Validate,
299)]
300pub struct FleetData4 {
301    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
302    pub summry: Option<FleetSummary2>,
303    #[validate(length(min = 0,))]
304    #[serde(rename = "LineItm", default)]
305    pub line_itm: Vec<FleetLineItem4>,
306}
307#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
308pub enum PoiComponentType5Code {
309    #[serde(rename = "AQPP")]
310    Aqpp,
311    #[serde(rename = "APPR")]
312    Appr,
313    #[serde(rename = "TLPR")]
314    Tlpr,
315    #[serde(rename = "SCPR")]
316    Scpr,
317    #[serde(rename = "SERV")]
318    Serv,
319    #[serde(rename = "TERM")]
320    Term,
321    #[serde(rename = "DVCE")]
322    Dvce,
323    #[serde(rename = "SECM")]
324    Secm,
325    #[serde(rename = "APLI")]
326    Apli,
327    #[serde(rename = "EMVK")]
328    Emvk,
329    #[serde(rename = "EMVO")]
330    Emvo,
331    #[serde(rename = "MDWR")]
332    Mdwr,
333    #[serde(rename = "DRVR")]
334    Drvr,
335    #[serde(rename = "OPST")]
336    Opst,
337    #[serde(rename = "MRPR")]
338    Mrpr,
339    #[serde(rename = "CRTF")]
340    Crtf,
341    #[serde(rename = "TMSP")]
342    Tmsp,
343    #[serde(rename = "SACP")]
344    Sacp,
345    #[serde(rename = "SAPR")]
346    Sapr,
347    #[default]
348    Unknown,
349}
350#[derive(
351    Debug,
352    Default,
353    Clone,
354    PartialEq,
355    ::serde::Serialize,
356    ::serde::Deserialize,
357    ::derive_builder::Builder,
358    ::validator::Validate,
359)]
360pub struct DrivingLicense2 {
361    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
362    pub tp: Option<Max70Text>,
363    #[serde(rename = "Form", skip_serializing_if = "Option::is_none")]
364    pub form: Option<PresentationMedium2Code>,
365    #[validate]
366    #[serde(rename = "Id")]
367    pub id: Max70Text,
368    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
369    pub assgnr: Option<LegalStructure1Code>,
370    #[serde(rename = "IssncDt", skip_serializing_if = "Option::is_none")]
371    pub issnc_dt: Option<IsoDate>,
372    #[serde(rename = "XprtnDt", skip_serializing_if = "Option::is_none")]
373    pub xprtn_dt: Option<IsoDate>,
374    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
375    pub ctry: Option<IsoMax3ACountryCode>,
376    #[serde(rename = "Stat", skip_serializing_if = "Option::is_none")]
377    pub stat: Option<Max16Text>,
378    #[serde(rename = "Prvc", skip_serializing_if = "Option::is_none")]
379    pub prvc: Option<Max16Text>,
380    #[serde(rename = "OthrAuthrty", skip_serializing_if = "Option::is_none")]
381    pub othr_authrty: Option<Max16Text>,
382}
383#[derive(
384    Debug,
385    Default,
386    Clone,
387    PartialEq,
388    ::serde::Serialize,
389    ::serde::Deserialize,
390    ::derive_builder::Builder,
391    ::validator::Validate,
392)]
393pub struct PhoneNumber {
394    #[validate(regex = "PHONE_NUMBER_REGEX")]
395    #[serde(rename = "$text")]
396    pub value: String,
397}
398#[derive(
399    Debug,
400    Default,
401    Clone,
402    PartialEq,
403    ::serde::Serialize,
404    ::serde::Deserialize,
405    ::derive_builder::Builder,
406    ::validator::Validate,
407)]
408pub struct Jurisdiction2 {
409    #[serde(rename = "DmstInd", skip_serializing_if = "Option::is_none")]
410    pub dmst_ind: Option<TrueFalseIndicator>,
411    #[serde(rename = "DmstQlfctn", skip_serializing_if = "Option::is_none")]
412    pub dmst_qlfctn: Option<Max35Text>,
413}
414#[derive(
415    Debug,
416    Default,
417    Clone,
418    PartialEq,
419    ::serde::Serialize,
420    ::serde::Deserialize,
421    ::derive_builder::Builder,
422    ::validator::Validate,
423)]
424pub struct Max100KBinary {
425    #[validate(length(min = 1, max = 102400,), regex = "MAX_100_K_BINARY_REGEX")]
426    pub value: String,
427}
428#[derive(
429    Debug,
430    Default,
431    Clone,
432    PartialEq,
433    ::serde::Serialize,
434    ::serde::Deserialize,
435    ::derive_builder::Builder,
436    ::validator::Validate,
437)]
438pub struct PartyIdentification255 {
439    #[validate]
440    #[serde(rename = "Id")]
441    pub id: Max35Text,
442    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
443    pub assgnr: Option<Max35Text>,
444    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
445    pub ctry: Option<Iso3NumericCountryCode>,
446    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
447    pub shrt_nm: Option<Max35Text>,
448    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
449    pub lgl_corp_nm: Option<Max99Text>,
450    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
451    pub addtl_id: Option<AdditionalData1>,
452    #[validate]
453    #[serde(rename = "NmAndLctn")]
454    pub nm_and_lctn: Max99Text,
455    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
456    pub adr: Option<Address2>,
457    #[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
458    pub addtl_adr_inf: Option<Max256Text>,
459    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
460    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
461    #[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
462    pub email: Option<Max256Text>,
463    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
464    pub url_adr: Option<Max256Text>,
465    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
466    pub phne_nb: Option<Max35Text>,
467    #[serde(rename = "CstmrSvc", skip_serializing_if = "Option::is_none")]
468    pub cstmr_svc: Option<Max35Text>,
469    #[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
470    pub addtl_ctct_inf: Option<Max256Text>,
471    #[serde(rename = "TaxRegnId", skip_serializing_if = "Option::is_none")]
472    pub tax_regn_id: Option<Max35Text>,
473    #[validate(length(min = 0,))]
474    #[serde(rename = "AddtlData", default)]
475    pub addtl_data: Vec<AdditionalData1>,
476    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
477    pub lcl_data: Option<LocalData4>,
478    #[validate(length(min = 0,))]
479    #[serde(rename = "SpnsrdMrchnt", default)]
480    pub spnsrd_mrchnt: Vec<SponsoredMerchant2>,
481}
482#[derive(
483    Debug,
484    Default,
485    Clone,
486    PartialEq,
487    ::serde::Serialize,
488    ::serde::Deserialize,
489    ::derive_builder::Builder,
490    ::validator::Validate,
491)]
492pub struct SupplementaryData1<
493    A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
494> {
495    #[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
496    pub plc_and_nm: Option<Max350Text>,
497    #[validate]
498    #[serde(rename = "Envlp")]
499    pub envlp: SupplementaryDataEnvelope1<A>,
500}
501#[derive(
502    Debug,
503    Default,
504    Clone,
505    PartialEq,
506    ::serde::Serialize,
507    ::serde::Deserialize,
508    ::derive_builder::Builder,
509    ::validator::Validate,
510)]
511pub struct Max1Number {
512    #[serde(rename = "$text")]
513    pub value: f64,
514}
515#[derive(
516    Debug,
517    Default,
518    Clone,
519    PartialEq,
520    ::serde::Serialize,
521    ::serde::Deserialize,
522    ::derive_builder::Builder,
523    ::validator::Validate,
524)]
525pub struct VehicleRentalService2 {
526    #[serde(rename = "VhclRntlCpny", skip_serializing_if = "Option::is_none")]
527    pub vhcl_rntl_cpny: Option<VehicleRentalCompany2>,
528    #[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
529    pub cstmr: Option<VehicleRentalCustomer2>,
530    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
531    pub summry_cmmdty_id: Option<Max35Text>,
532    #[serde(rename = "RntlAgrmt", skip_serializing_if = "Option::is_none")]
533    pub rntl_agrmt: Option<VehicleRentalAgreement2>,
534    #[serde(rename = "RntlInvc", skip_serializing_if = "Option::is_none")]
535    pub rntl_invc: Option<VehicleRentalInvoice2>,
536    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
537    pub addtl_data: Option<Max350Text>,
538}
539#[derive(
540    Debug,
541    Default,
542    Clone,
543    PartialEq,
544    ::serde::Serialize,
545    ::serde::Deserialize,
546    ::derive_builder::Builder,
547    ::validator::Validate,
548)]
549pub struct BaseOneRate {
550    #[serde(rename = "$text")]
551    pub value: f64,
552}
553#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
554pub enum ExchangeRateAgreementType1Code {
555    #[serde(rename = "FWCT")]
556    Fwct,
557    #[serde(rename = "NORM")]
558    Norm,
559    #[serde(rename = "OTHN")]
560    Othn,
561    #[serde(rename = "OTHP")]
562    Othp,
563    #[serde(rename = "SPOT")]
564    Spot,
565    #[default]
566    Unknown,
567}
568#[derive(
569    Debug,
570    Default,
571    Clone,
572    PartialEq,
573    ::serde::Serialize,
574    ::serde::Deserialize,
575    ::derive_builder::Builder,
576    ::validator::Validate,
577)]
578pub struct CardReadingCapabilities1 {
579    #[serde(rename = "Cpblty")]
580    pub cpblty: CardDataReading10Code,
581    #[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
582    pub othr_cpblty: Option<Max35Text>,
583}
584#[derive(
585    Debug,
586    Default,
587    Clone,
588    PartialEq,
589    ::serde::Serialize,
590    ::serde::Deserialize,
591    ::derive_builder::Builder,
592    ::validator::Validate,
593)]
594pub struct VehicleRentalCompany2 {
595    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
596    pub nm: Option<Max70Text>,
597    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
598    pub id: Option<PartyIdentification258>,
599    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
600    pub adr: Option<Address2>,
601    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
602    pub ctct: Option<Contact3>,
603    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
604    pub ctry: Option<IsoMax3ACountryCode>,
605    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
606    pub tp: Option<CarRentalActivity1Code>,
607    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
608    pub othr_tp: Option<Max35Text>,
609}
610#[derive(
611    Debug,
612    Default,
613    Clone,
614    PartialEq,
615    ::serde::Serialize,
616    ::serde::Deserialize,
617    ::derive_builder::Builder,
618    ::validator::Validate,
619)]
620pub struct Max350Text {
621    #[validate(length(min = 1, max = 350,))]
622    #[serde(rename = "$text")]
623    pub value: String,
624}
625#[derive(
626    Debug,
627    Default,
628    Clone,
629    PartialEq,
630    ::serde::Serialize,
631    ::serde::Deserialize,
632    ::derive_builder::Builder,
633    ::validator::Validate,
634)]
635pub struct TransactionAmounts2 {
636    #[serde(rename = "AmtQlfr", skip_serializing_if = "Option::is_none")]
637    pub amt_qlfr: Option<TypeOfAmount22Code>,
638    #[validate]
639    #[serde(rename = "TxAmt")]
640    pub tx_amt: TransactionAmount1,
641    #[serde(rename = "CrdhldrBllgAmt", skip_serializing_if = "Option::is_none")]
642    pub crdhldr_bllg_amt: Option<Amount15>,
643    #[serde(rename = "RcncltnAmt", skip_serializing_if = "Option::is_none")]
644    pub rcncltn_amt: Option<Amount15>,
645    #[validate(length(min = 0,))]
646    #[serde(rename = "DtldAmt", default)]
647    pub dtld_amt: Vec<DetailedAmount22>,
648    #[serde(rename = "OrgnlTxAmts", skip_serializing_if = "Option::is_none")]
649    pub orgnl_tx_amts: Option<OriginalTransactionAmount2>,
650}
651#[derive(
652    Debug,
653    Default,
654    Clone,
655    PartialEq,
656    ::serde::Serialize,
657    ::serde::Deserialize,
658    ::derive_builder::Builder,
659    ::validator::Validate,
660)]
661pub struct PartyIdentification254 {
662    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
663    pub id: Option<Max35Text>,
664    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
665    pub assgnr: Option<Max35Text>,
666    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
667    pub ctry: Option<Iso3NumericCountryCode>,
668    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
669    pub shrt_nm: Option<Max35Text>,
670    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
671    pub lgl_corp_nm: Option<Max99Text>,
672    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
673    pub addtl_id: Option<Max35Text>,
674    #[serde(rename = "NmAndLctn", skip_serializing_if = "Option::is_none")]
675    pub nm_and_lctn: Option<Max99Text>,
676    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
677    pub adr: Option<Address2>,
678    #[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
679    pub addtl_adr_inf: Option<Max256Text>,
680    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
681    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
682    #[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
683    pub email: Option<Max256Text>,
684    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
685    pub url_adr: Option<Max256Text>,
686    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
687    pub phne_nb: Option<Max35Text>,
688    #[serde(rename = "CstmrSvc", skip_serializing_if = "Option::is_none")]
689    pub cstmr_svc: Option<Max35Text>,
690    #[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
691    pub addtl_ctct_inf: Option<Max256Text>,
692    #[serde(rename = "TaxRegnId", skip_serializing_if = "Option::is_none")]
693    pub tax_regn_id: Option<Max35Text>,
694    #[validate(length(min = 0,))]
695    #[serde(rename = "AddtlData", default)]
696    pub addtl_data: Vec<AdditionalData1>,
697    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
698    pub lcl_data: Option<LocalData4>,
699    #[validate(length(min = 0,))]
700    #[serde(rename = "SpnsrdMrchnt", default)]
701    pub spnsrd_mrchnt: Vec<SponsoredMerchant2>,
702}
703#[derive(
704    Debug,
705    Default,
706    Clone,
707    PartialEq,
708    ::serde::Serialize,
709    ::serde::Deserialize,
710    ::derive_builder::Builder,
711    ::validator::Validate,
712)]
713pub struct Max4Text {
714    #[validate(length(min = 1, max = 4,))]
715    #[serde(rename = "$text")]
716    pub value: String,
717}
718#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
719pub enum Frequency18Code {
720    #[serde(rename = "YEAR")]
721    Year,
722    #[serde(rename = "DAIL")]
723    Dail,
724    #[serde(rename = "FRTN")]
725    Frtn,
726    #[serde(rename = "MNTH")]
727    Mnth,
728    #[serde(rename = "QURT")]
729    Qurt,
730    #[serde(rename = "MIAN")]
731    Mian,
732    #[serde(rename = "TEND")]
733    Tend,
734    #[serde(rename = "WEEK")]
735    Week,
736    #[serde(rename = "TWWK")]
737    Twwk,
738    #[default]
739    Unknown,
740}
741#[derive(
742    Debug,
743    Default,
744    Clone,
745    PartialEq,
746    ::serde::Serialize,
747    ::serde::Deserialize,
748    ::derive_builder::Builder,
749    ::validator::Validate,
750)]
751pub struct VerificationResult2 {
752    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
753    pub tp: Option<Max35Text>,
754    #[serde(rename = "Ntty", skip_serializing_if = "Option::is_none")]
755    pub ntty: Option<VerificationEntity2Code>,
756    #[serde(rename = "OthrNtty", skip_serializing_if = "Option::is_none")]
757    pub othr_ntty: Option<Max35Text>,
758    #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
759    pub rslt: Option<Verification3Code>,
760    #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
761    pub othr_rslt: Option<Max500Text>,
762    #[validate(length(min = 0,))]
763    #[serde(rename = "RsltDtls", default)]
764    pub rslt_dtls: Vec<AdditionalData1>,
765}
766#[derive(
767    Debug,
768    Default,
769    Clone,
770    PartialEq,
771    ::serde::Serialize,
772    ::serde::Deserialize,
773    ::derive_builder::Builder,
774    ::validator::Validate,
775)]
776pub struct ShippingData2 {
777    #[serde(rename = "InvcNb", skip_serializing_if = "Option::is_none")]
778    pub invc_nb: Option<Max70Text>,
779    #[serde(rename = "InvcCreDtTm", skip_serializing_if = "Option::is_none")]
780    pub invc_cre_dt_tm: Option<IsoDateTime>,
781    #[serde(rename = "SvcDscrptrCd", skip_serializing_if = "Option::is_none")]
782    pub svc_dscrptr_cd: Option<Max40Text>,
783    #[serde(rename = "IncntivAmt", skip_serializing_if = "Option::is_none")]
784    pub incntiv_amt: Option<ImpliedCurrencyAndAmount>,
785    #[serde(rename = "MiscExpnss", skip_serializing_if = "Option::is_none")]
786    pub misc_expnss: Option<ImpliedCurrencyAndAmount>,
787    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
788    pub insrnc_ind: Option<TrueFalseIndicator>,
789    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
790    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
791    #[serde(rename = "NetAmt", skip_serializing_if = "Option::is_none")]
792    pub net_amt: Option<ImpliedCurrencyAndAmount>,
793    #[validate(length(min = 0,))]
794    #[serde(rename = "Tax", default)]
795    pub tax: Vec<Tax39>,
796    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
797    pub summry_cmmdty_id: Option<Max35Text>,
798    #[serde(rename = "NbOfPackgs", skip_serializing_if = "Option::is_none")]
799    pub nb_of_packgs: Option<Max6NumericText>,
800    #[validate(length(min = 0,))]
801    #[serde(rename = "Packg", default)]
802    pub packg: Vec<ShippingPackage2>,
803    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
804    pub addtl_data: Option<Max350Text>,
805}
806#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
807pub enum MemoryUnit1Code {
808    #[serde(rename = "BYTE")]
809    Byte,
810    #[serde(rename = "EXAB")]
811    Exab,
812    #[serde(rename = "GIGA")]
813    Giga,
814    #[serde(rename = "KILO")]
815    Kilo,
816    #[serde(rename = "MEGA")]
817    Mega,
818    #[serde(rename = "PETA")]
819    Peta,
820    #[serde(rename = "TERA")]
821    Tera,
822    #[default]
823    Unknown,
824}
825#[derive(
826    Debug,
827    Default,
828    Clone,
829    PartialEq,
830    ::serde::Serialize,
831    ::serde::Deserialize,
832    ::derive_builder::Builder,
833    ::validator::Validate,
834)]
835pub struct Track2Data1ChoiceEnum {
836    #[serde(rename = "TxtVal", skip_serializing_if = "Option::is_none")]
837    pub txt_val: Option<Max37Text>,
838    #[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
839    pub hex_binry_val: Option<Max19HexBinaryText>,
840}
841#[derive(
842    Debug,
843    Default,
844    Clone,
845    PartialEq,
846    ::serde::Serialize,
847    ::serde::Deserialize,
848    ::derive_builder::Builder,
849    ::validator::Validate,
850)]
851pub struct Track2Data1Choice {
852    #[serde(flatten)]
853    pub value: Track2Data1ChoiceEnum,
854}
855#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
856pub enum OnLineCapability2Code {
857    #[serde(rename = "OFLN")]
858    Ofln,
859    #[serde(rename = "ONLN")]
860    Onln,
861    #[serde(rename = "BOTH")]
862    Both,
863    #[default]
864    Unknown,
865}
866#[derive(
867    Debug,
868    Default,
869    Clone,
870    PartialEq,
871    ::serde::Serialize,
872    ::serde::Deserialize,
873    ::derive_builder::Builder,
874    ::validator::Validate,
875)]
876pub struct Amount18 {
877    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
878    pub tp: Option<CarRentalServiceType2Code>,
879    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
880    pub othr_tp: Option<Max35Text>,
881    #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
882    pub amt: Option<ImpliedCurrencyAndAmount>,
883    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
884    pub cdt_dbt: Option<CreditDebit3Code>,
885    #[serde(rename = "CstmrNtfdInd", skip_serializing_if = "Option::is_none")]
886    pub cstmr_ntfd_ind: Option<TrueFalseIndicator>,
887}
888#[derive(
889    Debug,
890    Default,
891    Clone,
892    PartialEq,
893    ::serde::Serialize,
894    ::serde::Deserialize,
895    ::derive_builder::Builder,
896    ::validator::Validate,
897)]
898pub struct Iso8583MessageReasonCode {
899    #[validate(regex = "ISO_8583_MESSAGE_REASON_CODE_REGEX")]
900    #[serde(rename = "$text")]
901    pub value: String,
902}
903#[derive(
904    Debug,
905    Default,
906    Clone,
907    PartialEq,
908    ::serde::Serialize,
909    ::serde::Deserialize,
910    ::derive_builder::Builder,
911    ::validator::Validate,
912)]
913pub struct Exact15Text {
914    #[serde(rename = "$text")]
915    pub value: String,
916}
917#[derive(
918    Debug,
919    Default,
920    Clone,
921    PartialEq,
922    ::serde::Serialize,
923    ::serde::Deserialize,
924    ::derive_builder::Builder,
925    ::validator::Validate,
926)]
927pub struct PartyIdentification262 {
928    #[validate]
929    #[serde(rename = "Id")]
930    pub id: Max35Text,
931    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
932    pub assgnr: Option<Max35Text>,
933    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
934    pub ctry: Option<Iso3NumericCountryCode>,
935    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
936    pub shrt_nm: Option<Max35Text>,
937    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
938    pub addtl_id: Option<Max35Text>,
939    #[serde(rename = "FrgnMrchnt", skip_serializing_if = "Option::is_none")]
940    pub frgn_mrchnt: Option<TrueFalseIndicator>,
941    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
942    pub lcl_data: Option<LocalData1>,
943}
944#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
945pub enum MessageError1Code {
946    #[serde(rename = "IDEF")]
947    Idef,
948    #[serde(rename = "IDEL")]
949    Idel,
950    #[serde(rename = "IDEV")]
951    Idev,
952    #[serde(rename = "INME")]
953    Inme,
954    #[serde(rename = "INMF")]
955    Inmf,
956    #[serde(rename = "MEPE")]
957    Mepe,
958    #[serde(rename = "OTHP")]
959    Othp,
960    #[serde(rename = "PRVE")]
961    Prve,
962    #[serde(rename = "RDEM")]
963    Rdem,
964    #[serde(rename = "SECU")]
965    Secu,
966    #[serde(rename = "UDFD")]
967    Udfd,
968    #[serde(rename = "OTHN")]
969    Othn,
970    #[serde(rename = "ITDE")]
971    Itde,
972    #[serde(rename = "DUME")]
973    Dume,
974    #[serde(rename = "IDWM")]
975    Idwm,
976    #[serde(rename = "IDRM")]
977    Idrm,
978    #[serde(rename = "IBAT")]
979    Ibat,
980    #[serde(rename = "ICOL")]
981    Icol,
982    #[default]
983    Unknown,
984}
985#[derive(
986    Debug,
987    Default,
988    Clone,
989    PartialEq,
990    ::serde::Serialize,
991    ::serde::Deserialize,
992    ::derive_builder::Builder,
993    ::validator::Validate,
994)]
995pub struct LodgingLineItem2 {
996    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
997    pub dt: Option<IsoDate>,
998    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
999    pub tm: Option<IsoTime>,
1000    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1001    pub tp: Option<LodgingService1Code>,
1002    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1003    pub othr_tp: Option<Max35Text>,
1004    #[serde(rename = "PstChckOutInd", skip_serializing_if = "Option::is_none")]
1005    pub pst_chck_out_ind: Option<TrueFalseIndicator>,
1006    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
1007    pub cdt_dbt: Option<CreditDebit3Code>,
1008    #[serde(rename = "UnitAmt", skip_serializing_if = "Option::is_none")]
1009    pub unit_amt: Option<ImpliedCurrencyAndAmount>,
1010    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
1011    pub drtn: Option<Max4NumericText>,
1012    #[serde(rename = "SubTtlAmt", skip_serializing_if = "Option::is_none")]
1013    pub sub_ttl_amt: Option<ImpliedCurrencyAndAmount>,
1014    #[validate(length(min = 0,))]
1015    #[serde(rename = "Tax", default)]
1016    pub tax: Vec<Tax39>,
1017    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
1018    pub addtl_data: Option<Max350Text>,
1019}
1020#[derive(
1021    Debug,
1022    Default,
1023    Clone,
1024    PartialEq,
1025    ::serde::Serialize,
1026    ::serde::Deserialize,
1027    ::derive_builder::Builder,
1028    ::validator::Validate,
1029)]
1030pub struct Iso8583ResponseCode {
1031    #[validate(regex = "ISO_8583_RESPONSE_CODE_REGEX")]
1032    #[serde(rename = "$text")]
1033    pub value: String,
1034}
1035#[derive(
1036    Debug,
1037    Default,
1038    Clone,
1039    PartialEq,
1040    ::serde::Serialize,
1041    ::serde::Deserialize,
1042    ::derive_builder::Builder,
1043    ::validator::Validate,
1044)]
1045pub struct Number {
1046    #[serde(rename = "$text")]
1047    pub value: f64,
1048}
1049#[derive(
1050    Debug,
1051    Default,
1052    Clone,
1053    PartialEq,
1054    ::serde::Serialize,
1055    ::serde::Deserialize,
1056    ::derive_builder::Builder,
1057    ::validator::Validate,
1058)]
1059pub struct AlgorithmIdentification18 {
1060    #[serde(rename = "Algo")]
1061    pub algo: Algorithm8Code,
1062    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
1063    pub param: Option<Parameter9>,
1064}
1065#[derive(
1066    Debug,
1067    Default,
1068    Clone,
1069    PartialEq,
1070    ::serde::Serialize,
1071    ::serde::Deserialize,
1072    ::derive_builder::Builder,
1073    ::validator::Validate,
1074)]
1075pub struct CardProgrammeMode2 {
1076    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1077    pub tp: Option<Max35Text>,
1078    #[validate(length(min = 1,))]
1079    #[serde(rename = "Id", default)]
1080    pub id: Vec<Max35Text>,
1081}
1082#[derive(
1083    Debug,
1084    Default,
1085    Clone,
1086    PartialEq,
1087    ::serde::Serialize,
1088    ::serde::Deserialize,
1089    ::derive_builder::Builder,
1090    ::validator::Validate,
1091)]
1092pub struct Address3 {
1093    #[serde(rename = "AdrLine1", skip_serializing_if = "Option::is_none")]
1094    pub adr_line_1: Option<Max200Text>,
1095    #[serde(rename = "AdrLine2", skip_serializing_if = "Option::is_none")]
1096    pub adr_line_2: Option<Max200Text>,
1097    #[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
1098    pub strt_nm: Option<Max200Text>,
1099    #[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
1100    pub bldg_nb: Option<Max35Text>,
1101    #[serde(rename = "PstlCd", skip_serializing_if = "Option::is_none")]
1102    pub pstl_cd: Option<Max35Text>,
1103    #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
1104    pub twn_nm: Option<Max100Text>,
1105    #[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
1106    pub ctry_sub_dvsn_mnr_nm: Option<Max100Text>,
1107    #[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
1108    pub ctry_sub_dvsn_mjr_nm: Option<Max100Text>,
1109    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1110    pub ctry: Option<IsoMax3ACountryCode>,
1111}
1112#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1113pub enum PartyType9Code {
1114    #[serde(rename = "ACQR")]
1115    Acqr,
1116    #[serde(rename = "ACQP")]
1117    Acqp,
1118    #[serde(rename = "CISS")]
1119    Ciss,
1120    #[serde(rename = "CISP")]
1121    Cisp,
1122    #[serde(rename = "CSCH")]
1123    Csch,
1124    #[serde(rename = "SCHP")]
1125    Schp,
1126    #[default]
1127    Unknown,
1128}
1129#[derive(
1130    Debug,
1131    Default,
1132    Clone,
1133    PartialEq,
1134    ::serde::Serialize,
1135    ::serde::Deserialize,
1136    ::derive_builder::Builder,
1137    ::validator::Validate,
1138)]
1139pub struct Transaction144 {
1140    #[serde(rename = "AdmstvTp")]
1141    pub admstv_tp: AdministrativeType1Code,
1142    #[serde(rename = "OthrAdmstvTp", skip_serializing_if = "Option::is_none")]
1143    pub othr_admstv_tp: Option<Max35Text>,
1144    #[validate(length(min = 0,))]
1145    #[serde(rename = "MsgRsn", default)]
1146    pub msg_rsn: Vec<Iso8583MessageReasonCode>,
1147    #[validate(length(min = 0,))]
1148    #[serde(rename = "AltrnMsgRsn", default)]
1149    pub altrn_msg_rsn: Vec<Max256Text>,
1150    #[validate(length(min = 0,))]
1151    #[serde(rename = "AddtlSvc", default)]
1152    pub addtl_svc: Vec<AdditionalService2>,
1153    #[serde(rename = "AssoctdDataInd", skip_serializing_if = "Option::is_none")]
1154    pub assoctd_data_ind: Option<TrueFalseIndicator>,
1155    #[serde(rename = "AssoctdDataRef", skip_serializing_if = "Option::is_none")]
1156    pub assoctd_data_ref: Option<Max70Text>,
1157    #[serde(rename = "AssoctdDataDstn", skip_serializing_if = "Option::is_none")]
1158    pub assoctd_data_dstn: Option<Max35Text>,
1159    #[validate(length(min = 0,))]
1160    #[serde(rename = "SpclPrgrmmQlfctn", default)]
1161    pub spcl_prgrmm_qlfctn: Vec<SpecialProgrammeQualification1>,
1162    #[validate]
1163    #[serde(rename = "TxId")]
1164    pub tx_id: TransactionIdentification12,
1165    #[serde(rename = "TxtMsg", skip_serializing_if = "Option::is_none")]
1166    pub txt_msg: Option<Max20KText>,
1167    #[validate(length(min = 0,))]
1168    #[serde(rename = "LclData", default)]
1169    pub lcl_data: Vec<LocalData9>,
1170    #[serde(rename = "TxDesc", skip_serializing_if = "Option::is_none")]
1171    pub tx_desc: Option<Max1000Text>,
1172    #[validate(length(min = 0,))]
1173    #[serde(rename = "AddtlData", default)]
1174    pub addtl_data: Vec<AdditionalData2>,
1175}
1176#[derive(
1177    Debug,
1178    Default,
1179    Clone,
1180    PartialEq,
1181    ::serde::Serialize,
1182    ::serde::Deserialize,
1183    ::derive_builder::Builder,
1184    ::validator::Validate,
1185)]
1186pub struct Max200Text {
1187    #[validate(length(min = 1, max = 200,))]
1188    #[serde(rename = "$text")]
1189    pub value: String,
1190}
1191#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1192pub enum CryptographicKeyType3Code {
1193    #[serde(rename = "AES2")]
1194    Aes2,
1195    #[serde(rename = "EDE3")]
1196    Ede3,
1197    #[serde(rename = "DKP9")]
1198    Dkp9,
1199    #[serde(rename = "AES9")]
1200    Aes9,
1201    #[serde(rename = "AES5")]
1202    Aes5,
1203    #[serde(rename = "EDE4")]
1204    Ede4,
1205    #[default]
1206    Unknown,
1207}
1208#[derive(
1209    Debug,
1210    Default,
1211    Clone,
1212    PartialEq,
1213    ::serde::Serialize,
1214    ::serde::Deserialize,
1215    ::derive_builder::Builder,
1216    ::validator::Validate,
1217)]
1218pub struct AlgorithmIdentification22 {
1219    #[serde(rename = "Algo")]
1220    pub algo: Algorithm17Code,
1221    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
1222    pub param: Option<Parameter7>,
1223}
1224#[derive(
1225    Debug,
1226    Default,
1227    Clone,
1228    PartialEq,
1229    ::serde::Serialize,
1230    ::serde::Deserialize,
1231    ::derive_builder::Builder,
1232    ::validator::Validate,
1233)]
1234pub struct DecimalNumber {
1235    #[serde(rename = "$text")]
1236    pub value: f64,
1237}
1238#[derive(
1239    Debug,
1240    Default,
1241    Clone,
1242    PartialEq,
1243    ::serde::Serialize,
1244    ::serde::Deserialize,
1245    ::derive_builder::Builder,
1246    ::validator::Validate,
1247)]
1248pub struct LoyaltyProgramme3 {
1249    #[validate(length(min = 0,))]
1250    #[serde(rename = "PrgrmmElgbltyInd", default)]
1251    pub prgrmm_elgblty_ind: Vec<TrueFalseIndicator>,
1252    #[serde(rename = "PrgrmmIssr", skip_serializing_if = "Option::is_none")]
1253    pub prgrmm_issr: Option<Max35Text>,
1254    #[serde(rename = "LltyMmb", skip_serializing_if = "Option::is_none")]
1255    pub llty_mmb: Option<LoyaltyMember2>,
1256}
1257#[derive(
1258    Debug,
1259    Default,
1260    Clone,
1261    PartialEq,
1262    ::serde::Serialize,
1263    ::serde::Deserialize,
1264    ::derive_builder::Builder,
1265    ::validator::Validate,
1266)]
1267pub struct LocalData2 {
1268    #[serde(rename = "Lang")]
1269    pub lang: IsoMax3ALanguageCode,
1270    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
1271    pub nm: Option<Max70Text>,
1272    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
1273    pub adr: Option<Address3>,
1274    #[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
1275    pub addtl_ctct_inf: Option<Max512Text>,
1276    #[validate(length(min = 0,))]
1277    #[serde(rename = "AddtlData", default)]
1278    pub addtl_data: Vec<AdditionalData1>,
1279}
1280#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1281pub enum DeviceOperatingSystemType1Code {
1282    #[serde(rename = "DROI")]
1283    Droi,
1284    #[serde(rename = "BLCK")]
1285    Blck,
1286    #[serde(rename = "IOSS")]
1287    Ioss,
1288    #[serde(rename = "OTHN")]
1289    Othn,
1290    #[serde(rename = "OTHP")]
1291    Othp,
1292    #[serde(rename = "TIZN")]
1293    Tizn,
1294    #[serde(rename = "WIND")]
1295    Wind,
1296    #[default]
1297    Unknown,
1298}
1299#[derive(
1300    Debug,
1301    Default,
1302    Clone,
1303    PartialEq,
1304    ::serde::Serialize,
1305    ::serde::Deserialize,
1306    ::derive_builder::Builder,
1307    ::validator::Validate,
1308)]
1309pub struct RiskAssessmentDataEntityProvider1 {
1310    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1311    pub tp: Option<PartyType28Code>,
1312    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1313    pub othr_tp: Option<Max35Text>,
1314}
1315#[derive(
1316    Debug,
1317    Default,
1318    Clone,
1319    PartialEq,
1320    ::serde::Serialize,
1321    ::serde::Deserialize,
1322    ::derive_builder::Builder,
1323    ::validator::Validate,
1324)]
1325pub struct Max70Text {
1326    #[validate(length(min = 1, max = 70,))]
1327    #[serde(rename = "$text")]
1328    pub value: String,
1329}
1330#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1331pub enum CardDataReading10Code {
1332    #[serde(rename = "ICPY")]
1333    Icpy,
1334    #[serde(rename = "MGST")]
1335    Mgst,
1336    #[serde(rename = "ICCY")]
1337    Iccy,
1338    #[serde(rename = "MICR")]
1339    Micr,
1340    #[serde(rename = "MLEY")]
1341    Mley,
1342    #[serde(rename = "OCRR")]
1343    Ocrr,
1344    #[serde(rename = "MSIP")]
1345    Msip,
1346    #[serde(rename = "OPTC")]
1347    Optc,
1348    #[serde(rename = "OTHN")]
1349    Othn,
1350    #[serde(rename = "RFID")]
1351    Rfid,
1352    #[serde(rename = "UNSP")]
1353    Unsp,
1354    #[serde(rename = "OTHP")]
1355    Othp,
1356    #[serde(rename = "KEEN")]
1357    Keen,
1358    #[serde(rename = "DFLE")]
1359    Dfle,
1360    #[default]
1361    Unknown,
1362}
1363#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1364pub enum FleetServiceType1Code {
1365    #[serde(rename = "SLSV")]
1366    Slsv,
1367    #[serde(rename = "HSDI")]
1368    Hsdi,
1369    #[serde(rename = "FLSV")]
1370    Flsv,
1371    #[default]
1372    Unknown,
1373}
1374#[derive(
1375    Debug,
1376    Default,
1377    Clone,
1378    PartialEq,
1379    ::serde::Serialize,
1380    ::serde::Deserialize,
1381    ::derive_builder::Builder,
1382    ::validator::Validate,
1383)]
1384pub struct VerificationInformation1 {
1385    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1386    pub tp: Option<Max35Text>,
1387    #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
1388    pub val: Option<VerificationValue1Choice>,
1389    #[validate(length(min = 0,))]
1390    #[serde(rename = "Rsn", default)]
1391    pub rsn: Vec<Max35Text>,
1392    #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
1393    pub dt_tm: Option<IsoDateTime>,
1394    #[serde(rename = "VldtyEndDt", skip_serializing_if = "Option::is_none")]
1395    pub vldty_end_dt: Option<IsoDate>,
1396    #[serde(rename = "VldtyEndTm", skip_serializing_if = "Option::is_none")]
1397    pub vldty_end_tm: Option<IsoTime>,
1398}
1399#[derive(
1400    Debug,
1401    Default,
1402    Clone,
1403    PartialEq,
1404    ::serde::Serialize,
1405    ::serde::Deserialize,
1406    ::derive_builder::Builder,
1407    ::validator::Validate,
1408)]
1409pub struct TelecomServices2 {
1410    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
1411    pub summry: Option<TelecomServicesSummary2>,
1412    #[validate(length(min = 0,))]
1413    #[serde(rename = "LineItm", default)]
1414    pub line_itm: Vec<TelecomServicesLineItem2>,
1415}
1416#[derive(
1417    Debug,
1418    Default,
1419    Clone,
1420    PartialEq,
1421    ::serde::Serialize,
1422    ::serde::Deserialize,
1423    ::derive_builder::Builder,
1424    ::validator::Validate,
1425)]
1426pub struct DocumentReference1 {
1427    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1428    pub tp: Option<Max35Text>,
1429    #[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
1430    pub r#ref: Option<Max70Text>,
1431}
1432#[derive(
1433    Debug,
1434    Default,
1435    Clone,
1436    PartialEq,
1437    ::serde::Serialize,
1438    ::serde::Deserialize,
1439    ::derive_builder::Builder,
1440    ::validator::Validate,
1441)]
1442pub struct OriginatorInformation1 {
1443    #[validate(length(min = 0,))]
1444    #[serde(rename = "Cert", default)]
1445    pub cert: Vec<Max5000Binary>,
1446}
1447#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1448pub enum EncryptionFormat3Code {
1449    #[serde(rename = "TR34")]
1450    Tr34,
1451    #[serde(rename = "TR31")]
1452    Tr31,
1453    #[serde(rename = "CTCE")]
1454    Ctce,
1455    #[serde(rename = "CBCE")]
1456    Cbce,
1457    #[default]
1458    Unknown,
1459}
1460#[derive(
1461    Debug,
1462    Default,
1463    Clone,
1464    PartialEq,
1465    ::serde::Serialize,
1466    ::serde::Deserialize,
1467    ::derive_builder::Builder,
1468    ::validator::Validate,
1469)]
1470pub struct Max8NumericText {
1471    #[validate(regex = "MAX_8_NUMERIC_TEXT_REGEX")]
1472    #[serde(rename = "$text")]
1473    pub value: String,
1474}
1475#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1476pub enum PartyType17Code {
1477    #[serde(rename = "OTHN")]
1478    Othn,
1479    #[serde(rename = "OTHP")]
1480    Othp,
1481    #[serde(rename = "ACQR")]
1482    Acqr,
1483    #[serde(rename = "ACQP")]
1484    Acqp,
1485    #[serde(rename = "CISS")]
1486    Ciss,
1487    #[serde(rename = "CISP")]
1488    Cisp,
1489    #[serde(rename = "AGNT")]
1490    Agnt,
1491    #[default]
1492    Unknown,
1493}
1494#[derive(
1495    Debug,
1496    Default,
1497    Clone,
1498    PartialEq,
1499    ::serde::Serialize,
1500    ::serde::Deserialize,
1501    ::derive_builder::Builder,
1502    ::validator::Validate,
1503)]
1504pub struct PointOfInteractionComponentCharacteristics4 {
1505    #[validate(length(min = 0,))]
1506    #[serde(rename = "Mmry", default)]
1507    pub mmry: Vec<MemoryCharacteristics1>,
1508    #[validate(length(min = 0,))]
1509    #[serde(rename = "Com", default)]
1510    pub com: Vec<CommunicationCharacteristics3>,
1511    #[serde(rename = "SctyAccsMdls", skip_serializing_if = "Option::is_none")]
1512    pub scty_accs_mdls: Option<Number>,
1513    #[serde(rename = "SbcbrIdntyMdls", skip_serializing_if = "Option::is_none")]
1514    pub sbcbr_idnty_mdls: Option<Number>,
1515    #[validate(length(min = 0,))]
1516    #[serde(rename = "SctyElmt", default)]
1517    pub scty_elmt: Vec<CryptographicKey13>,
1518}
1519#[derive(
1520    Debug,
1521    Default,
1522    Clone,
1523    PartialEq,
1524    ::serde::Serialize,
1525    ::serde::Deserialize,
1526    ::derive_builder::Builder,
1527    ::validator::Validate,
1528)]
1529pub struct Environment20 {
1530    #[serde(rename = "Acqrr", skip_serializing_if = "Option::is_none")]
1531    pub acqrr: Option<PartyIdentification263>,
1532    #[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
1533    pub orgtr: Option<PartyIdentification263>,
1534    #[serde(rename = "Sndr", skip_serializing_if = "Option::is_none")]
1535    pub sndr: Option<PartyIdentification263>,
1536    #[serde(rename = "Rcvr", skip_serializing_if = "Option::is_none")]
1537    pub rcvr: Option<PartyIdentification263>,
1538    #[serde(rename = "Accptr", skip_serializing_if = "Option::is_none")]
1539    pub accptr: Option<PartyIdentification254>,
1540    #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
1541    pub dstn: Option<PartyIdentification263>,
1542    #[serde(rename = "Pyer", skip_serializing_if = "Option::is_none")]
1543    pub pyer: Option<PartyIdentification257>,
1544    #[serde(rename = "Pyee", skip_serializing_if = "Option::is_none")]
1545    pub pyee: Option<PartyIdentification257>,
1546    #[serde(rename = "Termnl", skip_serializing_if = "Option::is_none")]
1547    pub termnl: Option<Terminal5>,
1548    #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
1549    pub issr: Option<PartyIdentification263>,
1550    #[validate]
1551    #[serde(rename = "Card")]
1552    pub card: CardData7,
1553    #[serde(rename = "CstmrDvc", skip_serializing_if = "Option::is_none")]
1554    pub cstmr_dvc: Option<CustomerDevice4>,
1555    #[serde(rename = "Wllt", skip_serializing_if = "Option::is_none")]
1556    pub wllt: Option<Wallet2>,
1557    #[serde(rename = "Tkn", skip_serializing_if = "Option::is_none")]
1558    pub tkn: Option<Token2>,
1559    #[serde(rename = "Crdhldr", skip_serializing_if = "Option::is_none")]
1560    pub crdhldr: Option<Cardholder19>,
1561}
1562#[derive(
1563    Debug,
1564    Default,
1565    Clone,
1566    PartialEq,
1567    ::serde::Serialize,
1568    ::serde::Deserialize,
1569    ::derive_builder::Builder,
1570    ::validator::Validate,
1571)]
1572pub struct Iso8583AccountTypeCode {
1573    #[validate(regex = "ISO_8583_ACCOUNT_TYPE_CODE_REGEX")]
1574    #[serde(rename = "$text")]
1575    pub value: String,
1576}
1577#[derive(
1578    Debug,
1579    Default,
1580    Clone,
1581    PartialEq,
1582    ::serde::Serialize,
1583    ::serde::Deserialize,
1584    ::derive_builder::Builder,
1585    ::validator::Validate,
1586)]
1587pub struct Max35Binary {
1588    #[validate(length(min = 1, max = 35,), regex = "MAX_35_BINARY_REGEX")]
1589    pub value: String,
1590}
1591#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1592pub enum TerminalIntegrationCategory1Code {
1593    #[serde(rename = "MPOI")]
1594    Mpoi,
1595    #[serde(rename = "MSLE")]
1596    Msle,
1597    #[serde(rename = "SSLE")]
1598    Ssle,
1599    #[default]
1600    Unknown,
1601}
1602#[derive(
1603    Debug,
1604    Default,
1605    Clone,
1606    PartialEq,
1607    ::serde::Serialize,
1608    ::serde::Deserialize,
1609    ::derive_builder::Builder,
1610    ::validator::Validate,
1611)]
1612pub struct Amount15 {
1613    #[validate]
1614    #[serde(rename = "Amt")]
1615    pub amt: ImpliedCurrencyAndAmount,
1616    #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
1617    pub ccy: Option<Iso3NumericCurrencyCode>,
1618    #[serde(rename = "FctvXchgRate", skip_serializing_if = "Option::is_none")]
1619    pub fctv_xchg_rate: Option<BaseOne25Rate>,
1620    #[serde(rename = "ConvsDt", skip_serializing_if = "Option::is_none")]
1621    pub convs_dt: Option<IsoDate>,
1622    #[serde(rename = "ConvsTm", skip_serializing_if = "Option::is_none")]
1623    pub convs_tm: Option<IsoTime>,
1624}
1625#[derive(
1626    Debug,
1627    Default,
1628    Clone,
1629    PartialEq,
1630    ::serde::Serialize,
1631    ::serde::Deserialize,
1632    ::derive_builder::Builder,
1633    ::validator::Validate,
1634)]
1635pub struct Max10NumericText {
1636    #[validate(regex = "MAX_10_NUMERIC_TEXT_REGEX")]
1637    #[serde(rename = "$text")]
1638    pub value: String,
1639}
1640#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1641pub enum PlanOwner1Code {
1642    #[serde(rename = "ACCP")]
1643    Accp,
1644    #[serde(rename = "ACQR")]
1645    Acqr,
1646    #[serde(rename = "ISSR")]
1647    Issr,
1648    #[serde(rename = "OTHN")]
1649    Othn,
1650    #[serde(rename = "OTHP")]
1651    Othp,
1652    #[default]
1653    Unknown,
1654}
1655#[derive(
1656    Debug,
1657    Default,
1658    Clone,
1659    PartialEq,
1660    ::serde::Serialize,
1661    ::serde::Deserialize,
1662    ::derive_builder::Builder,
1663    ::validator::Validate,
1664)]
1665pub struct CustomerReference1 {
1666    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1667    pub id: Option<Max35Text>,
1668    #[serde(rename = "Dtl", skip_serializing_if = "Option::is_none")]
1669    pub dtl: Option<Max70Text>,
1670}
1671#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1672pub enum Algorithm20Code {
1673    #[serde(rename = "HS25")]
1674    Hs25,
1675    #[serde(rename = "HS38")]
1676    Hs38,
1677    #[serde(rename = "HS51")]
1678    Hs51,
1679    #[default]
1680    Unknown,
1681}
1682#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1683pub enum ExchangeRateType2Code {
1684    #[serde(rename = "SELL")]
1685    Sell,
1686    #[serde(rename = "OTHP")]
1687    Othp,
1688    #[serde(rename = "OTHN")]
1689    Othn,
1690    #[serde(rename = "MIDL")]
1691    Midl,
1692    #[serde(rename = "BUYR")]
1693    Buyr,
1694    #[serde(rename = "AGRD")]
1695    Agrd,
1696    #[default]
1697    Unknown,
1698}
1699#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1700pub enum TypeOfAmount19Code {
1701    #[serde(rename = "CONN")]
1702    Conn,
1703    #[serde(rename = "INSU")]
1704    Insu,
1705    #[serde(rename = "LNDS")]
1706    Lnds,
1707    #[serde(rename = "MISC")]
1708    Misc,
1709    #[serde(rename = "OTHN")]
1710    Othn,
1711    #[serde(rename = "OTHP")]
1712    Othp,
1713    #[serde(rename = "USGE")]
1714    Usge,
1715    #[default]
1716    Unknown,
1717}
1718#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1719pub enum Response8Code {
1720    #[serde(rename = "PRCS")]
1721    Prcs,
1722    #[serde(rename = "UNPR")]
1723    Unpr,
1724    #[serde(rename = "UNRV")]
1725    Unrv,
1726    #[serde(rename = "REJT")]
1727    Rejt,
1728    #[serde(rename = "TECH")]
1729    Tech,
1730    #[serde(rename = "OTHN")]
1731    Othn,
1732    #[serde(rename = "OTHP")]
1733    Othp,
1734    #[default]
1735    Unknown,
1736}
1737#[derive(
1738    Debug,
1739    Default,
1740    Clone,
1741    PartialEq,
1742    ::serde::Serialize,
1743    ::serde::Deserialize,
1744    ::derive_builder::Builder,
1745    ::validator::Validate,
1746)]
1747pub struct Verification4 {
1748    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1749    pub tp: Option<ExternalAuthenticationMethod1Code>,
1750    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1751    pub othr_tp: Option<Max35Text>,
1752    #[serde(rename = "SubTp", skip_serializing_if = "Option::is_none")]
1753    pub sub_tp: Option<Max35Text>,
1754    #[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
1755    pub addtl_inf: Option<Max35Text>,
1756    #[validate(length(min = 0,))]
1757    #[serde(rename = "VrfctnRslt", default)]
1758    pub vrfctn_rslt: Vec<VerificationResult2>,
1759}
1760#[derive(
1761    Debug,
1762    Default,
1763    Clone,
1764    PartialEq,
1765    ::serde::Serialize,
1766    ::serde::Deserialize,
1767    ::derive_builder::Builder,
1768    ::validator::Validate,
1769)]
1770pub struct Cardholder19 {
1771    #[serde(rename = "CrdhldrNm", skip_serializing_if = "Option::is_none")]
1772    pub crdhldr_nm: Option<CardholderName3>,
1773    #[validate(length(min = 0,))]
1774    #[serde(rename = "Id", default)]
1775    pub id: Vec<Credentials2>,
1776    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
1777    pub adr: Option<Address2>,
1778    #[serde(rename = "CtctInf", skip_serializing_if = "Option::is_none")]
1779    pub ctct_inf: Option<Contact1>,
1780    #[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
1781    pub dt_of_birth: Option<IsoDate>,
1782    #[serde(rename = "HghValCstmrInd", skip_serializing_if = "Option::is_none")]
1783    pub hgh_val_cstmr_ind: Option<TrueFalseIndicator>,
1784    #[validate(length(min = 0,))]
1785    #[serde(rename = "AddtlData", default)]
1786    pub addtl_data: Vec<AdditionalData1>,
1787    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
1788    pub lcl_data: Option<LocalData7>,
1789}
1790#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1791pub enum OfficialDocumentType1Code {
1792    #[serde(rename = "ARNU")]
1793    Arnu,
1794    #[serde(rename = "AUTH")]
1795    Auth,
1796    #[serde(rename = "DIPL")]
1797    Dipl,
1798    #[serde(rename = "DVLC")]
1799    Dvlc,
1800    #[serde(rename = "EURO")]
1801    Euro,
1802    #[serde(rename = "IDEN")]
1803    Iden,
1804    #[serde(rename = "INTE")]
1805    Inte,
1806    #[serde(rename = "INPO")]
1807    Inpo,
1808    #[serde(rename = "LZPR")]
1809    Lzpr,
1810    #[serde(rename = "OTHN")]
1811    Othn,
1812    #[serde(rename = "OTHP")]
1813    Othp,
1814    #[serde(rename = "PASS")]
1815    Pass,
1816    #[serde(rename = "VISA")]
1817    Visa,
1818    #[serde(rename = "PERM")]
1819    Perm,
1820    #[serde(rename = "REFU")]
1821    Refu,
1822    #[default]
1823    Unknown,
1824}
1825#[derive(
1826    Debug,
1827    Default,
1828    Clone,
1829    PartialEq,
1830    ::serde::Serialize,
1831    ::serde::Deserialize,
1832    ::derive_builder::Builder,
1833    ::validator::Validate,
1834)]
1835pub struct PaymentTransaction141 {
1836    #[serde(rename = "PurchsTp", skip_serializing_if = "Option::is_none")]
1837    pub purchs_tp: Option<FleetPurchaseType1Code>,
1838    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
1839    pub summry_cmmdty_id: Option<Max35Text>,
1840    #[serde(rename = "DscntTtl", skip_serializing_if = "Option::is_none")]
1841    pub dscnt_ttl: Option<FleetDiscountTotals1>,
1842    #[validate(length(min = 0,))]
1843    #[serde(rename = "TaxTtl", default)]
1844    pub tax_ttl: Vec<Tax39>,
1845    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
1846    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
1847}
1848#[derive(
1849    Debug,
1850    Default,
1851    Clone,
1852    PartialEq,
1853    ::serde::Serialize,
1854    ::serde::Deserialize,
1855    ::derive_builder::Builder,
1856    ::validator::Validate,
1857)]
1858pub struct AdditionalAmounts3 {
1859    #[serde(rename = "Tp")]
1860    pub tp: Iso8583AmountTypeCode,
1861    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1862    pub othr_tp: Option<Max35Text>,
1863    #[validate]
1864    #[serde(rename = "Amt")]
1865    pub amt: Amount17,
1866    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
1867    pub desc: Option<Max70Text>,
1868    #[validate(length(min = 0,))]
1869    #[serde(rename = "AddtlData", default)]
1870    pub addtl_data: Vec<AdditionalData1>,
1871}
1872#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1873pub enum LodgingActivity1Code {
1874    #[serde(rename = "APTM")]
1875    Aptm,
1876    #[serde(rename = "BEBR")]
1877    Bebr,
1878    #[serde(rename = "COTT")]
1879    Cott,
1880    #[serde(rename = "CRUI")]
1881    Crui,
1882    #[serde(rename = "HOME")]
1883    Home,
1884    #[serde(rename = "HOST")]
1885    Host,
1886    #[serde(rename = "HOTL")]
1887    Hotl,
1888    #[serde(rename = "LODG")]
1889    Lodg,
1890    #[serde(rename = "MOTL")]
1891    Motl,
1892    #[serde(rename = "OTHN")]
1893    Othn,
1894    #[serde(rename = "OTHP")]
1895    Othp,
1896    #[serde(rename = "RESO")]
1897    Reso,
1898    #[serde(rename = "ROAB")]
1899    Roab,
1900    #[serde(rename = "TOSH")]
1901    Tosh,
1902    #[default]
1903    Unknown,
1904}
1905#[derive(
1906    Debug,
1907    Default,
1908    Clone,
1909    PartialEq,
1910    ::serde::Serialize,
1911    ::serde::Deserialize,
1912    ::derive_builder::Builder,
1913    ::validator::Validate,
1914)]
1915pub struct Parameter10 {
1916    #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
1917    pub ncrptn_frmt: Option<EncryptionFormat2Code>,
1918    #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
1919    pub dgst_algo: Option<Algorithm16Code>,
1920    #[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
1921    pub msk_gnrtr_algo: Option<AlgorithmIdentification18>,
1922}
1923#[derive(
1924    Debug,
1925    Default,
1926    Clone,
1927    PartialEq,
1928    ::serde::Serialize,
1929    ::serde::Deserialize,
1930    ::derive_builder::Builder,
1931    ::validator::Validate,
1932)]
1933pub struct Recipient5ChoiceEnum {
1934    #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
1935    pub key_idr: Option<KekIdentifier2>,
1936    #[serde(rename = "IssrAndSrlNb", skip_serializing_if = "Option::is_none")]
1937    pub issr_and_srl_nb: Option<IssuerAndSerialNumber1>,
1938}
1939#[derive(
1940    Debug,
1941    Default,
1942    Clone,
1943    PartialEq,
1944    ::serde::Serialize,
1945    ::serde::Deserialize,
1946    ::derive_builder::Builder,
1947    ::validator::Validate,
1948)]
1949pub struct Recipient5Choice {
1950    #[serde(flatten)]
1951    pub value: Recipient5ChoiceEnum,
1952}
1953#[derive(
1954    Debug,
1955    Default,
1956    Clone,
1957    PartialEq,
1958    ::serde::Serialize,
1959    ::serde::Deserialize,
1960    ::derive_builder::Builder,
1961    ::validator::Validate,
1962)]
1963pub struct Max35NumericText {
1964    #[validate(regex = "MAX_35_NUMERIC_TEXT_REGEX")]
1965    #[serde(rename = "$text")]
1966    pub value: String,
1967}
1968#[derive(
1969    Debug,
1970    Default,
1971    Clone,
1972    PartialEq,
1973    ::serde::Serialize,
1974    ::serde::Deserialize,
1975    ::derive_builder::Builder,
1976    ::validator::Validate,
1977)]
1978pub struct Tax39 {
1979    #[serde(rename = "Tp")]
1980    pub tp: AddendumTaxType2Code,
1981    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1982    pub othr_tp: Option<Max35Text>,
1983    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
1984    pub desc: Option<Max35Text>,
1985    #[serde(rename = "TaxXmptn", skip_serializing_if = "Option::is_none")]
1986    pub tax_xmptn: Option<TrueFalseIndicator>,
1987    #[serde(rename = "TaxXmptRsn", skip_serializing_if = "Option::is_none")]
1988    pub tax_xmpt_rsn: Option<Max35Text>,
1989    #[validate]
1990    #[serde(rename = "Amt")]
1991    pub amt: ImpliedCurrencyAndAmount,
1992    #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
1993    pub rate: Option<PercentageRate>,
1994    #[serde(rename = "InclInTtlInd", skip_serializing_if = "Option::is_none")]
1995    pub incl_in_ttl_ind: Option<TrueFalseIndicator>,
1996    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
1997    pub cdt_dbt: Option<CreditDebit3Code>,
1998}
1999#[derive(
2000    Debug,
2001    Default,
2002    Clone,
2003    PartialEq,
2004    ::serde::Serialize,
2005    ::serde::Deserialize,
2006    ::derive_builder::Builder,
2007    ::validator::Validate,
2008)]
2009pub struct BaseOne25Rate {
2010    #[serde(rename = "$text")]
2011    pub value: f64,
2012}
2013#[derive(
2014    Debug,
2015    Default,
2016    Clone,
2017    PartialEq,
2018    ::serde::Serialize,
2019    ::serde::Deserialize,
2020    ::derive_builder::Builder,
2021    ::validator::Validate,
2022)]
2023pub struct ECommerceData1 {
2024    #[validate]
2025    #[serde(rename = "Tp")]
2026    pub tp: Max35Text,
2027    #[validate]
2028    #[serde(rename = "Val")]
2029    pub val: Max2048Text,
2030}
2031#[derive(
2032    Debug,
2033    Default,
2034    Clone,
2035    PartialEq,
2036    ::serde::Serialize,
2037    ::serde::Deserialize,
2038    ::derive_builder::Builder,
2039    ::validator::Validate,
2040)]
2041pub struct OriginalTransactionAmount2 {
2042    #[serde(rename = "AmtQlfr", skip_serializing_if = "Option::is_none")]
2043    pub amt_qlfr: Option<TypeOfAmount22Code>,
2044    #[validate]
2045    #[serde(rename = "TxAmt")]
2046    pub tx_amt: TransactionAmount1,
2047    #[serde(rename = "CrdhldrBllgAmt", skip_serializing_if = "Option::is_none")]
2048    pub crdhldr_bllg_amt: Option<Amount15>,
2049    #[serde(rename = "RcncltnAmt", skip_serializing_if = "Option::is_none")]
2050    pub rcncltn_amt: Option<Amount15>,
2051}
2052#[derive(
2053    Debug,
2054    Default,
2055    Clone,
2056    PartialEq,
2057    ::serde::Serialize,
2058    ::serde::Deserialize,
2059    ::derive_builder::Builder,
2060    ::validator::Validate,
2061)]
2062pub struct AdditionalCharacteristics1 {
2063    #[serde(rename = "BizTp", skip_serializing_if = "Option::is_none")]
2064    pub biz_tp: Option<AdditionalCharacteristicDetails1>,
2065    #[serde(rename = "Ownr", skip_serializing_if = "Option::is_none")]
2066    pub ownr: Option<AdditionalCharacteristicDetails1>,
2067    #[serde(rename = "Certfctn", skip_serializing_if = "Option::is_none")]
2068    pub certfctn: Option<AdditionalCharacteristicDetails1>,
2069    #[serde(rename = "OwnrEthncty", skip_serializing_if = "Option::is_none")]
2070    pub ownr_ethncty: Option<AdditionalCharacteristicDetails1>,
2071}
2072#[derive(
2073    Debug,
2074    Default,
2075    Clone,
2076    PartialEq,
2077    ::serde::Serialize,
2078    ::serde::Deserialize,
2079    ::derive_builder::Builder,
2080    ::validator::Validate,
2081)]
2082pub struct Header66 {
2083    #[serde(rename = "MsgFctn")]
2084    pub msg_fctn: MessageFunction29Code,
2085    #[validate]
2086    #[serde(rename = "PrtcolVrsn")]
2087    pub prtcol_vrsn: Max2048Text,
2088    #[serde(rename = "XchgId", skip_serializing_if = "Option::is_none")]
2089    pub xchg_id: Option<Max35Text>,
2090    #[serde(rename = "ReTrnsmssnCntr", skip_serializing_if = "Option::is_none")]
2091    pub re_trnsmssn_cntr: Option<Max3NumericText>,
2092    #[validate]
2093    #[serde(rename = "CreDtTm")]
2094    pub cre_dt_tm: IsoDateTime,
2095    #[serde(rename = "BtchMgmtInf", skip_serializing_if = "Option::is_none")]
2096    pub btch_mgmt_inf: Option<BatchManagementInformation1>,
2097    #[validate]
2098    #[serde(rename = "InitgPty")]
2099    pub initg_pty: GenericIdentification183,
2100    #[serde(rename = "RcptPty", skip_serializing_if = "Option::is_none")]
2101    pub rcpt_pty: Option<GenericIdentification183>,
2102    #[validate(length(min = 0,))]
2103    #[serde(rename = "TracData", default)]
2104    pub trac_data: Vec<AdditionalData1>,
2105    #[validate(length(min = 0,))]
2106    #[serde(rename = "Tracblt", default)]
2107    pub tracblt: Vec<Traceability9>,
2108}
2109#[derive(
2110    Debug,
2111    Default,
2112    Clone,
2113    PartialEq,
2114    ::serde::Serialize,
2115    ::serde::Deserialize,
2116    ::derive_builder::Builder,
2117    ::validator::Validate,
2118)]
2119pub struct AncillaryPurchase2 {
2120    #[serde(rename = "AncllryDocNb", skip_serializing_if = "Option::is_none")]
2121    pub ancllry_doc_nb: Option<Max15Text>,
2122    #[serde(rename = "RltdDocNb", skip_serializing_if = "Option::is_none")]
2123    pub rltd_doc_nb: Option<Max15Text>,
2124    #[serde(rename = "SvcCtgyCd", skip_serializing_if = "Option::is_none")]
2125    pub svc_ctgy_cd: Option<Max4Text>,
2126    #[serde(rename = "SvcSubCtgyCd", skip_serializing_if = "Option::is_none")]
2127    pub svc_sub_ctgy_cd: Option<Max4Text>,
2128    #[serde(rename = "SvcPrvdrSvcTp", skip_serializing_if = "Option::is_none")]
2129    pub svc_prvdr_svc_tp: Option<Max35Text>,
2130    #[serde(rename = "CdtRsnCd", skip_serializing_if = "Option::is_none")]
2131    pub cdt_rsn_cd: Option<Max35Text>,
2132    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
2133    pub summry_cmmdty_id: Option<Max35Text>,
2134    #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
2135    pub amt: Option<Amount16>,
2136    #[serde(rename = "Fee", skip_serializing_if = "Option::is_none")]
2137    pub fee: Option<ImpliedCurrencyAndAmount>,
2138    #[validate(length(min = 0,))]
2139    #[serde(rename = "Tax", default)]
2140    pub tax: Vec<Tax39>,
2141    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
2142    pub addtl_data: Option<Max350Text>,
2143}
2144#[derive(
2145    Debug,
2146    Default,
2147    Clone,
2148    PartialEq,
2149    ::serde::Serialize,
2150    ::serde::Deserialize,
2151    ::derive_builder::Builder,
2152    ::validator::Validate,
2153)]
2154pub struct Max16HexBinaryText {
2155    #[validate(regex = "MAX_16_HEX_BINARY_TEXT_REGEX")]
2156    #[serde(rename = "$text")]
2157    pub value: String,
2158}
2159#[derive(
2160    Debug,
2161    Default,
2162    Clone,
2163    PartialEq,
2164    ::serde::Serialize,
2165    ::serde::Deserialize,
2166    ::derive_builder::Builder,
2167    ::validator::Validate,
2168)]
2169pub struct Max23NumericText {
2170    #[validate(regex = "MAX_23_NUMERIC_TEXT_REGEX")]
2171    #[serde(rename = "$text")]
2172    pub value: String,
2173}
2174#[derive(
2175    Debug,
2176    Default,
2177    Clone,
2178    PartialEq,
2179    ::serde::Serialize,
2180    ::serde::Deserialize,
2181    ::derive_builder::Builder,
2182    ::validator::Validate,
2183)]
2184pub struct Max5000Binary {
2185    #[validate(length(min = 1, max = 5000,), regex = "MAX_5000_BINARY_REGEX")]
2186    pub value: String,
2187}
2188#[derive(
2189    Debug,
2190    Default,
2191    Clone,
2192    PartialEq,
2193    ::serde::Serialize,
2194    ::serde::Deserialize,
2195    ::derive_builder::Builder,
2196    ::validator::Validate,
2197)]
2198pub struct PercentageRate {
2199    #[serde(rename = "$text")]
2200    pub value: f64,
2201}
2202#[derive(
2203    Debug,
2204    Default,
2205    Clone,
2206    PartialEq,
2207    ::serde::Serialize,
2208    ::serde::Deserialize,
2209    ::derive_builder::Builder,
2210    ::validator::Validate,
2211)]
2212pub struct SaleContext8 {
2213    #[serde(rename = "SaleId", skip_serializing_if = "Option::is_none")]
2214    pub sale_id: Option<Max35Text>,
2215    #[serde(rename = "SaleRefId", skip_serializing_if = "Option::is_none")]
2216    pub sale_ref_id: Option<Max35Text>,
2217    #[serde(rename = "SaleRefNb", skip_serializing_if = "Option::is_none")]
2218    pub sale_ref_nb: Option<Max35Text>,
2219    #[serde(rename = "GoodsAndSvcsTp", skip_serializing_if = "Option::is_none")]
2220    pub goods_and_svcs_tp: Option<GoodsAndServices1Code>,
2221    #[serde(rename = "GoodAndSvcsSubTp", skip_serializing_if = "Option::is_none")]
2222    pub good_and_svcs_sub_tp: Option<GoodsAndServicesSubType1Code>,
2223    #[serde(
2224        rename = "GoodAndSvcsOthrSubTp",
2225        skip_serializing_if = "Option::is_none"
2226    )]
2227    pub good_and_svcs_othr_sub_tp: Option<Max35Text>,
2228    #[serde(
2229        rename = "GoodAndSvcDlvryChanl",
2230        skip_serializing_if = "Option::is_none"
2231    )]
2232    pub good_and_svc_dlvry_chanl: Option<GoodAndServiceDeliveryChannel1Code>,
2233    #[serde(
2234        rename = "OthrGoodAndSvcDlvryChanl",
2235        skip_serializing_if = "Option::is_none"
2236    )]
2237    pub othr_good_and_svc_dlvry_chanl: Option<Max35Text>,
2238    #[serde(
2239        rename = "GoodAndSvcDlvrySchdl",
2240        skip_serializing_if = "Option::is_none"
2241    )]
2242    pub good_and_svc_dlvry_schdl: Option<GoodAndServiceDeliverySchedule1Code>,
2243    #[serde(
2244        rename = "OthrGoodAndSvcDlvrySchdl",
2245        skip_serializing_if = "Option::is_none"
2246    )]
2247    pub othr_good_and_svc_dlvry_schdl: Option<Max35Text>,
2248    #[serde(rename = "SpltPmtInd", skip_serializing_if = "Option::is_none")]
2249    pub splt_pmt_ind: Option<TrueFalseIndicator>,
2250    #[serde(rename = "RctReqInd", skip_serializing_if = "Option::is_none")]
2251    pub rct_req_ind: Option<TrueFalseIndicator>,
2252    #[validate(length(min = 0,))]
2253    #[serde(rename = "RctTp", default)]
2254    pub rct_tp: Vec<ReceiptType1Code>,
2255    #[serde(rename = "RctDstn", skip_serializing_if = "Option::is_none")]
2256    pub rct_dstn: Option<Max70Text>,
2257    #[validate(length(min = 0,))]
2258    #[serde(rename = "AddtlData", default)]
2259    pub addtl_data: Vec<AdditionalData1>,
2260}
2261#[derive(
2262    Debug,
2263    Default,
2264    Clone,
2265    PartialEq,
2266    ::serde::Serialize,
2267    ::serde::Deserialize,
2268    ::derive_builder::Builder,
2269    ::validator::Validate,
2270)]
2271pub struct ServiceStartEnd2 {
2272    #[serde(rename = "Lctn", skip_serializing_if = "Option::is_none")]
2273    pub lctn: Option<Max35Text>,
2274    #[serde(rename = "LctnCd", skip_serializing_if = "Option::is_none")]
2275    pub lctn_cd: Option<Max35Text>,
2276    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
2277    pub adr: Option<Address2>,
2278    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
2279    pub ctct: Option<Contact2>,
2280    #[serde(rename = "DtAndTm", skip_serializing_if = "Option::is_none")]
2281    pub dt_and_tm: Option<IsoDateTime>,
2282    #[serde(rename = "TmSgmt", skip_serializing_if = "Option::is_none")]
2283    pub tm_sgmt: Option<TimeSegment1Code>,
2284    #[serde(rename = "JrnyInf", skip_serializing_if = "Option::is_none")]
2285    pub jrny_inf: Option<JourneyInformation1>,
2286}
2287#[derive(
2288    Debug,
2289    Default,
2290    Clone,
2291    PartialEq,
2292    ::serde::Serialize,
2293    ::serde::Deserialize,
2294    ::derive_builder::Builder,
2295    ::validator::Validate,
2296)]
2297pub struct Max15Text {
2298    #[validate(length(min = 1, max = 15,))]
2299    #[serde(rename = "$text")]
2300    pub value: String,
2301}
2302#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2303pub enum MessageFunction29Code {
2304    #[serde(rename = "ADVC")]
2305    Advc,
2306    #[serde(rename = "NOTI")]
2307    Noti,
2308    #[default]
2309    Unknown,
2310}
2311#[derive(
2312    Debug,
2313    Default,
2314    Clone,
2315    PartialEq,
2316    ::serde::Serialize,
2317    ::serde::Deserialize,
2318    ::derive_builder::Builder,
2319    ::validator::Validate,
2320)]
2321pub struct AlgorithmIdentification24 {
2322    #[serde(rename = "Algo")]
2323    pub algo: Algorithm18Code,
2324    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
2325    pub param: Option<Parameter12>,
2326}
2327#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2328pub enum TransportType1Code {
2329    #[serde(rename = "AIRR")]
2330    Airr,
2331    #[serde(rename = "BUSS")]
2332    Buss,
2333    #[serde(rename = "OTHN")]
2334    Othn,
2335    #[serde(rename = "OTHP")]
2336    Othp,
2337    #[serde(rename = "RAIL")]
2338    Rail,
2339    #[serde(rename = "SHIP")]
2340    Ship,
2341    #[default]
2342    Unknown,
2343}
2344#[derive(
2345    Debug,
2346    Default,
2347    Clone,
2348    PartialEq,
2349    ::serde::Serialize,
2350    ::serde::Deserialize,
2351    ::derive_builder::Builder,
2352    ::validator::Validate,
2353)]
2354pub struct Context18 {
2355    #[serde(rename = "PtOfSvcCntxt", skip_serializing_if = "Option::is_none")]
2356    pub pt_of_svc_cntxt: Option<PointOfServiceContext3>,
2357    #[serde(rename = "TxCntxt", skip_serializing_if = "Option::is_none")]
2358    pub tx_cntxt: Option<TransactionContext7>,
2359    #[validate(length(min = 0,))]
2360    #[serde(rename = "Vrfctn", default)]
2361    pub vrfctn: Vec<Verification5>,
2362    #[validate(length(min = 0,))]
2363    #[serde(rename = "RskCntxt", default)]
2364    pub rsk_cntxt: Vec<RiskContext2>,
2365    #[serde(rename = "SaleCntxt", skip_serializing_if = "Option::is_none")]
2366    pub sale_cntxt: Option<SaleContext8>,
2367    #[validate(length(min = 0,))]
2368    #[serde(rename = "AddtlData", default)]
2369    pub addtl_data: Vec<AdditionalData2>,
2370}
2371#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2372pub enum ReceiptType1Code {
2373    #[serde(rename = "EMAL")]
2374    Emal,
2375    #[serde(rename = "OTHR")]
2376    Othr,
2377    #[serde(rename = "PAPR")]
2378    Papr,
2379    #[serde(rename = "SMSM")]
2380    Smsm,
2381    #[serde(rename = "URID")]
2382    Urid,
2383    #[default]
2384    Unknown,
2385}
2386#[derive(
2387    Debug,
2388    Default,
2389    Clone,
2390    PartialEq,
2391    ::serde::Serialize,
2392    ::serde::Deserialize,
2393    ::derive_builder::Builder,
2394    ::validator::Validate,
2395)]
2396pub struct Destination3 {
2397    #[serde(rename = "NmAndLctn", skip_serializing_if = "Option::is_none")]
2398    pub nm_and_lctn: Option<Max99Text>,
2399    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
2400    pub adr: Option<Address2>,
2401}
2402#[derive(
2403    Debug,
2404    Default,
2405    Clone,
2406    PartialEq,
2407    ::serde::Serialize,
2408    ::serde::Deserialize,
2409    ::derive_builder::Builder,
2410    ::validator::Validate,
2411)]
2412pub struct Environment34 {
2413    #[serde(rename = "Acqrr", skip_serializing_if = "Option::is_none")]
2414    pub acqrr: Option<PartyIdentification263>,
2415    #[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
2416    pub orgtr: Option<PartyIdentification263>,
2417    #[serde(rename = "Sndr", skip_serializing_if = "Option::is_none")]
2418    pub sndr: Option<PartyIdentification263>,
2419    #[serde(rename = "Rcvr", skip_serializing_if = "Option::is_none")]
2420    pub rcvr: Option<PartyIdentification263>,
2421    #[serde(rename = "Accptr", skip_serializing_if = "Option::is_none")]
2422    pub accptr: Option<PartyIdentification255>,
2423    #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
2424    pub dstn: Option<PartyIdentification263>,
2425    #[serde(rename = "Pyer", skip_serializing_if = "Option::is_none")]
2426    pub pyer: Option<PartyIdentification257>,
2427    #[serde(rename = "Pyee", skip_serializing_if = "Option::is_none")]
2428    pub pyee: Option<PartyIdentification257>,
2429    #[serde(rename = "Termnl", skip_serializing_if = "Option::is_none")]
2430    pub termnl: Option<Terminal4>,
2431    #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
2432    pub issr: Option<PartyIdentification263>,
2433    #[serde(rename = "Card", skip_serializing_if = "Option::is_none")]
2434    pub card: Option<CardData6>,
2435    #[serde(rename = "CstmrDvc", skip_serializing_if = "Option::is_none")]
2436    pub cstmr_dvc: Option<CustomerDevice4>,
2437    #[serde(rename = "Wllt", skip_serializing_if = "Option::is_none")]
2438    pub wllt: Option<Wallet2>,
2439    #[serde(rename = "Tkn", skip_serializing_if = "Option::is_none")]
2440    pub tkn: Option<Token2>,
2441    #[serde(rename = "Crdhldr", skip_serializing_if = "Option::is_none")]
2442    pub crdhldr: Option<Cardholder19>,
2443    #[validate(length(min = 0,))]
2444    #[serde(rename = "AddtlData", default)]
2445    pub addtl_data: Vec<AdditionalData2>,
2446}
2447#[derive(
2448    Debug,
2449    Default,
2450    Clone,
2451    PartialEq,
2452    ::serde::Serialize,
2453    ::serde::Deserialize,
2454    ::derive_builder::Builder,
2455    ::validator::Validate,
2456)]
2457pub struct GenericIdentification48 {
2458    #[validate]
2459    #[serde(rename = "Id")]
2460    pub id: Max35Text,
2461    #[validate]
2462    #[serde(rename = "Vrsn")]
2463    pub vrsn: Max35Text,
2464    #[validate]
2465    #[serde(rename = "Issr")]
2466    pub issr: Max35Text,
2467}
2468#[derive(
2469    Debug,
2470    Default,
2471    Clone,
2472    PartialEq,
2473    ::serde::Serialize,
2474    ::serde::Deserialize,
2475    ::derive_builder::Builder,
2476    ::validator::Validate,
2477)]
2478pub struct LocalData3 {
2479    #[serde(rename = "Lang")]
2480    pub lang: IsoMax3ALanguageCode,
2481    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
2482    pub nm: Option<CardholderName2>,
2483    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
2484    pub adr: Option<Address3>,
2485    #[validate(length(min = 0,))]
2486    #[serde(rename = "AddtlData", default)]
2487    pub addtl_data: Vec<AdditionalData1>,
2488}
2489#[derive(
2490    Debug,
2491    Default,
2492    Clone,
2493    PartialEq,
2494    ::serde::Serialize,
2495    ::serde::Deserialize,
2496    ::derive_builder::Builder,
2497    ::validator::Validate,
2498)]
2499pub struct AdditionalInformation19 {
2500    #[serde(rename = "NtrdDataNmrc", skip_serializing_if = "Option::is_none")]
2501    pub ntrd_data_nmrc: Option<Max35NumericText>,
2502    #[serde(rename = "NtrdDataAlphaNmrc", skip_serializing_if = "Option::is_none")]
2503    pub ntrd_data_alpha_nmrc: Option<Max350Text>,
2504    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
2505    pub addtl_data: Option<Max350Text>,
2506}
2507#[derive(
2508    Debug,
2509    Default,
2510    Clone,
2511    PartialEq,
2512    ::serde::Serialize,
2513    ::serde::Deserialize,
2514    ::derive_builder::Builder,
2515    ::validator::Validate,
2516)]
2517pub struct LocalData9 {
2518    #[serde(rename = "Lang")]
2519    pub lang: IsoMax3ALanguageCode,
2520    #[validate]
2521    #[serde(rename = "TxtMsg")]
2522    pub txt_msg: Max40KText,
2523}
2524#[derive(
2525    Debug,
2526    Default,
2527    Clone,
2528    PartialEq,
2529    ::serde::Serialize,
2530    ::serde::Deserialize,
2531    ::derive_builder::Builder,
2532    ::validator::Validate,
2533)]
2534pub struct Amount16 {
2535    #[validate]
2536    #[serde(rename = "Amt")]
2537    pub amt: ImpliedCurrencyAndAmount,
2538    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
2539    pub cdt_dbt: Option<CreditDebit3Code>,
2540}
2541#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2542pub enum InterestRate1Code {
2543    #[serde(rename = "GSRT")]
2544    Gsrt,
2545    #[serde(rename = "NTRT")]
2546    Ntrt,
2547    #[serde(rename = "OTHN")]
2548    Othn,
2549    #[serde(rename = "OTHP")]
2550    Othp,
2551    #[default]
2552    Unknown,
2553}
2554#[derive(
2555    Debug,
2556    Default,
2557    Clone,
2558    PartialEq,
2559    ::serde::Serialize,
2560    ::serde::Deserialize,
2561    ::derive_builder::Builder,
2562    ::validator::Validate,
2563)]
2564pub struct TelecomCallDetails2 {
2565    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
2566    pub tp: Option<TelephonyCallType1Code>,
2567    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
2568    pub othr_tp: Option<Max70Text>,
2569    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
2570    pub phne_nb: Option<PhoneNumber>,
2571    #[serde(rename = "City", skip_serializing_if = "Option::is_none")]
2572    pub city: Option<Max35Text>,
2573    #[serde(rename = "Stat", skip_serializing_if = "Option::is_none")]
2574    pub stat: Option<Max16Text>,
2575    #[serde(rename = "Prvc", skip_serializing_if = "Option::is_none")]
2576    pub prvc: Option<Max35Text>,
2577    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
2578    pub ctry: Option<IsoMax3ACountryCode>,
2579}
2580#[derive(
2581    Debug,
2582    Default,
2583    Clone,
2584    PartialEq,
2585    ::serde::Serialize,
2586    ::serde::Deserialize,
2587    ::derive_builder::Builder,
2588    ::validator::Validate,
2589)]
2590pub struct TemporaryServicesCompany2 {
2591    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
2592    pub nm: Option<Max70Text>,
2593    #[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
2594    pub dept: Option<Max70Text>,
2595    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
2596    pub id: Option<PartyIdentification258>,
2597    #[serde(rename = "Sprvsr", skip_serializing_if = "Option::is_none")]
2598    pub sprvsr: Option<Max70Text>,
2599}
2600#[derive(
2601    Debug,
2602    Default,
2603    Clone,
2604    PartialEq,
2605    ::serde::Serialize,
2606    ::serde::Deserialize,
2607    ::derive_builder::Builder,
2608    ::validator::Validate,
2609)]
2610pub struct UnitOfMeasure2 {
2611    #[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
2612    pub unit_of_measr: Option<UnitOfMeasure1Code>,
2613    #[serde(rename = "OthrUnitOfMeasr", skip_serializing_if = "Option::is_none")]
2614    pub othr_unit_of_measr: Option<Max35Text>,
2615    #[serde(rename = "NbOfUnits", skip_serializing_if = "Option::is_none")]
2616    pub nb_of_units: Option<DecimalNumber>,
2617}
2618#[derive(
2619    Debug,
2620    Default,
2621    Clone,
2622    PartialEq,
2623    ::serde::Serialize,
2624    ::serde::Deserialize,
2625    ::derive_builder::Builder,
2626    ::validator::Validate,
2627)]
2628pub struct TransactionAmount1 {
2629    #[validate]
2630    #[serde(rename = "Amt")]
2631    pub amt: ImpliedCurrencyAndAmount,
2632    #[serde(rename = "Ccy")]
2633    pub ccy: Iso3NumericCurrencyCode,
2634}
2635#[derive(
2636    Debug,
2637    Default,
2638    Clone,
2639    PartialEq,
2640    ::serde::Serialize,
2641    ::serde::Deserialize,
2642    ::derive_builder::Builder,
2643    ::validator::Validate,
2644)]
2645pub struct SaleSummary1 {
2646    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
2647    pub summry_cmmdty_id: Option<Max35Text>,
2648    #[serde(rename = "LltyPrgrmm", skip_serializing_if = "Option::is_none")]
2649    pub llty_prgrmm: Option<LoyaltyProgramme2>,
2650    #[validate(length(min = 0,))]
2651    #[serde(rename = "Adjstmnt", default)]
2652    pub adjstmnt: Vec<Adjustment9>,
2653}
2654#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2655pub enum EncryptedDataFormat1Code {
2656    #[serde(rename = "ASCI")]
2657    Asci,
2658    #[serde(rename = "BINF")]
2659    Binf,
2660    #[serde(rename = "EBCD")]
2661    Ebcd,
2662    #[serde(rename = "HEXF")]
2663    Hexf,
2664    #[serde(rename = "OTHN")]
2665    Othn,
2666    #[serde(rename = "OTHP")]
2667    Othp,
2668    #[default]
2669    Unknown,
2670}
2671#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2672pub enum QrCodePresentmentMode1Code {
2673    #[serde(rename = "CPMD")]
2674    Cpmd,
2675    #[serde(rename = "OTHN")]
2676    Othn,
2677    #[serde(rename = "OTHP")]
2678    Othp,
2679    #[serde(rename = "MPMD")]
2680    Mpmd,
2681    #[default]
2682    Unknown,
2683}
2684#[derive(
2685    Debug,
2686    Default,
2687    Clone,
2688    PartialEq,
2689    ::serde::Serialize,
2690    ::serde::Deserialize,
2691    ::derive_builder::Builder,
2692    ::validator::Validate,
2693)]
2694pub struct CardData6 {
2695    #[serde(rename = "PAN", skip_serializing_if = "Option::is_none")]
2696    pub pan: Option<Max19NumericText>,
2697    #[serde(rename = "PrtctdPANInd", skip_serializing_if = "Option::is_none")]
2698    pub prtctd_pan_ind: Option<TrueFalseIndicator>,
2699    #[serde(rename = "CardSeqNb", skip_serializing_if = "Option::is_none")]
2700    pub card_seq_nb: Option<Min2Max3NumericText>,
2701    #[serde(rename = "FctvDt", skip_serializing_if = "Option::is_none")]
2702    pub fctv_dt: Option<IsoYearMonth>,
2703    #[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")]
2704    pub xpry_dt: Option<IsoYearMonth>,
2705    #[serde(rename = "SvcCd", skip_serializing_if = "Option::is_none")]
2706    pub svc_cd: Option<Exact3NumericText>,
2707    #[serde(rename = "Trck1", skip_serializing_if = "Option::is_none")]
2708    pub trck_1: Option<Max76Text>,
2709    #[serde(rename = "Trck2", skip_serializing_if = "Option::is_none")]
2710    pub trck_2: Option<Track2Data1Choice>,
2711    #[serde(rename = "Trck3", skip_serializing_if = "Option::is_none")]
2712    pub trck_3: Option<Max104Text>,
2713    #[serde(rename = "PmtAcctRef", skip_serializing_if = "Option::is_none")]
2714    pub pmt_acct_ref: Option<Max35Text>,
2715    #[serde(rename = "PANAcctRg", skip_serializing_if = "Option::is_none")]
2716    pub pan_acct_rg: Option<Max19NumericText>,
2717    #[serde(rename = "CardCtryCd", skip_serializing_if = "Option::is_none")]
2718    pub card_ctry_cd: Option<Iso3NumericCountryCode>,
2719    #[serde(rename = "CardPdctTp", skip_serializing_if = "Option::is_none")]
2720    pub card_pdct_tp: Option<Max35Text>,
2721    #[serde(rename = "CardPdctSubTp", skip_serializing_if = "Option::is_none")]
2722    pub card_pdct_sub_tp: Option<Max35Text>,
2723    #[serde(rename = "CardPrtflIdr", skip_serializing_if = "Option::is_none")]
2724    pub card_prtfl_idr: Option<Max35Text>,
2725    #[validate(length(min = 0,))]
2726    #[serde(rename = "AddtlCardData", default)]
2727    pub addtl_card_data: Vec<AdditionalData1>,
2728}
2729#[derive(
2730    Debug,
2731    Default,
2732    Clone,
2733    PartialEq,
2734    ::serde::Serialize,
2735    ::serde::Deserialize,
2736    ::derive_builder::Builder,
2737    ::validator::Validate,
2738)]
2739pub struct AlgorithmIdentification23 {
2740    #[serde(rename = "Algo")]
2741    pub algo: Algorithm18Code,
2742    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
2743    pub param: Option<Parameter12>,
2744}
2745#[derive(
2746    Debug,
2747    Default,
2748    Clone,
2749    PartialEq,
2750    ::serde::Serialize,
2751    ::serde::Deserialize,
2752    ::derive_builder::Builder,
2753    ::validator::Validate,
2754)]
2755pub struct ShippingPackage2 {
2756    #[serde(rename = "TrckgNb", skip_serializing_if = "Option::is_none")]
2757    pub trckg_nb: Option<Max70Text>,
2758    #[serde(rename = "Spplr", skip_serializing_if = "Option::is_none")]
2759    pub spplr: Option<PartyIdentification260>,
2760    #[serde(rename = "PckpDt", skip_serializing_if = "Option::is_none")]
2761    pub pckp_dt: Option<IsoDate>,
2762    #[serde(rename = "PckpTm", skip_serializing_if = "Option::is_none")]
2763    pub pckp_tm: Option<IsoTime>,
2764    #[serde(rename = "Dlvry", skip_serializing_if = "Option::is_none")]
2765    pub dlvry: Option<DeliveryInformation4>,
2766    #[serde(rename = "Wght", skip_serializing_if = "Option::is_none")]
2767    pub wght: Option<UnitOfMeasure2>,
2768    #[validate(length(min = 0,))]
2769    #[serde(rename = "Pdct", default)]
2770    pub pdct: Vec<Product7>,
2771    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
2772    pub insrnc_ind: Option<TrueFalseIndicator>,
2773    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
2774    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
2775}
2776#[derive(
2777    Debug,
2778    Default,
2779    Clone,
2780    PartialEq,
2781    ::serde::Serialize,
2782    ::serde::Deserialize,
2783    ::derive_builder::Builder,
2784    ::validator::Validate,
2785)]
2786pub struct PartyIdentification259 {
2787    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
2788    pub nm: Option<Max70Text>,
2789    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
2790    pub id: Option<PartyIdentification258>,
2791    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
2792    pub adr: Option<Address2>,
2793    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
2794    pub ctct: Option<Contact3>,
2795    #[serde(rename = "TaxRegnId", skip_serializing_if = "Option::is_none")]
2796    pub tax_regn_id: Option<Max70Text>,
2797    #[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
2798    pub addtl_inf: Option<Max1000Text>,
2799}
2800#[derive(
2801    Debug,
2802    Default,
2803    Clone,
2804    PartialEq,
2805    ::serde::Serialize,
2806    ::serde::Deserialize,
2807    ::derive_builder::Builder,
2808    ::validator::Validate,
2809)]
2810pub struct Signer4 {
2811    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
2812    pub vrsn: Option<Number>,
2813    #[serde(rename = "SgnrId", skip_serializing_if = "Option::is_none")]
2814    pub sgnr_id: Option<Recipient5Choice>,
2815    #[validate]
2816    #[serde(rename = "DgstAlgo")]
2817    pub dgst_algo: AlgorithmIdentification21,
2818    #[validate(length(min = 0,))]
2819    #[serde(rename = "SgndAttrbts", default)]
2820    pub sgnd_attrbts: Vec<GenericInformation1>,
2821    #[validate]
2822    #[serde(rename = "SgntrAlgo")]
2823    pub sgntr_algo: AlgorithmIdentification20,
2824    #[validate]
2825    #[serde(rename = "Sgntr")]
2826    pub sgntr: Max3000Binary,
2827}
2828#[derive(
2829    Debug,
2830    Default,
2831    Clone,
2832    PartialEq,
2833    ::serde::Serialize,
2834    ::serde::Deserialize,
2835    ::derive_builder::Builder,
2836    ::validator::Validate,
2837)]
2838pub struct TransactionIdentification12 {
2839    #[validate]
2840    #[serde(rename = "SysTracAudtNb")]
2841    pub sys_trac_audt_nb: Max12NumericText,
2842    #[validate]
2843    #[serde(rename = "TrnsmssnDtTm")]
2844    pub trnsmssn_dt_tm: IsoDateTime,
2845    #[serde(rename = "RtrvlRefNb", skip_serializing_if = "Option::is_none")]
2846    pub rtrvl_ref_nb: Option<Exact12Text>,
2847    #[serde(rename = "LifeCyclTracIdData", skip_serializing_if = "Option::is_none")]
2848    pub life_cycl_trac_id_data: Option<TransactionLifeCycleIdentification2>,
2849}
2850#[derive(
2851    Debug,
2852    Default,
2853    Clone,
2854    PartialEq,
2855    ::serde::Serialize,
2856    ::serde::Deserialize,
2857    ::derive_builder::Builder,
2858    ::validator::Validate,
2859)]
2860pub struct FeeAmount3 {
2861    #[validate]
2862    #[serde(rename = "Amt")]
2863    pub amt: ImpliedCurrencyAndAmount,
2864    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
2865    pub cdt_dbt: Option<CreditDebit3Code>,
2866    #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
2867    pub ccy: Option<Iso3NumericCurrencyCode>,
2868    #[serde(rename = "FctvXchgRate", skip_serializing_if = "Option::is_none")]
2869    pub fctv_xchg_rate: Option<BaseOne25Rate>,
2870    #[serde(rename = "ConvsDt", skip_serializing_if = "Option::is_none")]
2871    pub convs_dt: Option<IsoDate>,
2872    #[serde(rename = "ConvsTm", skip_serializing_if = "Option::is_none")]
2873    pub convs_tm: Option<IsoTime>,
2874}
2875#[derive(
2876    Debug,
2877    Default,
2878    Clone,
2879    PartialEq,
2880    ::serde::Serialize,
2881    ::serde::Deserialize,
2882    ::derive_builder::Builder,
2883    ::validator::Validate,
2884)]
2885pub struct PointOfInteractionComponentIdentification3 {
2886    #[serde(rename = "ItmNb", skip_serializing_if = "Option::is_none")]
2887    pub itm_nb: Option<Max35Text>,
2888    #[serde(rename = "PrvdrId", skip_serializing_if = "Option::is_none")]
2889    pub prvdr_id: Option<Max35Text>,
2890    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
2891    pub id: Option<Max35Text>,
2892    #[serde(rename = "SrlNb", skip_serializing_if = "Option::is_none")]
2893    pub srl_nb: Option<Max70Text>,
2894}
2895#[derive(
2896    Debug,
2897    Default,
2898    Clone,
2899    PartialEq,
2900    ::serde::Serialize,
2901    ::serde::Deserialize,
2902    ::derive_builder::Builder,
2903    ::validator::Validate,
2904)]
2905pub struct Max500Text {
2906    #[validate(length(min = 1, max = 500,))]
2907    #[serde(rename = "$text")]
2908    pub value: String,
2909}
2910#[derive(
2911    Debug,
2912    Default,
2913    Clone,
2914    PartialEq,
2915    ::serde::Serialize,
2916    ::serde::Deserialize,
2917    ::derive_builder::Builder,
2918    ::validator::Validate,
2919)]
2920pub struct Vehicle5 {
2921    #[serde(rename = "VhclNb", skip_serializing_if = "Option::is_none")]
2922    pub vhcl_nb: Option<Max35NumericText>,
2923    #[serde(rename = "VhclIdNb", skip_serializing_if = "Option::is_none")]
2924    pub vhcl_id_nb: Option<Max35NumericText>,
2925    #[serde(rename = "FleetNb", skip_serializing_if = "Option::is_none")]
2926    pub fleet_nb: Option<Max10Text>,
2927    #[serde(rename = "SubFleetNb", skip_serializing_if = "Option::is_none")]
2928    pub sub_fleet_nb: Option<Max35Text>,
2929    #[serde(rename = "UnitNb", skip_serializing_if = "Option::is_none")]
2930    pub unit_nb: Option<Max35NumericText>,
2931    #[serde(rename = "TrlrNb", skip_serializing_if = "Option::is_none")]
2932    pub trlr_nb: Option<Max35NumericText>,
2933    #[serde(rename = "VhclTag", skip_serializing_if = "Option::is_none")]
2934    pub vhcl_tag: Option<Max35Text>,
2935    #[serde(rename = "VhclTagNtryMd", skip_serializing_if = "Option::is_none")]
2936    pub vhcl_tag_ntry_md: Option<CardDataReading5Code>,
2937    #[serde(rename = "RplcmntVhclInd", skip_serializing_if = "Option::is_none")]
2938    pub rplcmnt_vhcl_ind: Option<TrueFalseIndicator>,
2939    #[serde(rename = "Odmtr", skip_serializing_if = "Option::is_none")]
2940    pub odmtr: Option<DecimalNumber>,
2941    #[serde(rename = "Hbmtr", skip_serializing_if = "Option::is_none")]
2942    pub hbmtr: Option<DecimalNumber>,
2943    #[serde(rename = "MntncId", skip_serializing_if = "Option::is_none")]
2944    pub mntnc_id: Option<Max35Text>,
2945    #[serde(rename = "OnBrdDgnstcs", skip_serializing_if = "Option::is_none")]
2946    pub on_brd_dgnstcs: Option<OnBoardDiagnostics1>,
2947    #[validate(length(min = 0,))]
2948    #[serde(rename = "AddtlVhclData", default)]
2949    pub addtl_vhcl_data: Vec<Vehicle2>,
2950}
2951#[derive(
2952    Debug,
2953    Default,
2954    Clone,
2955    PartialEq,
2956    ::serde::Serialize,
2957    ::serde::Deserialize,
2958    ::derive_builder::Builder,
2959    ::validator::Validate,
2960)]
2961pub struct SaleItem3 {
2962    #[serde(rename = "PdctTp", skip_serializing_if = "Option::is_none")]
2963    pub pdct_tp: Option<Max35Text>,
2964    #[serde(rename = "PdctCd", skip_serializing_if = "Option::is_none")]
2965    pub pdct_cd: Option<Max70Text>,
2966    #[serde(rename = "PdctCdTp", skip_serializing_if = "Option::is_none")]
2967    pub pdct_cd_tp: Option<ProductCodeType1Code>,
2968    #[serde(rename = "AddtlPdctCd", skip_serializing_if = "Option::is_none")]
2969    pub addtl_pdct_cd: Option<Max70Text>,
2970    #[serde(rename = "AddtlPdctCdTp", skip_serializing_if = "Option::is_none")]
2971    pub addtl_pdct_cd_tp: Option<Max35Text>,
2972    #[serde(rename = "PdctCdModfr", skip_serializing_if = "Option::is_none")]
2973    pub pdct_cd_modfr: Option<DecimalNumber>,
2974    #[serde(rename = "PdctDesc", skip_serializing_if = "Option::is_none")]
2975    pub pdct_desc: Option<Max140Text>,
2976    #[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
2977    pub unit_of_measr: Option<UnitOfMeasure1Code>,
2978    #[serde(rename = "OthrUnitOfMeasr", skip_serializing_if = "Option::is_none")]
2979    pub othr_unit_of_measr: Option<Max35Text>,
2980    #[serde(rename = "PdctQty", skip_serializing_if = "Option::is_none")]
2981    pub pdct_qty: Option<DecimalNumber>,
2982    #[serde(rename = "NonAdjstdUnitPric", skip_serializing_if = "Option::is_none")]
2983    pub non_adjstd_unit_pric: Option<ImpliedCurrencyAndAmount>,
2984    #[serde(rename = "NonAdjstdTtlAmt", skip_serializing_if = "Option::is_none")]
2985    pub non_adjstd_ttl_amt: Option<ImpliedCurrencyAndAmount>,
2986    #[validate(length(min = 0,))]
2987    #[serde(rename = "Adjstmnt", default)]
2988    pub adjstmnt: Vec<Adjustment10>,
2989    #[serde(rename = "AdjstdAmt", skip_serializing_if = "Option::is_none")]
2990    pub adjstd_amt: Option<ImpliedCurrencyAndAmount>,
2991    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
2992    pub insrnc_ind: Option<TrueFalseIndicator>,
2993    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
2994    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
2995    #[validate(length(min = 0,))]
2996    #[serde(rename = "Tax", default)]
2997    pub tax: Vec<Tax39>,
2998    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
2999    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
3000}
3001#[derive(
3002    Debug,
3003    Default,
3004    Clone,
3005    PartialEq,
3006    ::serde::Serialize,
3007    ::serde::Deserialize,
3008    ::derive_builder::Builder,
3009    ::validator::Validate,
3010)]
3011pub struct Max500Binary {
3012    #[validate(length(min = 1, max = 500,), regex = "MAX_500_BINARY_REGEX")]
3013    pub value: String,
3014}
3015#[derive(
3016    Debug,
3017    Default,
3018    Clone,
3019    PartialEq,
3020    ::serde::Serialize,
3021    ::serde::Deserialize,
3022    ::derive_builder::Builder,
3023    ::validator::Validate,
3024)]
3025pub struct Sale2 {
3026    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
3027    pub summry: Option<SaleSummary1>,
3028    #[validate(length(min = 0,))]
3029    #[serde(rename = "LineItm", default)]
3030    pub line_itm: Vec<SaleItem3>,
3031}
3032#[derive(
3033    Debug,
3034    Default,
3035    Clone,
3036    PartialEq,
3037    ::serde::Serialize,
3038    ::serde::Deserialize,
3039    ::derive_builder::Builder,
3040    ::validator::Validate,
3041)]
3042pub struct Vehicle4 {
3043    #[serde(rename = "Clss", skip_serializing_if = "Option::is_none")]
3044    pub clss: Option<Max35Text>,
3045    #[serde(rename = "Make", skip_serializing_if = "Option::is_none")]
3046    pub make: Option<Max35NumericText>,
3047    #[serde(rename = "Mdl", skip_serializing_if = "Option::is_none")]
3048    pub mdl: Option<Max35NumericText>,
3049    #[serde(rename = "RegnNb", skip_serializing_if = "Option::is_none")]
3050    pub regn_nb: Option<Max35Text>,
3051}
3052#[derive(
3053    Debug,
3054    Default,
3055    Clone,
3056    PartialEq,
3057    ::serde::Serialize,
3058    ::serde::Deserialize,
3059    ::derive_builder::Builder,
3060    ::validator::Validate,
3061)]
3062pub struct VehicleRentalCustomer2 {
3063    #[validate]
3064    #[serde(rename = "RntrNm")]
3065    pub rntr_nm: Max70Text,
3066    #[serde(rename = "CorpNm", skip_serializing_if = "Option::is_none")]
3067    pub corp_nm: Option<Max70Text>,
3068    #[validate]
3069    #[serde(rename = "CorpIdr")]
3070    pub corp_idr: Max35Text,
3071    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
3072    pub assgnr: Option<CustomerAssigner1Code>,
3073    #[validate(length(min = 0,))]
3074    #[serde(rename = "PmryDrvr", default)]
3075    pub pmry_drvr: Vec<DriverInParty2>,
3076    #[validate(length(min = 0,))]
3077    #[serde(rename = "AddtlDrvr", default)]
3078    pub addtl_drvr: Vec<DriverInParty2>,
3079    #[serde(rename = "LltyPrgrmm", skip_serializing_if = "Option::is_none")]
3080    pub llty_prgrmm: Option<LoyaltyProgramme2>,
3081}
3082#[derive(
3083    Debug,
3084    Default,
3085    Clone,
3086    PartialEq,
3087    ::serde::Serialize,
3088    ::serde::Deserialize,
3089    ::derive_builder::Builder,
3090    ::validator::Validate,
3091)]
3092pub struct RiskContext2 {
3093    #[validate(length(min = 0,))]
3094    #[serde(rename = "RskInptData", default)]
3095    pub rsk_inpt_data: Vec<RiskInputData1>,
3096    #[validate(length(min = 0,))]
3097    #[serde(rename = "RskAssmnt", default)]
3098    pub rsk_assmnt: Vec<RiskAssessment2>,
3099}
3100#[derive(
3101    Debug,
3102    Default,
3103    Clone,
3104    PartialEq,
3105    ::serde::Serialize,
3106    ::serde::Deserialize,
3107    ::derive_builder::Builder,
3108    ::validator::Validate,
3109)]
3110pub struct AmountDetails2 {
3111    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
3112    pub tp: Option<TypeOfAmount20Code>,
3113    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
3114    pub othr_tp: Option<Max35Text>,
3115    #[validate]
3116    #[serde(rename = "Amt")]
3117    pub amt: ImpliedCurrencyAndAmount,
3118    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
3119    pub cdt_dbt: Option<CreditDebit3Code>,
3120    #[validate(length(min = 0,))]
3121    #[serde(rename = "Tax", default)]
3122    pub tax: Vec<Tax39>,
3123}
3124#[derive(
3125    Debug,
3126    Default,
3127    Clone,
3128    PartialEq,
3129    ::serde::Serialize,
3130    ::serde::Deserialize,
3131    ::derive_builder::Builder,
3132    ::validator::Validate,
3133)]
3134pub struct DisputeIdentification1 {
3135    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
3136    pub tp: Option<Max35Text>,
3137    #[validate]
3138    #[serde(rename = "Id")]
3139    pub id: Max70Text,
3140}
3141#[derive(
3142    Debug,
3143    Default,
3144    Clone,
3145    PartialEq,
3146    ::serde::Serialize,
3147    ::serde::Deserialize,
3148    ::derive_builder::Builder,
3149    ::validator::Validate,
3150)]
3151pub struct DepartureOrArrival2 {
3152    #[serde(rename = "CrrierCd", skip_serializing_if = "Option::is_none")]
3153    pub crrier_cd: Option<Max35Text>,
3154    #[serde(rename = "RouteNb", skip_serializing_if = "Option::is_none")]
3155    pub route_nb: Option<Max35NumericText>,
3156    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
3157    pub dt: Option<IsoDate>,
3158    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
3159    pub tm: Option<IsoTime>,
3160}
3161#[derive(
3162    Debug,
3163    Default,
3164    Clone,
3165    PartialEq,
3166    ::serde::Serialize,
3167    ::serde::Deserialize,
3168    ::derive_builder::Builder,
3169    ::validator::Validate,
3170)]
3171pub struct Max280Text {
3172    #[validate(length(min = 1, max = 280,))]
3173    #[serde(rename = "$text")]
3174    pub value: String,
3175}
3176#[derive(
3177    Debug,
3178    Default,
3179    Clone,
3180    PartialEq,
3181    ::serde::Serialize,
3182    ::serde::Deserialize,
3183    ::derive_builder::Builder,
3184    ::validator::Validate,
3185)]
3186pub struct ReservationDetails3 {
3187    #[serde(rename = "Sys", skip_serializing_if = "Option::is_none")]
3188    pub sys: Option<Max4Text>,
3189    #[serde(rename = "RsvatnNb", skip_serializing_if = "Option::is_none")]
3190    pub rsvatn_nb: Option<Max35Text>,
3191    #[serde(rename = "OrgnlSys", skip_serializing_if = "Option::is_none")]
3192    pub orgnl_sys: Option<Max4Text>,
3193    #[serde(rename = "OrgnlRsvatnNb", skip_serializing_if = "Option::is_none")]
3194    pub orgnl_rsvatn_nb: Option<Max35Text>,
3195}
3196#[derive(
3197    Debug,
3198    Default,
3199    Clone,
3200    PartialEq,
3201    ::serde::Serialize,
3202    ::serde::Deserialize,
3203    ::derive_builder::Builder,
3204    ::validator::Validate,
3205)]
3206pub struct Customer8 {
3207    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
3208    pub nm: Option<Max70Text>,
3209    #[validate]
3210    #[serde(rename = "Id")]
3211    pub id: PartyIdentification208,
3212    #[serde(rename = "CstmrFileRefNb", skip_serializing_if = "Option::is_none")]
3213    pub cstmr_file_ref_nb: Option<Max70Text>,
3214    #[serde(rename = "Age", skip_serializing_if = "Option::is_none")]
3215    pub age: Option<Max2NumericText>,
3216    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
3217    pub adr: Option<Address2>,
3218    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
3219    pub ctct: Option<Contact6>,
3220}
3221#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3222pub enum EncryptionFormat2Code {
3223    #[serde(rename = "TR31")]
3224    Tr31,
3225    #[serde(rename = "TR34")]
3226    Tr34,
3227    #[serde(rename = "I238")]
3228    I238,
3229    #[default]
3230    Unknown,
3231}
3232#[derive(
3233    Debug,
3234    Default,
3235    Clone,
3236    PartialEq,
3237    ::serde::Serialize,
3238    ::serde::Deserialize,
3239    ::derive_builder::Builder,
3240    ::validator::Validate,
3241)]
3242pub struct Plan2 {
3243    #[serde(rename = "PlanId", skip_serializing_if = "Option::is_none")]
3244    pub plan_id: Option<Max70Text>,
3245    #[serde(rename = "PlanOwnr", skip_serializing_if = "Option::is_none")]
3246    pub plan_ownr: Option<PlanOwner1Code>,
3247    #[serde(rename = "OthrPlanOwnr", skip_serializing_if = "Option::is_none")]
3248    pub othr_plan_ownr: Option<Max35Text>,
3249    #[serde(rename = "InstlmtPmtTp", skip_serializing_if = "Option::is_none")]
3250    pub instlmt_pmt_tp: Option<Max35Text>,
3251    #[serde(rename = "DfrrdInstlmtInd", skip_serializing_if = "Option::is_none")]
3252    pub dfrrd_instlmt_ind: Option<TrueFalseIndicator>,
3253    #[serde(rename = "PrdUnit", skip_serializing_if = "Option::is_none")]
3254    pub prd_unit: Option<Frequency18Code>,
3255    #[serde(rename = "NbOfPrds", skip_serializing_if = "Option::is_none")]
3256    pub nb_of_prds: Option<Number>,
3257    #[validate(length(min = 0,))]
3258    #[serde(rename = "IntrstRate", default)]
3259    pub intrst_rate: Vec<InterestRateDetails2>,
3260    #[serde(rename = "FrstPmtDt", skip_serializing_if = "Option::is_none")]
3261    pub frst_pmt_dt: Option<IsoDate>,
3262    #[serde(rename = "FrstAmt", skip_serializing_if = "Option::is_none")]
3263    pub frst_amt: Option<ImpliedCurrencyAndAmount>,
3264    #[serde(rename = "NrmlPmtAmt", skip_serializing_if = "Option::is_none")]
3265    pub nrml_pmt_amt: Option<ImpliedCurrencyAndAmount>,
3266    #[serde(rename = "TtlNbOfPmts", skip_serializing_if = "Option::is_none")]
3267    pub ttl_nb_of_pmts: Option<Number>,
3268    #[serde(rename = "InstlmtCcy", skip_serializing_if = "Option::is_none")]
3269    pub instlmt_ccy: Option<Iso3NumericCurrencyCode>,
3270    #[serde(rename = "GracePrd", skip_serializing_if = "Option::is_none")]
3271    pub grace_prd: Option<GracePeriod2>,
3272    #[validate(length(min = 0,))]
3273    #[serde(rename = "AmtDtls", default)]
3274    pub amt_dtls: Vec<InstalmentAmountDetails2>,
3275    #[serde(rename = "GrdTtlAmt", skip_serializing_if = "Option::is_none")]
3276    pub grd_ttl_amt: Option<ImpliedCurrencyAndAmount>,
3277    #[validate(length(min = 0,))]
3278    #[serde(rename = "AddtlData", default)]
3279    pub addtl_data: Vec<AdditionalData1>,
3280}
3281#[derive(
3282    Debug,
3283    Default,
3284    Clone,
3285    PartialEq,
3286    ::serde::Serialize,
3287    ::serde::Deserialize,
3288    ::derive_builder::Builder,
3289    ::validator::Validate,
3290)]
3291pub struct VehicleRentalInvoice2 {
3292    #[serde(rename = "NoShowInd", skip_serializing_if = "Option::is_none")]
3293    pub no_show_ind: Option<TrueFalseIndicator>,
3294    #[serde(rename = "AdjstdInd", skip_serializing_if = "Option::is_none")]
3295    pub adjstd_ind: Option<TrueFalseIndicator>,
3296    #[serde(rename = "RtrLctn", skip_serializing_if = "Option::is_none")]
3297    pub rtr_lctn: Option<Address2>,
3298    #[serde(rename = "ChckOutDt", skip_serializing_if = "Option::is_none")]
3299    pub chck_out_dt: Option<IsoDate>,
3300    #[serde(rename = "ChckOutTm", skip_serializing_if = "Option::is_none")]
3301    pub chck_out_tm: Option<IsoTime>,
3302    #[serde(rename = "ChckInDt", skip_serializing_if = "Option::is_none")]
3303    pub chck_in_dt: Option<IsoDate>,
3304    #[serde(rename = "ChckInTm", skip_serializing_if = "Option::is_none")]
3305    pub chck_in_tm: Option<IsoTime>,
3306    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
3307    pub drtn: Option<Max4NumericText>,
3308    #[serde(rename = "VhclClssInvcd", skip_serializing_if = "Option::is_none")]
3309    pub vhcl_clss_invcd: Option<Vehicle4>,
3310    #[serde(rename = "VhclClssPrvdd", skip_serializing_if = "Option::is_none")]
3311    pub vhcl_clss_prvdd: Option<Vehicle4>,
3312    #[serde(rename = "TrvlDstnc", skip_serializing_if = "Option::is_none")]
3313    pub trvl_dstnc: Option<Distance1>,
3314    #[validate(length(min = 0,))]
3315    #[serde(rename = "RntlChrg", default)]
3316    pub rntl_chrg: Vec<RentalRate1>,
3317    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
3318    pub summry_cmmdty_id: Option<Max35Text>,
3319    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
3320    pub insrnc_ind: Option<TrueFalseIndicator>,
3321    #[validate(length(min = 0,))]
3322    #[serde(rename = "AddtlAmt", default)]
3323    pub addtl_amt: Vec<Amount18>,
3324    #[validate(length(min = 0,))]
3325    #[serde(rename = "Tax", default)]
3326    pub tax: Vec<Tax39>,
3327}
3328#[derive(
3329    Debug,
3330    Default,
3331    Clone,
3332    PartialEq,
3333    ::serde::Serialize,
3334    ::serde::Deserialize,
3335    ::derive_builder::Builder,
3336    ::validator::Validate,
3337)]
3338pub struct LocalData1 {
3339    #[serde(rename = "Lang")]
3340    pub lang: IsoMax3ALanguageCode,
3341    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
3342    pub shrt_nm: Option<Max70Text>,
3343    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
3344    pub lgl_corp_nm: Option<Max210Text>,
3345    #[validate(length(min = 0,))]
3346    #[serde(rename = "AddtlData", default)]
3347    pub addtl_data: Vec<AdditionalData1>,
3348}
3349#[derive(
3350    Debug,
3351    Default,
3352    Clone,
3353    PartialEq,
3354    ::serde::Serialize,
3355    ::serde::Deserialize,
3356    ::derive_builder::Builder,
3357    ::validator::Validate,
3358)]
3359pub struct AlgorithmIdentification27 {
3360    #[serde(rename = "Algo")]
3361    pub algo: Algorithm7Code,
3362    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
3363    pub param: Option<Parameter13>,
3364}
3365#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3366pub enum UnitOfMeasure1Code {
3367    #[serde(rename = "PIEC")]
3368    Piec,
3369    #[serde(rename = "TONS")]
3370    Tons,
3371    #[serde(rename = "FOOT")]
3372    Foot,
3373    #[serde(rename = "GBGA")]
3374    Gbga,
3375    #[serde(rename = "USGA")]
3376    Usga,
3377    #[serde(rename = "GRAM")]
3378    Gram,
3379    #[serde(rename = "INCH")]
3380    Inch,
3381    #[serde(rename = "KILO")]
3382    Kilo,
3383    #[serde(rename = "PUND")]
3384    Pund,
3385    #[serde(rename = "METR")]
3386    Metr,
3387    #[serde(rename = "CMET")]
3388    Cmet,
3389    #[serde(rename = "MMET")]
3390    Mmet,
3391    #[serde(rename = "LITR")]
3392    Litr,
3393    #[serde(rename = "CELI")]
3394    Celi,
3395    #[serde(rename = "MILI")]
3396    Mili,
3397    #[serde(rename = "GBOU")]
3398    Gbou,
3399    #[serde(rename = "USOU")]
3400    Usou,
3401    #[serde(rename = "GBQA")]
3402    Gbqa,
3403    #[serde(rename = "USQA")]
3404    Usqa,
3405    #[serde(rename = "GBPI")]
3406    Gbpi,
3407    #[serde(rename = "USPI")]
3408    Uspi,
3409    #[serde(rename = "MILE")]
3410    Mile,
3411    #[serde(rename = "KMET")]
3412    Kmet,
3413    #[serde(rename = "YARD")]
3414    Yard,
3415    #[serde(rename = "SQKI")]
3416    Sqki,
3417    #[serde(rename = "HECT")]
3418    Hect,
3419    #[serde(rename = "ARES")]
3420    Ares,
3421    #[serde(rename = "SMET")]
3422    Smet,
3423    #[serde(rename = "SCMT")]
3424    Scmt,
3425    #[serde(rename = "SMIL")]
3426    Smil,
3427    #[serde(rename = "SQMI")]
3428    Sqmi,
3429    #[serde(rename = "SQYA")]
3430    Sqya,
3431    #[serde(rename = "SQFO")]
3432    Sqfo,
3433    #[serde(rename = "SQIN")]
3434    Sqin,
3435    #[serde(rename = "ACRE")]
3436    Acre,
3437    #[default]
3438    Unknown,
3439}
3440#[derive(
3441    Debug,
3442    Default,
3443    Clone,
3444    PartialEq,
3445    ::serde::Serialize,
3446    ::serde::Deserialize,
3447    ::derive_builder::Builder,
3448    ::validator::Validate,
3449)]
3450pub struct SignedData5 {
3451    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
3452    pub vrsn: Option<Number>,
3453    #[validate(length(min = 0,))]
3454    #[serde(rename = "DgstAlgo", default)]
3455    pub dgst_algo: Vec<AlgorithmIdentification21>,
3456    #[serde(rename = "NcpsltdCntt", skip_serializing_if = "Option::is_none")]
3457    pub ncpsltd_cntt: Option<EncapsulatedContent3>,
3458    #[validate(length(min = 0,))]
3459    #[serde(rename = "Cert", default)]
3460    pub cert: Vec<Max5000Binary>,
3461    #[validate(length(min = 0,))]
3462    #[serde(rename = "Sgnr", default)]
3463    pub sgnr: Vec<Signer4>,
3464}
3465#[derive(
3466    Debug,
3467    Default,
3468    Clone,
3469    PartialEq,
3470    ::serde::Serialize,
3471    ::serde::Deserialize,
3472    ::derive_builder::Builder,
3473    ::validator::Validate,
3474)]
3475pub struct AlgorithmIdentification28 {
3476    #[serde(rename = "Algo")]
3477    pub algo: Algorithm13Code,
3478    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
3479    pub param: Option<Parameter14>,
3480}
3481#[derive(
3482    Debug,
3483    Default,
3484    Clone,
3485    PartialEq,
3486    ::serde::Serialize,
3487    ::serde::Deserialize,
3488    ::derive_builder::Builder,
3489    ::validator::Validate,
3490)]
3491pub struct LodgingRoom1 {
3492    #[serde(rename = "RoomTp", skip_serializing_if = "Option::is_none")]
3493    pub room_tp: Option<Max35Text>,
3494    #[serde(rename = "RoomLctn", skip_serializing_if = "Option::is_none")]
3495    pub room_lctn: Option<Max35Text>,
3496    #[serde(rename = "BedTp", skip_serializing_if = "Option::is_none")]
3497    pub bed_tp: Option<Max70Text>,
3498    #[serde(rename = "GstsPerRoom", skip_serializing_if = "Option::is_none")]
3499    pub gsts_per_room: Option<Max3NumericText>,
3500    #[serde(rename = "AdltsInRoom", skip_serializing_if = "Option::is_none")]
3501    pub adlts_in_room: Option<Max3NumericText>,
3502    #[serde(rename = "ChldrnInRoom", skip_serializing_if = "Option::is_none")]
3503    pub chldrn_in_room: Option<Max3NumericText>,
3504    #[serde(rename = "DalyRoomRate", skip_serializing_if = "Option::is_none")]
3505    pub daly_room_rate: Option<ImpliedCurrencyAndAmount>,
3506}
3507#[derive(
3508    Debug,
3509    Default,
3510    Clone,
3511    PartialEq,
3512    ::serde::Serialize,
3513    ::serde::Deserialize,
3514    ::derive_builder::Builder,
3515    ::validator::Validate,
3516)]
3517pub struct Driver2 {
3518    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
3519    pub nm: Option<Max70Text>,
3520    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
3521    pub id: Option<Max70Text>,
3522    #[serde(rename = "DrvgLic", skip_serializing_if = "Option::is_none")]
3523    pub drvg_lic: Option<DrivingLicense2>,
3524    #[serde(rename = "Mplyr", skip_serializing_if = "Option::is_none")]
3525    pub mplyr: Option<Max70Text>,
3526    #[serde(rename = "MplyeeId", skip_serializing_if = "Option::is_none")]
3527    pub mplyee_id: Option<Max70Text>,
3528    #[serde(rename = "DeptNb", skip_serializing_if = "Option::is_none")]
3529    pub dept_nb: Option<Max35Text>,
3530    #[validate(length(min = 0,))]
3531    #[serde(rename = "AddtlId", default)]
3532    pub addtl_id: Vec<TravelDocument2>,
3533    #[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
3534    pub dt_of_birth: Option<IsoDate>,
3535    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
3536    pub addtl_data: Option<AdditionalData1>,
3537}
3538#[derive(
3539    Debug,
3540    Default,
3541    Clone,
3542    PartialEq,
3543    ::serde::Serialize,
3544    ::serde::Deserialize,
3545    ::derive_builder::Builder,
3546    ::validator::Validate,
3547)]
3548pub struct AdditionalData2 {
3549    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
3550    pub tp: Option<Max35Text>,
3551    #[validate(length(min = 0,))]
3552    #[serde(rename = "Dtls", default)]
3553    pub dtls: Vec<AdditionalData1>,
3554}
3555#[derive(
3556    Debug,
3557    Default,
3558    Clone,
3559    PartialEq,
3560    ::serde::Serialize,
3561    ::serde::Deserialize,
3562    ::derive_builder::Builder,
3563    ::validator::Validate,
3564)]
3565pub struct CardholderName2 {
3566    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
3567    pub nm: Option<Max140Text>,
3568    #[serde(rename = "GvnNm", skip_serializing_if = "Option::is_none")]
3569    pub gvn_nm: Option<Max70Text>,
3570    #[serde(rename = "MddlNm", skip_serializing_if = "Option::is_none")]
3571    pub mddl_nm: Option<Max70Text>,
3572    #[serde(rename = "LastNm", skip_serializing_if = "Option::is_none")]
3573    pub last_nm: Option<Max70Text>,
3574}
3575#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3576pub enum PartyType7Code {
3577    #[serde(rename = "ACQR")]
3578    Acqr,
3579    #[serde(rename = "ITAG")]
3580    Itag,
3581    #[serde(rename = "PCPT")]
3582    Pcpt,
3583    #[serde(rename = "TMGT")]
3584    Tmgt,
3585    #[serde(rename = "SALE")]
3586    Sale,
3587    #[default]
3588    Unknown,
3589}
3590#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3591pub enum PartyType21Code {
3592    #[serde(rename = "ACCP")]
3593    Accp,
3594    #[serde(rename = "CRDH")]
3595    Crdh,
3596    #[serde(rename = "OTHN")]
3597    Othn,
3598    #[serde(rename = "OTHP")]
3599    Othp,
3600    #[default]
3601    Unknown,
3602}
3603#[derive(
3604    Debug,
3605    Default,
3606    Clone,
3607    PartialEq,
3608    ::serde::Serialize,
3609    ::serde::Deserialize,
3610    ::derive_builder::Builder,
3611    ::validator::Validate,
3612)]
3613pub struct Adjustment10 {
3614    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
3615    pub tp: Option<Max35Text>,
3616    #[serde(rename = "AddtlTp", skip_serializing_if = "Option::is_none")]
3617    pub addtl_tp: Option<Max35Text>,
3618    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
3619    pub desc: Option<Max70Text>,
3620    #[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
3621    pub rsn: Option<Max35Text>,
3622    #[serde(rename = "PrmtnElgblty", skip_serializing_if = "Option::is_none")]
3623    pub prmtn_elgblty: Option<TrueFalseIndicator>,
3624    #[serde(rename = "PrmtnCd", skip_serializing_if = "Option::is_none")]
3625    pub prmtn_cd: Option<Max35Text>,
3626    #[serde(rename = "PrmtnCpnNb", skip_serializing_if = "Option::is_none")]
3627    pub prmtn_cpn_nb: Option<Max35Text>,
3628    #[serde(rename = "Qty", skip_serializing_if = "Option::is_none")]
3629    pub qty: Option<DecimalNumber>,
3630    #[serde(rename = "UnitPric", skip_serializing_if = "Option::is_none")]
3631    pub unit_pric: Option<ImpliedCurrencyAndAmount>,
3632    #[serde(rename = "Pctg", skip_serializing_if = "Option::is_none")]
3633    pub pctg: Option<PercentageRate>,
3634    #[serde(rename = "AdjstmntAmt", skip_serializing_if = "Option::is_none")]
3635    pub adjstmnt_amt: Option<ImpliedCurrencyAndAmount>,
3636    #[serde(rename = "TaxClctdOnOrgnlAmt", skip_serializing_if = "Option::is_none")]
3637    pub tax_clctd_on_orgnl_amt: Option<TrueFalseIndicator>,
3638}
3639#[derive(
3640    Debug,
3641    Default,
3642    Clone,
3643    PartialEq,
3644    ::serde::Serialize,
3645    ::serde::Deserialize,
3646    ::derive_builder::Builder,
3647    ::validator::Validate,
3648)]
3649pub struct KekIdentifier6 {
3650    #[validate]
3651    #[serde(rename = "KeyId")]
3652    pub key_id: Max140Text,
3653    #[serde(rename = "KeyVrsn", skip_serializing_if = "Option::is_none")]
3654    pub key_vrsn: Option<Max140Text>,
3655    #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
3656    pub seq_nb: Option<Number>,
3657    #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
3658    pub derivtn_id: Option<Min5Max16Binary>,
3659}
3660#[derive(
3661    Debug,
3662    Default,
3663    Clone,
3664    PartialEq,
3665    ::serde::Serialize,
3666    ::serde::Deserialize,
3667    ::derive_builder::Builder,
3668    ::validator::Validate,
3669)]
3670pub struct PartyIdentification258 {
3671    #[validate]
3672    #[serde(rename = "Id")]
3673    pub id: Max35Text,
3674    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
3675    pub assgnr: Option<Max35Text>,
3676    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
3677    pub ctry: Option<Iso3NumericCountryCode>,
3678    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
3679    pub shrt_nm: Option<Max35Text>,
3680    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
3681    pub lgl_corp_nm: Option<Max99Text>,
3682    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
3683    pub addtl_id: Option<AdditionalData1>,
3684    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
3685    pub lcl_data: Option<LocalData1>,
3686}
3687#[derive(
3688    Debug,
3689    Default,
3690    Clone,
3691    PartialEq,
3692    ::serde::Serialize,
3693    ::serde::Deserialize,
3694    ::derive_builder::Builder,
3695    ::validator::Validate,
3696)]
3697pub struct SupplementaryDataEnvelope1<
3698    A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
3699> {
3700    #[validate]
3701    #[serde(flatten)]
3702    pub value: A,
3703}
3704#[derive(
3705    Debug,
3706    Default,
3707    Clone,
3708    PartialEq,
3709    ::serde::Serialize,
3710    ::serde::Deserialize,
3711    ::derive_builder::Builder,
3712    ::validator::Validate,
3713)]
3714pub struct Max10PositiveNumber {
3715    #[validate(range(min = 1,))]
3716    #[serde(rename = "$text")]
3717    pub value: f64,
3718}
3719#[derive(
3720    Debug,
3721    Default,
3722    Clone,
3723    PartialEq,
3724    ::serde::Serialize,
3725    ::serde::Deserialize,
3726    ::derive_builder::Builder,
3727    ::validator::Validate,
3728)]
3729pub struct PointOfInteractionComponentStatus3 {
3730    #[serde(rename = "VrsnNb", skip_serializing_if = "Option::is_none")]
3731    pub vrsn_nb: Option<Max256Text>,
3732    #[serde(rename = "Sts", skip_serializing_if = "Option::is_none")]
3733    pub sts: Option<PoiComponentStatus1Code>,
3734    #[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")]
3735    pub xpry_dt: Option<IsoDate>,
3736}
3737#[derive(
3738    Debug,
3739    Default,
3740    Clone,
3741    PartialEq,
3742    ::serde::Serialize,
3743    ::serde::Deserialize,
3744    ::derive_builder::Builder,
3745    ::validator::Validate,
3746)]
3747pub struct ContentInformationType20 {
3748    #[validate]
3749    #[serde(rename = "MACData")]
3750    pub mac_data: MacData1,
3751    #[validate]
3752    #[serde(rename = "MAC")]
3753    pub mac: Max8HexBinaryText,
3754}
3755#[derive(
3756    Debug,
3757    Default,
3758    Clone,
3759    PartialEq,
3760    ::serde::Serialize,
3761    ::serde::Deserialize,
3762    ::derive_builder::Builder,
3763    ::validator::Validate,
3764)]
3765pub struct TravelDocument2 {
3766    #[serde(rename = "Tp")]
3767    pub tp: OfficialDocumentType1Code,
3768    #[serde(rename = "Form", skip_serializing_if = "Option::is_none")]
3769    pub form: Option<PresentationMedium2Code>,
3770    #[validate]
3771    #[serde(rename = "Id")]
3772    pub id: Max70Text,
3773    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
3774    pub assgnr: Option<Max70Text>,
3775    #[serde(rename = "IssncDt", skip_serializing_if = "Option::is_none")]
3776    pub issnc_dt: Option<IsoDate>,
3777    #[serde(rename = "XprtnDt", skip_serializing_if = "Option::is_none")]
3778    pub xprtn_dt: Option<IsoDate>,
3779    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
3780    pub ctry: Option<IsoMax3ACountryCode>,
3781}
3782#[derive(
3783    Debug,
3784    Default,
3785    Clone,
3786    PartialEq,
3787    ::serde::Serialize,
3788    ::serde::Deserialize,
3789    ::derive_builder::Builder,
3790    ::validator::Validate,
3791)]
3792pub struct Max2NumericText {
3793    #[validate(regex = "MAX_2_NUMERIC_TEXT_REGEX")]
3794    #[serde(rename = "$text")]
3795    pub value: String,
3796}
3797#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3798pub enum DeviceIdentificationType1Code {
3799    #[serde(rename = "IMEI")]
3800    Imei,
3801    #[serde(rename = "OTHN")]
3802    Othn,
3803    #[serde(rename = "OTHP")]
3804    Othp,
3805    #[serde(rename = "SEID")]
3806    Seid,
3807    #[serde(rename = "SENU")]
3808    Senu,
3809    #[default]
3810    Unknown,
3811}
3812#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3813pub enum Moto1Code {
3814    #[serde(rename = "MAOR")]
3815    Maor,
3816    #[serde(rename = "MOTO")]
3817    Moto,
3818    #[serde(rename = "TPOR")]
3819    Tpor,
3820    #[default]
3821    Unknown,
3822}
3823#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3824pub enum LocationAmenity1Code {
3825    #[serde(rename = "AADA")]
3826    Aada,
3827    #[serde(rename = "AFLA")]
3828    Afla,
3829    #[serde(rename = "AVLA")]
3830    Avla,
3831    #[serde(rename = "CRWA")]
3832    Crwa,
3833    #[serde(rename = "CVSA")]
3834    Cvsa,
3835    #[serde(rename = "DISA")]
3836    Disa,
3837    #[serde(rename = "EWAA")]
3838    Ewaa,
3839    #[serde(rename = "MRLA")]
3840    Mrla,
3841    #[serde(rename = "OTHN")]
3842    Othn,
3843    #[serde(rename = "OTHP")]
3844    Othp,
3845    #[serde(rename = "PAPA")]
3846    Papa,
3847    #[serde(rename = "TSHA")]
3848    Tsha,
3849    #[serde(rename = "TSRA")]
3850    Tsra,
3851    #[serde(rename = "TSSA")]
3852    Tssa,
3853    #[serde(rename = "TFHA")]
3854    Tfha,
3855    #[serde(rename = "VSWA")]
3856    Vswa,
3857    #[serde(rename = "VHPA")]
3858    Vhpa,
3859    #[serde(rename = "VMRA")]
3860    Vmra,
3861    #[default]
3862    Unknown,
3863}
3864#[derive(
3865    Debug,
3866    Default,
3867    Clone,
3868    PartialEq,
3869    ::serde::Serialize,
3870    ::serde::Deserialize,
3871    ::derive_builder::Builder,
3872    ::validator::Validate,
3873)]
3874pub struct FinancialInstitution7 {
3875    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
3876    pub id: Option<Max35Text>,
3877    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
3878    pub nm: Option<Max70Text>,
3879    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
3880    pub adr: Option<Address2>,
3881    #[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
3882    pub email: Option<Max256Text>,
3883    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
3884    pub url_adr: Option<Max256Text>,
3885    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
3886    pub phne_nb: Option<Max35Text>,
3887    #[serde(rename = "CstmrSvc", skip_serializing_if = "Option::is_none")]
3888    pub cstmr_svc: Option<Max35Text>,
3889    #[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
3890    pub addtl_ctct_inf: Option<Max256Text>,
3891    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
3892    pub lcl_data: Option<LocalData2>,
3893}
3894#[derive(
3895    Debug,
3896    Default,
3897    Clone,
3898    PartialEq,
3899    ::serde::Serialize,
3900    ::serde::Deserialize,
3901    ::derive_builder::Builder,
3902    ::validator::Validate,
3903)]
3904pub struct AdditionalAcceptorData1 {
3905    #[serde(rename = "AddtlTxRefNb", skip_serializing_if = "Option::is_none")]
3906    pub addtl_tx_ref_nb: Option<Max70Text>,
3907    #[serde(rename = "TaxRegnId", skip_serializing_if = "Option::is_none")]
3908    pub tax_regn_id: Option<Max70Text>,
3909    #[serde(rename = "CorpTaxId", skip_serializing_if = "Option::is_none")]
3910    pub corp_tax_id: Option<Max35Text>,
3911    #[serde(rename = "CorpTaxIdTp", skip_serializing_if = "Option::is_none")]
3912    pub corp_tax_id_tp: Option<CorporateTaxType1Code>,
3913    #[validate(length(min = 0,))]
3914    #[serde(rename = "AddtlId", default)]
3915    pub addtl_id: Vec<AdditionalIdentification1>,
3916    #[serde(rename = "Chrtcs", skip_serializing_if = "Option::is_none")]
3917    pub chrtcs: Option<AdditionalCharacteristics1>,
3918    #[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
3919    pub addtl_inf: Option<Max350Text>,
3920}
3921#[derive(
3922    Debug,
3923    Default,
3924    Clone,
3925    PartialEq,
3926    ::serde::Serialize,
3927    ::serde::Deserialize,
3928    ::derive_builder::Builder,
3929    ::validator::Validate,
3930)]
3931pub struct GenericIdentification183 {
3932    #[validate]
3933    #[serde(rename = "Id")]
3934    pub id: Max35Text,
3935    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
3936    pub tp: Option<PartyType17Code>,
3937    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
3938    pub othr_tp: Option<Max35Text>,
3939    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
3940    pub assgnr: Option<PartyType18Code>,
3941    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
3942    pub ctry: Option<IsoMax3ACountryCode>,
3943    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
3944    pub shrt_nm: Option<Max35Text>,
3945}
3946#[derive(
3947    Debug,
3948    Default,
3949    Clone,
3950    PartialEq,
3951    ::serde::Serialize,
3952    ::serde::Deserialize,
3953    ::derive_builder::Builder,
3954    ::validator::Validate,
3955)]
3956pub struct AdditionalRiskData1 {
3957    #[validate]
3958    #[serde(rename = "Tp")]
3959    pub tp: Max35Text,
3960    #[validate]
3961    #[serde(rename = "Val")]
3962    pub val: Max10KText,
3963}
3964#[derive(
3965    Debug,
3966    Default,
3967    Clone,
3968    PartialEq,
3969    ::serde::Serialize,
3970    ::serde::Deserialize,
3971    ::derive_builder::Builder,
3972    ::validator::Validate,
3973)]
3974pub struct Max1000Text {
3975    #[validate(length(min = 1, max = 1000,))]
3976    #[serde(rename = "$text")]
3977    pub value: String,
3978}
3979#[derive(
3980    Debug,
3981    Default,
3982    Clone,
3983    PartialEq,
3984    ::serde::Serialize,
3985    ::serde::Deserialize,
3986    ::derive_builder::Builder,
3987    ::validator::Validate,
3988)]
3989pub struct Exact3NumericText {
3990    #[validate(regex = "EXACT_3_NUMERIC_TEXT_REGEX")]
3991    #[serde(rename = "$text")]
3992    pub value: String,
3993}
3994#[derive(
3995    Debug,
3996    Default,
3997    Clone,
3998    PartialEq,
3999    ::serde::Serialize,
4000    ::serde::Deserialize,
4001    ::derive_builder::Builder,
4002    ::validator::Validate,
4003)]
4004pub struct ProcessingResult16 {
4005    #[serde(rename = "RspnSrc", skip_serializing_if = "Option::is_none")]
4006    pub rspn_src: Option<ApprovalEntity2>,
4007    #[serde(rename = "RsltData", skip_serializing_if = "Option::is_none")]
4008    pub rslt_data: Option<ResultData7>,
4009    #[serde(rename = "ApprvlCd", skip_serializing_if = "Option::is_none")]
4010    pub apprvl_cd: Option<Exact6AlphaNumericText>,
4011    #[serde(rename = "OrgnlRsltData", skip_serializing_if = "Option::is_none")]
4012    pub orgnl_rslt_data: Option<ResultData7>,
4013    #[serde(rename = "ActnReqrd", skip_serializing_if = "Option::is_none")]
4014    pub actn_reqrd: Option<YesNoIndicator>,
4015    #[validate(length(min = 0,))]
4016    #[serde(rename = "Actn", default)]
4017    pub actn: Vec<Action13>,
4018    #[validate(length(min = 0,))]
4019    #[serde(rename = "AddtlActn", default)]
4020    pub addtl_actn: Vec<AdditionalAction1>,
4021    #[validate(length(min = 0,))]
4022    #[serde(rename = "AddtlInf", default)]
4023    pub addtl_inf: Vec<AdditionalInformation29>,
4024}
4025#[derive(
4026    Debug,
4027    Default,
4028    Clone,
4029    PartialEq,
4030    ::serde::Serialize,
4031    ::serde::Deserialize,
4032    ::derive_builder::Builder,
4033    ::validator::Validate,
4034)]
4035pub struct AddendumData3 {
4036    #[serde(rename = "PurchsIdrTp", skip_serializing_if = "Option::is_none")]
4037    pub purchs_idr_tp: Option<PurchaseIdentifierType1Code>,
4038    #[serde(rename = "OthrPurchsIdrTp", skip_serializing_if = "Option::is_none")]
4039    pub othr_purchs_idr_tp: Option<Max35Text>,
4040    #[serde(rename = "PurchsIdr", skip_serializing_if = "Option::is_none")]
4041    pub purchs_idr: Option<Max99Text>,
4042    #[serde(rename = "AddtlAccptrData", skip_serializing_if = "Option::is_none")]
4043    pub addtl_accptr_data: Option<AdditionalAcceptorData1>,
4044    #[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
4045    pub cstmr: Option<Customer4>,
4046    #[serde(rename = "Sale", skip_serializing_if = "Option::is_none")]
4047    pub sale: Option<Sale2>,
4048    #[serde(rename = "Fleet", skip_serializing_if = "Option::is_none")]
4049    pub fleet: Option<FleetData4>,
4050    #[serde(rename = "Invc", skip_serializing_if = "Option::is_none")]
4051    pub invc: Option<Invoice2>,
4052    #[validate(length(min = 0,))]
4053    #[serde(rename = "TrvlAgcy", default)]
4054    pub trvl_agcy: Vec<TravelAgency3>,
4055    #[serde(rename = "PssngrTrnsprt", skip_serializing_if = "Option::is_none")]
4056    pub pssngr_trnsprt: Option<PassengerTransport2>,
4057    #[validate(length(min = 0,))]
4058    #[serde(rename = "VhclRntl", default)]
4059    pub vhcl_rntl: Vec<VehicleRentalService2>,
4060    #[validate(length(min = 0,))]
4061    #[serde(rename = "Ldgg", default)]
4062    pub ldgg: Vec<Lodging3>,
4063    #[serde(rename = "ShppgData", skip_serializing_if = "Option::is_none")]
4064    pub shppg_data: Option<ShippingData2>,
4065    #[serde(rename = "TelecomSvcs", skip_serializing_if = "Option::is_none")]
4066    pub telecom_svcs: Option<TelecomServices2>,
4067    #[validate(length(min = 0,))]
4068    #[serde(rename = "TempSvcs", default)]
4069    pub temp_svcs: Vec<TemporaryServices2>,
4070    #[serde(rename = "Instlmt", skip_serializing_if = "Option::is_none")]
4071    pub instlmt: Option<Instalment4>,
4072    #[validate(length(min = 0,))]
4073    #[serde(rename = "AddtlData", default)]
4074    pub addtl_data: Vec<AdditionalData1>,
4075}
4076#[derive(
4077    Debug,
4078    Default,
4079    Clone,
4080    PartialEq,
4081    ::serde::Serialize,
4082    ::serde::Deserialize,
4083    ::derive_builder::Builder,
4084    ::validator::Validate,
4085)]
4086pub struct EncryptedData1ChoiceEnum {
4087    #[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
4088    pub hex_binry_val: Option<Max9999HexBinaryText>,
4089    #[serde(rename = "BinryData", skip_serializing_if = "Option::is_none")]
4090    pub binry_data: Option<Max100KBinary>,
4091}
4092#[derive(
4093    Debug,
4094    Default,
4095    Clone,
4096    PartialEq,
4097    ::serde::Serialize,
4098    ::serde::Deserialize,
4099    ::derive_builder::Builder,
4100    ::validator::Validate,
4101)]
4102pub struct EncryptedData1Choice {
4103    #[serde(flatten)]
4104    pub value: EncryptedData1ChoiceEnum,
4105}
4106#[derive(
4107    Debug,
4108    Default,
4109    Clone,
4110    PartialEq,
4111    ::serde::Serialize,
4112    ::serde::Deserialize,
4113    ::derive_builder::Builder,
4114    ::validator::Validate,
4115)]
4116pub struct BatchManagementInformation1 {
4117    #[serde(rename = "ColltnId", skip_serializing_if = "Option::is_none")]
4118    pub colltn_id: Option<Max35Text>,
4119    #[validate]
4120    #[serde(rename = "BtchId")]
4121    pub btch_id: Max35Text,
4122    #[serde(rename = "MsgSeqNb", skip_serializing_if = "Option::is_none")]
4123    pub msg_seq_nb: Option<Max15NumericText>,
4124    #[serde(rename = "MsgChcksmInptVal", skip_serializing_if = "Option::is_none")]
4125    pub msg_chcksm_inpt_val: Option<Max140Binary>,
4126}
4127#[derive(
4128    Debug,
4129    Default,
4130    Clone,
4131    PartialEq,
4132    ::serde::Serialize,
4133    ::serde::Deserialize,
4134    ::derive_builder::Builder,
4135    ::validator::Validate,
4136)]
4137pub struct AlgorithmIdentification20 {
4138    #[serde(rename = "Algo")]
4139    pub algo: Algorithm19Code,
4140    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
4141    pub param: Option<Parameter11>,
4142}
4143#[derive(
4144    Debug,
4145    Default,
4146    Clone,
4147    PartialEq,
4148    ::serde::Serialize,
4149    ::serde::Deserialize,
4150    ::derive_builder::Builder,
4151    ::validator::Validate,
4152)]
4153pub struct ExchangeRateDetail1 {
4154    #[serde(rename = "EndPt", skip_serializing_if = "Option::is_none")]
4155    pub end_pt: Option<Endpoint1Code>,
4156    #[serde(rename = "OthrEndPt", skip_serializing_if = "Option::is_none")]
4157    pub othr_end_pt: Option<Max35Text>,
4158    #[serde(rename = "CntrCcyCd", skip_serializing_if = "Option::is_none")]
4159    pub cntr_ccy_cd: Option<Iso3NumericCurrencyCode>,
4160    #[serde(rename = "BaseCcyCd", skip_serializing_if = "Option::is_none")]
4161    pub base_ccy_cd: Option<Iso3NumericCurrencyCode>,
4162    #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
4163    pub rate: Option<BaseOne25Rate>,
4164    #[serde(rename = "RateTp", skip_serializing_if = "Option::is_none")]
4165    pub rate_tp: Option<ExchangeRateType2Code>,
4166    #[serde(rename = "OthrRateTp", skip_serializing_if = "Option::is_none")]
4167    pub othr_rate_tp: Option<Max35Text>,
4168    #[serde(rename = "AgrmtTp", skip_serializing_if = "Option::is_none")]
4169    pub agrmt_tp: Option<ExchangeRateAgreementType1Code>,
4170    #[serde(rename = "OthrAgrmtTp", skip_serializing_if = "Option::is_none")]
4171    pub othr_agrmt_tp: Option<Max35Text>,
4172}
4173#[derive(
4174    Debug,
4175    Default,
4176    Clone,
4177    PartialEq,
4178    ::serde::Serialize,
4179    ::serde::Deserialize,
4180    ::derive_builder::Builder,
4181    ::validator::Validate,
4182)]
4183pub struct CommunicationCharacteristics3 {
4184    #[serde(rename = "ComTp")]
4185    pub com_tp: PoiCommunicationType2Code,
4186    #[validate(length(min = 1,))]
4187    #[serde(rename = "RmotPty", default)]
4188    pub rmot_pty: Vec<PartyType7Code>,
4189    #[validate]
4190    #[serde(rename = "Actv")]
4191    pub actv: TrueFalseIndicator,
4192}
4193#[derive(
4194    Debug,
4195    Default,
4196    Clone,
4197    PartialEq,
4198    ::serde::Serialize,
4199    ::serde::Deserialize,
4200    ::derive_builder::Builder,
4201    ::validator::Validate,
4202)]
4203pub struct LoyaltyMember2 {
4204    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
4205    pub nm: Option<CardholderName3>,
4206    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
4207    pub adr: Option<Address2>,
4208    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
4209    pub id: Option<Max35Text>,
4210    #[serde(rename = "MmbSts", skip_serializing_if = "Option::is_none")]
4211    pub mmb_sts: Option<Max35Text>,
4212    #[serde(rename = "XprtnDt", skip_serializing_if = "Option::is_none")]
4213    pub xprtn_dt: Option<IsoDate>,
4214    #[serde(rename = "LltyVal", skip_serializing_if = "Option::is_none")]
4215    pub llty_val: Option<Max10NumericText>,
4216    #[serde(rename = "LltyValTp", skip_serializing_if = "Option::is_none")]
4217    pub llty_val_tp: Option<LoyaltyValueType1Code>,
4218    #[serde(rename = "OthrLltyValTp", skip_serializing_if = "Option::is_none")]
4219    pub othr_llty_val_tp: Option<Max35Text>,
4220    #[serde(rename = "ValToCdt", skip_serializing_if = "Option::is_none")]
4221    pub val_to_cdt: Option<Max10NumericText>,
4222    #[serde(rename = "ValToDbt", skip_serializing_if = "Option::is_none")]
4223    pub val_to_dbt: Option<Max10NumericText>,
4224    #[serde(rename = "Bal", skip_serializing_if = "Option::is_none")]
4225    pub bal: Option<Max10NumericText>,
4226}
4227#[derive(
4228    Debug,
4229    Default,
4230    Clone,
4231    PartialEq,
4232    ::serde::Serialize,
4233    ::serde::Deserialize,
4234    ::derive_builder::Builder,
4235    ::validator::Validate,
4236)]
4237pub struct TemporaryServicesJob1 {
4238    #[serde(rename = "JobCd", skip_serializing_if = "Option::is_none")]
4239    pub job_cd: Option<Max35Text>,
4240    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
4241    pub desc: Option<Max256Text>,
4242    #[serde(rename = "StartDt", skip_serializing_if = "Option::is_none")]
4243    pub start_dt: Option<IsoDate>,
4244    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
4245    pub drtn: Option<Max5NumericText>,
4246    #[serde(rename = "EndDt", skip_serializing_if = "Option::is_none")]
4247    pub end_dt: Option<IsoDate>,
4248}
4249#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4250pub enum CarRentalServiceType2Code {
4251    #[serde(rename = "ADJM")]
4252    Adjm,
4253    #[serde(rename = "AUTH")]
4254    Auth,
4255    #[serde(rename = "BAST")]
4256    Bast,
4257    #[serde(rename = "CLEA")]
4258    Clea,
4259    #[serde(rename = "DMGS")]
4260    Dmgs,
4261    #[serde(rename = "DLVR")]
4262    Dlvr,
4263    #[serde(rename = "DPOF")]
4264    Dpof,
4265    #[serde(rename = "ENTE")]
4266    Ente,
4267    #[serde(rename = "EXTC")]
4268    Extc,
4269    #[serde(rename = "EXDY")]
4270    Exdy,
4271    #[serde(rename = "EXDI")]
4272    Exdi,
4273    #[serde(rename = "EXHR")]
4274    Exhr,
4275    #[serde(rename = "FINE")]
4276    Fine,
4277    #[serde(rename = "FUEL")]
4278    Fuel,
4279    #[serde(rename = "GARA")]
4280    Gara,
4281    #[serde(rename = "GPSY")]
4282    Gpsy,
4283    #[serde(rename = "INSU")]
4284    Insu,
4285    #[serde(rename = "LATE")]
4286    Late,
4287    #[serde(rename = "LIIN")]
4288    Liin,
4289    #[serde(rename = "LDIN")]
4290    Ldin,
4291    #[serde(rename = "MISC")]
4292    Misc,
4293    #[serde(rename = "NAVI")]
4294    Navi,
4295    #[serde(rename = "NOSH")]
4296    Nosh,
4297    #[serde(rename = "ONEW")]
4298    Onew,
4299    #[serde(rename = "OTHN")]
4300    Othn,
4301    #[serde(rename = "OTHP")]
4302    Othp,
4303    #[serde(rename = "PARK")]
4304    Park,
4305    #[serde(rename = "PRIN")]
4306    Prin,
4307    #[serde(rename = "PFIN")]
4308    Pfin,
4309    #[serde(rename = "PHON")]
4310    Phon,
4311    #[serde(rename = "REGD")]
4312    Regd,
4313    #[serde(rename = "SMOK")]
4314    Smok,
4315    #[serde(rename = "TOLL")]
4316    Toll,
4317    #[serde(rename = "TOWI")]
4318    Towi,
4319    #[default]
4320    Unknown,
4321}
4322#[derive(
4323    Debug,
4324    Default,
4325    Clone,
4326    PartialEq,
4327    ::serde::Serialize,
4328    ::serde::Deserialize,
4329    ::derive_builder::Builder,
4330    ::validator::Validate,
4331)]
4332pub struct PointOfServiceContext3 {
4333    #[serde(rename = "CardPres", skip_serializing_if = "Option::is_none")]
4334    pub card_pres: Option<TrueFalseIndicator>,
4335    #[serde(rename = "CrdhldrPres", skip_serializing_if = "Option::is_none")]
4336    pub crdhldr_pres: Option<TrueFalseIndicator>,
4337    #[serde(rename = "CrdhldrActvtd", skip_serializing_if = "Option::is_none")]
4338    pub crdhldr_actvtd: Option<TrueFalseIndicator>,
4339    #[serde(rename = "TrnspndrInittd", skip_serializing_if = "Option::is_none")]
4340    pub trnspndr_inittd: Option<TrueFalseIndicator>,
4341    #[serde(rename = "AttnddInd", skip_serializing_if = "Option::is_none")]
4342    pub attndd_ind: Option<TrueFalseIndicator>,
4343    #[serde(rename = "UattnddLvlCtgy", skip_serializing_if = "Option::is_none")]
4344    pub uattndd_lvl_ctgy: Option<Max35NumericText>,
4345    #[serde(rename = "EComrcInd", skip_serializing_if = "Option::is_none")]
4346    pub e_comrc_ind: Option<TrueFalseIndicator>,
4347    #[validate(length(min = 0,))]
4348    #[serde(rename = "EComrcData", default)]
4349    pub e_comrc_data: Vec<ECommerceData1>,
4350    #[serde(rename = "MOTOCd", skip_serializing_if = "Option::is_none")]
4351    pub moto_cd: Option<Moto1Code>,
4352    #[serde(rename = "TrnstInd", skip_serializing_if = "Option::is_none")]
4353    pub trnst_ind: Option<TrueFalseIndicator>,
4354    #[serde(rename = "PrtlApprvlSpprtd", skip_serializing_if = "Option::is_none")]
4355    pub prtl_apprvl_spprtd: Option<TrueFalseIndicator>,
4356    #[serde(rename = "DelydAuthstnInd", skip_serializing_if = "Option::is_none")]
4357    pub delyd_authstn_ind: Option<TrueFalseIndicator>,
4358    #[validate(length(min = 0,))]
4359    #[serde(rename = "SctyChrtcs", default)]
4360    pub scty_chrtcs: Vec<SecurityCharacteristics1Code>,
4361    #[serde(rename = "OthrSctyChrtcs", skip_serializing_if = "Option::is_none")]
4362    pub othr_scty_chrtcs: Option<Max35Text>,
4363    #[serde(rename = "CardDataNtryMd")]
4364    pub card_data_ntry_md: CardDataReading10Code,
4365    #[serde(rename = "OthrCardDataNtryMd", skip_serializing_if = "Option::is_none")]
4366    pub othr_card_data_ntry_md: Option<Max35Text>,
4367    #[serde(rename = "QRCdPresntmntMd", skip_serializing_if = "Option::is_none")]
4368    pub qr_cd_presntmnt_md: Option<QrCodePresentmentMode1Code>,
4369    #[serde(
4370        rename = "OthrQRCdPresntmntMd",
4371        skip_serializing_if = "Option::is_none"
4372    )]
4373    pub othr_qr_cd_presntmnt_md: Option<Max35Text>,
4374    #[serde(
4375        rename = "TempScrCardDataReusd",
4376        skip_serializing_if = "Option::is_none"
4377    )]
4378    pub temp_scr_card_data_reusd: Option<TrueFalseIndicator>,
4379    #[serde(rename = "StorgLctn", skip_serializing_if = "Option::is_none")]
4380    pub storg_lctn: Option<Max35Text>,
4381    #[validate(length(min = 0,))]
4382    #[serde(rename = "SpclConds", default)]
4383    pub spcl_conds: Vec<SpecialConditions1>,
4384    #[validate(length(min = 0,))]
4385    #[serde(rename = "AddtlData", default)]
4386    pub addtl_data: Vec<AdditionalData1>,
4387}
4388#[derive(
4389    Debug,
4390    Default,
4391    Clone,
4392    PartialEq,
4393    ::serde::Serialize,
4394    ::serde::Deserialize,
4395    ::derive_builder::Builder,
4396    ::validator::Validate,
4397)]
4398pub struct Max4NumericText {
4399    #[validate(regex = "MAX_4_NUMERIC_TEXT_REGEX")]
4400    #[serde(rename = "$text")]
4401    pub value: String,
4402}
4403#[derive(
4404    Debug,
4405    Default,
4406    Clone,
4407    PartialEq,
4408    ::serde::Serialize,
4409    ::serde::Deserialize,
4410    ::derive_builder::Builder,
4411    ::validator::Validate,
4412)]
4413pub struct RentalDetails2 {
4414    #[serde(rename = "RntlId", skip_serializing_if = "Option::is_none")]
4415    pub rntl_id: Option<Max70Text>,
4416    #[serde(rename = "RntlDtTm", skip_serializing_if = "Option::is_none")]
4417    pub rntl_dt_tm: Option<IsoDateTime>,
4418    #[serde(rename = "RntlStart", skip_serializing_if = "Option::is_none")]
4419    pub rntl_start: Option<ServiceStartEnd2>,
4420    #[serde(rename = "RntlRtr", skip_serializing_if = "Option::is_none")]
4421    pub rntl_rtr: Option<ServiceStartEnd2>,
4422    #[validate(length(min = 0,))]
4423    #[serde(rename = "RntlTmPrd", default)]
4424    pub rntl_tm_prd: Vec<PeriodUnit2Code>,
4425    #[serde(rename = "TmPrdUnit", skip_serializing_if = "Option::is_none")]
4426    pub tm_prd_unit: Option<Max4NumericText>,
4427    #[serde(rename = "TmPrdRate", skip_serializing_if = "Option::is_none")]
4428    pub tm_prd_rate: Option<ImpliedCurrencyAndAmount>,
4429    #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
4430    pub ccy: Option<Iso3NumericCurrencyCode>,
4431}
4432#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4433pub enum PoiCommunicationType2Code {
4434    #[serde(rename = "BLTH")]
4435    Blth,
4436    #[serde(rename = "ETHR")]
4437    Ethr,
4438    #[serde(rename = "GPRS")]
4439    Gprs,
4440    #[serde(rename = "GSMF")]
4441    Gsmf,
4442    #[serde(rename = "PSTN")]
4443    Pstn,
4444    #[serde(rename = "RS23")]
4445    Rs23,
4446    #[serde(rename = "USBD")]
4447    Usbd,
4448    #[serde(rename = "USBH")]
4449    Usbh,
4450    #[serde(rename = "WIFI")]
4451    Wifi,
4452    #[serde(rename = "WT2G")]
4453    Wt2G,
4454    #[serde(rename = "WT3G")]
4455    Wt3G,
4456    #[serde(rename = "WT4G")]
4457    Wt4G,
4458    #[serde(rename = "WT5G")]
4459    Wt5G,
4460    #[default]
4461    Unknown,
4462}
4463#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4464pub enum Priority3Code {
4465    #[serde(rename = "URGT")]
4466    Urgt,
4467    #[serde(rename = "HIGH")]
4468    High,
4469    #[serde(rename = "NORM")]
4470    Norm,
4471    #[default]
4472    Unknown,
4473}
4474#[derive(
4475    Debug,
4476    Default,
4477    Clone,
4478    PartialEq,
4479    ::serde::Serialize,
4480    ::serde::Deserialize,
4481    ::derive_builder::Builder,
4482    ::validator::Validate,
4483)]
4484pub struct TransactionLifeCycleIdentification1 {
4485    #[validate]
4486    #[serde(rename = "Id")]
4487    pub id: Exact15Text,
4488    #[serde(rename = "AuthstnSeqNb", skip_serializing_if = "Option::is_none")]
4489    pub authstn_seq_nb: Option<Exact2NumericText>,
4490    #[serde(rename = "PresntmntSeqNb", skip_serializing_if = "Option::is_none")]
4491    pub presntmnt_seq_nb: Option<Exact2NumericText>,
4492    #[serde(rename = "PresntmntSeqCnt", skip_serializing_if = "Option::is_none")]
4493    pub presntmnt_seq_cnt: Option<Exact2NumericText>,
4494    #[serde(rename = "AuthntcnTkn", skip_serializing_if = "Option::is_none")]
4495    pub authntcn_tkn: Option<Max35Text>,
4496}
4497#[derive(
4498    Debug,
4499    Default,
4500    Clone,
4501    PartialEq,
4502    ::serde::Serialize,
4503    ::serde::Deserialize,
4504    ::derive_builder::Builder,
4505    ::validator::Validate,
4506)]
4507pub struct EnvelopedData6 {
4508    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
4509    pub vrsn: Option<Number>,
4510    #[validate(length(min = 1,))]
4511    #[serde(rename = "Rcpt", default)]
4512    pub rcpt: Vec<Recipient7Choice>,
4513    #[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
4514    pub ncrptd_cntt: Option<EncryptedContent5>,
4515}
4516#[derive(
4517    Debug,
4518    Default,
4519    Clone,
4520    PartialEq,
4521    ::serde::Serialize,
4522    ::serde::Deserialize,
4523    ::derive_builder::Builder,
4524    ::validator::Validate,
4525)]
4526pub struct Max50Text {
4527    #[validate(length(min = 1, max = 50,))]
4528    #[serde(rename = "$text")]
4529    pub value: String,
4530}
4531#[derive(
4532    Debug,
4533    Default,
4534    Clone,
4535    PartialEq,
4536    ::serde::Serialize,
4537    ::serde::Deserialize,
4538    ::derive_builder::Builder,
4539    ::validator::Validate,
4540)]
4541pub struct KekIdentifier2 {
4542    #[validate]
4543    #[serde(rename = "KeyId")]
4544    pub key_id: Max140Text,
4545    #[validate]
4546    #[serde(rename = "KeyVrsn")]
4547    pub key_vrsn: Max140Text,
4548    #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
4549    pub seq_nb: Option<Number>,
4550    #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
4551    pub derivtn_id: Option<Min5Max16Binary>,
4552}
4553#[derive(
4554    Debug,
4555    Default,
4556    Clone,
4557    PartialEq,
4558    ::serde::Serialize,
4559    ::serde::Deserialize,
4560    ::derive_builder::Builder,
4561    ::validator::Validate,
4562)]
4563pub struct EncapsulatedContent3 {
4564    #[serde(rename = "CnttTp")]
4565    pub cntt_tp: ContentType2Code,
4566    #[serde(rename = "Cntt", skip_serializing_if = "Option::is_none")]
4567    pub cntt: Option<Max100KBinary>,
4568}
4569#[derive(
4570    Debug,
4571    Default,
4572    Clone,
4573    PartialEq,
4574    ::serde::Serialize,
4575    ::serde::Deserialize,
4576    ::derive_builder::Builder,
4577    ::validator::Validate,
4578)]
4579pub struct Product7 {
4580    #[serde(rename = "PdctCd", skip_serializing_if = "Option::is_none")]
4581    pub pdct_cd: Option<Max70Text>,
4582    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
4583    pub summry_cmmdty_id: Option<Max35Text>,
4584}
4585#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4586pub enum Algorithm19Code {
4587    #[serde(rename = "ERS2")]
4588    Ers2,
4589    #[serde(rename = "ERS1")]
4590    Ers1,
4591    #[serde(rename = "RPSS")]
4592    Rpss,
4593    #[serde(rename = "ECC5")]
4594    Ecc5,
4595    #[serde(rename = "ECC1")]
4596    Ecc1,
4597    #[serde(rename = "ECC4")]
4598    Ecc4,
4599    #[serde(rename = "ECC2")]
4600    Ecc2,
4601    #[serde(rename = "ECC3")]
4602    Ecc3,
4603    #[serde(rename = "ERS3")]
4604    Ers3,
4605    #[serde(rename = "ECP2")]
4606    Ecp2,
4607    #[serde(rename = "ECP3")]
4608    Ecp3,
4609    #[serde(rename = "ECP5")]
4610    Ecp5,
4611    #[default]
4612    Unknown,
4613}
4614#[derive(
4615    Debug,
4616    Default,
4617    Clone,
4618    PartialEq,
4619    ::serde::Serialize,
4620    ::serde::Deserialize,
4621    ::derive_builder::Builder,
4622    ::validator::Validate,
4623)]
4624pub struct Amount20 {
4625    #[serde(rename = "TpOfChrg", skip_serializing_if = "Option::is_none")]
4626    pub tp_of_chrg: Option<TypeOfAmount19Code>,
4627    #[serde(rename = "OthrTpOfChrg", skip_serializing_if = "Option::is_none")]
4628    pub othr_tp_of_chrg: Option<Max35Text>,
4629    #[validate]
4630    #[serde(rename = "Amt")]
4631    pub amt: ImpliedCurrencyAndAmount,
4632    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
4633    pub cdt_dbt: Option<CreditDebit3Code>,
4634}
4635#[derive(
4636    Debug,
4637    Default,
4638    Clone,
4639    PartialEq,
4640    ::serde::Serialize,
4641    ::serde::Deserialize,
4642    ::derive_builder::Builder,
4643    ::validator::Validate,
4644)]
4645pub struct Authority1 {
4646    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
4647    pub ctry: Option<Iso3NumericCountryCode>,
4648    #[serde(rename = "CtrySubDvsnMjr", skip_serializing_if = "Option::is_none")]
4649    pub ctry_sub_dvsn_mjr: Option<IsoCountrySubDivisionCode>,
4650    #[serde(rename = "CtrySubDvsnMnr", skip_serializing_if = "Option::is_none")]
4651    pub ctry_sub_dvsn_mnr: Option<IsoCountrySubDivisionCode>,
4652    #[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
4653    pub ctry_sub_dvsn_mjr_nm: Option<Max50Text>,
4654    #[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
4655    pub ctry_sub_dvsn_mnr_nm: Option<Max50Text>,
4656    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
4657    pub nm: Option<Max50Text>,
4658}
4659#[derive(
4660    Debug,
4661    Default,
4662    Clone,
4663    PartialEq,
4664    ::serde::Serialize,
4665    ::serde::Deserialize,
4666    ::derive_builder::Builder,
4667    ::validator::Validate,
4668)]
4669pub struct Max10NumberFraction2 {
4670    #[serde(rename = "$text")]
4671    pub value: f64,
4672}
4673#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4674pub enum CardholderVerificationCapability5Code {
4675    #[serde(rename = "APKI")]
4676    Apki,
4677    #[serde(rename = "NOVF")]
4678    Novf,
4679    #[serde(rename = "FBIG")]
4680    Fbig,
4681    #[serde(rename = "FBIO")]
4682    Fbio,
4683    #[serde(rename = "FDSG")]
4684    Fdsg,
4685    #[serde(rename = "FCPN")]
4686    Fcpn,
4687    #[serde(rename = "FEPN")]
4688    Fepn,
4689    #[serde(rename = "NBIO")]
4690    Nbio,
4691    #[serde(rename = "NPIN")]
4692    Npin,
4693    #[serde(rename = "OTHN")]
4694    Othn,
4695    #[serde(rename = "OTHP")]
4696    Othp,
4697    #[serde(rename = "SIGN")]
4698    Sign,
4699    #[serde(rename = "UNSP")]
4700    Unsp,
4701    #[serde(rename = "VORN")]
4702    Vorn,
4703    #[serde(rename = "PKIS")]
4704    Pkis,
4705    #[serde(rename = "NOPN")]
4706    Nopn,
4707    #[serde(rename = "NOOP")]
4708    Noop,
4709    #[default]
4710    Unknown,
4711}
4712#[derive(
4713    Debug,
4714    Default,
4715    Clone,
4716    PartialEq,
4717    ::serde::Serialize,
4718    ::serde::Deserialize,
4719    ::derive_builder::Builder,
4720    ::validator::Validate,
4721)]
4722pub struct TemporaryServices2 {
4723    #[serde(rename = "CtrctgCpny", skip_serializing_if = "Option::is_none")]
4724    pub ctrctg_cpny: Option<TemporaryServicesCompany2>,
4725    #[serde(rename = "TempMplyee", skip_serializing_if = "Option::is_none")]
4726    pub temp_mplyee: Option<PartyIdentification210>,
4727    #[serde(rename = "Job", skip_serializing_if = "Option::is_none")]
4728    pub job: Option<TemporaryServicesJob1>,
4729    #[serde(rename = "FlatRateInd", skip_serializing_if = "Option::is_none")]
4730    pub flat_rate_ind: Option<TrueFalseIndicator>,
4731    #[serde(rename = "DscntAmt", skip_serializing_if = "Option::is_none")]
4732    pub dscnt_amt: Option<ImpliedCurrencyAndAmount>,
4733    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
4734    pub summry_cmmdty_id: Option<Max35Text>,
4735    #[serde(rename = "Labr", skip_serializing_if = "Option::is_none")]
4736    pub labr: Option<TemporaryServicesLabor1>,
4737    #[validate(length(min = 0,))]
4738    #[serde(rename = "MiscExpnss", default)]
4739    pub misc_expnss: Vec<Amount13>,
4740    #[serde(rename = "SbttlAmt", skip_serializing_if = "Option::is_none")]
4741    pub sbttl_amt: Option<ImpliedCurrencyAndAmount>,
4742    #[validate(length(min = 0,))]
4743    #[serde(rename = "Tax", default)]
4744    pub tax: Vec<Tax39>,
4745    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
4746    pub addtl_data: Option<Max350Text>,
4747}
4748#[derive(
4749    Debug,
4750    Default,
4751    Clone,
4752    PartialEq,
4753    ::serde::Serialize,
4754    ::serde::Deserialize,
4755    ::derive_builder::Builder,
4756    ::validator::Validate,
4757)]
4758pub struct TemporaryServicesLabor1 {
4759    #[serde(rename = "TmSheetNb", skip_serializing_if = "Option::is_none")]
4760    pub tm_sheet_nb: Option<Max35Text>,
4761    #[serde(rename = "WkEndg", skip_serializing_if = "Option::is_none")]
4762    pub wk_endg: Option<Max10NumericText>,
4763    #[validate(length(min = 0,))]
4764    #[serde(rename = "Chrg", default)]
4765    pub chrg: Vec<Amount12>,
4766}
4767#[derive(
4768    Debug,
4769    Default,
4770    Clone,
4771    PartialEq,
4772    ::serde::Serialize,
4773    ::serde::Deserialize,
4774    ::derive_builder::Builder,
4775    ::validator::Validate,
4776)]
4777pub struct Context12 {
4778    #[serde(rename = "PtOfSvcCntxt", skip_serializing_if = "Option::is_none")]
4779    pub pt_of_svc_cntxt: Option<PointOfServiceContext3>,
4780    #[validate]
4781    #[serde(rename = "TxCntxt")]
4782    pub tx_cntxt: TransactionContext7,
4783    #[validate(length(min = 0,))]
4784    #[serde(rename = "Vrfctn", default)]
4785    pub vrfctn: Vec<Verification4>,
4786    #[serde(rename = "RskCntxt", skip_serializing_if = "Option::is_none")]
4787    pub rsk_cntxt: Option<RiskContext2>,
4788    #[serde(rename = "SaleCntxt", skip_serializing_if = "Option::is_none")]
4789    pub sale_cntxt: Option<SaleContext8>,
4790}
4791#[derive(
4792    Debug,
4793    Default,
4794    Clone,
4795    PartialEq,
4796    ::serde::Serialize,
4797    ::serde::Deserialize,
4798    ::derive_builder::Builder,
4799    ::validator::Validate,
4800)]
4801pub struct AdditionalIdentification1 {
4802    #[serde(rename = "Tp")]
4803    pub tp: AdditionalIdentificationType1Code,
4804    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
4805    pub othr_tp: Option<Max35Text>,
4806    #[validate]
4807    #[serde(rename = "Val")]
4808    pub val: Max35Text,
4809}
4810#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
4811pub enum CardDepositType1Code {
4812    #[serde(rename = "OTHP")]
4813    Othp,
4814    #[serde(rename = "OTHN")]
4815    Othn,
4816    #[serde(rename = "ENVL")]
4817    Envl,
4818    #[serde(rename = "CHEC")]
4819    Chec,
4820    #[serde(rename = "CASH")]
4821    Cash,
4822    #[default]
4823    Unknown,
4824}
4825#[derive(
4826    Debug,
4827    Default,
4828    Clone,
4829    PartialEq,
4830    ::serde::Serialize,
4831    ::serde::Deserialize,
4832    ::derive_builder::Builder,
4833    ::validator::Validate,
4834)]
4835pub struct Iso8583AmountTypeCode {
4836    #[validate(regex = "ISO_8583_AMOUNT_TYPE_CODE_REGEX")]
4837    #[serde(rename = "$text")]
4838    pub value: String,
4839}
4840#[derive(
4841    Debug,
4842    Default,
4843    Clone,
4844    PartialEq,
4845    ::serde::Serialize,
4846    ::serde::Deserialize,
4847    ::derive_builder::Builder,
4848    ::validator::Validate,
4849)]
4850pub struct Kek6 {
4851    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
4852    pub vrsn: Option<Number>,
4853    #[validate]
4854    #[serde(rename = "KEKId")]
4855    pub kek_id: KekIdentifier6,
4856    #[validate]
4857    #[serde(rename = "KeyNcrptnAlgo")]
4858    pub key_ncrptn_algo: AlgorithmIdentification28,
4859    #[serde(rename = "NcrptdKey", skip_serializing_if = "Option::is_none")]
4860    pub ncrptd_key: Option<Max500Binary>,
4861}
4862#[derive(
4863    Debug,
4864    Default,
4865    Clone,
4866    PartialEq,
4867    ::serde::Serialize,
4868    ::serde::Deserialize,
4869    ::derive_builder::Builder,
4870    ::validator::Validate,
4871)]
4872pub struct LodgingProperty2 {
4873    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
4874    pub tp: Option<LodgingActivity1Code>,
4875    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
4876    pub othr_tp: Option<Max35Text>,
4877    #[serde(rename = "PrstgsPrprty", skip_serializing_if = "Option::is_none")]
4878    pub prstgs_prprty: Option<Max35Text>,
4879    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
4880    pub nm: Option<Max35Text>,
4881    #[validate]
4882    #[serde(rename = "Id")]
4883    pub id: PartyIdentification258,
4884    #[serde(rename = "Lctn", skip_serializing_if = "Option::is_none")]
4885    pub lctn: Option<Location4>,
4886    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
4887    pub assgnr: Option<CompanyAssigner2Code>,
4888    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
4889    pub ctct: Option<Contact3>,
4890    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
4891    pub ctry: Option<IsoMax3ACountryCode>,
4892    #[serde(rename = "FireSftyActInd", skip_serializing_if = "Option::is_none")]
4893    pub fire_sfty_act_ind: Option<TrueFalseIndicator>,
4894}
4895#[derive(
4896    Debug,
4897    Default,
4898    Clone,
4899    PartialEq,
4900    ::serde::Serialize,
4901    ::serde::Deserialize,
4902    ::derive_builder::Builder,
4903    ::validator::Validate,
4904)]
4905pub struct CardProgramme2 {
4906    #[validate(length(min = 0,))]
4907    #[serde(rename = "CardPrgrmmPropsd", default)]
4908    pub card_prgrmm_propsd: Vec<CardProgrammeMode2>,
4909    #[serde(rename = "CardPrgrmmApld", skip_serializing_if = "Option::is_none")]
4910    pub card_prgrmm_apld: Option<CardProgrammeMode3>,
4911}
4912#[derive(
4913    Debug,
4914    Default,
4915    Clone,
4916    PartialEq,
4917    ::serde::Serialize,
4918    ::serde::Deserialize,
4919    ::derive_builder::Builder,
4920    ::validator::Validate,
4921)]
4922pub struct Max10Text {
4923    #[validate(length(min = 1, max = 10,))]
4924    #[serde(rename = "$text")]
4925    pub value: String,
4926}
4927#[derive(
4928    Debug,
4929    Default,
4930    Clone,
4931    PartialEq,
4932    ::serde::Serialize,
4933    ::serde::Deserialize,
4934    ::derive_builder::Builder,
4935    ::validator::Validate,
4936)]
4937pub struct ContentInformationType19 {
4938    #[serde(rename = "CnttTp")]
4939    pub cntt_tp: ContentType2Code,
4940    #[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
4941    pub envlpd_data: Option<EnvelopedData5>,
4942    #[serde(rename = "AuthntcdData", skip_serializing_if = "Option::is_none")]
4943    pub authntcd_data: Option<AuthenticatedData5>,
4944    #[serde(rename = "SgndData", skip_serializing_if = "Option::is_none")]
4945    pub sgnd_data: Option<SignedData5>,
4946    #[serde(rename = "DgstdData", skip_serializing_if = "Option::is_none")]
4947    pub dgstd_data: Option<DigestedData5>,
4948}
4949#[derive(
4950    Debug,
4951    Default,
4952    Clone,
4953    PartialEq,
4954    ::serde::Serialize,
4955    ::serde::Deserialize,
4956    ::derive_builder::Builder,
4957    ::validator::Validate,
4958)]
4959pub struct DetailedAmount22 {
4960    #[serde(rename = "Tp")]
4961    pub tp: Iso8583AmountTypeCode,
4962    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
4963    pub othr_tp: Option<Max35Text>,
4964    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
4965    pub cdt_dbt: Option<CreditDebit3Code>,
4966    #[validate]
4967    #[serde(rename = "Amt")]
4968    pub amt: ImpliedCurrencyAndAmount,
4969    #[serde(rename = "CrdhldrBllgAmt", skip_serializing_if = "Option::is_none")]
4970    pub crdhldr_bllg_amt: Option<ImpliedCurrencyAndAmount>,
4971    #[serde(rename = "RcncltnAmt", skip_serializing_if = "Option::is_none")]
4972    pub rcncltn_amt: Option<ImpliedCurrencyAndAmount>,
4973    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
4974    pub desc: Option<Max70Text>,
4975}
4976#[derive(
4977    Debug,
4978    Default,
4979    Clone,
4980    PartialEq,
4981    ::serde::Serialize,
4982    ::serde::Deserialize,
4983    ::derive_builder::Builder,
4984    ::validator::Validate,
4985)]
4986pub struct ResultData7 {
4987    #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
4988    pub rslt: Option<Response8Code>,
4989    #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
4990    pub othr_rslt: Option<Max35Text>,
4991    #[serde(rename = "RsltDtls")]
4992    pub rslt_dtls: Iso8583ResponseCode,
4993    #[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
4994    pub othr_rslt_dtls: Option<Max35Text>,
4995    #[serde(
4996        rename = "TempScrCardDataReusePrtd",
4997        skip_serializing_if = "Option::is_none"
4998    )]
4999    pub temp_scr_card_data_reuse_prtd: Option<TrueFalseIndicator>,
5000    #[validate(length(min = 0,))]
5001    #[serde(rename = "AddtlRsltInf", default)]
5002    pub addtl_rslt_inf: Vec<AdditionalData1>,
5003}
5004#[derive(
5005    Debug,
5006    Default,
5007    Clone,
5008    PartialEq,
5009    ::serde::Serialize,
5010    ::serde::Deserialize,
5011    ::derive_builder::Builder,
5012    ::validator::Validate,
5013)]
5014pub struct ClaimInformation1 {
5015    #[serde(rename = "ClmCrdntls", skip_serializing_if = "Option::is_none")]
5016    pub clm_crdntls: Option<Max500Text>,
5017    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
5018    pub assgnr: Option<Max35Text>,
5019}
5020#[derive(
5021    Debug,
5022    Default,
5023    Clone,
5024    PartialEq,
5025    ::serde::Serialize,
5026    ::serde::Deserialize,
5027    ::derive_builder::Builder,
5028    ::validator::Validate,
5029)]
5030pub struct CryptographicKey13 {
5031    #[validate]
5032    #[serde(rename = "Id")]
5033    pub id: Max140Text,
5034    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
5035    pub addtl_id: Option<Max35Binary>,
5036    #[validate]
5037    #[serde(rename = "Vrsn")]
5038    pub vrsn: Max256Text,
5039    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
5040    pub tp: Option<CryptographicKeyType3Code>,
5041    #[validate(length(min = 0,))]
5042    #[serde(rename = "Fctn", default)]
5043    pub fctn: Vec<KeyUsage1Code>,
5044    #[serde(rename = "ActvtnDt", skip_serializing_if = "Option::is_none")]
5045    pub actvtn_dt: Option<IsoDateTime>,
5046    #[serde(rename = "DeactvtnDt", skip_serializing_if = "Option::is_none")]
5047    pub deactvtn_dt: Option<IsoDateTime>,
5048    #[serde(rename = "KeyVal", skip_serializing_if = "Option::is_none")]
5049    pub key_val: Option<ContentInformationType19>,
5050    #[serde(rename = "KeyChckVal", skip_serializing_if = "Option::is_none")]
5051    pub key_chck_val: Option<Max35Binary>,
5052    #[validate(length(min = 0,))]
5053    #[serde(rename = "AddtlMgmtInf", default)]
5054    pub addtl_mgmt_inf: Vec<GenericInformation1>,
5055}
5056#[derive(
5057    Debug,
5058    Default,
5059    Clone,
5060    PartialEq,
5061    ::serde::Serialize,
5062    ::serde::Deserialize,
5063    ::derive_builder::Builder,
5064    ::validator::Validate,
5065)]
5066pub struct PartyIdentification263 {
5067    #[validate]
5068    #[serde(rename = "Id")]
5069    pub id: Max11NumericText,
5070    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
5071    pub assgnr: Option<Max35Text>,
5072    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
5073    pub ctry: Option<Iso3NumericCountryCode>,
5074    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
5075    pub shrt_nm: Option<Max35Text>,
5076    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
5077    pub lgl_corp_nm: Option<Max99Text>,
5078    #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
5079    pub addtl_id: Option<AdditionalData1>,
5080    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
5081    pub lcl_data: Option<LocalData1>,
5082}
5083#[derive(
5084    Debug,
5085    Default,
5086    Clone,
5087    PartialEq,
5088    ::serde::Serialize,
5089    ::serde::Deserialize,
5090    ::derive_builder::Builder,
5091    ::validator::Validate,
5092)]
5093pub struct Max99Text {
5094    #[validate(length(min = 1, max = 99,))]
5095    #[serde(rename = "$text")]
5096    pub value: String,
5097}
5098#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5099pub enum TemporaryServicesCharge1Code {
5100    #[serde(rename = "WKND")]
5101    Wknd,
5102    #[serde(rename = "REGL")]
5103    Regl,
5104    #[serde(rename = "OVRT")]
5105    Ovrt,
5106    #[serde(rename = "OTHP")]
5107    Othp,
5108    #[serde(rename = "OTHN")]
5109    Othn,
5110    #[serde(rename = "ONCL")]
5111    Oncl,
5112    #[serde(rename = "NITE")]
5113    Nite,
5114    #[serde(rename = "HOLI")]
5115    Holi,
5116    #[serde(rename = "HAZD")]
5117    Hazd,
5118    #[default]
5119    Unknown,
5120}
5121#[derive(
5122    Debug,
5123    Default,
5124    Clone,
5125    PartialEq,
5126    ::serde::Serialize,
5127    ::serde::Deserialize,
5128    ::derive_builder::Builder,
5129    ::validator::Validate,
5130)]
5131pub struct Amount13 {
5132    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
5133    pub tp: Option<Max35Text>,
5134    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
5135    pub desc: Option<Max35Text>,
5136    #[validate]
5137    #[serde(rename = "Amt")]
5138    pub amt: ImpliedCurrencyAndAmount,
5139}
5140#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5141pub enum UserInterface6Code {
5142    #[serde(rename = "CDSP")]
5143    Cdsp,
5144    #[serde(rename = "CRCP")]
5145    Crcp,
5146    #[serde(rename = "MDSP")]
5147    Mdsp,
5148    #[serde(rename = "MRCP")]
5149    Mrcp,
5150    #[serde(rename = "CRDO")]
5151    Crdo,
5152    #[serde(rename = "FILE")]
5153    File,
5154    #[serde(rename = "CHAP")]
5155    Chap,
5156    #[serde(rename = "MRAP")]
5157    Mrap,
5158    #[serde(rename = "MRIN")]
5159    Mrin,
5160    #[default]
5161    Unknown,
5162}
5163#[derive(
5164    Debug,
5165    Default,
5166    Clone,
5167    PartialEq,
5168    ::serde::Serialize,
5169    ::serde::Deserialize,
5170    ::derive_builder::Builder,
5171    ::validator::Validate,
5172)]
5173pub struct IsoYearMonth {
5174    #[validate(regex = "ISO_YEAR_MONTH_REGEX")]
5175    #[serde(rename = "$text")]
5176    pub value: String,
5177}
5178#[derive(
5179    Debug,
5180    Default,
5181    Clone,
5182    PartialEq,
5183    ::serde::Serialize,
5184    ::serde::Deserialize,
5185    ::derive_builder::Builder,
5186    ::validator::Validate,
5187)]
5188pub struct Max6NumericText {
5189    #[validate(regex = "MAX_6_NUMERIC_TEXT_REGEX")]
5190    #[serde(rename = "$text")]
5191    pub value: String,
5192}
5193#[derive(
5194    Debug,
5195    Default,
5196    Clone,
5197    PartialEq,
5198    ::serde::Serialize,
5199    ::serde::Deserialize,
5200    ::derive_builder::Builder,
5201    ::validator::Validate,
5202)]
5203pub struct Adjustment9 {
5204    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
5205    pub tp: Option<Max35Text>,
5206    #[serde(rename = "AddtlTp", skip_serializing_if = "Option::is_none")]
5207    pub addtl_tp: Option<Max35Text>,
5208    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
5209    pub desc: Option<Max70Text>,
5210    #[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
5211    pub rsn: Option<Max35Text>,
5212    #[serde(rename = "PrmtnCd", skip_serializing_if = "Option::is_none")]
5213    pub prmtn_cd: Option<Max35Text>,
5214    #[serde(rename = "Pctg", skip_serializing_if = "Option::is_none")]
5215    pub pctg: Option<PercentageRate>,
5216    #[serde(rename = "AdjstmntAmt", skip_serializing_if = "Option::is_none")]
5217    pub adjstmnt_amt: Option<ImpliedCurrencyAndAmount>,
5218    #[serde(rename = "TaxClctdOnOrgnlAmt", skip_serializing_if = "Option::is_none")]
5219    pub tax_clctd_on_orgnl_amt: Option<TrueFalseIndicator>,
5220}
5221#[derive(
5222    Debug,
5223    Default,
5224    Clone,
5225    PartialEq,
5226    ::serde::Serialize,
5227    ::serde::Deserialize,
5228    ::derive_builder::Builder,
5229    ::validator::Validate,
5230)]
5231pub struct Content1 {
5232    #[validate]
5233    #[serde(rename = "Val")]
5234    pub val: Max20KText,
5235    #[serde(rename = "Sgntr", skip_serializing_if = "Option::is_none")]
5236    pub sgntr: Option<Max140Binary>,
5237    #[serde(rename = "CertId", skip_serializing_if = "Option::is_none")]
5238    pub cert_id: Option<Max70Text>,
5239}
5240#[derive(
5241    Debug,
5242    Default,
5243    Clone,
5244    PartialEq,
5245    ::serde::Serialize,
5246    ::serde::Deserialize,
5247    ::derive_builder::Builder,
5248    ::validator::Validate,
5249)]
5250pub struct Iso3NumericCountryCode {
5251    #[validate(regex = "ISO_3_NUMERIC_COUNTRY_CODE_REGEX")]
5252    #[serde(rename = "$text")]
5253    pub value: String,
5254}
5255#[derive(
5256    Debug,
5257    Default,
5258    Clone,
5259    PartialEq,
5260    ::serde::Serialize,
5261    ::serde::Deserialize,
5262    ::derive_builder::Builder,
5263    ::validator::Validate,
5264)]
5265pub struct Max19NumericText {
5266    #[validate(regex = "MAX_19_NUMERIC_TEXT_REGEX")]
5267    #[serde(rename = "$text")]
5268    pub value: String,
5269}
5270#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5271pub enum GoodAndServiceDeliveryChannel1Code {
5272    #[serde(rename = "EDEL")]
5273    Edel,
5274    #[serde(rename = "PULC")]
5275    Pulc,
5276    #[serde(rename = "NDEL")]
5277    Ndel,
5278    #[serde(rename = "OTHN")]
5279    Othn,
5280    #[serde(rename = "OTHP")]
5281    Othp,
5282    #[serde(rename = "SCBA")]
5283    Scba,
5284    #[serde(rename = "SCSA")]
5285    Scsa,
5286    #[default]
5287    Unknown,
5288}
5289#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5290pub enum GracePeriodUnitType1Code {
5291    #[serde(rename = "WEKS")]
5292    Weks,
5293    #[serde(rename = "PMTS")]
5294    Pmts,
5295    #[serde(rename = "OTHP")]
5296    Othp,
5297    #[serde(rename = "OTHN")]
5298    Othn,
5299    #[serde(rename = "MNTH")]
5300    Mnth,
5301    #[serde(rename = "DAYS")]
5302    Days,
5303    #[default]
5304    Unknown,
5305}
5306#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5307pub enum Algorithm13Code {
5308    #[serde(rename = "EA2C")]
5309    Ea2C,
5310    #[serde(rename = "E3DC")]
5311    E3Dc,
5312    #[serde(rename = "DKP9")]
5313    Dkp9,
5314    #[serde(rename = "UKPT")]
5315    Ukpt,
5316    #[serde(rename = "UKA1")]
5317    Uka1,
5318    #[serde(rename = "EA9C")]
5319    Ea9C,
5320    #[serde(rename = "EA5C")]
5321    Ea5C,
5322    #[default]
5323    Unknown,
5324}
5325#[derive(
5326    Debug,
5327    Default,
5328    Clone,
5329    PartialEq,
5330    ::serde::Serialize,
5331    ::serde::Deserialize,
5332    ::derive_builder::Builder,
5333    ::validator::Validate,
5334)]
5335pub struct TrueFalseIndicator {
5336    #[serde(rename = "$text")]
5337    pub value: bool,
5338}
5339#[derive(
5340    Debug,
5341    Default,
5342    Clone,
5343    PartialEq,
5344    ::serde::Serialize,
5345    ::serde::Deserialize,
5346    ::derive_builder::Builder,
5347    ::validator::Validate,
5348)]
5349pub struct Exact12Text {
5350    #[serde(rename = "$text")]
5351    pub value: String,
5352}
5353#[derive(
5354    Debug,
5355    Default,
5356    Clone,
5357    PartialEq,
5358    ::serde::Serialize,
5359    ::serde::Deserialize,
5360    ::derive_builder::Builder,
5361    ::validator::Validate,
5362)]
5363pub struct TransactionLifeCycleIdentification2 {
5364    #[validate]
5365    #[serde(rename = "Id")]
5366    pub id: Exact15Text,
5367}
5368#[derive(
5369    Debug,
5370    Default,
5371    Clone,
5372    PartialEq,
5373    ::serde::Serialize,
5374    ::serde::Deserialize,
5375    ::derive_builder::Builder,
5376    ::validator::Validate,
5377)]
5378pub struct Terminal5 {
5379    #[serde(rename = "TermnlId", skip_serializing_if = "Option::is_none")]
5380    pub termnl_id: Option<TerminalIdentification3>,
5381    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
5382    pub tp: Option<TerminalType1Code>,
5383    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
5384    pub othr_tp: Option<Max35Text>,
5385    #[serde(rename = "Cpblties", skip_serializing_if = "Option::is_none")]
5386    pub cpblties: Option<Capabilities2>,
5387    #[serde(rename = "TermnlIntgtn", skip_serializing_if = "Option::is_none")]
5388    pub termnl_intgtn: Option<TerminalIntegrationCategory1Code>,
5389    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
5390    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
5391    #[serde(rename = "OutdrInd", skip_serializing_if = "Option::is_none")]
5392    pub outdr_ind: Option<TrueFalseIndicator>,
5393    #[serde(rename = "OffPrmissInd", skip_serializing_if = "Option::is_none")]
5394    pub off_prmiss_ind: Option<TrueFalseIndicator>,
5395    #[serde(rename = "OnBrdInd", skip_serializing_if = "Option::is_none")]
5396    pub on_brd_ind: Option<TrueFalseIndicator>,
5397    #[validate(length(min = 0,))]
5398    #[serde(rename = "POICmpnt", default)]
5399    pub poi_cmpnt: Vec<PointOfInteractionComponent13>,
5400}
5401#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5402pub enum CardDataWriting1Code {
5403    #[serde(rename = "ICPY")]
5404    Icpy,
5405    #[serde(rename = "MGST")]
5406    Mgst,
5407    #[serde(rename = "ICCY")]
5408    Iccy,
5409    #[serde(rename = "MSIP")]
5410    Msip,
5411    #[serde(rename = "OTHN")]
5412    Othn,
5413    #[serde(rename = "UNSP")]
5414    Unsp,
5415    #[serde(rename = "OTHP")]
5416    Othp,
5417    #[default]
5418    Unknown,
5419}
5420#[derive(
5421    Debug,
5422    Default,
5423    Clone,
5424    PartialEq,
5425    ::serde::Serialize,
5426    ::serde::Deserialize,
5427    ::derive_builder::Builder,
5428    ::validator::Validate,
5429)]
5430pub struct Max100Text {
5431    #[validate(length(min = 1, max = 100,))]
5432    #[serde(rename = "$text")]
5433    pub value: String,
5434}
5435#[derive(
5436    Debug,
5437    Default,
5438    Clone,
5439    PartialEq,
5440    ::serde::Serialize,
5441    ::serde::Deserialize,
5442    ::derive_builder::Builder,
5443    ::validator::Validate,
5444)]
5445pub struct EncryptedData1 {
5446    #[serde(rename = "Ctrl", skip_serializing_if = "Option::is_none")]
5447    pub ctrl: Option<Exact1HexBinaryText>,
5448    #[serde(rename = "KeySetIdr", skip_serializing_if = "Option::is_none")]
5449    pub key_set_idr: Option<Max8NumericText>,
5450    #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
5451    pub drvd_inf: Option<Max32HexBinaryText>,
5452    #[serde(rename = "Algo", skip_serializing_if = "Option::is_none")]
5453    pub algo: Option<Max2NumericText>,
5454    #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
5455    pub key_lngth: Option<Max4NumericText>,
5456    #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
5457    pub key_prtcn: Option<Max2NumericText>,
5458    #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
5459    pub key_indx: Option<Max5NumericText>,
5460    #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
5461    pub pddg_mtd: Option<Max2NumericText>,
5462    #[serde(rename = "NcrptdDataFrmt", skip_serializing_if = "Option::is_none")]
5463    pub ncrptd_data_frmt: Option<Max2NumericText>,
5464    #[validate(length(min = 1,))]
5465    #[serde(rename = "NcrptdDataElmt", default)]
5466    pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
5467}
5468#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5469pub enum OutputFormat4Code {
5470    #[serde(rename = "FLNM")]
5471    Flnm,
5472    #[serde(rename = "MREF")]
5473    Mref,
5474    #[serde(rename = "OTHN")]
5475    Othn,
5476    #[serde(rename = "OTHP")]
5477    Othp,
5478    #[serde(rename = "SMSI")]
5479    Smsi,
5480    #[serde(rename = "TEXT")]
5481    Text,
5482    #[serde(rename = "URLI")]
5483    Urli,
5484    #[serde(rename = "HTML")]
5485    Html,
5486    #[default]
5487    Unknown,
5488}
5489#[derive(
5490    Debug,
5491    Default,
5492    Clone,
5493    PartialEq,
5494    ::serde::Serialize,
5495    ::serde::Deserialize,
5496    ::derive_builder::Builder,
5497    ::validator::Validate,
5498)]
5499pub struct Max10KHexBinaryText {
5500    #[validate(regex = "MAX_10_K_HEX_BINARY_TEXT_REGEX")]
5501    #[serde(rename = "$text")]
5502    pub value: String,
5503}
5504#[derive(
5505    Debug,
5506    Default,
5507    Clone,
5508    PartialEq,
5509    ::serde::Serialize,
5510    ::serde::Deserialize,
5511    ::derive_builder::Builder,
5512    ::validator::Validate,
5513)]
5514pub struct SettlementServiceDate2 {
5515    #[serde(rename = "ReqdSttlmDt", skip_serializing_if = "Option::is_none")]
5516    pub reqd_sttlm_dt: Option<IsoDate>,
5517    #[serde(rename = "DfrrdSttlmInd", skip_serializing_if = "Option::is_none")]
5518    pub dfrrd_sttlm_ind: Option<TrueFalseIndicator>,
5519    #[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
5520    pub sttlm_dt: Option<IsoDate>,
5521    #[serde(rename = "SttlmTm", skip_serializing_if = "Option::is_none")]
5522    pub sttlm_tm: Option<IsoTime>,
5523    #[serde(rename = "SttlmPrd", skip_serializing_if = "Option::is_none")]
5524    pub sttlm_prd: Option<Max35Text>,
5525    #[serde(rename = "SttlmCutOffTm", skip_serializing_if = "Option::is_none")]
5526    pub sttlm_cut_off_tm: Option<IsoDateTime>,
5527}
5528#[derive(
5529    Debug,
5530    Default,
5531    Clone,
5532    PartialEq,
5533    ::serde::Serialize,
5534    ::serde::Deserialize,
5535    ::derive_builder::Builder,
5536    ::validator::Validate,
5537)]
5538pub struct OnBoardDiagnostics1 {
5539    #[serde(rename = "NgnIdleTm", skip_serializing_if = "Option::is_none")]
5540    pub ngn_idle_tm: Option<Max10NumberFraction2>,
5541    #[serde(rename = "NgnTtlIdleTm", skip_serializing_if = "Option::is_none")]
5542    pub ngn_ttl_idle_tm: Option<Max10NumberFraction2>,
5543    #[serde(rename = "NgnHrs", skip_serializing_if = "Option::is_none")]
5544    pub ngn_hrs: Option<Max10NumberFraction2>,
5545    #[serde(rename = "NgnTtlTm", skip_serializing_if = "Option::is_none")]
5546    pub ngn_ttl_tm: Option<Max6NumberFraction2>,
5547    #[serde(rename = "NgnLd", skip_serializing_if = "Option::is_none")]
5548    pub ngn_ld: Option<Max12NumericText>,
5549    #[serde(rename = "NgnRPM", skip_serializing_if = "Option::is_none")]
5550    pub ngn_rpm: Option<Max5NumericText>,
5551    #[serde(rename = "NgnOilTmprtr", skip_serializing_if = "Option::is_none")]
5552    pub ngn_oil_tmprtr: Option<Max6NumberFraction2>,
5553    #[serde(rename = "NgnOilPrssr", skip_serializing_if = "Option::is_none")]
5554    pub ngn_oil_prssr: Option<Max3NumericText>,
5555    #[serde(rename = "NgnOilLifeRmng", skip_serializing_if = "Option::is_none")]
5556    pub ngn_oil_life_rmng: Option<Max3NumericText>,
5557    #[serde(rename = "ChckNgnWrngSts", skip_serializing_if = "Option::is_none")]
5558    pub chck_ngn_wrng_sts: Option<Max35Text>,
5559    #[serde(rename = "FuelTankLvlStart", skip_serializing_if = "Option::is_none")]
5560    pub fuel_tank_lvl_start: Option<Max4NumericText>,
5561    #[serde(rename = "FuelGaugeLvl", skip_serializing_if = "Option::is_none")]
5562    pub fuel_gauge_lvl: Option<Max4NumericText>,
5563    #[serde(rename = "FuelEcnmy", skip_serializing_if = "Option::is_none")]
5564    pub fuel_ecnmy: Option<Max6NumberFraction2>,
5565    #[serde(rename = "RfrgrtnHrs", skip_serializing_if = "Option::is_none")]
5566    pub rfrgrtn_hrs: Option<Max10NumberFraction2>,
5567    #[serde(rename = "RfrgrtnTmprtr", skip_serializing_if = "Option::is_none")]
5568    pub rfrgrtn_tmprtr: Option<Max6NumberFraction2>,
5569    #[serde(rename = "CoolntTmprtr", skip_serializing_if = "Option::is_none")]
5570    pub coolnt_tmprtr: Option<Max6NumberFraction2>,
5571    #[serde(rename = "BttryVltg", skip_serializing_if = "Option::is_none")]
5572    pub bttry_vltg: Option<Max4NumericText>,
5573    #[serde(rename = "HardBrakg", skip_serializing_if = "Option::is_none")]
5574    pub hard_brakg: Option<Max4NumericText>,
5575    #[serde(rename = "HardAcclrtn", skip_serializing_if = "Option::is_none")]
5576    pub hard_acclrtn: Option<Max4NumericText>,
5577}
5578#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5579pub enum GoodsAndServices1Code {
5580    #[serde(rename = "ELEC")]
5581    Elec,
5582    #[serde(rename = "PHYS")]
5583    Phys,
5584    #[serde(rename = "ELPH")]
5585    Elph,
5586    #[default]
5587    Unknown,
5588}
5589#[derive(
5590    Debug,
5591    Default,
5592    Clone,
5593    PartialEq,
5594    ::serde::Serialize,
5595    ::serde::Deserialize,
5596    ::derive_builder::Builder,
5597    ::validator::Validate,
5598)]
5599pub struct Vehicle2 {
5600    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
5601    pub tp: Option<Max35Text>,
5602    #[serde(rename = "NtryMd", skip_serializing_if = "Option::is_none")]
5603    pub ntry_md: Option<CardDataReading5Code>,
5604    #[validate]
5605    #[serde(rename = "Data")]
5606    pub data: Max35Text,
5607}
5608#[derive(
5609    Debug,
5610    Default,
5611    Clone,
5612    PartialEq,
5613    ::serde::Serialize,
5614    ::serde::Deserialize,
5615    ::derive_builder::Builder,
5616    ::validator::Validate,
5617)]
5618pub struct Lodging3 {
5619    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
5620    pub summry: Option<LodgingSummary2>,
5621    #[validate(length(min = 0,))]
5622    #[serde(rename = "LineItm", default)]
5623    pub line_itm: Vec<LodgingLineItem2>,
5624}
5625#[derive(
5626    Debug,
5627    Default,
5628    Clone,
5629    PartialEq,
5630    ::serde::Serialize,
5631    ::serde::Deserialize,
5632    ::derive_builder::Builder,
5633    ::validator::Validate,
5634)]
5635pub struct Max40KText {
5636    #[validate(length(min = 1, max = 40000,))]
5637    #[serde(rename = "$text")]
5638    pub value: String,
5639}
5640#[derive(
5641    Debug,
5642    Default,
5643    Clone,
5644    PartialEq,
5645    ::serde::Serialize,
5646    ::serde::Deserialize,
5647    ::derive_builder::Builder,
5648    ::validator::Validate,
5649)]
5650pub struct PointOfInteractionComponent13 {
5651    #[serde(rename = "Tp")]
5652    pub tp: PoiComponentType5Code,
5653    #[validate]
5654    #[serde(rename = "Id")]
5655    pub id: PointOfInteractionComponentIdentification3,
5656    #[serde(rename = "Sts", skip_serializing_if = "Option::is_none")]
5657    pub sts: Option<PointOfInteractionComponentStatus3>,
5658    #[validate(length(min = 0,))]
5659    #[serde(rename = "StdCmplc", default)]
5660    pub std_cmplc: Vec<GenericIdentification48>,
5661    #[serde(rename = "Chrtcs", skip_serializing_if = "Option::is_none")]
5662    pub chrtcs: Option<PointOfInteractionComponentCharacteristics4>,
5663    #[validate(length(min = 0,))]
5664    #[serde(rename = "Assmnt", default)]
5665    pub assmnt: Vec<PointOfInteractionComponentIdentification3>,
5666}
5667#[derive(
5668    Debug,
5669    Default,
5670    Clone,
5671    PartialEq,
5672    ::serde::Serialize,
5673    ::serde::Deserialize,
5674    ::derive_builder::Builder,
5675    ::validator::Validate,
5676)]
5677pub struct DepositDetails2 {
5678    #[serde(rename = "Tp")]
5679    pub tp: CardDepositType1Code,
5680    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
5681    pub othr_tp: Option<Max35Text>,
5682    #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
5683    pub amt: Option<Amount16>,
5684}
5685#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5686pub enum PoiComponentStatus1Code {
5687    #[serde(rename = "WAIT")]
5688    Wait,
5689    #[serde(rename = "OUTD")]
5690    Outd,
5691    #[serde(rename = "OPER")]
5692    Oper,
5693    #[serde(rename = "DACT")]
5694    Dact,
5695    #[default]
5696    Unknown,
5697}
5698#[derive(
5699    Debug,
5700    Default,
5701    Clone,
5702    PartialEq,
5703    ::serde::Serialize,
5704    ::serde::Deserialize,
5705    ::derive_builder::Builder,
5706    ::validator::Validate,
5707)]
5708pub struct IsoDateTime {
5709    #[serde(rename = "$text")]
5710    pub value: ::chrono::DateTime<::chrono::Utc>,
5711}
5712#[derive(
5713    Debug,
5714    Default,
5715    Clone,
5716    PartialEq,
5717    ::serde::Serialize,
5718    ::serde::Deserialize,
5719    ::derive_builder::Builder,
5720    ::validator::Validate,
5721)]
5722pub struct PassengerTransportSummary2 {
5723    #[serde(rename = "DocNb", skip_serializing_if = "Option::is_none")]
5724    pub doc_nb: Option<Max35Text>,
5725    #[serde(rename = "Rsvatn", skip_serializing_if = "Option::is_none")]
5726    pub rsvatn: Option<ReservationDetails3>,
5727    #[serde(rename = "TrvlAuthstnCd", skip_serializing_if = "Option::is_none")]
5728    pub trvl_authstn_cd: Option<Max70Text>,
5729    #[serde(rename = "TcktIssr", skip_serializing_if = "Option::is_none")]
5730    pub tckt_issr: Option<Max35Text>,
5731    #[serde(rename = "OpnTcktInd", skip_serializing_if = "Option::is_none")]
5732    pub opn_tckt_ind: Option<TrueFalseIndicator>,
5733    #[validate(length(min = 0,))]
5734    #[serde(rename = "CstmrRef", default)]
5735    pub cstmr_ref: Vec<CustomerReference1>,
5736    #[validate(length(min = 0,))]
5737    #[serde(rename = "Pssngr", default)]
5738    pub pssngr: Vec<Customer8>,
5739    #[serde(rename = "Dprture", skip_serializing_if = "Option::is_none")]
5740    pub dprture: Option<DepartureOrArrival1>,
5741    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
5742    pub drtn: Option<Max4NumericText>,
5743    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
5744    pub insrnc_ind: Option<TrueFalseIndicator>,
5745    #[validate(length(min = 0,))]
5746    #[serde(rename = "TtlAmt", default)]
5747    pub ttl_amt: Vec<AmountDetails2>,
5748    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
5749    pub summry_cmmdty_id: Option<Max35Text>,
5750    #[serde(rename = "LltyPrgrmm", skip_serializing_if = "Option::is_none")]
5751    pub llty_prgrmm: Option<LoyaltyProgramme2>,
5752    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
5753    pub addtl_data: Option<Max350Text>,
5754}
5755#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5756pub enum StorageLocation1Code {
5757    #[serde(rename = "CAWL")]
5758    Cawl,
5759    #[serde(rename = "DVCE")]
5760    Dvce,
5761    #[serde(rename = "ISWL")]
5762    Iswl,
5763    #[serde(rename = "ONFL")]
5764    Onfl,
5765    #[serde(rename = "OTHN")]
5766    Othn,
5767    #[serde(rename = "OTHP")]
5768    Othp,
5769    #[serde(rename = "TPWL")]
5770    Tpwl,
5771    #[default]
5772    Unknown,
5773}
5774#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
5775pub enum InstalmentPeriod1Code {
5776    #[serde(rename = "MNTH")]
5777    Mnth,
5778    #[serde(rename = "ANNU")]
5779    Annu,
5780    #[default]
5781    Unknown,
5782}
5783#[derive(
5784    Debug,
5785    Default,
5786    Clone,
5787    PartialEq,
5788    ::serde::Serialize,
5789    ::serde::Deserialize,
5790    ::derive_builder::Builder,
5791    ::validator::Validate,
5792)]
5793pub struct LocalData5 {
5794    #[serde(rename = "Lang")]
5795    pub lang: IsoMax3ALanguageCode,
5796    #[serde(rename = "CmonNm", skip_serializing_if = "Option::is_none")]
5797    pub cmon_nm: Option<Max280Text>,
5798    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
5799    pub lgl_corp_nm: Option<Max210Text>,
5800    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
5801    pub adr: Option<Address3>,
5802    #[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
5803    pub addtl_adr_inf: Option<Max512Text>,
5804    #[validate(length(min = 0,))]
5805    #[serde(rename = "AddtlData", default)]
5806    pub addtl_data: Vec<AdditionalData1>,
5807}
5808#[derive(
5809    Debug,
5810    Default,
5811    Clone,
5812    PartialEq,
5813    ::serde::Serialize,
5814    ::serde::Deserialize,
5815    ::derive_builder::Builder,
5816    ::validator::Validate,
5817)]
5818pub struct Token2 {
5819    #[serde(rename = "PmtTkn", skip_serializing_if = "Option::is_none")]
5820    pub pmt_tkn: Option<Max19NumericText>,
5821    #[serde(rename = "TknXpryDt", skip_serializing_if = "Option::is_none")]
5822    pub tkn_xpry_dt: Option<IsoYearMonth>,
5823    #[serde(rename = "TknRqstrId", skip_serializing_if = "Option::is_none")]
5824    pub tkn_rqstr_id: Option<Max11NumericText>,
5825    #[serde(rename = "TknAssrncData", skip_serializing_if = "Option::is_none")]
5826    pub tkn_assrnc_data: Option<Max140Text>,
5827    #[serde(rename = "TknAssrncMtd", skip_serializing_if = "Option::is_none")]
5828    pub tkn_assrnc_mtd: Option<Max2NumericText>,
5829    #[serde(rename = "TknInittdInd", skip_serializing_if = "Option::is_none")]
5830    pub tkn_inittd_ind: Option<TrueFalseIndicator>,
5831    #[serde(rename = "StorgLctn", skip_serializing_if = "Option::is_none")]
5832    pub storg_lctn: Option<StorageLocation1Code>,
5833    #[serde(rename = "OthrStorgLctn", skip_serializing_if = "Option::is_none")]
5834    pub othr_storg_lctn: Option<Max35Text>,
5835    #[serde(rename = "PrtcnMtd", skip_serializing_if = "Option::is_none")]
5836    pub prtcn_mtd: Option<ProtectionMethod1Code>,
5837    #[serde(rename = "OthrPrtcnMtd", skip_serializing_if = "Option::is_none")]
5838    pub othr_prtcn_mtd: Option<Max35Text>,
5839    #[validate(length(min = 0,))]
5840    #[serde(rename = "AddtlData", default)]
5841    pub addtl_data: Vec<AdditionalData1>,
5842}
5843#[derive(
5844    Debug,
5845    Default,
5846    Clone,
5847    PartialEq,
5848    ::serde::Serialize,
5849    ::serde::Deserialize,
5850    ::derive_builder::Builder,
5851    ::validator::Validate,
5852)]
5853pub struct FleetDiscountTotals1 {
5854    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
5855    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
5856    #[serde(rename = "FuelAmt", skip_serializing_if = "Option::is_none")]
5857    pub fuel_amt: Option<ImpliedCurrencyAndAmount>,
5858    #[serde(rename = "NonFuelAmt", skip_serializing_if = "Option::is_none")]
5859    pub non_fuel_amt: Option<ImpliedCurrencyAndAmount>,
5860}
5861#[derive(
5862    Debug,
5863    Default,
5864    Clone,
5865    PartialEq,
5866    ::serde::Serialize,
5867    ::serde::Deserialize,
5868    ::derive_builder::Builder,
5869    ::validator::Validate,
5870)]
5871pub struct Distance1 {
5872    #[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
5873    pub unit_of_measr: Option<UnitOfMeasure10Code>,
5874    #[serde(rename = "OdmtrStart", skip_serializing_if = "Option::is_none")]
5875    pub odmtr_start: Option<Max10NumericText>,
5876    #[serde(rename = "OdmtrRtr", skip_serializing_if = "Option::is_none")]
5877    pub odmtr_rtr: Option<Max10NumericText>,
5878    #[serde(rename = "TtlDstnc", skip_serializing_if = "Option::is_none")]
5879    pub ttl_dstnc: Option<Max10NumericText>,
5880    #[serde(rename = "FreeDstnc", skip_serializing_if = "Option::is_none")]
5881    pub free_dstnc: Option<Max10NumericText>,
5882    #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
5883    pub rate: Option<ImpliedCurrencyAndAmount>,
5884}
5885#[derive(
5886    Debug,
5887    Default,
5888    Clone,
5889    PartialEq,
5890    ::serde::Serialize,
5891    ::serde::Deserialize,
5892    ::derive_builder::Builder,
5893    ::validator::Validate,
5894)]
5895pub struct Max6Text {
5896    #[validate(length(min = 1, max = 6,))]
5897    #[serde(rename = "$text")]
5898    pub value: String,
5899}
5900#[derive(
5901    Debug,
5902    Default,
5903    Clone,
5904    PartialEq,
5905    ::serde::Serialize,
5906    ::serde::Deserialize,
5907    ::derive_builder::Builder,
5908    ::validator::Validate,
5909)]
5910pub struct AdditionalCharacteristicDetails1 {
5911    #[validate]
5912    #[serde(rename = "Tp")]
5913    pub tp: Max35Text,
5914    #[serde(rename = "PrvddBy", skip_serializing_if = "Option::is_none")]
5915    pub prvdd_by: Option<Max35Text>,
5916}
5917#[derive(
5918    Debug,
5919    Default,
5920    Clone,
5921    PartialEq,
5922    ::serde::Serialize,
5923    ::serde::Deserialize,
5924    ::derive_builder::Builder,
5925    ::validator::Validate,
5926)]
5927pub struct PartyIdentification261 {
5928    #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
5929    pub cd: Option<Max35Text>,
5930    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
5931    pub assgnr: Option<Max35Text>,
5932    #[serde(rename = "IATACd", skip_serializing_if = "Option::is_none")]
5933    pub iata_cd: Option<Max35Text>,
5934    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
5935    pub nm: Option<Max70Text>,
5936    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
5937    pub shrt_nm: Option<Max35Text>,
5938    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
5939    pub adr: Option<Address2>,
5940    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
5941    pub ctct: Option<Contact6>,
5942}
5943#[derive(
5944    Debug,
5945    Default,
5946    Clone,
5947    PartialEq,
5948    ::serde::Serialize,
5949    ::serde::Deserialize,
5950    ::derive_builder::Builder,
5951    ::validator::Validate,
5952)]
5953pub struct InvoiceSummary2 {
5954    #[serde(rename = "InvcNb", skip_serializing_if = "Option::is_none")]
5955    pub invc_nb: Option<Max70Text>,
5956    #[serde(rename = "Sellr", skip_serializing_if = "Option::is_none")]
5957    pub sellr: Option<PartyIdentification259>,
5958    #[serde(rename = "Buyr", skip_serializing_if = "Option::is_none")]
5959    pub buyr: Option<PartyIdentification259>,
5960    #[serde(rename = "InvcDt", skip_serializing_if = "Option::is_none")]
5961    pub invc_dt: Option<IsoDate>,
5962    #[serde(rename = "InvcCreDtTm", skip_serializing_if = "Option::is_none")]
5963    pub invc_cre_dt_tm: Option<IsoDateTime>,
5964    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
5965    pub summry_cmmdty_id: Option<Max35Text>,
5966    #[serde(rename = "FrghtAmt", skip_serializing_if = "Option::is_none")]
5967    pub frght_amt: Option<ImpliedCurrencyAndAmount>,
5968    #[validate(length(min = 0,))]
5969    #[serde(rename = "TaxTtl", default)]
5970    pub tax_ttl: Vec<Tax39>,
5971    #[serde(rename = "TaxRclmMtd", skip_serializing_if = "Option::is_none")]
5972    pub tax_rclm_mtd: Option<TaxReclaimMethod1Code>,
5973    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
5974    pub addtl_data: Option<Max350Text>,
5975}
5976#[derive(
5977    Debug,
5978    Default,
5979    Clone,
5980    PartialEq,
5981    ::serde::Serialize,
5982    ::serde::Deserialize,
5983    ::derive_builder::Builder,
5984    ::validator::Validate,
5985)]
5986pub struct HiredVehicle2 {
5987    #[serde(rename = "CpnyTp", skip_serializing_if = "Option::is_none")]
5988    pub cpny_tp: Option<Max35Text>,
5989    #[serde(rename = "CpnyNm", skip_serializing_if = "Option::is_none")]
5990    pub cpny_nm: Option<Max70Text>,
5991    #[serde(rename = "TpOfVhcl", skip_serializing_if = "Option::is_none")]
5992    pub tp_of_vhcl: Option<Max35Text>,
5993    #[serde(rename = "VhclId", skip_serializing_if = "Option::is_none")]
5994    pub vhcl_id: Option<Max35Text>,
5995    #[serde(rename = "DrvrId", skip_serializing_if = "Option::is_none")]
5996    pub drvr_id: Option<Max35Text>,
5997    #[serde(rename = "DrvrTaxId", skip_serializing_if = "Option::is_none")]
5998    pub drvr_tax_id: Option<Max35Text>,
5999    #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
6000    pub dstn: Option<Destination3>,
6001}
6002#[derive(
6003    Debug,
6004    Default,
6005    Clone,
6006    PartialEq,
6007    ::serde::Serialize,
6008    ::serde::Deserialize,
6009    ::derive_builder::Builder,
6010    ::validator::Validate,
6011)]
6012pub struct PartyIdentification200 {
6013    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
6014    pub id: Option<Max35Text>,
6015    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6016    pub tp: Option<PartyType28Code>,
6017    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
6018    pub othr_tp: Option<Max35Text>,
6019    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
6020    pub assgnr: Option<PartyType18Code>,
6021    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
6022    pub ctry: Option<Iso3NumericCountryCode>,
6023    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
6024    pub shrt_nm: Option<Max35Text>,
6025}
6026#[derive(
6027    Debug,
6028    Default,
6029    Clone,
6030    PartialEq,
6031    ::serde::Serialize,
6032    ::serde::Deserialize,
6033    ::derive_builder::Builder,
6034    ::validator::Validate,
6035)]
6036pub struct AdditionalInformation29 {
6037    #[serde(rename = "Rcpt", skip_serializing_if = "Option::is_none")]
6038    pub rcpt: Option<PartyType22Code>,
6039    #[serde(rename = "OthrRcpt", skip_serializing_if = "Option::is_none")]
6040    pub othr_rcpt: Option<Max35Text>,
6041    #[validate(length(min = 0,))]
6042    #[serde(rename = "Trgt", default)]
6043    pub trgt: Vec<UserInterface6Code>,
6044    #[serde(rename = "OthrTrgt", skip_serializing_if = "Option::is_none")]
6045    pub othr_trgt: Option<Max35Text>,
6046    #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
6047    pub frmt: Option<OutputFormat4Code>,
6048    #[serde(rename = "OthrFrmt", skip_serializing_if = "Option::is_none")]
6049    pub othr_frmt: Option<Max35Text>,
6050    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6051    pub tp: Option<Max35Text>,
6052    #[serde(rename = "Lang")]
6053    pub lang: IsoMax3ALanguageCode,
6054    #[validate]
6055    #[serde(rename = "Val")]
6056    pub val: Max20KText,
6057}
6058#[derive(
6059    Debug,
6060    Default,
6061    Clone,
6062    PartialEq,
6063    ::serde::Serialize,
6064    ::serde::Deserialize,
6065    ::derive_builder::Builder,
6066    ::validator::Validate,
6067)]
6068pub struct TripInformation1 {
6069    #[serde(rename = "TripNb", skip_serializing_if = "Option::is_none")]
6070    pub trip_nb: Option<Max35Text>,
6071    #[serde(rename = "JobNb", skip_serializing_if = "Option::is_none")]
6072    pub job_nb: Option<Max10Text>,
6073    #[serde(rename = "WorkOrdr", skip_serializing_if = "Option::is_none")]
6074    pub work_ordr: Option<Max70Text>,
6075    #[serde(rename = "InvcNb", skip_serializing_if = "Option::is_none")]
6076    pub invc_nb: Option<Max70Text>,
6077    #[serde(rename = "BllgId", skip_serializing_if = "Option::is_none")]
6078    pub bllg_id: Option<Max70Text>,
6079    #[serde(rename = "CtrlNb", skip_serializing_if = "Option::is_none")]
6080    pub ctrl_nb: Option<Max35Text>,
6081    #[serde(rename = "DlvryTcktNb", skip_serializing_if = "Option::is_none")]
6082    pub dlvry_tckt_nb: Option<Max35Text>,
6083}
6084#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6085pub enum ProtectionMethod1Code {
6086    #[serde(rename = "OTHN")]
6087    Othn,
6088    #[serde(rename = "OTHP")]
6089    Othp,
6090    #[serde(rename = "SELM")]
6091    Selm,
6092    #[serde(rename = "SNCL")]
6093    Sncl,
6094    #[serde(rename = "SOFT")]
6095    Soft,
6096    #[serde(rename = "TEEN")]
6097    Teen,
6098    #[default]
6099    Unknown,
6100}
6101#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6102pub enum PeriodUnit3Code {
6103    #[serde(rename = "OTHP")]
6104    Othp,
6105    #[serde(rename = "OTHN")]
6106    Othn,
6107    #[serde(rename = "MNTH")]
6108    Mnth,
6109    #[serde(rename = "WEEK")]
6110    Week,
6111    #[serde(rename = "YEAR")]
6112    Year,
6113    #[serde(rename = "DAYS")]
6114    Days,
6115    #[serde(rename = "EXDY")]
6116    Exdy,
6117    #[default]
6118    Unknown,
6119}
6120#[derive(
6121    Debug,
6122    Default,
6123    Clone,
6124    PartialEq,
6125    ::serde::Serialize,
6126    ::serde::Deserialize,
6127    ::derive_builder::Builder,
6128    ::validator::Validate,
6129)]
6130pub struct AdditionalAction1 {
6131    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6132    pub tp: Option<ActionType10Code>,
6133    #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
6134    pub dstn: Option<PartyType21Code>,
6135    #[serde(rename = "OthrDstn", skip_serializing_if = "Option::is_none")]
6136    pub othr_dstn: Option<Max35Text>,
6137    #[serde(rename = "DstnTp", skip_serializing_if = "Option::is_none")]
6138    pub dstn_tp: Option<ActionDestination1Code>,
6139    #[serde(rename = "OthrDstnTp", skip_serializing_if = "Option::is_none")]
6140    pub othr_dstn_tp: Option<Max35Text>,
6141    #[serde(rename = "DstnAdr", skip_serializing_if = "Option::is_none")]
6142    pub dstn_adr: Option<Max70Text>,
6143    #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
6144    pub frmt: Option<OutputFormat4Code>,
6145    #[serde(rename = "OthrFrmt", skip_serializing_if = "Option::is_none")]
6146    pub othr_frmt: Option<Max35Text>,
6147    #[serde(rename = "Cntt", skip_serializing_if = "Option::is_none")]
6148    pub cntt: Option<Content1>,
6149}
6150#[derive(
6151    Debug,
6152    Default,
6153    Clone,
6154    PartialEq,
6155    ::serde::Serialize,
6156    ::serde::Deserialize,
6157    ::derive_builder::Builder,
6158    ::validator::Validate,
6159)]
6160pub struct CardProgrammeMode3 {
6161    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6162    pub tp: Option<Max35Text>,
6163    #[validate]
6164    #[serde(rename = "Id")]
6165    pub id: Max35Text,
6166    #[validate(length(min = 0,))]
6167    #[serde(rename = "AddtlId", default)]
6168    pub addtl_id: Vec<AdditionalData1>,
6169}
6170#[derive(
6171    Debug,
6172    Default,
6173    Clone,
6174    PartialEq,
6175    ::serde::Serialize,
6176    ::serde::Deserialize,
6177    ::derive_builder::Builder,
6178    ::validator::Validate,
6179)]
6180pub struct IsoMax3ACountryCode {
6181    #[validate(regex = "ISO_MAX_3_A_COUNTRY_CODE_REGEX")]
6182    #[serde(rename = "$text")]
6183    pub value: String,
6184}
6185#[derive(
6186    Debug,
6187    Default,
6188    Clone,
6189    PartialEq,
6190    ::serde::Serialize,
6191    ::serde::Deserialize,
6192    ::derive_builder::Builder,
6193    ::validator::Validate,
6194)]
6195pub struct Amount17 {
6196    #[validate]
6197    #[serde(rename = "Amt")]
6198    pub amt: ImpliedCurrencyAndAmount,
6199    #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
6200    pub ccy: Option<Iso3NumericCurrencyCode>,
6201    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
6202    pub cdt_dbt: Option<CreditDebit3Code>,
6203}
6204#[derive(
6205    Debug,
6206    Default,
6207    Clone,
6208    PartialEq,
6209    ::serde::Serialize,
6210    ::serde::Deserialize,
6211    ::derive_builder::Builder,
6212    ::validator::Validate,
6213)]
6214pub struct Contact1 {
6215    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
6216    pub nm: Option<Max70Text>,
6217    #[serde(rename = "HomePhneNb", skip_serializing_if = "Option::is_none")]
6218    pub home_phne_nb: Option<PhoneNumber>,
6219    #[serde(rename = "BizPhneNb", skip_serializing_if = "Option::is_none")]
6220    pub biz_phne_nb: Option<PhoneNumber>,
6221    #[serde(rename = "MobPhneNb", skip_serializing_if = "Option::is_none")]
6222    pub mob_phne_nb: Option<PhoneNumber>,
6223    #[serde(rename = "OthrPhneNb", skip_serializing_if = "Option::is_none")]
6224    pub othr_phne_nb: Option<PhoneNumber>,
6225    #[serde(rename = "PrsnlEmailAdr", skip_serializing_if = "Option::is_none")]
6226    pub prsnl_email_adr: Option<Max256Text>,
6227    #[serde(rename = "BizEmailAdr", skip_serializing_if = "Option::is_none")]
6228    pub biz_email_adr: Option<Max256Text>,
6229    #[serde(rename = "OthrEmailAdr", skip_serializing_if = "Option::is_none")]
6230    pub othr_email_adr: Option<Max256Text>,
6231    #[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
6232    pub lang: Option<Iso2ALanguageCode>,
6233}
6234#[derive(
6235    Debug,
6236    Default,
6237    Clone,
6238    PartialEq,
6239    ::serde::Serialize,
6240    ::serde::Deserialize,
6241    ::derive_builder::Builder,
6242    ::validator::Validate,
6243)]
6244pub struct LoyaltyProgramme2 {
6245    #[serde(rename = "PrgrmmTp", skip_serializing_if = "Option::is_none")]
6246    pub prgrmm_tp: Option<Max35Text>,
6247    #[serde(rename = "PrgmId", skip_serializing_if = "Option::is_none")]
6248    pub prgm_id: Option<Max70Text>,
6249    #[serde(rename = "PtcptId", skip_serializing_if = "Option::is_none")]
6250    pub ptcpt_id: Option<Max70Text>,
6251}
6252#[derive(
6253    Debug,
6254    Default,
6255    Clone,
6256    PartialEq,
6257    ::serde::Serialize,
6258    ::serde::Deserialize,
6259    ::derive_builder::Builder,
6260    ::validator::Validate,
6261)]
6262pub struct PartyIdentification208 {
6263    #[validate]
6264    #[serde(rename = "Tp")]
6265    pub tp: Max4Text,
6266    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
6267    pub othr_tp: Option<Max35Text>,
6268    #[validate]
6269    #[serde(rename = "Id")]
6270    pub id: Max70Text,
6271    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
6272    pub assgnr: Option<Max35Text>,
6273}
6274#[derive(
6275    Debug,
6276    Default,
6277    Clone,
6278    PartialEq,
6279    ::serde::Serialize,
6280    ::serde::Deserialize,
6281    ::derive_builder::Builder,
6282    ::validator::Validate,
6283)]
6284pub struct TransferService2 {
6285    #[serde(rename = "SvcPrvdr", skip_serializing_if = "Option::is_none")]
6286    pub svc_prvdr: Option<Max35Text>,
6287    #[serde(rename = "SvcNm", skip_serializing_if = "Option::is_none")]
6288    pub svc_nm: Option<Max35Text>,
6289    #[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
6290    pub r#ref: Option<Max35Text>,
6291    #[serde(rename = "BizPurp", skip_serializing_if = "Option::is_none")]
6292    pub biz_purp: Option<Max500Text>,
6293    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
6294    pub desc: Option<Max256Text>,
6295}
6296#[derive(
6297    Debug,
6298    Default,
6299    Clone,
6300    PartialEq,
6301    ::serde::Serialize,
6302    ::serde::Deserialize,
6303    ::derive_builder::Builder,
6304    ::validator::Validate,
6305)]
6306pub struct Iso8583TransactionTypeCode {
6307    #[validate(regex = "ISO_8583_TRANSACTION_TYPE_CODE_REGEX")]
6308    #[serde(rename = "$text")]
6309    pub value: String,
6310}
6311#[derive(
6312    Debug,
6313    Default,
6314    Clone,
6315    PartialEq,
6316    ::serde::Serialize,
6317    ::serde::Deserialize,
6318    ::derive_builder::Builder,
6319    ::validator::Validate,
6320)]
6321pub struct DigestedData5 {
6322    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
6323    pub vrsn: Option<Number>,
6324    #[validate]
6325    #[serde(rename = "DgstAlgo")]
6326    pub dgst_algo: AlgorithmIdentification21,
6327    #[validate]
6328    #[serde(rename = "NcpsltdCntt")]
6329    pub ncpsltd_cntt: EncapsulatedContent3,
6330    #[validate]
6331    #[serde(rename = "Dgst")]
6332    pub dgst: Max140Binary,
6333}
6334#[derive(
6335    Debug,
6336    Default,
6337    Clone,
6338    PartialEq,
6339    ::serde::Serialize,
6340    ::serde::Deserialize,
6341    ::derive_builder::Builder,
6342    ::validator::Validate,
6343)]
6344pub struct AdditionalData1 {
6345    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6346    pub tp: Option<Max35Text>,
6347    #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
6348    pub val: Option<Max2048Text>,
6349}
6350#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6351pub enum Frequency12Code {
6352    #[serde(rename = "YEAR")]
6353    Year,
6354    #[serde(rename = "DAIL")]
6355    Dail,
6356    #[serde(rename = "FRTN")]
6357    Frtn,
6358    #[serde(rename = "MNTH")]
6359    Mnth,
6360    #[serde(rename = "QURT")]
6361    Qurt,
6362    #[serde(rename = "MIAN")]
6363    Mian,
6364    #[serde(rename = "TEND")]
6365    Tend,
6366    #[serde(rename = "WEEK")]
6367    Week,
6368    #[default]
6369    Unknown,
6370}
6371#[derive(
6372    Debug,
6373    Default,
6374    Clone,
6375    PartialEq,
6376    ::serde::Serialize,
6377    ::serde::Deserialize,
6378    ::derive_builder::Builder,
6379    ::validator::Validate,
6380)]
6381pub struct Customer4 {
6382    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6383    pub tp: Option<CustomerType2Code>,
6384    #[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
6385    pub ref_nb: Option<Max35Text>,
6386    #[validate(length(min = 0,))]
6387    #[serde(rename = "TaxRegnId", default)]
6388    pub tax_regn_id: Vec<Max70Text>,
6389    #[serde(rename = "AuthrsdCtctCpny", skip_serializing_if = "Option::is_none")]
6390    pub authrsd_ctct_cpny: Option<Max70Text>,
6391    #[serde(rename = "AuthrsdCtctNm", skip_serializing_if = "Option::is_none")]
6392    pub authrsd_ctct_nm: Option<Max70Text>,
6393    #[serde(rename = "AuthrsdCtctPhneNb", skip_serializing_if = "Option::is_none")]
6394    pub authrsd_ctct_phne_nb: Option<PhoneNumber>,
6395    #[serde(rename = "VIPInd", skip_serializing_if = "Option::is_none")]
6396    pub vip_ind: Option<TrueFalseIndicator>,
6397    #[serde(rename = "CstmrRltsh", skip_serializing_if = "Option::is_none")]
6398    pub cstmr_rltsh: Option<Max35Text>,
6399}
6400#[derive(
6401    Debug,
6402    Default,
6403    Clone,
6404    PartialEq,
6405    ::serde::Serialize,
6406    ::serde::Deserialize,
6407    ::derive_builder::Builder,
6408    ::validator::Validate,
6409)]
6410pub struct Max210Text {
6411    #[validate(length(min = 1, max = 210,))]
6412    #[serde(rename = "$text")]
6413    pub value: String,
6414}
6415#[derive(
6416    Debug,
6417    Default,
6418    Clone,
6419    PartialEq,
6420    ::serde::Serialize,
6421    ::serde::Deserialize,
6422    ::derive_builder::Builder,
6423    ::validator::Validate,
6424)]
6425pub struct Iso3NumericCurrencyCode {
6426    #[validate(regex = "ISO_3_NUMERIC_CURRENCY_CODE_REGEX")]
6427    #[serde(rename = "$text")]
6428    pub value: String,
6429}
6430#[derive(
6431    Debug,
6432    Default,
6433    Clone,
6434    PartialEq,
6435    ::serde::Serialize,
6436    ::serde::Deserialize,
6437    ::derive_builder::Builder,
6438    ::validator::Validate,
6439)]
6440pub struct LocalAmenity1 {
6441    #[serde(rename = "Tp")]
6442    pub tp: LocationAmenity1Code,
6443    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
6444    pub othr_tp: Option<Max35Text>,
6445    #[serde(rename = "AvlblInd", skip_serializing_if = "Option::is_none")]
6446    pub avlbl_ind: Option<TrueFalseIndicator>,
6447}
6448#[derive(
6449    Debug,
6450    Default,
6451    Clone,
6452    PartialEq,
6453    ::serde::Serialize,
6454    ::serde::Deserialize,
6455    ::derive_builder::Builder,
6456    ::validator::Validate,
6457)]
6458pub struct ExternalEncryptedElementIdentification1Code {
6459    #[validate(regex = "EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX")]
6460    #[serde(rename = "$text")]
6461    pub value: String,
6462}
6463#[derive(
6464    Debug,
6465    Default,
6466    Clone,
6467    PartialEq,
6468    ::serde::Serialize,
6469    ::serde::Deserialize,
6470    ::derive_builder::Builder,
6471    ::validator::Validate,
6472)]
6473pub struct PinData1 {
6474    #[serde(rename = "Ctrl", skip_serializing_if = "Option::is_none")]
6475    pub ctrl: Option<Exact1HexBinaryText>,
6476    #[serde(rename = "KeySetIdr", skip_serializing_if = "Option::is_none")]
6477    pub key_set_idr: Option<Max8NumericText>,
6478    #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
6479    pub drvd_inf: Option<Max32HexBinaryText>,
6480    #[serde(rename = "Algo", skip_serializing_if = "Option::is_none")]
6481    pub algo: Option<Max2NumericText>,
6482    #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
6483    pub key_lngth: Option<Max4NumericText>,
6484    #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
6485    pub key_prtcn: Option<Max2NumericText>,
6486    #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
6487    pub key_indx: Option<Max5NumericText>,
6488    #[validate]
6489    #[serde(rename = "PINBlckFrmt")]
6490    pub pin_blck_frmt: Max2NumericText,
6491    #[validate]
6492    #[serde(rename = "NcrptdPINBlck")]
6493    pub ncrptd_pin_blck: Max16HexBinaryText,
6494}
6495#[derive(
6496    Debug,
6497    Default,
6498    Clone,
6499    PartialEq,
6500    ::serde::Serialize,
6501    ::serde::Deserialize,
6502    ::derive_builder::Builder,
6503    ::validator::Validate,
6504)]
6505pub struct KeyTransport5 {
6506    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
6507    pub vrsn: Option<Number>,
6508    #[serde(rename = "RcptId")]
6509    pub rcpt_id: Recipient5Choice,
6510    #[validate]
6511    #[serde(rename = "KeyNcrptnAlgo")]
6512    pub key_ncrptn_algo: AlgorithmIdentification19,
6513    #[validate]
6514    #[serde(rename = "NcrptdKey")]
6515    pub ncrptd_key: Max5000Binary,
6516}
6517#[derive(
6518    Debug,
6519    Default,
6520    Clone,
6521    PartialEq,
6522    ::serde::Serialize,
6523    ::serde::Deserialize,
6524    ::derive_builder::Builder,
6525    ::validator::Validate,
6526)]
6527pub struct Max3NumericText {
6528    #[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
6529    #[serde(rename = "$text")]
6530    pub value: String,
6531}
6532#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6533pub enum FundingSourceType2Code {
6534    #[serde(rename = "LOYL")]
6535    Loyl,
6536    #[serde(rename = "OTHN")]
6537    Othn,
6538    #[serde(rename = "OTHP")]
6539    Othp,
6540    #[serde(rename = "SVNG")]
6541    Svng,
6542    #[serde(rename = "UVRL")]
6543    Uvrl,
6544    #[serde(rename = "CASH")]
6545    Cash,
6546    #[serde(rename = "CRDT")]
6547    Crdt,
6548    #[serde(rename = "CDBT")]
6549    Cdbt,
6550    #[serde(rename = "EPRS")]
6551    Eprs,
6552    #[serde(rename = "DBAC")]
6553    Dbac,
6554    #[serde(rename = "CURR")]
6555    Curr,
6556    #[serde(rename = "CHQE")]
6557    Chqe,
6558    #[serde(rename = "PRPD")]
6559    Prpd,
6560    #[serde(rename = "LCDT")]
6561    Lcdt,
6562    #[default]
6563    Unknown,
6564}
6565#[derive(
6566    Debug,
6567    Default,
6568    Clone,
6569    PartialEq,
6570    ::serde::Serialize,
6571    ::serde::Deserialize,
6572    ::derive_builder::Builder,
6573    ::validator::Validate,
6574)]
6575pub struct EncryptedDataElement1 {
6576    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
6577    pub id: Option<ExternalEncryptedElementIdentification1Code>,
6578    #[serde(rename = "OthrId", skip_serializing_if = "Option::is_none")]
6579    pub othr_id: Option<Max35Text>,
6580    #[serde(rename = "NcrptdData")]
6581    pub ncrptd_data: EncryptedData1Choice,
6582    #[serde(rename = "ClearTxtDataFrmt", skip_serializing_if = "Option::is_none")]
6583    pub clear_txt_data_frmt: Option<EncryptedDataFormat1Code>,
6584    #[serde(
6585        rename = "OthrClearTxtDataFrmt",
6586        skip_serializing_if = "Option::is_none"
6587    )]
6588    pub othr_clear_txt_data_frmt: Option<Max35Text>,
6589}
6590#[derive(
6591    Debug,
6592    Default,
6593    Clone,
6594    PartialEq,
6595    ::serde::Serialize,
6596    ::serde::Deserialize,
6597    ::derive_builder::Builder,
6598    ::validator::Validate,
6599)]
6600pub struct InterestRateDetails2 {
6601    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6602    pub tp: Option<InterestRate1Code>,
6603    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
6604    pub othr_tp: Option<Max35Text>,
6605    #[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
6606    pub prd: Option<InstalmentPeriod1Code>,
6607    #[validate]
6608    #[serde(rename = "Rate")]
6609    pub rate: BaseOneRate,
6610}
6611#[derive(
6612    Debug,
6613    Default,
6614    Clone,
6615    PartialEq,
6616    ::serde::Serialize,
6617    ::serde::Deserialize,
6618    ::derive_builder::Builder,
6619    ::validator::Validate,
6620)]
6621pub struct Instalment4 {
6622    #[serde(rename = "PmtSeqNb", skip_serializing_if = "Option::is_none")]
6623    pub pmt_seq_nb: Option<Number>,
6624    #[validate(length(min = 0,))]
6625    #[serde(rename = "Plan", default)]
6626    pub plan: Vec<Plan2>,
6627}
6628#[derive(
6629    Debug,
6630    Default,
6631    Clone,
6632    PartialEq,
6633    ::serde::Serialize,
6634    ::serde::Deserialize,
6635    ::derive_builder::Builder,
6636    ::validator::Validate,
6637)]
6638pub struct IssuerAndSerialNumber1 {
6639    #[validate]
6640    #[serde(rename = "Issr")]
6641    pub issr: CertificateIssuer1,
6642    #[validate]
6643    #[serde(rename = "SrlNb")]
6644    pub srl_nb: Max35Binary,
6645}
6646#[derive(
6647    Debug,
6648    Default,
6649    Clone,
6650    PartialEq,
6651    ::serde::Serialize,
6652    ::serde::Deserialize,
6653    ::derive_builder::Builder,
6654    ::validator::Validate,
6655)]
6656pub struct Parameter12 {
6657    #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
6658    pub ncrptn_frmt: Option<EncryptionFormat2Code>,
6659    #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
6660    pub initlstn_vctr: Option<Max500Binary>,
6661    #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
6662    pub b_pddg: Option<BytePadding1Code>,
6663}
6664#[derive(
6665    Debug,
6666    Default,
6667    Clone,
6668    PartialEq,
6669    ::serde::Serialize,
6670    ::serde::Deserialize,
6671    ::derive_builder::Builder,
6672    ::validator::Validate,
6673)]
6674pub struct KeyTransport6 {
6675    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
6676    pub vrsn: Option<Number>,
6677    #[serde(rename = "RcptId")]
6678    pub rcpt_id: Recipient5Choice,
6679    #[validate]
6680    #[serde(rename = "KeyNcrptnAlgo")]
6681    pub key_ncrptn_algo: AlgorithmIdentification27,
6682    #[validate]
6683    #[serde(rename = "NcrptdKey")]
6684    pub ncrptd_key: Max5000Binary,
6685}
6686#[derive(
6687    Debug,
6688    Default,
6689    Clone,
6690    PartialEq,
6691    ::serde::Serialize,
6692    ::serde::Deserialize,
6693    ::derive_builder::Builder,
6694    ::validator::Validate,
6695)]
6696pub struct TelecomServicesSummary2 {
6697    #[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
6698    pub cstmr: Option<Customer6>,
6699    #[serde(rename = "BllgStmtPrdStart", skip_serializing_if = "Option::is_none")]
6700    pub bllg_stmt_prd_start: Option<IsoDate>,
6701    #[serde(rename = "BllgStmtPrdEnd", skip_serializing_if = "Option::is_none")]
6702    pub bllg_stmt_prd_end: Option<IsoDate>,
6703    #[validate(length(min = 0,))]
6704    #[serde(rename = "BllgEvt", default)]
6705    pub bllg_evt: Vec<Amount19>,
6706    #[validate(length(min = 0,))]
6707    #[serde(rename = "TtlTax", default)]
6708    pub ttl_tax: Vec<Tax39>,
6709    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
6710    pub addtl_data: Option<Max350Text>,
6711}
6712#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6713pub enum RiskAssessment1Code {
6714    #[serde(rename = "APPC")]
6715    Appc,
6716    #[serde(rename = "APPH")]
6717    Apph,
6718    #[serde(rename = "APPU")]
6719    Appu,
6720    #[serde(rename = "DONT")]
6721    Dont,
6722    #[default]
6723    Unknown,
6724}
6725#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6726pub enum TransactionAttribute2Code {
6727    #[serde(rename = "AGGR")]
6728    Aggr,
6729    #[serde(rename = "CADB")]
6730    Cadb,
6731    #[serde(rename = "CPLT")]
6732    Cplt,
6733    #[serde(rename = "DBRC")]
6734    Dbrc,
6735    #[serde(rename = "DBRP")]
6736    Dbrp,
6737    #[serde(rename = "DFRD")]
6738    Dfrd,
6739    #[serde(rename = "INCR")]
6740    Incr,
6741    #[serde(rename = "FRCP")]
6742    Frcp,
6743    #[serde(rename = "INST")]
6744    Inst,
6745    #[serde(rename = "OTHN")]
6746    Othn,
6747    #[serde(rename = "OTHP")]
6748    Othp,
6749    #[serde(rename = "PAUT")]
6750    Paut,
6751    #[serde(rename = "PACP")]
6752    Pacp,
6753    #[serde(rename = "PPYT")]
6754    Ppyt,
6755    #[serde(rename = "RCPT")]
6756    Rcpt,
6757    #[serde(rename = "SUBR")]
6758    Subr,
6759    #[serde(rename = "TPUP")]
6760    Tpup,
6761    #[serde(rename = "UCOF")]
6762    Ucof,
6763    #[default]
6764    Unknown,
6765}
6766#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6767pub enum LoyaltyValueType1Code {
6768    #[serde(rename = "MILE")]
6769    Mile,
6770    #[serde(rename = "MONE")]
6771    Mone,
6772    #[serde(rename = "OTHR")]
6773    Othr,
6774    #[serde(rename = "POIN")]
6775    Poin,
6776    #[serde(rename = "PRIV")]
6777    Priv,
6778    #[default]
6779    Unknown,
6780}
6781#[derive(
6782    Debug,
6783    Default,
6784    Clone,
6785    PartialEq,
6786    ::serde::Serialize,
6787    ::serde::Deserialize,
6788    ::derive_builder::Builder,
6789    ::validator::Validate,
6790)]
6791pub struct OriginalTransaction2 {
6792    #[serde(rename = "Envt", skip_serializing_if = "Option::is_none")]
6793    pub envt: Option<Environment20>,
6794    #[serde(rename = "Cntxt", skip_serializing_if = "Option::is_none")]
6795    pub cntxt: Option<Context12>,
6796    #[serde(rename = "Tx", skip_serializing_if = "Option::is_none")]
6797    pub tx: Option<Transaction147>,
6798    #[serde(rename = "PrcgRslt", skip_serializing_if = "Option::is_none")]
6799    pub prcg_rslt: Option<ProcessingResult10>,
6800}
6801#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6802pub enum CarRentalActivity1Code {
6803    #[serde(rename = "CARS")]
6804    Cars,
6805    #[serde(rename = "GLBL")]
6806    Glbl,
6807    #[serde(rename = "INDV")]
6808    Indv,
6809    #[serde(rename = "PETP")]
6810    Petp,
6811    #[serde(rename = "OTHP")]
6812    Othp,
6813    #[serde(rename = "OTHN")]
6814    Othn,
6815    #[serde(rename = "OTHR")]
6816    Othr,
6817    #[default]
6818    Unknown,
6819}
6820#[derive(
6821    Debug,
6822    Default,
6823    Clone,
6824    PartialEq,
6825    ::serde::Serialize,
6826    ::serde::Deserialize,
6827    ::derive_builder::Builder,
6828    ::validator::Validate,
6829)]
6830pub struct PartyIdentification257 {
6831    #[serde(rename = "FI", skip_serializing_if = "Option::is_none")]
6832    pub fi: Option<FinancialInstitution7>,
6833    #[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
6834    pub cstmr: Option<Customer7>,
6835}
6836#[derive(
6837    Debug,
6838    Default,
6839    Clone,
6840    PartialEq,
6841    ::serde::Serialize,
6842    ::serde::Deserialize,
6843    ::derive_builder::Builder,
6844    ::validator::Validate,
6845)]
6846pub struct Parameter7 {
6847    #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
6848    pub initlstn_vctr: Option<Max500Binary>,
6849    #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
6850    pub b_pddg: Option<BytePadding1Code>,
6851}
6852#[derive(
6853    Debug,
6854    Default,
6855    Clone,
6856    PartialEq,
6857    ::serde::Serialize,
6858    ::serde::Deserialize,
6859    ::derive_builder::Builder,
6860    ::validator::Validate,
6861)]
6862pub struct CardData7 {
6863    #[serde(rename = "PAN", skip_serializing_if = "Option::is_none")]
6864    pub pan: Option<Max19NumericText>,
6865    #[serde(rename = "PrtctdPANInd", skip_serializing_if = "Option::is_none")]
6866    pub prtctd_pan_ind: Option<TrueFalseIndicator>,
6867    #[serde(rename = "CardSeqNb", skip_serializing_if = "Option::is_none")]
6868    pub card_seq_nb: Option<Min2Max3NumericText>,
6869    #[serde(rename = "FctvDt", skip_serializing_if = "Option::is_none")]
6870    pub fctv_dt: Option<IsoYearMonth>,
6871    #[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")]
6872    pub xpry_dt: Option<IsoYearMonth>,
6873    #[serde(rename = "PmtAcctRef", skip_serializing_if = "Option::is_none")]
6874    pub pmt_acct_ref: Option<Max35Text>,
6875    #[serde(rename = "PANAcctRg", skip_serializing_if = "Option::is_none")]
6876    pub pan_acct_rg: Option<Max19NumericText>,
6877    #[serde(rename = "CardCtryCd", skip_serializing_if = "Option::is_none")]
6878    pub card_ctry_cd: Option<Iso3NumericCountryCode>,
6879    #[serde(rename = "CardPdctTp", skip_serializing_if = "Option::is_none")]
6880    pub card_pdct_tp: Option<Max35Text>,
6881    #[serde(rename = "CardPdctSubTp", skip_serializing_if = "Option::is_none")]
6882    pub card_pdct_sub_tp: Option<Max35Text>,
6883    #[serde(rename = "CardPrtflIdr", skip_serializing_if = "Option::is_none")]
6884    pub card_prtfl_idr: Option<Max35Text>,
6885    #[validate(length(min = 0,))]
6886    #[serde(rename = "AddtlCardData", default)]
6887    pub addtl_card_data: Vec<AdditionalData1>,
6888}
6889#[derive(
6890    Debug,
6891    Default,
6892    Clone,
6893    PartialEq,
6894    ::serde::Serialize,
6895    ::serde::Deserialize,
6896    ::derive_builder::Builder,
6897    ::validator::Validate,
6898)]
6899pub struct Contact2 {
6900    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
6901    pub nm: Option<Max70Text>,
6902    #[serde(rename = "HomePhneNb", skip_serializing_if = "Option::is_none")]
6903    pub home_phne_nb: Option<PhoneNumber>,
6904    #[serde(rename = "BizPhneNb", skip_serializing_if = "Option::is_none")]
6905    pub biz_phne_nb: Option<PhoneNumber>,
6906    #[serde(rename = "MobPhneNb", skip_serializing_if = "Option::is_none")]
6907    pub mob_phne_nb: Option<PhoneNumber>,
6908    #[serde(rename = "OthrPhneNb", skip_serializing_if = "Option::is_none")]
6909    pub othr_phne_nb: Option<PhoneNumber>,
6910    #[serde(rename = "PrsnlEmailAdr", skip_serializing_if = "Option::is_none")]
6911    pub prsnl_email_adr: Option<Max256Text>,
6912    #[serde(rename = "BizEmailAdr", skip_serializing_if = "Option::is_none")]
6913    pub biz_email_adr: Option<Max256Text>,
6914    #[serde(rename = "OthrEmailAdr", skip_serializing_if = "Option::is_none")]
6915    pub othr_email_adr: Option<Max256Text>,
6916    #[serde(rename = "HomeFaxNb", skip_serializing_if = "Option::is_none")]
6917    pub home_fax_nb: Option<PhoneNumber>,
6918    #[serde(rename = "BizFaxNb", skip_serializing_if = "Option::is_none")]
6919    pub biz_fax_nb: Option<PhoneNumber>,
6920    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
6921    pub url_adr: Option<Max256Text>,
6922    #[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
6923    pub lang: Option<Iso2ALanguageCode>,
6924}
6925#[derive(
6926    Debug,
6927    Default,
6928    Clone,
6929    PartialEq,
6930    ::serde::Serialize,
6931    ::serde::Deserialize,
6932    ::derive_builder::Builder,
6933    ::validator::Validate,
6934)]
6935pub struct SettlementServiceMode1 {
6936    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
6937    pub tp: Option<Max35Text>,
6938    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
6939    pub id: Option<Max35Text>,
6940    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
6941    pub shrt_nm: Option<Max35Text>,
6942    #[serde(rename = "SttlmPrty", skip_serializing_if = "Option::is_none")]
6943    pub sttlm_prty: Option<Priority3Code>,
6944}
6945#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
6946pub enum AddendumTaxType2Code {
6947    #[serde(rename = "TOTL")]
6948    Totl,
6949    #[serde(rename = "ALMI")]
6950    Almi,
6951    #[serde(rename = "ASNT")]
6952    Asnt,
6953    #[serde(rename = "BPTX")]
6954    Bptx,
6955    #[serde(rename = "KAPA")]
6956    Kapa,
6957    #[serde(rename = "NKAP")]
6958    Nkap,
6959    #[serde(rename = "CRTX")]
6960    Crtx,
6961    #[serde(rename = "CSTX")]
6962    Cstx,
6963    #[serde(rename = "CITX")]
6964    Citx,
6965    #[serde(rename = "COAX")]
6966    Coax,
6967    #[serde(rename = "CPST")]
6968    Cpst,
6969    #[serde(rename = "CORT")]
6970    Cort,
6971    #[serde(rename = "COTX")]
6972    Cotx,
6973    #[serde(rename = "CUST")]
6974    Cust,
6975    #[serde(rename = "DLTX")]
6976    Dltx,
6977    #[serde(rename = "DUTY")]
6978    Duty,
6979    #[serde(rename = "EMIT")]
6980    Emit,
6981    #[serde(rename = "EMUT")]
6982    Emut,
6983    #[serde(rename = "EMET")]
6984    Emet,
6985    #[serde(rename = "EMST")]
6986    Emst,
6987    #[serde(rename = "EMRT")]
6988    Emrt,
6989    #[serde(rename = "ENTX")]
6990    Entx,
6991    #[serde(rename = "ESET")]
6992    Eset,
6993    #[serde(rename = "ENVT")]
6994    Envt,
6995    #[serde(rename = "EQUL")]
6996    Equl,
6997    #[serde(rename = "EQTX")]
6998    Eqtx,
6999    #[serde(rename = "EUTR")]
7000    Eutr,
7001    #[serde(rename = "EXEC")]
7002    Exec,
7003    #[serde(rename = "FEXT")]
7004    Fext,
7005    #[serde(rename = "FNST")]
7006    Fnst,
7007    #[serde(rename = "FETX")]
7008    Fetx,
7009    #[serde(rename = "FVAT")]
7010    Fvat,
7011    #[serde(rename = "FVTS")]
7012    Fvts,
7013    #[serde(rename = "FIMT")]
7014    Fimt,
7015    #[serde(rename = "FSST")]
7016    Fsst,
7017    #[serde(rename = "FICA")]
7018    Fica,
7019    #[serde(rename = "FRTX")]
7020    Frtx,
7021    #[serde(rename = "FSTX")]
7022    Fstx,
7023    #[serde(rename = "FSFT")]
7024    Fsft,
7025    #[serde(rename = "FUVT")]
7026    Fuvt,
7027    #[serde(rename = "GIFT")]
7028    Gift,
7029    #[serde(rename = "GCAT")]
7030    Gcat,
7031    #[serde(rename = "GRTX")]
7032    Grtx,
7033    #[serde(rename = "HVAT")]
7034    Hvat,
7035    #[serde(rename = "HATX")]
7036    Hatx,
7037    #[serde(rename = "HSTX")]
7038    Hstx,
7039    #[serde(rename = "HWTX")]
7040    Hwtx,
7041    #[serde(rename = "INHT")]
7042    Inht,
7043    #[serde(rename = "INPO")]
7044    Inpo,
7045    #[serde(rename = "LTTX")]
7046    Lttx,
7047    #[serde(rename = "FLST")]
7048    Flst,
7049    #[serde(rename = "LITX")]
7050    Litx,
7051    #[serde(rename = "LOCO")]
7052    Loco,
7053    #[serde(rename = "LSTX")]
7054    Lstx,
7055    #[serde(rename = "LOCL")]
7056    Locl,
7057    #[serde(rename = "LUTX")]
7058    Lutx,
7059    #[serde(rename = "MATX")]
7060    Matx,
7061    #[serde(rename = "METX")]
7062    Metx,
7063    #[serde(rename = "MITX")]
7064    Mitx,
7065    #[serde(rename = "MUTX")]
7066    Mutx,
7067    #[serde(rename = "MUDE")]
7068    Mude,
7069    #[serde(rename = "COUN")]
7070    Coun,
7071    #[serde(rename = "NATI")]
7072    Nati,
7073    #[serde(rename = "OCTX")]
7074    Octx,
7075    #[serde(rename = "OPTX")]
7076    Optx,
7077    #[serde(rename = "OTHR")]
7078    Othr,
7079    #[serde(rename = "OTHN")]
7080    Othn,
7081    #[serde(rename = "OTHP")]
7082    Othp,
7083    #[serde(rename = "OTTX")]
7084    Ottx,
7085    #[serde(rename = "LEVY")]
7086    Levy,
7087    #[serde(rename = "POTX")]
7088    Potx,
7089    #[serde(rename = "PRTX")]
7090    Prtx,
7091    #[serde(rename = "PSTX")]
7092    Pstx,
7093    #[serde(rename = "PPTX")]
7094    Pptx,
7095    #[serde(rename = "PROV")]
7096    Prov,
7097    #[serde(rename = "PHET")]
7098    Phet,
7099    #[serde(rename = "QUST")]
7100    Qust,
7101    #[serde(rename = "ROCI")]
7102    Roci,
7103    #[serde(rename = "RCSB")]
7104    Rcsb,
7105    #[serde(rename = "RCSD")]
7106    Rcsd,
7107    #[serde(rename = "ROTX")]
7108    Rotx,
7109    #[serde(rename = "RVAT")]
7110    Rvat,
7111    #[serde(rename = "ROVI")]
7112    Rovi,
7113    #[serde(rename = "SAUT")]
7114    Saut,
7115    #[serde(rename = "SCTX")]
7116    Sctx,
7117    #[serde(rename = "SPTX")]
7118    Sptx,
7119    #[serde(rename = "STTA")]
7120    Stta,
7121    #[serde(rename = "STAM")]
7122    Stam,
7123    #[serde(rename = "SLST")]
7124    Slst,
7125    #[serde(rename = "SLTX")]
7126    Sltx,
7127    #[serde(rename = "SETX")]
7128    Setx,
7129    #[serde(rename = "STPT")]
7130    Stpt,
7131    #[serde(rename = "SPTS")]
7132    Spts,
7133    #[serde(rename = "SPFT")]
7134    Spft,
7135    #[serde(rename = "SPTG")]
7136    Sptg,
7137    #[serde(rename = "SRTX")]
7138    Srtx,
7139    #[serde(rename = "SSTX")]
7140    Sstx,
7141    #[serde(rename = "STAT")]
7142    Stat,
7143    #[serde(rename = "STSL")]
7144    Stsl,
7145    #[serde(rename = "STEX")]
7146    Stex,
7147    #[serde(rename = "SUTX")]
7148    Sutx,
7149    #[serde(rename = "CTAX")]
7150    Ctax,
7151    #[serde(rename = "TDDT")]
7152    Tddt,
7153    #[serde(rename = "TELT")]
7154    Telt,
7155    #[serde(rename = "THTX")]
7156    Thtx,
7157    #[serde(rename = "TRAX")]
7158    Trax,
7159    #[serde(rename = "TRAN")]
7160    Tran,
7161    #[serde(rename = "UNSP")]
7162    Unsp,
7163    #[serde(rename = "UUTX")]
7164    Uutx,
7165    #[serde(rename = "VATA")]
7166    Vata,
7167    #[serde(rename = "VATB")]
7168    Vatb,
7169    #[serde(rename = "WTAX")]
7170    Wtax,
7171    #[serde(rename = "WESV")]
7172    Wesv,
7173    #[serde(rename = "WITF")]
7174    Witf,
7175    #[serde(rename = "WITL")]
7176    Witl,
7177    #[serde(rename = "WITH")]
7178    With,
7179    #[serde(rename = "TNRT")]
7180    Tnrt,
7181    #[default]
7182    Unknown,
7183}
7184#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7185pub enum PartyType26Code {
7186    #[serde(rename = "ACCP")]
7187    Accp,
7188    #[serde(rename = "ACQR")]
7189    Acqr,
7190    #[serde(rename = "ICCA")]
7191    Icca,
7192    #[serde(rename = "CISS")]
7193    Ciss,
7194    #[serde(rename = "DLIS")]
7195    Dlis,
7196    #[serde(rename = "AGNT")]
7197    Agnt,
7198    #[serde(rename = "OTHN")]
7199    Othn,
7200    #[serde(rename = "OTHP")]
7201    Othp,
7202    #[default]
7203    Unknown,
7204}
7205#[derive(
7206    Debug,
7207    Default,
7208    Clone,
7209    PartialEq,
7210    ::serde::Serialize,
7211    ::serde::Deserialize,
7212    ::derive_builder::Builder,
7213    ::validator::Validate,
7214)]
7215pub struct YesNoIndicator {
7216    #[serde(rename = "$text")]
7217    pub value: bool,
7218}
7219#[derive(
7220    Debug,
7221    Default,
7222    Clone,
7223    PartialEq,
7224    ::serde::Serialize,
7225    ::serde::Deserialize,
7226    ::derive_builder::Builder,
7227    ::validator::Validate,
7228)]
7229pub struct Credentials2 {
7230    #[serde(rename = "IdCd")]
7231    pub id_cd: Identification3Code,
7232    #[serde(rename = "OthrIdCd", skip_serializing_if = "Option::is_none")]
7233    pub othr_id_cd: Option<Max35Text>,
7234    #[validate]
7235    #[serde(rename = "IdVal")]
7236    pub id_val: Max70Text,
7237    #[serde(rename = "IdXpryDt", skip_serializing_if = "Option::is_none")]
7238    pub id_xpry_dt: Option<IsoYearMonth>,
7239    #[serde(rename = "AssgnrAuthrty", skip_serializing_if = "Option::is_none")]
7240    pub assgnr_authrty: Option<Authority1>,
7241}
7242#[derive(
7243    Debug,
7244    Default,
7245    Clone,
7246    PartialEq,
7247    ::serde::Serialize,
7248    ::serde::Deserialize,
7249    ::derive_builder::Builder,
7250    ::validator::Validate,
7251)]
7252pub struct Max12NumericText {
7253    #[validate(regex = "MAX_12_NUMERIC_TEXT_REGEX")]
7254    #[serde(rename = "$text")]
7255    pub value: String,
7256}
7257#[derive(
7258    Debug,
7259    Default,
7260    Clone,
7261    PartialEq,
7262    ::serde::Serialize,
7263    ::serde::Deserialize,
7264    ::derive_builder::Builder,
7265    ::validator::Validate,
7266)]
7267pub struct Max19HexBinaryText {
7268    #[validate(regex = "MAX_19_HEX_BINARY_TEXT_REGEX")]
7269    #[serde(rename = "$text")]
7270    pub value: String,
7271}
7272#[derive(
7273    Debug,
7274    Default,
7275    Clone,
7276    PartialEq,
7277    ::serde::Serialize,
7278    ::serde::Deserialize,
7279    ::derive_builder::Builder,
7280    ::validator::Validate,
7281)]
7282pub struct Max5NumericText {
7283    #[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
7284    #[serde(rename = "$text")]
7285    pub value: String,
7286}
7287#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7288pub enum CardDataReading9Code {
7289    #[serde(rename = "UNKW")]
7290    Unkw,
7291    #[serde(rename = "OTHN")]
7292    Othn,
7293    #[serde(rename = "OTHP")]
7294    Othp,
7295    #[serde(rename = "CAMR")]
7296    Camr,
7297    #[serde(rename = "KEEN")]
7298    Keen,
7299    #[serde(rename = "ICPY")]
7300    Icpy,
7301    #[serde(rename = "OPTC")]
7302    Optc,
7303    #[serde(rename = "CDFL")]
7304    Cdfl,
7305    #[serde(rename = "MBNK")]
7306    Mbnk,
7307    #[serde(rename = "TOKN")]
7308    Tokn,
7309    #[serde(rename = "ICCY")]
7310    Iccy,
7311    #[default]
7312    Unknown,
7313}
7314#[derive(
7315    Debug,
7316    Default,
7317    Clone,
7318    PartialEq,
7319    ::serde::Serialize,
7320    ::serde::Deserialize,
7321    ::derive_builder::Builder,
7322    ::validator::Validate,
7323)]
7324pub struct AlgorithmIdentification19 {
7325    #[serde(rename = "Algo")]
7326    pub algo: Algorithm7Code,
7327    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
7328    pub param: Option<Parameter10>,
7329}
7330#[derive(
7331    Debug,
7332    Default,
7333    Clone,
7334    PartialEq,
7335    ::serde::Serialize,
7336    ::serde::Deserialize,
7337    ::derive_builder::Builder,
7338    ::validator::Validate,
7339)]
7340pub struct ErrorDetails2 {
7341    #[serde(rename = "MsgErrTp")]
7342    pub msg_err_tp: MessageError1Code,
7343    #[serde(rename = "OthrMsgErrTp", skip_serializing_if = "Option::is_none")]
7344    pub othr_msg_err_tp: Option<Max35Text>,
7345    #[serde(rename = "ErrCd", skip_serializing_if = "Option::is_none")]
7346    pub err_cd: Option<Max35Text>,
7347    #[serde(rename = "ErrDesc", skip_serializing_if = "Option::is_none")]
7348    pub err_desc: Option<Max500Text>,
7349    #[validate(length(min = 0,))]
7350    #[serde(rename = "DataElmtInErr", default)]
7351    pub data_elmt_in_err: Vec<Max4000Text>,
7352}
7353#[derive(
7354    Debug,
7355    Default,
7356    Clone,
7357    PartialEq,
7358    ::serde::Serialize,
7359    ::serde::Deserialize,
7360    ::derive_builder::Builder,
7361    ::validator::Validate,
7362)]
7363pub struct PassengerTransport2 {
7364    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
7365    pub summry: Option<PassengerTransportSummary2>,
7366    #[validate(length(min = 0,))]
7367    #[serde(rename = "TripLeg", default)]
7368    pub trip_leg: Vec<TripLeg2>,
7369    #[validate(length(min = 0,))]
7370    #[serde(rename = "AncllryPurchs", default)]
7371    pub ancllry_purchs: Vec<AncillaryPurchase2>,
7372    #[validate(length(min = 0,))]
7373    #[serde(rename = "HirdVhclDtls", default)]
7374    pub hird_vhcl_dtls: Vec<HiredVehicle2>,
7375}
7376#[derive(
7377    Debug,
7378    Default,
7379    Clone,
7380    PartialEq,
7381    ::serde::Serialize,
7382    ::serde::Deserialize,
7383    ::derive_builder::Builder,
7384    ::validator::Validate,
7385)]
7386pub struct Max6NumberFraction2 {
7387    #[serde(rename = "$text")]
7388    pub value: f64,
7389}
7390#[derive(
7391    Debug,
7392    Default,
7393    Clone,
7394    PartialEq,
7395    ::serde::Serialize,
7396    ::serde::Deserialize,
7397    ::derive_builder::Builder,
7398    ::validator::Validate,
7399)]
7400pub struct GenericInformation1 {
7401    #[validate]
7402    #[serde(rename = "Nm")]
7403    pub nm: Max70Text,
7404    #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
7405    pub val: Option<Max140Text>,
7406}
7407#[derive(
7408    Debug,
7409    Default,
7410    Clone,
7411    PartialEq,
7412    ::serde::Serialize,
7413    ::serde::Deserialize,
7414    ::derive_builder::Builder,
7415    ::validator::Validate,
7416)]
7417pub struct Max20KText {
7418    #[validate(length(min = 1, max = 20000,))]
7419    #[serde(rename = "$text")]
7420    pub value: String,
7421}
7422#[derive(
7423    Debug,
7424    Default,
7425    Clone,
7426    PartialEq,
7427    ::serde::Serialize,
7428    ::serde::Deserialize,
7429    ::derive_builder::Builder,
7430    ::validator::Validate,
7431)]
7432pub struct ProtectedData1 {
7433    #[serde(rename = "CnttTp")]
7434    pub cntt_tp: ContentType3Code,
7435    #[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
7436    pub envlpd_data: Option<EnvelopedData6>,
7437    #[serde(rename = "NcrptdData", skip_serializing_if = "Option::is_none")]
7438    pub ncrptd_data: Option<EncryptedData1>,
7439}
7440#[derive(
7441    Debug,
7442    Default,
7443    Clone,
7444    PartialEq,
7445    ::serde::Serialize,
7446    ::serde::Deserialize,
7447    ::derive_builder::Builder,
7448    ::validator::Validate,
7449)]
7450pub struct Max140Binary {
7451    #[validate(length(min = 1, max = 140,), regex = "MAX_140_BINARY_REGEX")]
7452    pub value: String,
7453}
7454#[derive(
7455    Debug,
7456    Default,
7457    Clone,
7458    PartialEq,
7459    ::serde::Serialize,
7460    ::serde::Deserialize,
7461    ::derive_builder::Builder,
7462    ::validator::Validate,
7463)]
7464pub struct Max4000Text {
7465    #[validate(length(min = 1, max = 4000,))]
7466    #[serde(rename = "$text")]
7467    pub value: String,
7468}
7469#[derive(
7470    Debug,
7471    Default,
7472    Clone,
7473    PartialEq,
7474    ::serde::Serialize,
7475    ::serde::Deserialize,
7476    ::derive_builder::Builder,
7477    ::validator::Validate,
7478)]
7479pub struct IsoCountrySubDivisionCode {
7480    #[validate(regex = "ISO_COUNTRY_SUB_DIVISION_CODE_REGEX")]
7481    #[serde(rename = "$text")]
7482    pub value: String,
7483}
7484#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7485pub enum Identification3Code {
7486    #[serde(rename = "DRID")]
7487    Drid,
7488    #[serde(rename = "NTID")]
7489    Ntid,
7490    #[serde(rename = "PASS")]
7491    Pass,
7492    #[serde(rename = "SSYN")]
7493    Ssyn,
7494    #[serde(rename = "ARNB")]
7495    Arnb,
7496    #[serde(rename = "OTHP")]
7497    Othp,
7498    #[serde(rename = "OTHN")]
7499    Othn,
7500    #[serde(rename = "EMAL")]
7501    Emal,
7502    #[serde(rename = "PHNB")]
7503    Phnb,
7504    #[serde(rename = "CUID")]
7505    Cuid,
7506    #[serde(rename = "TXID")]
7507    Txid,
7508    #[serde(rename = "PRXY")]
7509    Prxy,
7510    #[default]
7511    Unknown,
7512}
7513#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7514pub enum TelephonyCallType1Code {
7515    #[serde(rename = "VCML")]
7516    Vcml,
7517    #[serde(rename = "TFPC")]
7518    Tfpc,
7519    #[serde(rename = "PAGE")]
7520    Page,
7521    #[serde(rename = "OGPC")]
7522    Ogpc,
7523    #[serde(rename = "OTHP")]
7524    Othp,
7525    #[serde(rename = "OTHN")]
7526    Othn,
7527    #[serde(rename = "OTCL")]
7528    Otcl,
7529    #[serde(rename = "ICPC")]
7530    Icpc,
7531    #[default]
7532    Unknown,
7533}
7534#[derive(
7535    Debug,
7536    Default,
7537    Clone,
7538    PartialEq,
7539    ::serde::Serialize,
7540    ::serde::Deserialize,
7541    ::derive_builder::Builder,
7542    ::validator::Validate,
7543)]
7544pub struct Verification5 {
7545    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
7546    pub tp: Option<ExternalAuthenticationMethod1Code>,
7547    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
7548    pub othr_tp: Option<Max35Text>,
7549    #[serde(rename = "SubTp", skip_serializing_if = "Option::is_none")]
7550    pub sub_tp: Option<Max35Text>,
7551    #[validate(length(min = 0,))]
7552    #[serde(rename = "VrfctnInf", default)]
7553    pub vrfctn_inf: Vec<VerificationInformation1>,
7554    #[validate(length(min = 0,))]
7555    #[serde(rename = "VrfctnRslt", default)]
7556    pub vrfctn_rslt: Vec<VerificationResult2>,
7557}
7558#[derive(
7559    Debug,
7560    Default,
7561    Clone,
7562    PartialEq,
7563    ::serde::Serialize,
7564    ::serde::Deserialize,
7565    ::derive_builder::Builder,
7566    ::validator::Validate,
7567)]
7568pub struct AlgorithmIdentification12 {
7569    #[serde(rename = "Algo")]
7570    pub algo: Algorithm8Code,
7571    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
7572    pub param: Option<Parameter5>,
7573}
7574#[derive(
7575    Debug,
7576    Default,
7577    Clone,
7578    PartialEq,
7579    ::serde::Serialize,
7580    ::serde::Deserialize,
7581    ::derive_builder::Builder,
7582    ::validator::Validate,
7583)]
7584pub struct DisputeData3 {
7585    #[serde(rename = "PresntmntCycl", skip_serializing_if = "Option::is_none")]
7586    pub presntmnt_cycl: Option<Exact1NumericText>,
7587    #[serde(rename = "DsptCond", skip_serializing_if = "Option::is_none")]
7588    pub dspt_cond: Option<Max35Text>,
7589    #[serde(rename = "DsptSts", skip_serializing_if = "Option::is_none")]
7590    pub dspt_sts: Option<Max35Text>,
7591    #[serde(rename = "PrtlDspt", skip_serializing_if = "Option::is_none")]
7592    pub prtl_dspt: Option<YesNoIndicator>,
7593    #[validate(length(min = 0,))]
7594    #[serde(rename = "DsptRef", default)]
7595    pub dspt_ref: Vec<DisputeReference1>,
7596    #[serde(rename = "DcmnttnSts", skip_serializing_if = "Option::is_none")]
7597    pub dcmnttn_sts: Option<Max35Text>,
7598    #[serde(rename = "AddtlDsptData", skip_serializing_if = "Option::is_none")]
7599    pub addtl_dspt_data: Option<AdditionalData1>,
7600    #[validate(length(min = 0,))]
7601    #[serde(rename = "DsptRjctRsn", default)]
7602    pub dspt_rjct_rsn: Vec<Max35Text>,
7603    #[serde(rename = "ChrgbckElgblty", skip_serializing_if = "Option::is_none")]
7604    pub chrgbck_elgblty: Option<Max35Text>,
7605}
7606#[derive(
7607    Debug,
7608    Default,
7609    Clone,
7610    PartialEq,
7611    ::serde::Serialize,
7612    ::serde::Deserialize,
7613    ::derive_builder::Builder,
7614    ::validator::Validate,
7615)]
7616pub struct Terminal4 {
7617    #[validate]
7618    #[serde(rename = "TermnlId")]
7619    pub termnl_id: TerminalIdentification3,
7620    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
7621    pub tp: Option<TerminalType1Code>,
7622    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
7623    pub othr_tp: Option<Max35Text>,
7624    #[serde(rename = "Cpblties", skip_serializing_if = "Option::is_none")]
7625    pub cpblties: Option<Capabilities2>,
7626    #[serde(rename = "TermnlIntgtn", skip_serializing_if = "Option::is_none")]
7627    pub termnl_intgtn: Option<TerminalIntegrationCategory1Code>,
7628    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
7629    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
7630    #[serde(rename = "OutdrInd", skip_serializing_if = "Option::is_none")]
7631    pub outdr_ind: Option<TrueFalseIndicator>,
7632    #[serde(rename = "OffPrmissInd", skip_serializing_if = "Option::is_none")]
7633    pub off_prmiss_ind: Option<TrueFalseIndicator>,
7634    #[serde(rename = "OnBrdInd", skip_serializing_if = "Option::is_none")]
7635    pub on_brd_ind: Option<TrueFalseIndicator>,
7636    #[validate(length(min = 0,))]
7637    #[serde(rename = "POICmpnt", default)]
7638    pub poi_cmpnt: Vec<PointOfInteractionComponent13>,
7639}
7640#[derive(
7641    Debug,
7642    Default,
7643    Clone,
7644    PartialEq,
7645    ::serde::Serialize,
7646    ::serde::Deserialize,
7647    ::derive_builder::Builder,
7648    ::validator::Validate,
7649)]
7650pub struct EncryptedContent4 {
7651    #[serde(rename = "CnttTp")]
7652    pub cntt_tp: ContentType2Code,
7653    #[serde(rename = "CnttNcrptnAlgo", skip_serializing_if = "Option::is_none")]
7654    pub cntt_ncrptn_algo: Option<AlgorithmIdentification24>,
7655    #[validate]
7656    #[serde(rename = "NcrptdData")]
7657    pub ncrptd_data: Max100KBinary,
7658}
7659#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7660pub enum ContentType2Code {
7661    #[serde(rename = "DATA")]
7662    Data,
7663    #[serde(rename = "SIGN")]
7664    Sign,
7665    #[serde(rename = "EVLP")]
7666    Evlp,
7667    #[serde(rename = "DGST")]
7668    Dgst,
7669    #[serde(rename = "AUTH")]
7670    Auth,
7671    #[default]
7672    Unknown,
7673}
7674#[derive(
7675    Debug,
7676    Default,
7677    Clone,
7678    PartialEq,
7679    ::serde::Serialize,
7680    ::serde::Deserialize,
7681    ::derive_builder::Builder,
7682    ::validator::Validate,
7683)]
7684pub struct Iso2ALanguageCode {
7685    #[validate(regex = "ISO_2_A_LANGUAGE_CODE_REGEX")]
7686    #[serde(rename = "$text")]
7687    pub value: String,
7688}
7689#[derive(
7690    Debug,
7691    Default,
7692    Clone,
7693    PartialEq,
7694    ::serde::Serialize,
7695    ::serde::Deserialize,
7696    ::derive_builder::Builder,
7697    ::validator::Validate,
7698)]
7699pub struct Parameter11 {
7700    #[serde(rename = "DgstAlgo")]
7701    pub dgst_algo: Algorithm16Code,
7702    #[validate]
7703    #[serde(rename = "MskGnrtrAlgo")]
7704    pub msk_gnrtr_algo: AlgorithmIdentification12,
7705    #[validate]
7706    #[serde(rename = "SaltLngth")]
7707    pub salt_lngth: Number,
7708    #[serde(rename = "TrlrFld", skip_serializing_if = "Option::is_none")]
7709    pub trlr_fld: Option<Number>,
7710}
7711#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7712pub enum AttributeType1Code {
7713    #[serde(rename = "CNAT")]
7714    Cnat,
7715    #[serde(rename = "LATT")]
7716    Latt,
7717    #[serde(rename = "OATT")]
7718    Oatt,
7719    #[serde(rename = "OUAT")]
7720    Ouat,
7721    #[serde(rename = "CATT")]
7722    Catt,
7723    #[default]
7724    Unknown,
7725}
7726#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7727pub enum InstalmentAmountDetailsType2Code {
7728    #[serde(rename = "AFCO")]
7729    Afco,
7730    #[serde(rename = "EXPN")]
7731    Expn,
7732    #[serde(rename = "FEES")]
7733    Fees,
7734    #[serde(rename = "FUNA")]
7735    Funa,
7736    #[serde(rename = "INSU")]
7737    Insu,
7738    #[serde(rename = "INTR")]
7739    Intr,
7740    #[serde(rename = "OTHC")]
7741    Othc,
7742    #[serde(rename = "OTHN")]
7743    Othn,
7744    #[serde(rename = "OTHP")]
7745    Othp,
7746    #[serde(rename = "PRNC")]
7747    Prnc,
7748    #[serde(rename = "RQST")]
7749    Rqst,
7750    #[serde(rename = "TAXX")]
7751    Taxx,
7752    #[default]
7753    Unknown,
7754}
7755#[derive(
7756    Debug,
7757    Default,
7758    Clone,
7759    PartialEq,
7760    ::serde::Serialize,
7761    ::serde::Deserialize,
7762    ::derive_builder::Builder,
7763    ::validator::Validate,
7764)]
7765pub struct CardWritingCapabilities1 {
7766    #[serde(rename = "Cpblty")]
7767    pub cpblty: CardDataWriting1Code,
7768    #[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
7769    pub othr_cpblty: Option<Max35Text>,
7770}
7771#[derive(
7772    Debug,
7773    Default,
7774    Clone,
7775    PartialEq,
7776    ::serde::Serialize,
7777    ::serde::Deserialize,
7778    ::derive_builder::Builder,
7779    ::validator::Validate,
7780)]
7781pub struct Amount12 {
7782    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
7783    pub tp: Option<TemporaryServicesCharge1Code>,
7784    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
7785    pub othr_tp: Option<Max35Text>,
7786    #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
7787    pub rate: Option<ImpliedCurrencyAndAmount>,
7788    #[serde(rename = "Hrs", skip_serializing_if = "Option::is_none")]
7789    pub hrs: Option<Max6NumericText>,
7790}
7791#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7792pub enum TaxReclaimMethod1Code {
7793    #[serde(rename = "INPP")]
7794    Inpp,
7795    #[serde(rename = "INPS")]
7796    Inps,
7797    #[serde(rename = "INSU")]
7798    Insu,
7799    #[serde(rename = "OTHR")]
7800    Othr,
7801    #[default]
7802    Unknown,
7803}
7804#[derive(
7805    Debug,
7806    Default,
7807    Clone,
7808    PartialEq,
7809    ::serde::Serialize,
7810    ::serde::Deserialize,
7811    ::derive_builder::Builder,
7812    ::validator::Validate,
7813)]
7814pub struct ExternalAuthenticationMethod1Code {
7815    #[validate(length(min = 1, max = 4,))]
7816    #[serde(rename = "$text")]
7817    pub value: String,
7818}
7819#[derive(
7820    Debug,
7821    Default,
7822    Clone,
7823    PartialEq,
7824    ::serde::Serialize,
7825    ::serde::Deserialize,
7826    ::derive_builder::Builder,
7827    ::validator::Validate,
7828)]
7829pub struct DriverInParty2 {
7830    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
7831    pub nm: Option<Max70Text>,
7832    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
7833    pub adr: Option<Address2>,
7834    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
7835    pub ctct: Option<Contact6>,
7836    #[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
7837    pub dt_of_birth: Option<IsoDate>,
7838    #[serde(rename = "Age", skip_serializing_if = "Option::is_none")]
7839    pub age: Option<Max2NumericText>,
7840    #[validate(length(min = 0,))]
7841    #[serde(rename = "DrvrCrdntl", default)]
7842    pub drvr_crdntl: Vec<TravelDocument2>,
7843    #[serde(rename = "DrvgLic", skip_serializing_if = "Option::is_none")]
7844    pub drvg_lic: Option<DrivingLicense2>,
7845}
7846#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7847pub enum Algorithm23Code {
7848    #[serde(rename = "EA2C")]
7849    Ea2C,
7850    #[serde(rename = "E3DC")]
7851    E3Dc,
7852    #[serde(rename = "EA9C")]
7853    Ea9C,
7854    #[serde(rename = "EA5C")]
7855    Ea5C,
7856    #[serde(rename = "EA2R")]
7857    Ea2R,
7858    #[serde(rename = "EA9R")]
7859    Ea9R,
7860    #[serde(rename = "EA5R")]
7861    Ea5R,
7862    #[serde(rename = "E3DR")]
7863    E3Dr,
7864    #[serde(rename = "E36C")]
7865    E36C,
7866    #[serde(rename = "E36R")]
7867    E36R,
7868    #[serde(rename = "SD5C")]
7869    Sd5C,
7870    #[default]
7871    Unknown,
7872}
7873#[derive(
7874    Debug,
7875    Default,
7876    Clone,
7877    PartialEq,
7878    ::serde::Serialize,
7879    ::serde::Deserialize,
7880    ::derive_builder::Builder,
7881    ::validator::Validate,
7882)]
7883pub struct EnvelopedData5 {
7884    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
7885    pub vrsn: Option<Number>,
7886    #[serde(rename = "OrgtrInf", skip_serializing_if = "Option::is_none")]
7887    pub orgtr_inf: Option<OriginatorInformation1>,
7888    #[validate(length(min = 1,))]
7889    #[serde(rename = "Rcpt", default)]
7890    pub rcpt: Vec<Recipient6Choice>,
7891    #[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
7892    pub ncrptd_cntt: Option<EncryptedContent4>,
7893}
7894#[derive(
7895    Debug,
7896    Default,
7897    Clone,
7898    PartialEq,
7899    ::serde::Serialize,
7900    ::serde::Deserialize,
7901    ::derive_builder::Builder,
7902    ::validator::Validate,
7903)]
7904pub struct Max256Text {
7905    #[validate(length(min = 1, max = 256,))]
7906    #[serde(rename = "$text")]
7907    pub value: String,
7908}
7909#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7910pub enum CustomerType2Code {
7911    #[serde(rename = "CSMR")]
7912    Csmr,
7913    #[serde(rename = "CPNY")]
7914    Cpny,
7915    #[default]
7916    Unknown,
7917}
7918#[derive(
7919    Debug,
7920    Default,
7921    Clone,
7922    PartialEq,
7923    ::serde::Serialize,
7924    ::serde::Deserialize,
7925    ::derive_builder::Builder,
7926    ::validator::Validate,
7927)]
7928pub struct Customer7 {
7929    #[serde(rename = "CstmrId", skip_serializing_if = "Option::is_none")]
7930    pub cstmr_id: Option<Max35Text>,
7931    #[serde(rename = "CstmrDsgnt", skip_serializing_if = "Option::is_none")]
7932    pub cstmr_dsgnt: Option<Max2NumericText>,
7933    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
7934    pub nm: Option<CardholderName3>,
7935    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
7936    pub adr: Option<Address2>,
7937    #[serde(rename = "CtctInf", skip_serializing_if = "Option::is_none")]
7938    pub ctct_inf: Option<Contact6>,
7939    #[validate(length(min = 0,))]
7940    #[serde(rename = "Crdntls", default)]
7941    pub crdntls: Vec<Credentials2>,
7942    #[serde(rename = "Ntlty", skip_serializing_if = "Option::is_none")]
7943    pub ntlty: Option<IsoMax3ACountryCode>,
7944    #[serde(rename = "CtryOfBirth", skip_serializing_if = "Option::is_none")]
7945    pub ctry_of_birth: Option<IsoMax3ACountryCode>,
7946    #[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
7947    pub dt_of_birth: Option<IsoDate>,
7948    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
7949    pub lcl_data: Option<LocalData3>,
7950    #[validate(length(min = 0,))]
7951    #[serde(rename = "AddtlData", default)]
7952    pub addtl_data: Vec<AdditionalData1>,
7953}
7954#[derive(
7955    Debug,
7956    Default,
7957    Clone,
7958    PartialEq,
7959    ::serde::Serialize,
7960    ::serde::Deserialize,
7961    ::derive_builder::Builder,
7962    ::validator::Validate,
7963)]
7964pub struct Invoice2 {
7965    #[serde(rename = "Summry", skip_serializing_if = "Option::is_none")]
7966    pub summry: Option<InvoiceSummary2>,
7967    #[validate(length(min = 0,))]
7968    #[serde(rename = "LineItm", default)]
7969    pub line_itm: Vec<InvoiceLineItem2>,
7970}
7971#[derive(
7972    Debug,
7973    Default,
7974    Clone,
7975    PartialEq,
7976    ::serde::Serialize,
7977    ::serde::Deserialize,
7978    ::derive_builder::Builder,
7979    ::validator::Validate,
7980)]
7981pub struct DeliveryInformation4 {
7982    #[serde(rename = "DlvryNoteNb", skip_serializing_if = "Option::is_none")]
7983    pub dlvry_note_nb: Option<Max35Text>,
7984    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
7985    pub adr: Option<Address2>,
7986    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
7987    pub ctct: Option<Contact6>,
7988    #[serde(rename = "Instrs", skip_serializing_if = "Option::is_none")]
7989    pub instrs: Option<Max350Text>,
7990    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
7991    pub dt: Option<IsoDate>,
7992    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
7993    pub tm: Option<IsoTime>,
7994}
7995#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
7996pub enum PeriodUnit2Code {
7997    #[serde(rename = "HOUR")]
7998    Hour,
7999    #[serde(rename = "HFDA")]
8000    Hfda,
8001    #[serde(rename = "DAYS")]
8002    Days,
8003    #[serde(rename = "WEEK")]
8004    Week,
8005    #[serde(rename = "MNTH")]
8006    Mnth,
8007    #[serde(rename = "YEAR")]
8008    Year,
8009    #[serde(rename = "MINU")]
8010    Minu,
8011    #[serde(rename = "OTHR")]
8012    Othr,
8013    #[default]
8014    Unknown,
8015}
8016#[derive(
8017    Debug,
8018    Default,
8019    Clone,
8020    PartialEq,
8021    ::serde::Serialize,
8022    ::serde::Deserialize,
8023    ::derive_builder::Builder,
8024    ::validator::Validate,
8025)]
8026pub struct GeographicPointInDecimalDegrees {
8027    #[validate(length(max = 27,), regex = "GEOGRAPHIC_POINT_IN_DECIMAL_DEGREES_REGEX")]
8028    #[serde(rename = "$text")]
8029    pub value: String,
8030}
8031#[derive(
8032    Debug,
8033    Default,
8034    Clone,
8035    PartialEq,
8036    ::serde::Serialize,
8037    ::serde::Deserialize,
8038    ::derive_builder::Builder,
8039    ::validator::Validate,
8040)]
8041pub struct IsoTime {
8042    #[serde(rename = "$value")]
8043    pub value: ::chrono::naive::NaiveTime,
8044}
8045#[derive(
8046    Debug,
8047    Default,
8048    Clone,
8049    PartialEq,
8050    ::serde::Serialize,
8051    ::serde::Deserialize,
8052    ::derive_builder::Builder,
8053    ::validator::Validate,
8054)]
8055pub struct RiskInputData1 {
8056    #[serde(rename = "Ntty", skip_serializing_if = "Option::is_none")]
8057    pub ntty: Option<RiskAssessmentDataEntityProvider1>,
8058    #[validate]
8059    #[serde(rename = "Tp")]
8060    pub tp: Max35Text,
8061    #[validate]
8062    #[serde(rename = "Val")]
8063    pub val: Max10KText,
8064}
8065#[derive(
8066    Debug,
8067    Default,
8068    Clone,
8069    PartialEq,
8070    ::serde::Serialize,
8071    ::serde::Deserialize,
8072    ::derive_builder::Builder,
8073    ::validator::Validate,
8074)]
8075pub struct Capabilities2 {
8076    #[validate(length(min = 0,))]
8077    #[serde(rename = "CardRdngCpblty", default)]
8078    pub card_rdng_cpblty: Vec<CardReadingCapabilities1>,
8079    #[validate(length(min = 0,))]
8080    #[serde(rename = "CardWrtgCpblty", default)]
8081    pub card_wrtg_cpblty: Vec<CardWritingCapabilities1>,
8082    #[serde(rename = "PINLngthCpblty", skip_serializing_if = "Option::is_none")]
8083    pub pin_lngth_cpblty: Option<Number>,
8084    #[serde(rename = "PINNtrySctyChrtc", skip_serializing_if = "Option::is_none")]
8085    pub pin_ntry_scty_chrtc: Option<PinEntrySecurityCharacteristic1Code>,
8086    #[serde(
8087        rename = "OthrPINNtrySctyChrtc",
8088        skip_serializing_if = "Option::is_none"
8089    )]
8090    pub othr_pin_ntry_scty_chrtc: Option<Max35Text>,
8091    #[serde(rename = "ApprvlCdLngth", skip_serializing_if = "Option::is_none")]
8092    pub apprvl_cd_lngth: Option<Number>,
8093    #[serde(rename = "MxScrptLngth", skip_serializing_if = "Option::is_none")]
8094    pub mx_scrpt_lngth: Option<Number>,
8095    #[serde(rename = "CardCaptrCpbl", skip_serializing_if = "Option::is_none")]
8096    pub card_captr_cpbl: Option<TrueFalseIndicator>,
8097    #[serde(rename = "OnLineCpblty", skip_serializing_if = "Option::is_none")]
8098    pub on_line_cpblty: Option<OnLineCapability2Code>,
8099    #[validate(length(min = 0,))]
8100    #[serde(rename = "MsgCpblty", default)]
8101    pub msg_cpblty: Vec<DisplayCapabilities6>,
8102    #[validate(length(min = 0,))]
8103    #[serde(rename = "CrdhldrVrfctnCpblty", default)]
8104    pub crdhldr_vrfctn_cpblty: Vec<CardholderVerificationCapabilities1>,
8105    #[serde(
8106        rename = "TempScrCardDataStorg",
8107        skip_serializing_if = "Option::is_none"
8108    )]
8109    pub temp_scr_card_data_storg: Option<TrueFalseIndicator>,
8110}
8111#[derive(
8112    Debug,
8113    Default,
8114    Clone,
8115    PartialEq,
8116    ::serde::Serialize,
8117    ::serde::Deserialize,
8118    ::derive_builder::Builder,
8119    ::validator::Validate,
8120)]
8121pub struct Parameter13 {
8122    #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
8123    pub dgst_algo: Option<Algorithm20Code>,
8124    #[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
8125    pub msk_gnrtr_algo: Option<AlgorithmIdentification26>,
8126}
8127#[derive(
8128    Debug,
8129    Default,
8130    Clone,
8131    PartialEq,
8132    ::serde::Serialize,
8133    ::serde::Deserialize,
8134    ::derive_builder::Builder,
8135    ::validator::Validate,
8136)]
8137pub struct PlainCardData21 {
8138    #[serde(rename = "DrvrOrVhclId", skip_serializing_if = "Option::is_none")]
8139    pub drvr_or_vhcl_id: Option<Max20Text>,
8140    #[validate(length(min = 0,))]
8141    #[serde(rename = "AddtlCardData", default)]
8142    pub addtl_card_data: Vec<AdditionalData1>,
8143}
8144#[derive(
8145    Debug,
8146    Default,
8147    Clone,
8148    PartialEq,
8149    ::serde::Serialize,
8150    ::serde::Deserialize,
8151    ::derive_builder::Builder,
8152    ::validator::Validate,
8153)]
8154pub struct LanguageCode {
8155    #[serde(rename = "$text")]
8156    pub value: String,
8157}
8158#[derive(
8159    Debug,
8160    Default,
8161    Clone,
8162    PartialEq,
8163    ::serde::Serialize,
8164    ::serde::Deserialize,
8165    ::derive_builder::Builder,
8166    ::validator::Validate,
8167)]
8168pub struct RelativeDistinguishedName1 {
8169    #[serde(rename = "AttrTp")]
8170    pub attr_tp: AttributeType1Code,
8171    #[validate]
8172    #[serde(rename = "AttrVal")]
8173    pub attr_val: Max140Text,
8174}
8175#[derive(
8176    Debug,
8177    Default,
8178    Clone,
8179    PartialEq,
8180    ::serde::Serialize,
8181    ::serde::Deserialize,
8182    ::derive_builder::Builder,
8183    ::validator::Validate,
8184)]
8185pub struct Reconciliation3 {
8186    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
8187    pub id: Option<Max35Text>,
8188    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
8189    pub dt: Option<IsoDate>,
8190    #[serde(rename = "ChckptRef", skip_serializing_if = "Option::is_none")]
8191    pub chckpt_ref: Option<Max35Text>,
8192}
8193#[derive(
8194    Debug,
8195    Default,
8196    Clone,
8197    PartialEq,
8198    ::serde::Serialize,
8199    ::serde::Deserialize,
8200    ::derive_builder::Builder,
8201    ::validator::Validate,
8202)]
8203pub struct ExchangeRateInformation2 {
8204    #[serde(rename = "Prvdr", skip_serializing_if = "Option::is_none")]
8205    pub prvdr: Option<Max70Text>,
8206    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
8207    pub id: Option<Max70Text>,
8208    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
8209    pub dt: Option<IsoDate>,
8210    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
8211    pub tm: Option<IsoTime>,
8212    #[serde(rename = "XchgRateDtl", skip_serializing_if = "Option::is_none")]
8213    pub xchg_rate_dtl: Option<ExchangeRateDetail1>,
8214    #[serde(rename = "RateLck", skip_serializing_if = "Option::is_none")]
8215    pub rate_lck: Option<RateLock1>,
8216}
8217#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8218pub enum PartyType22Code {
8219    #[serde(rename = "CRDH")]
8220    Crdh,
8221    #[serde(rename = "MERC")]
8222    Merc,
8223    #[serde(rename = "OTHN")]
8224    Othn,
8225    #[serde(rename = "OTHP")]
8226    Othp,
8227    #[serde(rename = "AGNT")]
8228    Agnt,
8229    #[default]
8230    Unknown,
8231}
8232#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8233pub enum ContentType3Code {
8234    #[serde(rename = "EVLP")]
8235    Evlp,
8236    #[serde(rename = "IFSE")]
8237    Ifse,
8238    #[default]
8239    Unknown,
8240}
8241#[derive(
8242    Debug,
8243    Default,
8244    Clone,
8245    PartialEq,
8246    ::serde::Serialize,
8247    ::serde::Deserialize,
8248    ::derive_builder::Builder,
8249    ::validator::Validate,
8250)]
8251pub struct AlgorithmIdentification26 {
8252    #[serde(rename = "Algo")]
8253    pub algo: Algorithm8Code,
8254    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
8255    pub param: Option<Algorithm5Code>,
8256}
8257#[derive(
8258    Debug,
8259    Default,
8260    Clone,
8261    PartialEq,
8262    ::serde::Serialize,
8263    ::serde::Deserialize,
8264    ::derive_builder::Builder,
8265    ::validator::Validate,
8266)]
8267pub struct RentalRate1 {
8268    #[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
8269    pub prd: Option<PeriodUnit3Code>,
8270    #[serde(rename = "OthrPrd", skip_serializing_if = "Option::is_none")]
8271    pub othr_prd: Option<Max35Text>,
8272    #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
8273    pub rate: Option<ImpliedCurrencyAndAmount>,
8274    #[serde(rename = "PrdCnt", skip_serializing_if = "Option::is_none")]
8275    pub prd_cnt: Option<Max4NumericText>,
8276}
8277#[derive(
8278    Debug,
8279    Default,
8280    Clone,
8281    PartialEq,
8282    ::serde::Serialize,
8283    ::serde::Deserialize,
8284    ::derive_builder::Builder,
8285    ::validator::Validate,
8286)]
8287pub struct IsoMax3ALanguageCode {
8288    #[validate(regex = "ISO_MAX_3_A_LANGUAGE_CODE_REGEX")]
8289    #[serde(rename = "$text")]
8290    pub value: String,
8291}
8292#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8293pub enum CreditDebit3Code {
8294    #[serde(rename = "CRDT")]
8295    Crdt,
8296    #[serde(rename = "DBIT")]
8297    Dbit,
8298    #[default]
8299    Unknown,
8300}
8301#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8302pub enum Algorithm18Code {
8303    #[serde(rename = "EA2C")]
8304    Ea2C,
8305    #[serde(rename = "E3DC")]
8306    E3Dc,
8307    #[serde(rename = "DKP9")]
8308    Dkp9,
8309    #[serde(rename = "UKPT")]
8310    Ukpt,
8311    #[serde(rename = "UKA1")]
8312    Uka1,
8313    #[serde(rename = "EA9C")]
8314    Ea9C,
8315    #[serde(rename = "EA5C")]
8316    Ea5C,
8317    #[serde(rename = "DA12")]
8318    Da12,
8319    #[serde(rename = "DA19")]
8320    Da19,
8321    #[serde(rename = "DA25")]
8322    Da25,
8323    #[serde(rename = "N108")]
8324    N108,
8325    #[serde(rename = "EA5R")]
8326    Ea5R,
8327    #[serde(rename = "EA9R")]
8328    Ea9R,
8329    #[serde(rename = "EA2R")]
8330    Ea2R,
8331    #[serde(rename = "E3DR")]
8332    E3Dr,
8333    #[serde(rename = "E36C")]
8334    E36C,
8335    #[serde(rename = "E36R")]
8336    E36R,
8337    #[serde(rename = "SD5C")]
8338    Sd5C,
8339    #[default]
8340    Unknown,
8341}
8342#[derive(
8343    Debug,
8344    Default,
8345    Clone,
8346    PartialEq,
8347    ::serde::Serialize,
8348    ::serde::Deserialize,
8349    ::derive_builder::Builder,
8350    ::validator::Validate,
8351)]
8352pub struct SpecialConditions1 {
8353    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
8354    pub id: Option<Max35Text>,
8355    #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
8356    pub val: Option<Max35Text>,
8357}
8358#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8359pub enum AdditionalServiceType2Code {
8360    #[serde(rename = "CACT")]
8361    Cact,
8362    #[serde(rename = "CSHB")]
8363    Cshb,
8364    #[serde(rename = "DCCV")]
8365    Dccv,
8366    #[serde(rename = "INTP")]
8367    Intp,
8368    #[serde(rename = "INTT")]
8369    Intt,
8370    #[serde(rename = "LOYT")]
8371    Loyt,
8372    #[serde(rename = "OTHN")]
8373    Othn,
8374    #[serde(rename = "OTHP")]
8375    Othp,
8376    #[serde(rename = "PRST")]
8377    Prst,
8378    #[serde(rename = "BALC")]
8379    Balc,
8380    #[default]
8381    Unknown,
8382}
8383#[derive(
8384    Debug,
8385    Default,
8386    Clone,
8387    PartialEq,
8388    ::serde::Serialize,
8389    ::serde::Deserialize,
8390    ::derive_builder::Builder,
8391    ::validator::Validate,
8392)]
8393pub struct SponsoredMerchant2 {
8394    #[validate]
8395    #[serde(rename = "Id")]
8396    pub id: PartyIdentification262,
8397    #[serde(rename = "CmonNm", skip_serializing_if = "Option::is_none")]
8398    pub cmon_nm: Option<Max140Text>,
8399    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
8400    pub lgl_corp_nm: Option<Max99Text>,
8401    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
8402    pub adr: Option<Address2>,
8403    #[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
8404    pub addtl_adr_inf: Option<Max256Text>,
8405    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
8406    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
8407    #[validate(length(min = 0,))]
8408    #[serde(rename = "AddtlData", default)]
8409    pub addtl_data: Vec<AdditionalData1>,
8410    #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
8411    pub lcl_data: Option<LocalData5>,
8412}
8413#[derive(
8414    Debug,
8415    Default,
8416    Clone,
8417    PartialEq,
8418    ::serde::Serialize,
8419    ::serde::Deserialize,
8420    ::derive_builder::Builder,
8421    ::validator::Validate,
8422)]
8423pub struct Action13 {
8424    #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
8425    pub dstn: Option<PartyType20Code>,
8426    #[serde(rename = "ActnTp", skip_serializing_if = "Option::is_none")]
8427    pub actn_tp: Option<ActionType11Code>,
8428    #[serde(rename = "OthrActnTp", skip_serializing_if = "Option::is_none")]
8429    pub othr_actn_tp: Option<Max35Text>,
8430    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
8431    pub ctct: Option<Contact6>,
8432    #[validate(length(min = 0,))]
8433    #[serde(rename = "AddtlData", default)]
8434    pub addtl_data: Vec<AdditionalData1>,
8435}
8436#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8437pub enum CustomerDeviceType2Code {
8438    #[serde(rename = "MOBL")]
8439    Mobl,
8440    #[serde(rename = "OTHN")]
8441    Othn,
8442    #[serde(rename = "OTHP")]
8443    Othp,
8444    #[serde(rename = "PECR")]
8445    Pecr,
8446    #[serde(rename = "TBLT")]
8447    Tblt,
8448    #[serde(rename = "NSCR")]
8449    Nscr,
8450    #[serde(rename = "SECR")]
8451    Secr,
8452    #[serde(rename = "EMBD")]
8453    Embd,
8454    #[serde(rename = "VHCL")]
8455    Vhcl,
8456    #[serde(rename = "WRBL")]
8457    Wrbl,
8458    #[serde(rename = "WATC")]
8459    Watc,
8460    #[serde(rename = "GAMB")]
8461    Gamb,
8462    #[serde(rename = "JEWL")]
8463    Jewl,
8464    #[serde(rename = "KFOB")]
8465    Kfob,
8466    #[serde(rename = "STIC")]
8467    Stic,
8468    #[serde(rename = "UNKW")]
8469    Unkw,
8470    #[default]
8471    Unknown,
8472}
8473#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8474pub enum CardDataReading5Code {
8475    #[serde(rename = "TAGC")]
8476    Tagc,
8477    #[serde(rename = "PHYS")]
8478    Phys,
8479    #[serde(rename = "BRCD")]
8480    Brcd,
8481    #[serde(rename = "MGST")]
8482    Mgst,
8483    #[serde(rename = "CICC")]
8484    Cicc,
8485    #[serde(rename = "DFLE")]
8486    Dfle,
8487    #[serde(rename = "CTLS")]
8488    Ctls,
8489    #[serde(rename = "ECTL")]
8490    Ectl,
8491    #[serde(rename = "CDFL")]
8492    Cdfl,
8493    #[default]
8494    Unknown,
8495}
8496#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8497pub enum GoodAndServiceDeliverySchedule1Code {
8498    #[serde(rename = "OTHN")]
8499    Othn,
8500    #[serde(rename = "OTHP")]
8501    Othp,
8502    #[serde(rename = "ONDL")]
8503    Ondl,
8504    #[serde(rename = "SDDL")]
8505    Sddl,
8506    #[serde(rename = "TDDL")]
8507    Tddl,
8508    #[default]
8509    Unknown,
8510}
8511#[derive(
8512    Debug,
8513    Default,
8514    Clone,
8515    PartialEq,
8516    ::serde::Serialize,
8517    ::serde::Deserialize,
8518    ::derive_builder::Builder,
8519    ::validator::Validate,
8520)]
8521pub struct MacData1 {
8522    #[validate]
8523    #[serde(rename = "Ctrl")]
8524    pub ctrl: Exact1HexBinaryText,
8525    #[validate]
8526    #[serde(rename = "KeySetIdr")]
8527    pub key_set_idr: Max8NumericText,
8528    #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
8529    pub drvd_inf: Option<Max32HexBinaryText>,
8530    #[validate]
8531    #[serde(rename = "Algo")]
8532    pub algo: Max2NumericText,
8533    #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
8534    pub key_lngth: Option<Max4NumericText>,
8535    #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
8536    pub key_prtcn: Option<Max2NumericText>,
8537    #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
8538    pub key_indx: Option<Max5NumericText>,
8539    #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
8540    pub pddg_mtd: Option<Max2NumericText>,
8541    #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
8542    pub initlstn_vctr: Option<Max32HexBinaryText>,
8543}
8544#[derive(
8545    Debug,
8546    Default,
8547    Clone,
8548    PartialEq,
8549    ::serde::Serialize,
8550    ::serde::Deserialize,
8551    ::derive_builder::Builder,
8552    ::validator::Validate,
8553)]
8554pub struct SpecialProgrammeQualification1 {
8555    #[serde(rename = "Prgrmm", skip_serializing_if = "Option::is_none")]
8556    pub prgrmm: Option<Max35Text>,
8557    #[validate(length(min = 0,))]
8558    #[serde(rename = "Dtl", default)]
8559    pub dtl: Vec<SpecialProgrammeDetails1>,
8560}
8561#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8562pub enum TransactionInitiator1Code {
8563    #[serde(rename = "MERC")]
8564    Merc,
8565    #[serde(rename = "CUST")]
8566    Cust,
8567    #[default]
8568    Unknown,
8569}
8570#[derive(
8571    Debug,
8572    Default,
8573    Clone,
8574    PartialEq,
8575    ::serde::Serialize,
8576    ::serde::Deserialize,
8577    ::derive_builder::Builder,
8578    ::validator::Validate,
8579)]
8580pub struct IsoDate {
8581    #[serde(rename = "$text")]
8582    pub value: ::chrono::NaiveDate,
8583}
8584#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8585pub enum JourneyType1Code {
8586    #[serde(rename = "COAC")]
8587    Coac,
8588    #[serde(rename = "EARL")]
8589    Earl,
8590    #[serde(rename = "FLGT")]
8591    Flgt,
8592    #[serde(rename = "LATE")]
8593    Late,
8594    #[serde(rename = "ONTM")]
8595    Ontm,
8596    #[serde(rename = "OTHR")]
8597    Othr,
8598    #[serde(rename = "TRAN")]
8599    Tran,
8600    #[serde(rename = "VESS")]
8601    Vess,
8602    #[default]
8603    Unknown,
8604}
8605#[derive(
8606    Debug,
8607    Default,
8608    Clone,
8609    PartialEq,
8610    ::serde::Serialize,
8611    ::serde::Deserialize,
8612    ::derive_builder::Builder,
8613    ::validator::Validate,
8614)]
8615pub struct Exact6AlphaNumericText {
8616    #[validate(regex = "EXACT_6_ALPHA_NUMERIC_TEXT_REGEX")]
8617    #[serde(rename = "$text")]
8618    pub value: String,
8619}
8620#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8621pub enum Algorithm7Code {
8622    #[serde(rename = "ERSA")]
8623    Ersa,
8624    #[serde(rename = "RSAO")]
8625    Rsao,
8626    #[default]
8627    Unknown,
8628}
8629#[derive(
8630    Debug,
8631    Default,
8632    Clone,
8633    PartialEq,
8634    ::serde::Serialize,
8635    ::serde::Deserialize,
8636    ::derive_builder::Builder,
8637    ::validator::Validate,
8638)]
8639pub struct Max3000Binary {
8640    #[validate(length(min = 1, max = 3000,), regex = "MAX_3000_BINARY_REGEX")]
8641    pub value: String,
8642}
8643#[derive(
8644    Debug,
8645    Default,
8646    Clone,
8647    PartialEq,
8648    ::serde::Serialize,
8649    ::serde::Deserialize,
8650    ::derive_builder::Builder,
8651    ::validator::Validate,
8652)]
8653pub struct Parameter5 {
8654    #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
8655    pub dgst_algo: Option<Algorithm11Code>,
8656}
8657#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8658pub enum TypeOfAmount21Code {
8659    #[serde(rename = "INTC")]
8660    Intc,
8661    #[serde(rename = "FEEP")]
8662    Feep,
8663    #[serde(rename = "OTHN")]
8664    Othn,
8665    #[serde(rename = "OTHP")]
8666    Othp,
8667    #[serde(rename = "FEEA")]
8668    Feea,
8669    #[serde(rename = "CSIF")]
8670    Csif,
8671    #[serde(rename = "MXIF")]
8672    Mxif,
8673    #[serde(rename = "MNIF")]
8674    Mnif,
8675    #[default]
8676    Unknown,
8677}
8678#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8679pub enum CustomerAssigner1Code {
8680    #[serde(rename = "AUTH")]
8681    Auth,
8682    #[serde(rename = "CRCY")]
8683    Crcy,
8684    #[serde(rename = "CUST")]
8685    Cust,
8686    #[serde(rename = "ONFL")]
8687    Onfl,
8688    #[serde(rename = "OTHR")]
8689    Othr,
8690    #[serde(rename = "TRAY")]
8691    Tray,
8692    #[default]
8693    Unknown,
8694}
8695#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8696pub enum PartyType28Code {
8697    #[serde(rename = "ACCP")]
8698    Accp,
8699    #[serde(rename = "ACQR")]
8700    Acqr,
8701    #[serde(rename = "AGNT")]
8702    Agnt,
8703    #[serde(rename = "OTHN")]
8704    Othn,
8705    #[serde(rename = "OTHP")]
8706    Othp,
8707    #[serde(rename = "WLPR")]
8708    Wlpr,
8709    #[serde(rename = "ISUR")]
8710    Isur,
8711    #[default]
8712    Unknown,
8713}
8714#[derive(
8715    Debug,
8716    Default,
8717    Clone,
8718    PartialEq,
8719    ::serde::Serialize,
8720    ::serde::Deserialize,
8721    ::derive_builder::Builder,
8722    ::validator::Validate,
8723)]
8724pub struct Transaction147 {
8725    #[serde(rename = "TxTp", skip_serializing_if = "Option::is_none")]
8726    pub tx_tp: Option<Iso8583TransactionTypeCode>,
8727    #[serde(rename = "TxSubTp", skip_serializing_if = "Option::is_none")]
8728    pub tx_sub_tp: Option<Max35Text>,
8729    #[serde(rename = "TxAttr", skip_serializing_if = "Option::is_none")]
8730    pub tx_attr: Option<TransactionAttribute2Code>,
8731    #[serde(rename = "OthrTxAttr", skip_serializing_if = "Option::is_none")]
8732    pub othr_tx_attr: Option<Max35Text>,
8733    #[validate(length(min = 0,))]
8734    #[serde(rename = "MsgRsn", default)]
8735    pub msg_rsn: Vec<Iso8583MessageReasonCode>,
8736    #[validate(length(min = 0,))]
8737    #[serde(rename = "AltrnMsgRsn", default)]
8738    pub altrn_msg_rsn: Vec<Max35Text>,
8739    #[serde(rename = "PreAuthstnTmLmt", skip_serializing_if = "Option::is_none")]
8740    pub pre_authstn_tm_lmt: Option<Max6NumericText>,
8741    #[validate(length(min = 0,))]
8742    #[serde(rename = "AddtlSvc", default)]
8743    pub addtl_svc: Vec<AdditionalService2>,
8744    #[serde(rename = "AssoctdDataRef", skip_serializing_if = "Option::is_none")]
8745    pub assoctd_data_ref: Option<Max70Text>,
8746    #[validate(length(min = 0,))]
8747    #[serde(rename = "SpclPrgrmmQlfctn", default)]
8748    pub spcl_prgrmm_qlfctn: Vec<SpecialProgrammeQualification1>,
8749    #[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
8750    pub tx_id: Option<TransactionIdentification18>,
8751    #[validate(length(min = 0,))]
8752    #[serde(rename = "DsptData", default)]
8753    pub dspt_data: Vec<DisputeData3>,
8754    #[serde(rename = "TxAmts", skip_serializing_if = "Option::is_none")]
8755    pub tx_amts: Option<TransactionAmounts2>,
8756    #[validate(length(min = 0,))]
8757    #[serde(rename = "AddtlAmt", default)]
8758    pub addtl_amt: Vec<AdditionalAmounts3>,
8759    #[validate(length(min = 0,))]
8760    #[serde(rename = "AddtlFee", default)]
8761    pub addtl_fee: Vec<AdditionalFee2>,
8762    #[validate(length(min = 0,))]
8763    #[serde(rename = "OrgnlAddtlFee", default)]
8764    pub orgnl_addtl_fee: Vec<AdditionalFee2>,
8765    #[validate(length(min = 0,))]
8766    #[serde(rename = "DpstDtls", default)]
8767    pub dpst_dtls: Vec<DepositDetails2>,
8768    #[serde(rename = "FndsSvcs", skip_serializing_if = "Option::is_none")]
8769    pub fnds_svcs: Option<FundingService2>,
8770    #[serde(rename = "AcctFr", skip_serializing_if = "Option::is_none")]
8771    pub acct_fr: Option<AccountDetails3>,
8772    #[serde(rename = "AcctTo", skip_serializing_if = "Option::is_none")]
8773    pub acct_to: Option<AccountDetails3>,
8774    #[serde(rename = "TxDesc", skip_serializing_if = "Option::is_none")]
8775    pub tx_desc: Option<Max1000Text>,
8776    #[validate(length(min = 0,))]
8777    #[serde(rename = "AddtlData", default)]
8778    pub addtl_data: Vec<AdditionalData1>,
8779}
8780#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8781pub enum ProductCodeType1Code {
8782    #[serde(rename = "EA13")]
8783    Ea13,
8784    #[serde(rename = "EAN8")]
8785    Ean8,
8786    #[serde(rename = "GTIN")]
8787    Gtin,
8788    #[serde(rename = "OTHR")]
8789    Othr,
8790    #[serde(rename = "PLUP")]
8791    Plup,
8792    #[serde(rename = "RS14")]
8793    Rs14,
8794    #[serde(rename = "UPCA")]
8795    Upca,
8796    #[serde(rename = "UPCE")]
8797    Upce,
8798    #[default]
8799    Unknown,
8800}
8801#[derive(
8802    Debug,
8803    Default,
8804    Clone,
8805    PartialEq,
8806    ::serde::Serialize,
8807    ::serde::Deserialize,
8808    ::derive_builder::Builder,
8809    ::validator::Validate,
8810)]
8811pub struct Iso18245MerchantCategoryCode {
8812    #[validate(regex = "ISO_18245_MERCHANT_CATEGORY_CODE_REGEX")]
8813    #[serde(rename = "$text")]
8814    pub value: String,
8815}
8816#[derive(
8817    Debug,
8818    Default,
8819    Clone,
8820    PartialEq,
8821    ::serde::Serialize,
8822    ::serde::Deserialize,
8823    ::derive_builder::Builder,
8824    ::validator::Validate,
8825)]
8826pub struct TravelAgency3 {
8827    #[serde(rename = "Cpny", skip_serializing_if = "Option::is_none")]
8828    pub cpny: Option<PartyIdentification261>,
8829    #[validate(length(min = 0,))]
8830    #[serde(rename = "TrvlPackg", default)]
8831    pub trvl_packg: Vec<TravelAgencyPackage1>,
8832    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
8833    pub addtl_data: Option<Max350Text>,
8834}
8835#[derive(
8836    Debug,
8837    Default,
8838    Clone,
8839    PartialEq,
8840    ::serde::Serialize,
8841    ::serde::Deserialize,
8842    ::derive_builder::Builder,
8843    ::validator::Validate,
8844)]
8845pub struct Max32HexBinaryText {
8846    #[validate(regex = "MAX_32_HEX_BINARY_TEXT_REGEX")]
8847    #[serde(rename = "$text")]
8848    pub value: String,
8849}
8850#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8851pub enum PinEntrySecurityCharacteristic1Code {
8852    #[serde(rename = "OTHN")]
8853    Othn,
8854    #[serde(rename = "OTHP")]
8855    Othp,
8856    #[serde(rename = "SECS")]
8857    Secs,
8858    #[serde(rename = "SECH")]
8859    Sech,
8860    #[default]
8861    Unknown,
8862}
8863#[derive(
8864    Debug,
8865    Default,
8866    Clone,
8867    PartialEq,
8868    ::serde::Serialize,
8869    ::serde::Deserialize,
8870    ::derive_builder::Builder,
8871    ::validator::Validate,
8872)]
8873pub struct Device2 {
8874    #[serde(rename = "Manfctr", skip_serializing_if = "Option::is_none")]
8875    pub manfctr: Option<Max70Text>,
8876    #[serde(rename = "ManfctrMdlId", skip_serializing_if = "Option::is_none")]
8877    pub manfctr_mdl_id: Option<Max70Text>,
8878    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
8879    pub tp: Option<CustomerDeviceType2Code>,
8880    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
8881    pub othr_tp: Option<Max35Text>,
8882    #[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
8883    pub lang: Option<LanguageCode>,
8884    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
8885    pub phne_nb: Option<PhoneNumber>,
8886    #[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
8887    pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
8888    #[serde(rename = "LctnCtryCd", skip_serializing_if = "Option::is_none")]
8889    pub lctn_ctry_cd: Option<Iso3NumericCountryCode>,
8890    #[serde(rename = "IPAdr", skip_serializing_if = "Option::is_none")]
8891    pub ip_adr: Option<Max70Text>,
8892    #[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
8893    pub email: Option<Max256Text>,
8894    #[serde(rename = "DvcNm", skip_serializing_if = "Option::is_none")]
8895    pub dvc_nm: Option<Max100Text>,
8896    #[serde(rename = "DvcNmNrmlzd", skip_serializing_if = "Option::is_none")]
8897    pub dvc_nm_nrmlzd: Option<Max100Text>,
8898}
8899#[derive(
8900    Debug,
8901    Default,
8902    Clone,
8903    PartialEq,
8904    ::serde::Serialize,
8905    ::serde::Deserialize,
8906    ::derive_builder::Builder,
8907    ::validator::Validate,
8908)]
8909pub struct RiskAssessment2 {
8910    #[serde(rename = "RskAssmntNtty", skip_serializing_if = "Option::is_none")]
8911    pub rsk_assmnt_ntty: Option<PartyIdentification200>,
8912    #[serde(rename = "RskAssmntTp", skip_serializing_if = "Option::is_none")]
8913    pub rsk_assmnt_tp: Option<Max35Text>,
8914    #[serde(rename = "HghRskTx", skip_serializing_if = "Option::is_none")]
8915    pub hgh_rsk_tx: Option<TrueFalseIndicator>,
8916    #[validate(length(min = 0,))]
8917    #[serde(rename = "Rsn", default)]
8918    pub rsn: Vec<Max35Text>,
8919    #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
8920    pub rslt: Option<Max35Text>,
8921    #[validate(length(min = 0,))]
8922    #[serde(rename = "RskCond", default)]
8923    pub rsk_cond: Vec<AdditionalData1>,
8924    #[validate(length(min = 0,))]
8925    #[serde(rename = "AddtlRskData", default)]
8926    pub addtl_rsk_data: Vec<AdditionalRiskData1>,
8927    #[validate(length(min = 0,))]
8928    #[serde(rename = "RcmmnddActn", default)]
8929    pub rcmmndd_actn: Vec<ActionType8Code>,
8930    #[serde(rename = "OthrRcmmnddActn", skip_serializing_if = "Option::is_none")]
8931    pub othr_rcmmndd_actn: Option<Max35Text>,
8932    #[serde(rename = "RcmmnddActnDtls", skip_serializing_if = "Option::is_none")]
8933    pub rcmmndd_actn_dtls: Option<Max256Text>,
8934}
8935#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8936pub enum IccFallbackReason1Code {
8937    #[serde(rename = "CIIA")]
8938    Ciia,
8939    #[serde(rename = "EDIP")]
8940    Edip,
8941    #[serde(rename = "OTHN")]
8942    Othn,
8943    #[serde(rename = "OTHP")]
8944    Othp,
8945    #[serde(rename = "TERI")]
8946    Teri,
8947    #[default]
8948    Unknown,
8949}
8950#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
8951pub enum PartyType18Code {
8952    #[serde(rename = "ACQR")]
8953    Acqr,
8954    #[serde(rename = "CISS")]
8955    Ciss,
8956    #[serde(rename = "CSCH")]
8957    Csch,
8958    #[serde(rename = "AGNT")]
8959    Agnt,
8960    #[default]
8961    Unknown,
8962}
8963#[derive(
8964    Debug,
8965    Default,
8966    Clone,
8967    PartialEq,
8968    ::serde::Serialize,
8969    ::serde::Deserialize,
8970    ::derive_builder::Builder,
8971    ::validator::Validate,
8972)]
8973pub struct TerminalIdentification3 {
8974    #[validate]
8975    #[serde(rename = "Id")]
8976    pub id: Max16Text,
8977    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
8978    pub assgnr: Option<Max35Text>,
8979    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
8980    pub ctry: Option<IsoMax3ACountryCode>,
8981    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
8982    pub shrt_nm: Option<Max35Text>,
8983}
8984#[derive(
8985    Debug,
8986    Default,
8987    Clone,
8988    PartialEq,
8989    ::serde::Serialize,
8990    ::serde::Deserialize,
8991    ::derive_builder::Builder,
8992    ::validator::Validate,
8993)]
8994pub struct TelecomServicesLineItem2 {
8995    #[serde(rename = "StartDtTm", skip_serializing_if = "Option::is_none")]
8996    pub start_dt_tm: Option<IsoDate>,
8997    #[serde(rename = "TmPrd", skip_serializing_if = "Option::is_none")]
8998    pub tm_prd: Option<Max35Text>,
8999    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
9000    pub drtn: Option<IsoTime>,
9001    #[serde(rename = "CallFr", skip_serializing_if = "Option::is_none")]
9002    pub call_fr: Option<TelecomCallDetails2>,
9003    #[serde(rename = "CallTo", skip_serializing_if = "Option::is_none")]
9004    pub call_to: Option<TelecomCallDetails2>,
9005    #[validate(length(min = 0,))]
9006    #[serde(rename = "Chrg", default)]
9007    pub chrg: Vec<Amount20>,
9008    #[validate(length(min = 0,))]
9009    #[serde(rename = "TtlTax", default)]
9010    pub ttl_tax: Vec<Tax39>,
9011    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
9012    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
9013    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
9014    pub desc: Option<Max256Text>,
9015    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
9016    pub addtl_data: Option<Max350Text>,
9017}
9018#[derive(
9019    Debug,
9020    Default,
9021    Clone,
9022    PartialEq,
9023    ::serde::Serialize,
9024    ::serde::Deserialize,
9025    ::derive_builder::Builder,
9026    ::validator::Validate,
9027)]
9028pub struct AlgorithmIdentification21 {
9029    #[serde(rename = "Algo")]
9030    pub algo: Algorithm16Code,
9031}
9032#[derive(
9033    Debug,
9034    Default,
9035    Clone,
9036    PartialEq,
9037    ::serde::Serialize,
9038    ::serde::Deserialize,
9039    ::derive_builder::Builder,
9040    ::validator::Validate,
9041)]
9042pub struct Max2048Text {
9043    #[validate(length(min = 1, max = 2048,))]
9044    #[serde(rename = "$text")]
9045    pub value: String,
9046}
9047#[derive(
9048    Debug,
9049    Default,
9050    Clone,
9051    PartialEq,
9052    ::serde::Serialize,
9053    ::serde::Deserialize,
9054    ::derive_builder::Builder,
9055    ::validator::Validate,
9056)]
9057pub struct DeviceOperatingSystem1 {
9058    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
9059    pub id: Option<Max70Text>,
9060    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
9061    pub tp: Option<DeviceOperatingSystemType1Code>,
9062    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
9063    pub othr_tp: Option<Max35Text>,
9064    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
9065    pub vrsn: Option<Max35Text>,
9066    #[serde(rename = "Bld", skip_serializing_if = "Option::is_none")]
9067    pub bld: Option<Max70Text>,
9068}
9069#[derive(
9070    Debug,
9071    Default,
9072    Clone,
9073    PartialEq,
9074    ::serde::Serialize,
9075    ::serde::Deserialize,
9076    ::derive_builder::Builder,
9077    ::validator::Validate,
9078)]
9079pub struct Max140Text {
9080    #[validate(length(min = 1, max = 140,))]
9081    #[serde(rename = "$text")]
9082    pub value: String,
9083}
9084#[derive(
9085    Debug,
9086    Default,
9087    Clone,
9088    PartialEq,
9089    ::serde::Serialize,
9090    ::serde::Deserialize,
9091    ::derive_builder::Builder,
9092    ::validator::Validate,
9093)]
9094pub struct Max37Text {
9095    #[validate(length(min = 1, max = 37,))]
9096    #[serde(rename = "$text")]
9097    pub value: String,
9098}
9099#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9100pub enum LegalStructure1Code {
9101    #[serde(rename = "STAE")]
9102    Stae,
9103    #[serde(rename = "PVIN")]
9104    Pvin,
9105    #[serde(rename = "MUNI")]
9106    Muni,
9107    #[serde(rename = "CNTY")]
9108    Cnty,
9109    #[serde(rename = "NATI")]
9110    Nati,
9111    #[default]
9112    Unknown,
9113}
9114#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9115pub enum ActionType11Code {
9116    #[serde(rename = "CNTI")]
9117    Cnti,
9118    #[serde(rename = "CNIS")]
9119    Cnis,
9120    #[serde(rename = "CNTA")]
9121    Cnta,
9122    #[serde(rename = "CNAS")]
9123    Cnas,
9124    #[serde(rename = "CPTR")]
9125    Cptr,
9126    #[serde(rename = "CHDV")]
9127    Chdv,
9128    #[serde(rename = "VIPM")]
9129    Vipm,
9130    #[serde(rename = "TRCK")]
9131    Trck,
9132    #[serde(rename = "TRXR")]
9133    Trxr,
9134    #[serde(rename = "OTHN")]
9135    Othn,
9136    #[serde(rename = "OTHP")]
9137    Othp,
9138    #[serde(rename = "SIGN")]
9139    Sign,
9140    #[default]
9141    Unknown,
9142}
9143#[derive(
9144    Debug,
9145    Default,
9146    Clone,
9147    PartialEq,
9148    ::serde::Serialize,
9149    ::serde::Deserialize,
9150    ::derive_builder::Builder,
9151    ::validator::Validate,
9152)]
9153pub struct DepartureOrArrival1 {
9154    #[serde(rename = "Lctn", skip_serializing_if = "Option::is_none")]
9155    pub lctn: Option<Max70Text>,
9156    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
9157    pub desc: Option<Max256Text>,
9158    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
9159    pub dt: Option<IsoDate>,
9160    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
9161    pub tm: Option<IsoTime>,
9162}
9163#[derive(
9164    Debug,
9165    Default,
9166    Clone,
9167    PartialEq,
9168    ::serde::Serialize,
9169    ::serde::Deserialize,
9170    ::derive_builder::Builder,
9171    ::validator::Validate,
9172)]
9173pub struct Max10KText {
9174    #[validate(length(min = 1, max = 10000,))]
9175    #[serde(rename = "$text")]
9176    pub value: String,
9177}
9178#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9179pub enum TerminalType1Code {
9180    #[serde(rename = "ATMT")]
9181    Atmt,
9182    #[serde(rename = "MPOS")]
9183    Mpos,
9184    #[serde(rename = "OTHN")]
9185    Othn,
9186    #[serde(rename = "OTHP")]
9187    Othp,
9188    #[serde(rename = "POST")]
9189    Post,
9190    #[default]
9191    Unknown,
9192}
9193#[derive(
9194    Debug,
9195    Default,
9196    Clone,
9197    PartialEq,
9198    ::serde::Serialize,
9199    ::serde::Deserialize,
9200    ::derive_builder::Builder,
9201    ::validator::Validate,
9202)]
9203pub struct AuthenticatedData5 {
9204    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
9205    pub vrsn: Option<Number>,
9206    #[validate(length(min = 1,))]
9207    #[serde(rename = "Rcpt", default)]
9208    pub rcpt: Vec<Recipient6Choice>,
9209    #[validate]
9210    #[serde(rename = "MACAlgo")]
9211    pub mac_algo: AlgorithmIdentification22,
9212    #[validate]
9213    #[serde(rename = "NcpsltdCntt")]
9214    pub ncpsltd_cntt: EncapsulatedContent3,
9215    #[validate]
9216    #[serde(rename = "MAC")]
9217    pub mac: Max140Binary,
9218}
9219#[derive(
9220    Debug,
9221    Default,
9222    Clone,
9223    PartialEq,
9224    ::serde::Serialize,
9225    ::serde::Deserialize,
9226    ::derive_builder::Builder,
9227    ::validator::Validate,
9228)]
9229pub struct Traceability9 {
9230    #[validate]
9231    #[serde(rename = "RlayId")]
9232    pub rlay_id: GenericIdentification183,
9233    #[serde(rename = "TracDtTmIn", skip_serializing_if = "Option::is_none")]
9234    pub trac_dt_tm_in: Option<IsoDateTime>,
9235    #[serde(rename = "TracDtTmOut", skip_serializing_if = "Option::is_none")]
9236    pub trac_dt_tm_out: Option<IsoDateTime>,
9237}
9238#[derive(
9239    Debug,
9240    Default,
9241    Clone,
9242    PartialEq,
9243    ::serde::Serialize,
9244    ::serde::Deserialize,
9245    ::derive_builder::Builder,
9246    ::validator::Validate,
9247)]
9248pub struct SpecialProgrammeDetails1 {
9249    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
9250    pub nm: Option<Max35Text>,
9251    #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
9252    pub val: Option<Max35Text>,
9253}
9254#[derive(
9255    Debug,
9256    Default,
9257    Clone,
9258    PartialEq,
9259    ::serde::Serialize,
9260    ::serde::Deserialize,
9261    ::derive_builder::Builder,
9262    ::validator::Validate,
9263)]
9264pub struct TransactionContext7 {
9265    #[serde(rename = "MrchntCtgyCd")]
9266    pub mrchnt_ctgy_cd: Iso18245MerchantCategoryCode,
9267    #[serde(
9268        rename = "MrchntCtgySpcfcData",
9269        skip_serializing_if = "Option::is_none"
9270    )]
9271    pub mrchnt_ctgy_spcfc_data: Option<Max35Text>,
9272    #[serde(rename = "CstmrCnsnt", skip_serializing_if = "Option::is_none")]
9273    pub cstmr_cnsnt: Option<TrueFalseIndicator>,
9274    #[serde(rename = "PINPadInprtv", skip_serializing_if = "Option::is_none")]
9275    pub pin_pad_inprtv: Option<TrueFalseIndicator>,
9276    #[serde(rename = "PINNtryBpssInd", skip_serializing_if = "Option::is_none")]
9277    pub pin_ntry_bpss_ind: Option<TrueFalseIndicator>,
9278    #[serde(rename = "ICCFllbckInd", skip_serializing_if = "Option::is_none")]
9279    pub icc_fllbck_ind: Option<TrueFalseIndicator>,
9280    #[serde(rename = "ICCFllbckRsnCd", skip_serializing_if = "Option::is_none")]
9281    pub icc_fllbck_rsn_cd: Option<IccFallbackReason1Code>,
9282    #[serde(rename = "OthrICCFllbckRsnCd", skip_serializing_if = "Option::is_none")]
9283    pub othr_icc_fllbck_rsn_cd: Option<Max35Text>,
9284    #[serde(rename = "MgntcStrpFllbckInd", skip_serializing_if = "Option::is_none")]
9285    pub mgntc_strp_fllbck_ind: Option<TrueFalseIndicator>,
9286    #[serde(rename = "LatePresntmntInd", skip_serializing_if = "Option::is_none")]
9287    pub late_presntmnt_ind: Option<TrueFalseIndicator>,
9288    #[serde(rename = "FnlAuthstnInd", skip_serializing_if = "Option::is_none")]
9289    pub fnl_authstn_ind: Option<TrueFalseIndicator>,
9290    #[serde(rename = "DfrrdDlvryInd", skip_serializing_if = "Option::is_none")]
9291    pub dfrrd_dlvry_ind: Option<TrueFalseIndicator>,
9292    #[serde(rename = "PrtlShipmntInd", skip_serializing_if = "Option::is_none")]
9293    pub prtl_shipmnt_ind: Option<TrueFalseIndicator>,
9294    #[serde(rename = "DelydChrgsInd", skip_serializing_if = "Option::is_none")]
9295    pub delyd_chrgs_ind: Option<TrueFalseIndicator>,
9296    #[serde(rename = "NoShowInd", skip_serializing_if = "Option::is_none")]
9297    pub no_show_ind: Option<TrueFalseIndicator>,
9298    #[serde(rename = "ReauthstnInd", skip_serializing_if = "Option::is_none")]
9299    pub reauthstn_ind: Option<TrueFalseIndicator>,
9300    #[serde(rename = "ReSubmissnInd", skip_serializing_if = "Option::is_none")]
9301    pub re_submissn_ind: Option<TrueFalseIndicator>,
9302    #[serde(rename = "TxInitr", skip_serializing_if = "Option::is_none")]
9303    pub tx_initr: Option<TransactionInitiator1Code>,
9304    #[serde(rename = "AuthntcnOutgInd", skip_serializing_if = "Option::is_none")]
9305    pub authntcn_outg_ind: Option<TrueFalseIndicator>,
9306    #[serde(rename = "CardPrgrmm", skip_serializing_if = "Option::is_none")]
9307    pub card_prgrmm: Option<CardProgramme2>,
9308    #[serde(rename = "Jursdctn", skip_serializing_if = "Option::is_none")]
9309    pub jursdctn: Option<Jurisdiction2>,
9310    #[serde(rename = "SttlmSvc", skip_serializing_if = "Option::is_none")]
9311    pub sttlm_svc: Option<SettlementService3>,
9312    #[serde(rename = "Rcncltn", skip_serializing_if = "Option::is_none")]
9313    pub rcncltn: Option<Reconciliation3>,
9314    #[validate(length(min = 0,))]
9315    #[serde(rename = "XchgRateInf", default)]
9316    pub xchg_rate_inf: Vec<ExchangeRateInformation2>,
9317    #[serde(rename = "CaptrDt", skip_serializing_if = "Option::is_none")]
9318    pub captr_dt: Option<IsoDate>,
9319    #[serde(rename = "DtAntcptd", skip_serializing_if = "Option::is_none")]
9320    pub dt_antcptd: Option<IsoDate>,
9321    #[validate(length(min = 0,))]
9322    #[serde(rename = "AddtlData", default)]
9323    pub addtl_data: Vec<AdditionalData1>,
9324}
9325#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9326pub enum CompanyAssigner2Code {
9327    #[serde(rename = "ASSO")]
9328    Asso,
9329    #[serde(rename = "AUTH")]
9330    Auth,
9331    #[serde(rename = "CPNY")]
9332    Cpny,
9333    #[serde(rename = "LEII")]
9334    Leii,
9335    #[serde(rename = "TRAG")]
9336    Trag,
9337    #[serde(rename = "OTHP")]
9338    Othp,
9339    #[serde(rename = "OTHN")]
9340    Othn,
9341    #[default]
9342    Unknown,
9343}
9344#[derive(
9345    Debug,
9346    Default,
9347    Clone,
9348    PartialEq,
9349    ::serde::Serialize,
9350    ::serde::Deserialize,
9351    ::derive_builder::Builder,
9352    ::validator::Validate,
9353)]
9354pub struct FleetSummary2 {
9355    #[serde(rename = "Drvr", skip_serializing_if = "Option::is_none")]
9356    pub drvr: Option<Driver2>,
9357    #[serde(rename = "Vhcl", skip_serializing_if = "Option::is_none")]
9358    pub vhcl: Option<Vehicle5>,
9359    #[serde(rename = "DrvrOrVhclCard", skip_serializing_if = "Option::is_none")]
9360    pub drvr_or_vhcl_card: Option<PlainCardData21>,
9361    #[serde(rename = "CardFuelPrmptCd", skip_serializing_if = "Option::is_none")]
9362    pub card_fuel_prmpt_cd: Option<Max1Number>,
9363    #[serde(rename = "AgtFuelPrmptCd", skip_serializing_if = "Option::is_none")]
9364    pub agt_fuel_prmpt_cd: Option<Max35Text>,
9365    #[serde(rename = "TripInf", skip_serializing_if = "Option::is_none")]
9366    pub trip_inf: Option<TripInformation1>,
9367    #[validate(length(min = 0,))]
9368    #[serde(rename = "LclAmnty", default)]
9369    pub lcl_amnty: Vec<LocalAmenity1>,
9370    #[validate(length(min = 0,))]
9371    #[serde(rename = "TxRltdData", default)]
9372    pub tx_rltd_data: Vec<PaymentTransaction141>,
9373    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
9374    pub addtl_data: Option<AdditionalInformation19>,
9375}
9376#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9377pub enum KeyUsage1Code {
9378    #[serde(rename = "ENCR")]
9379    Encr,
9380    #[serde(rename = "DCPT")]
9381    Dcpt,
9382    #[serde(rename = "DENC")]
9383    Denc,
9384    #[serde(rename = "DDEC")]
9385    Ddec,
9386    #[serde(rename = "TRNI")]
9387    Trni,
9388    #[serde(rename = "TRNX")]
9389    Trnx,
9390    #[serde(rename = "MACG")]
9391    Macg,
9392    #[serde(rename = "MACV")]
9393    Macv,
9394    #[serde(rename = "SIGG")]
9395    Sigg,
9396    #[serde(rename = "SUGV")]
9397    Sugv,
9398    #[serde(rename = "PINE")]
9399    Pine,
9400    #[serde(rename = "PIND")]
9401    Pind,
9402    #[serde(rename = "PINV")]
9403    Pinv,
9404    #[serde(rename = "KEYG")]
9405    Keyg,
9406    #[serde(rename = "KEYI")]
9407    Keyi,
9408    #[serde(rename = "KEYX")]
9409    Keyx,
9410    #[serde(rename = "KEYD")]
9411    Keyd,
9412    #[default]
9413    Unknown,
9414}
9415#[derive(
9416    Debug,
9417    Default,
9418    Clone,
9419    PartialEq,
9420    ::serde::Serialize,
9421    ::serde::Deserialize,
9422    ::derive_builder::Builder,
9423    ::validator::Validate,
9424)]
9425pub struct DisplayCapabilities6 {
9426    #[serde(rename = "Dstn")]
9427    pub dstn: UserInterface1Code,
9428    #[validate(length(min = 0,))]
9429    #[serde(rename = "AvlblFrmt", default)]
9430    pub avlbl_frmt: Vec<OutputFormat1Code>,
9431    #[serde(rename = "NbOfLines", skip_serializing_if = "Option::is_none")]
9432    pub nb_of_lines: Option<Number>,
9433    #[serde(rename = "LineWidth", skip_serializing_if = "Option::is_none")]
9434    pub line_width: Option<Number>,
9435    #[validate(length(min = 0,))]
9436    #[serde(rename = "AvlblLang", default)]
9437    pub avlbl_lang: Vec<LanguageCode>,
9438}
9439#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9440pub enum Endpoint1Code {
9441    #[serde(rename = "DEST")]
9442    Dest,
9443    #[serde(rename = "ORIG")]
9444    Orig,
9445    #[serde(rename = "OTHP")]
9446    Othp,
9447    #[serde(rename = "OTHN")]
9448    Othn,
9449    #[default]
9450    Unknown,
9451}
9452#[derive(
9453    Debug,
9454    Default,
9455    Clone,
9456    PartialEq,
9457    ::serde::Serialize,
9458    ::serde::Deserialize,
9459    ::derive_builder::Builder,
9460    ::validator::Validate,
9461)]
9462pub struct Max11NumericText {
9463    #[validate(regex = "MAX_11_NUMERIC_TEXT_REGEX")]
9464    #[serde(rename = "$text")]
9465    pub value: String,
9466}
9467#[derive(
9468    Debug,
9469    Default,
9470    Clone,
9471    PartialEq,
9472    ::serde::Serialize,
9473    ::serde::Deserialize,
9474    ::derive_builder::Builder,
9475    ::validator::Validate,
9476)]
9477pub struct Max15NumericText {
9478    #[validate(regex = "MAX_15_NUMERIC_TEXT_REGEX")]
9479    #[serde(rename = "$text")]
9480    pub value: String,
9481}
9482#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9483pub enum BytePadding1Code {
9484    #[serde(rename = "LNGT")]
9485    Lngt,
9486    #[serde(rename = "NUL8")]
9487    Nul8,
9488    #[serde(rename = "NULG")]
9489    Nulg,
9490    #[serde(rename = "NULL")]
9491    Null,
9492    #[serde(rename = "RAND")]
9493    Rand,
9494    #[default]
9495    Unknown,
9496}
9497#[derive(
9498    Debug,
9499    Default,
9500    Clone,
9501    PartialEq,
9502    ::serde::Serialize,
9503    ::serde::Deserialize,
9504    ::derive_builder::Builder,
9505    ::validator::Validate,
9506)]
9507pub struct MemoryCharacteristics1 {
9508    #[validate]
9509    #[serde(rename = "Id")]
9510    pub id: Max35Text,
9511    #[validate]
9512    #[serde(rename = "TtlSz")]
9513    pub ttl_sz: DecimalNumber,
9514    #[validate]
9515    #[serde(rename = "FreeSz")]
9516    pub free_sz: DecimalNumber,
9517    #[serde(rename = "Unit")]
9518    pub unit: MemoryUnit1Code,
9519}
9520#[derive(
9521    Debug,
9522    Default,
9523    Clone,
9524    PartialEq,
9525    ::serde::Serialize,
9526    ::serde::Deserialize,
9527    ::derive_builder::Builder,
9528    ::validator::Validate,
9529)]
9530pub struct Max40Text {
9531    #[validate(length(min = 1, max = 40,))]
9532    #[serde(rename = "$text")]
9533    pub value: String,
9534}
9535#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9536pub enum Algorithm16Code {
9537    #[serde(rename = "HS25")]
9538    Hs25,
9539    #[serde(rename = "HS38")]
9540    Hs38,
9541    #[serde(rename = "HS51")]
9542    Hs51,
9543    #[serde(rename = "HS01")]
9544    Hs01,
9545    #[serde(rename = "SH31")]
9546    Sh31,
9547    #[serde(rename = "SH32")]
9548    Sh32,
9549    #[serde(rename = "SH33")]
9550    Sh33,
9551    #[serde(rename = "SH35")]
9552    Sh35,
9553    #[serde(rename = "SHK1")]
9554    Shk1,
9555    #[serde(rename = "SHK2")]
9556    Shk2,
9557    #[default]
9558    Unknown,
9559}
9560#[derive(
9561    Debug,
9562    Default,
9563    Clone,
9564    PartialEq,
9565    ::serde::Serialize,
9566    ::serde::Deserialize,
9567    ::derive_builder::Builder,
9568    ::validator::Validate,
9569)]
9570pub struct Contact3 {
9571    #[serde(rename = "CntrlPhneNb", skip_serializing_if = "Option::is_none")]
9572    pub cntrl_phne_nb: Option<PhoneNumber>,
9573    #[serde(rename = "PrprtyPhneNb", skip_serializing_if = "Option::is_none")]
9574    pub prprty_phne_nb: Option<PhoneNumber>,
9575    #[serde(rename = "TollFreePhneNb", skip_serializing_if = "Option::is_none")]
9576    pub toll_free_phne_nb: Option<PhoneNumber>,
9577    #[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
9578    pub email: Option<Max256Text>,
9579    #[serde(rename = "FaxNb", skip_serializing_if = "Option::is_none")]
9580    pub fax_nb: Option<PhoneNumber>,
9581    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
9582    pub url_adr: Option<Max256Text>,
9583    #[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
9584    pub lang: Option<LanguageCode>,
9585}
9586#[derive(
9587    Debug,
9588    Default,
9589    Clone,
9590    PartialEq,
9591    ::serde::Serialize,
9592    ::serde::Deserialize,
9593    ::derive_builder::Builder,
9594    ::validator::Validate,
9595)]
9596pub struct InvoiceLineItem2 {
9597    #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
9598    pub dt: Option<IsoDate>,
9599    #[serde(rename = "OrdrDt", skip_serializing_if = "Option::is_none")]
9600    pub ordr_dt: Option<IsoDate>,
9601    #[serde(rename = "CtrctNb", skip_serializing_if = "Option::is_none")]
9602    pub ctrct_nb: Option<Max70Text>,
9603    #[serde(rename = "ShppgDt", skip_serializing_if = "Option::is_none")]
9604    pub shppg_dt: Option<IsoDate>,
9605    #[serde(rename = "RbllgInd", skip_serializing_if = "Option::is_none")]
9606    pub rbllg_ind: Option<TrueFalseIndicator>,
9607    #[serde(rename = "MdclSvcsInd", skip_serializing_if = "Option::is_none")]
9608    pub mdcl_svcs_ind: Option<TrueFalseIndicator>,
9609    #[serde(rename = "ShipToIndstryCd", skip_serializing_if = "Option::is_none")]
9610    pub ship_to_indstry_cd: Option<Max50Text>,
9611    #[serde(rename = "PdctCd", skip_serializing_if = "Option::is_none")]
9612    pub pdct_cd: Option<Max70Text>,
9613    #[serde(rename = "PdctQlfr", skip_serializing_if = "Option::is_none")]
9614    pub pdct_qlfr: Option<Max35Text>,
9615    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
9616    pub desc: Option<Max256Text>,
9617    #[serde(rename = "TpOfSpply", skip_serializing_if = "Option::is_none")]
9618    pub tp_of_spply: Option<Max10Text>,
9619    #[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
9620    pub unit_of_measr: Option<UnitOfMeasure1Code>,
9621    #[serde(rename = "OthrUnitOfMeasr", skip_serializing_if = "Option::is_none")]
9622    pub othr_unit_of_measr: Option<Max35Text>,
9623    #[serde(rename = "UnitPric", skip_serializing_if = "Option::is_none")]
9624    pub unit_pric: Option<ImpliedCurrencyAndAmount>,
9625    #[serde(rename = "PdctQty", skip_serializing_if = "Option::is_none")]
9626    pub pdct_qty: Option<DecimalNumber>,
9627    #[serde(rename = "Adjstmnt", skip_serializing_if = "Option::is_none")]
9628    pub adjstmnt: Option<Adjustment12>,
9629    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
9630    pub insrnc_ind: Option<TrueFalseIndicator>,
9631    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
9632    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
9633    #[validate(length(min = 0,))]
9634    #[serde(rename = "Tax", default)]
9635    pub tax: Vec<Tax39>,
9636    #[serde(rename = "UnqVATInvcRef", skip_serializing_if = "Option::is_none")]
9637    pub unq_vat_invc_ref: Option<Max35Text>,
9638    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
9639    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
9640    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
9641    pub cdt_dbt: Option<CreditDebit3Code>,
9642    #[serde(rename = "ZeroCostToCstmrInd", skip_serializing_if = "Option::is_none")]
9643    pub zero_cost_to_cstmr_ind: Option<TrueFalseIndicator>,
9644    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
9645    pub addtl_data: Option<Max350Text>,
9646}
9647#[derive(
9648    Debug,
9649    Default,
9650    Clone,
9651    PartialEq,
9652    ::serde::Serialize,
9653    ::serde::Deserialize,
9654    ::derive_builder::Builder,
9655    ::validator::Validate,
9656)]
9657pub struct PartyIdentification210 {
9658    #[serde(rename = "PrsnlId", skip_serializing_if = "Option::is_none")]
9659    pub prsnl_id: Option<Max35Text>,
9660    #[serde(rename = "MplyeeId", skip_serializing_if = "Option::is_none")]
9661    pub mplyee_id: Option<PhoneNumber>,
9662    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
9663    pub nm: Option<Max70Text>,
9664    #[serde(rename = "PrfssnlLvl", skip_serializing_if = "Option::is_none")]
9665    pub prfssnl_lvl: Option<Max35Text>,
9666}
9667#[derive(
9668    Debug,
9669    Default,
9670    Clone,
9671    PartialEq,
9672    ::serde::Serialize,
9673    ::serde::Deserialize,
9674    ::derive_builder::Builder,
9675    ::validator::Validate,
9676)]
9677pub struct TravelAgencyPackage1 {
9678    #[serde(rename = "RsvatnNb", skip_serializing_if = "Option::is_none")]
9679    pub rsvatn_nb: Option<Max35Text>,
9680    #[serde(rename = "TrvlPackgTp", skip_serializing_if = "Option::is_none")]
9681    pub trvl_packg_tp: Option<Max70Text>,
9682    #[serde(rename = "NbInPty", skip_serializing_if = "Option::is_none")]
9683    pub nb_in_pty: Option<Max10NumericText>,
9684    #[validate(length(min = 0,))]
9685    #[serde(rename = "CstmrRef", default)]
9686    pub cstmr_ref: Vec<CustomerReference1>,
9687    #[serde(rename = "DataSrc", skip_serializing_if = "Option::is_none")]
9688    pub data_src: Option<Max35Text>,
9689    #[serde(rename = "DlvryOrdrNb", skip_serializing_if = "Option::is_none")]
9690    pub dlvry_ordr_nb: Option<Max35Text>,
9691    #[serde(rename = "CdtCardSlipNb", skip_serializing_if = "Option::is_none")]
9692    pub cdt_card_slip_nb: Option<Max35Text>,
9693    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
9694    pub insrnc_ind: Option<TrueFalseIndicator>,
9695    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
9696    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
9697    #[serde(rename = "Fee", skip_serializing_if = "Option::is_none")]
9698    pub fee: Option<ImpliedCurrencyAndAmount>,
9699}
9700#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9701pub enum TypeOfAmount20Code {
9702    #[serde(rename = "AMTH")]
9703    Amth,
9704    #[serde(rename = "BAGG")]
9705    Bagg,
9706    #[serde(rename = "CARG")]
9707    Carg,
9708    #[serde(rename = "CHTC")]
9709    Chtc,
9710    #[serde(rename = "CLUB")]
9711    Club,
9712    #[serde(rename = "DUTY")]
9713    Duty,
9714    #[serde(rename = "EXTK")]
9715    Extk,
9716    #[serde(rename = "EXTF")]
9717    Extf,
9718    #[serde(rename = "EXTR")]
9719    Extr,
9720    #[serde(rename = "FARE")]
9721    Fare,
9722    #[serde(rename = "FDBV")]
9723    Fdbv,
9724    #[serde(rename = "INSU")]
9725    Insu,
9726    #[serde(rename = "MISC")]
9727    Misc,
9728    #[serde(rename = "OTHN")]
9729    Othn,
9730    #[serde(rename = "OTHP")]
9731    Othp,
9732    #[serde(rename = "PETC")]
9733    Petc,
9734    #[serde(rename = "PHNE")]
9735    Phne,
9736    #[serde(rename = "PRPY")]
9737    Prpy,
9738    #[serde(rename = "TOTL")]
9739    Totl,
9740    #[serde(rename = "TOUR")]
9741    Tour,
9742    #[serde(rename = "UPGD")]
9743    Upgd,
9744    #[serde(rename = "TKDL")]
9745    Tkdl,
9746    #[default]
9747    Unknown,
9748}
9749#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
9750pub enum Algorithm11Code {
9751    #[serde(rename = "HS25")]
9752    Hs25,
9753    #[serde(rename = "HS38")]
9754    Hs38,
9755    #[serde(rename = "HS51")]
9756    Hs51,
9757    #[serde(rename = "HS01")]
9758    Hs01,
9759    #[default]
9760    Unknown,
9761}
9762#[derive(
9763    Debug,
9764    Default,
9765    Clone,
9766    PartialEq,
9767    ::serde::Serialize,
9768    ::serde::Deserialize,
9769    ::derive_builder::Builder,
9770    ::validator::Validate,
9771)]
9772pub struct Max20Text {
9773    #[validate(length(min = 1, max = 20,))]
9774    #[serde(rename = "$text")]
9775    pub value: String,
9776}
9777#[derive(
9778    Debug,
9779    Default,
9780    Clone,
9781    PartialEq,
9782    ::serde::Serialize,
9783    ::serde::Deserialize,
9784    ::derive_builder::Builder,
9785    ::validator::Validate,
9786)]
9787pub struct Kek5 {
9788    #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
9789    pub vrsn: Option<Number>,
9790    #[validate]
9791    #[serde(rename = "KEKId")]
9792    pub kek_id: KekIdentifier2,
9793    #[validate]
9794    #[serde(rename = "KeyNcrptnAlgo")]
9795    pub key_ncrptn_algo: AlgorithmIdentification23,
9796    #[validate]
9797    #[serde(rename = "NcrptdKey")]
9798    pub ncrptd_key: Max500Binary,
9799}
9800#[derive(
9801    Debug,
9802    Default,
9803    Clone,
9804    PartialEq,
9805    ::serde::Serialize,
9806    ::serde::Deserialize,
9807    ::derive_builder::Builder,
9808    ::validator::Validate,
9809)]
9810pub struct Wallet2 {
9811    #[serde(rename = "Prvdr", skip_serializing_if = "Option::is_none")]
9812    pub prvdr: Option<PartyIdentification258>,
9813    #[serde(rename = "PANAge", skip_serializing_if = "Option::is_none")]
9814    pub pan_age: Option<Max5PositiveNumber>,
9815    #[serde(rename = "UsrAcctAge", skip_serializing_if = "Option::is_none")]
9816    pub usr_acct_age: Option<Max5PositiveNumber>,
9817    #[serde(rename = "WlltAcctAge", skip_serializing_if = "Option::is_none")]
9818    pub wllt_acct_age: Option<Max5PositiveNumber>,
9819    #[serde(rename = "DaysSncLastActvty", skip_serializing_if = "Option::is_none")]
9820    pub days_snc_last_actvty: Option<Max5PositiveNumber>,
9821    #[serde(rename = "Actvty", skip_serializing_if = "Option::is_none")]
9822    pub actvty: Option<Max10PositiveNumber>,
9823    #[serde(rename = "ActvtyIntrvl", skip_serializing_if = "Option::is_none")]
9824    pub actvty_intrvl: Option<Frequency12Code>,
9825    #[serde(rename = "LastWlltChng", skip_serializing_if = "Option::is_none")]
9826    pub last_wllt_chng: Option<Max5PositiveNumber>,
9827    #[serde(rename = "SspdCrds", skip_serializing_if = "Option::is_none")]
9828    pub sspd_crds: Option<Max5PositiveNumber>,
9829    #[serde(rename = "WlltAcctCtry", skip_serializing_if = "Option::is_none")]
9830    pub wllt_acct_ctry: Option<IsoMax3ACountryCode>,
9831    #[serde(rename = "CardDataNtryMd", skip_serializing_if = "Option::is_none")]
9832    pub card_data_ntry_md: Option<CardDataReading9Code>,
9833    #[serde(rename = "OthrCardDataNtryMd", skip_serializing_if = "Option::is_none")]
9834    pub othr_card_data_ntry_md: Option<Max35Text>,
9835    #[serde(rename = "WlltAcctEmailAge", skip_serializing_if = "Option::is_none")]
9836    pub wllt_acct_email_age: Option<Max5PositiveNumber>,
9837    #[serde(rename = "WlltPrvdrRskAssmnt", skip_serializing_if = "Option::is_none")]
9838    pub wllt_prvdr_rsk_assmnt: Option<RiskAssessment1Code>,
9839    #[serde(
9840        rename = "WlltPrvdrRskAssmntMdlVrsn",
9841        skip_serializing_if = "Option::is_none"
9842    )]
9843    pub wllt_prvdr_rsk_assmnt_mdl_vrsn: Option<Max35Text>,
9844    #[serde(rename = "WlltPrvdrPhneScore", skip_serializing_if = "Option::is_none")]
9845    pub wllt_prvdr_phne_score: Option<Max5PositiveNumber>,
9846    #[serde(rename = "WlltPrvdrDvcScore", skip_serializing_if = "Option::is_none")]
9847    pub wllt_prvdr_dvc_score: Option<Max5PositiveNumber>,
9848    #[serde(rename = "WlltPrvdrAcctScore", skip_serializing_if = "Option::is_none")]
9849    pub wllt_prvdr_acct_score: Option<Max5PositiveNumber>,
9850    #[validate(length(min = 0,))]
9851    #[serde(rename = "AddtlData", default)]
9852    pub addtl_data: Vec<AdditionalData1>,
9853}
9854#[derive(
9855    Debug,
9856    Default,
9857    Clone,
9858    PartialEq,
9859    ::serde::Serialize,
9860    ::serde::Deserialize,
9861    ::derive_builder::Builder,
9862    ::validator::Validate,
9863)]
9864pub struct Address2 {
9865    #[serde(rename = "AdrLine1", skip_serializing_if = "Option::is_none")]
9866    pub adr_line_1: Option<Max99Text>,
9867    #[serde(rename = "AdrLine2", skip_serializing_if = "Option::is_none")]
9868    pub adr_line_2: Option<Max99Text>,
9869    #[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
9870    pub strt_nm: Option<Max99Text>,
9871    #[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
9872    pub bldg_nb: Option<Max16Text>,
9873    #[serde(rename = "PstlCd", skip_serializing_if = "Option::is_none")]
9874    pub pstl_cd: Option<Max16Text>,
9875    #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
9876    pub twn_nm: Option<Max50Text>,
9877    #[serde(rename = "CtrySubDvsnMnr", skip_serializing_if = "Option::is_none")]
9878    pub ctry_sub_dvsn_mnr: Option<IsoCountrySubDivisionCode>,
9879    #[serde(rename = "CtrySubDvsnMjr", skip_serializing_if = "Option::is_none")]
9880    pub ctry_sub_dvsn_mjr: Option<IsoCountrySubDivisionCode>,
9881    #[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
9882    pub ctry_sub_dvsn_mjr_nm: Option<Max50Text>,
9883    #[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
9884    pub ctry_sub_dvsn_mnr_nm: Option<Max50Text>,
9885    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
9886    pub ctry: Option<IsoMax3ACountryCode>,
9887}
9888#[derive(
9889    Debug,
9890    Default,
9891    Clone,
9892    PartialEq,
9893    ::serde::Serialize,
9894    ::serde::Deserialize,
9895    ::derive_builder::Builder,
9896    ::validator::Validate,
9897)]
9898pub struct LodgingSummary2 {
9899    #[serde(rename = "FolioNb", skip_serializing_if = "Option::is_none")]
9900    pub folio_nb: Option<Max35Text>,
9901    #[serde(rename = "Prprty", skip_serializing_if = "Option::is_none")]
9902    pub prprty: Option<LodgingProperty2>,
9903    #[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
9904    pub cstmr: Option<Customer8>,
9905    #[serde(rename = "NbOfRooms", skip_serializing_if = "Option::is_none")]
9906    pub nb_of_rooms: Option<Max4NumericText>,
9907    #[validate(length(min = 0,))]
9908    #[serde(rename = "Room", default)]
9909    pub room: Vec<LodgingRoom1>,
9910    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
9911    pub drtn: Option<Max4NumericText>,
9912    #[serde(rename = "Arrvl", skip_serializing_if = "Option::is_none")]
9913    pub arrvl: Option<DepartureOrArrival2>,
9914    #[serde(rename = "Dprture", skip_serializing_if = "Option::is_none")]
9915    pub dprture: Option<DepartureOrArrival1>,
9916    #[serde(rename = "NoShowInd", skip_serializing_if = "Option::is_none")]
9917    pub no_show_ind: Option<TrueFalseIndicator>,
9918    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
9919    pub insrnc_ind: Option<TrueFalseIndicator>,
9920    #[serde(rename = "InsrncAmt", skip_serializing_if = "Option::is_none")]
9921    pub insrnc_amt: Option<ImpliedCurrencyAndAmount>,
9922    #[validate(length(min = 0,))]
9923    #[serde(rename = "TtlTax", default)]
9924    pub ttl_tax: Vec<Tax39>,
9925    #[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
9926    pub ttl_amt: Option<ImpliedCurrencyAndAmount>,
9927    #[validate(length(min = 0,))]
9928    #[serde(rename = "AuthrsdAmt", default)]
9929    pub authrsd_amt: Vec<AuthorisedAmount1>,
9930    #[serde(rename = "SummryCmmdtyId", skip_serializing_if = "Option::is_none")]
9931    pub summry_cmmdty_id: Option<Max35Text>,
9932    #[validate(length(min = 0,))]
9933    #[serde(rename = "LltyPrgrmm", default)]
9934    pub llty_prgrmm: Vec<LoyaltyProgramme2>,
9935    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
9936    pub addtl_data: Option<Max350Text>,
9937}
9938#[derive(
9939    Debug,
9940    Default,
9941    Clone,
9942    PartialEq,
9943    ::serde::Serialize,
9944    ::serde::Deserialize,
9945    ::derive_builder::Builder,
9946    ::validator::Validate,
9947)]
9948pub struct AccountDetails3 {
9949    #[serde(rename = "AcctNm", skip_serializing_if = "Option::is_none")]
9950    pub acct_nm: Option<Max70Text>,
9951    #[serde(rename = "AcctTp", skip_serializing_if = "Option::is_none")]
9952    pub acct_tp: Option<Iso8583AccountTypeCode>,
9953    #[serde(rename = "AcctId", skip_serializing_if = "Option::is_none")]
9954    pub acct_id: Option<Max70Text>,
9955}
9956#[derive(
9957    Debug,
9958    Default,
9959    Clone,
9960    PartialEq,
9961    ::serde::Serialize,
9962    ::serde::Deserialize,
9963    ::derive_builder::Builder,
9964    ::validator::Validate,
9965)]
9966pub struct Ticket2 {
9967    #[serde(rename = "TcktNb", skip_serializing_if = "Option::is_none")]
9968    pub tckt_nb: Option<Max35Text>,
9969    #[serde(rename = "TcktIssr", skip_serializing_if = "Option::is_none")]
9970    pub tckt_issr: Option<PartyIdentification258>,
9971    #[serde(rename = "TcktIsseDt", skip_serializing_if = "Option::is_none")]
9972    pub tckt_isse_dt: Option<IsoDate>,
9973    #[serde(rename = "TcktIsseLctn", skip_serializing_if = "Option::is_none")]
9974    pub tckt_isse_lctn: Option<Max140Text>,
9975    #[serde(rename = "CnjnctnTcktNb", skip_serializing_if = "Option::is_none")]
9976    pub cnjnctn_tckt_nb: Option<Max35Text>,
9977    #[serde(rename = "RstrctdTcktInd", skip_serializing_if = "Option::is_none")]
9978    pub rstrctd_tckt_ind: Option<TrueFalseIndicator>,
9979    #[serde(rename = "OpnTcktInd", skip_serializing_if = "Option::is_none")]
9980    pub opn_tckt_ind: Option<TrueFalseIndicator>,
9981    #[serde(rename = "Rstrctns", skip_serializing_if = "Option::is_none")]
9982    pub rstrctns: Option<Max70Text>,
9983    #[serde(rename = "XchgdTcktInd", skip_serializing_if = "Option::is_none")]
9984    pub xchgd_tckt_ind: Option<TrueFalseIndicator>,
9985    #[serde(rename = "XchgdTcktNb", skip_serializing_if = "Option::is_none")]
9986    pub xchgd_tckt_nb: Option<Max35Text>,
9987    #[serde(rename = "RcrdLctrNb", skip_serializing_if = "Option::is_none")]
9988    pub rcrd_lctr_nb: Option<Max35Text>,
9989    #[serde(rename = "Rsvatn", skip_serializing_if = "Option::is_none")]
9990    pub rsvatn: Option<ReservationDetails3>,
9991}
9992#[derive(
9993    Debug,
9994    Default,
9995    Clone,
9996    PartialEq,
9997    ::serde::Serialize,
9998    ::serde::Deserialize,
9999    ::derive_builder::Builder,
10000    ::validator::Validate,
10001)]
10002pub struct AdministrativeInitiation1<
10003    A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
10004> {
10005    #[validate]
10006    #[serde(rename = "Envt")]
10007    pub envt: Environment34,
10008    #[serde(rename = "Cntxt", skip_serializing_if = "Option::is_none")]
10009    pub cntxt: Option<Context18>,
10010    #[validate]
10011    #[serde(rename = "Tx")]
10012    pub tx: Transaction144,
10013    #[validate(length(min = 0,))]
10014    #[serde(rename = "OrgnlTx", default)]
10015    pub orgnl_tx: Vec<OriginalTransaction2>,
10016    #[serde(rename = "AdddmData", skip_serializing_if = "Option::is_none")]
10017    pub adddm_data: Option<AddendumData3>,
10018    #[validate(length(min = 0,))]
10019    #[serde(rename = "AddtlData", default)]
10020    pub addtl_data: Vec<AdditionalData2>,
10021    #[serde(rename = "PrcgRslt", skip_serializing_if = "Option::is_none")]
10022    pub prcg_rslt: Option<ProcessingResult16>,
10023    #[serde(rename = "ICCRltdData", skip_serializing_if = "Option::is_none")]
10024    pub icc_rltd_data: Option<Max10KHexBinaryText>,
10025    #[validate(length(min = 0,))]
10026    #[serde(rename = "PrtctdData", default)]
10027    pub prtctd_data: Vec<ProtectedData1>,
10028    #[validate(length(min = 0,))]
10029    #[serde(rename = "SplmtryData", default)]
10030    pub splmtry_data: Vec<SupplementaryData1<A>>,
10031}
10032#[derive(
10033    Debug,
10034    Default,
10035    Clone,
10036    PartialEq,
10037    ::serde::Serialize,
10038    ::serde::Deserialize,
10039    ::derive_builder::Builder,
10040    ::validator::Validate,
10041)]
10042pub struct ApprovalEntity2 {
10043    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
10044    pub id: Option<Max35Text>,
10045    #[serde(rename = "Tp")]
10046    pub tp: PartyType26Code,
10047    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
10048    pub othr_tp: Option<Max35Text>,
10049    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
10050    pub assgnr: Option<PartyType9Code>,
10051    #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
10052    pub ctry: Option<IsoMax3ACountryCode>,
10053    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
10054    pub shrt_nm: Option<Max35Text>,
10055}
10056#[derive(
10057    Debug,
10058    Default,
10059    Clone,
10060    PartialEq,
10061    ::serde::Serialize,
10062    ::serde::Deserialize,
10063    ::derive_builder::Builder,
10064    ::validator::Validate,
10065)]
10066pub struct Max16Text {
10067    #[validate(length(min = 1, max = 16,))]
10068    #[serde(rename = "$text")]
10069    pub value: String,
10070}
10071#[derive(
10072    Debug,
10073    Default,
10074    Clone,
10075    PartialEq,
10076    ::serde::Serialize,
10077    ::serde::Deserialize,
10078    ::derive_builder::Builder,
10079    ::validator::Validate,
10080)]
10081pub struct Min2Max3NumericText {
10082    #[validate(regex = "MIN_2_MAX_3_NUMERIC_TEXT_REGEX")]
10083    #[serde(rename = "$text")]
10084    pub value: String,
10085}
10086#[derive(
10087    Debug,
10088    Default,
10089    Clone,
10090    PartialEq,
10091    ::serde::Serialize,
10092    ::serde::Deserialize,
10093    ::derive_builder::Builder,
10094    ::validator::Validate,
10095)]
10096pub struct Max9999HexBinaryText {
10097    #[validate(regex = "MAX_9999_HEX_BINARY_TEXT_REGEX")]
10098    #[serde(rename = "$text")]
10099    pub value: String,
10100}
10101#[derive(
10102    Debug,
10103    Default,
10104    Clone,
10105    PartialEq,
10106    ::serde::Serialize,
10107    ::serde::Deserialize,
10108    ::derive_builder::Builder,
10109    ::validator::Validate,
10110)]
10111pub struct Amount19 {
10112    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
10113    pub desc: Option<Max35Text>,
10114    #[validate]
10115    #[serde(rename = "Amt")]
10116    pub amt: ImpliedCurrencyAndAmount,
10117    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
10118    pub cdt_dbt: Option<CreditDebit3Code>,
10119    #[validate(length(min = 0,))]
10120    #[serde(rename = "Tax", default)]
10121    pub tax: Vec<Tax39>,
10122}
10123#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10124pub enum Verification3Code {
10125    #[serde(rename = "FAIL")]
10126    Fail,
10127    #[serde(rename = "FUTA")]
10128    Futa,
10129    #[serde(rename = "MISS")]
10130    Miss,
10131    #[serde(rename = "NOSP")]
10132    Nosp,
10133    #[serde(rename = "NOVF")]
10134    Novf,
10135    #[serde(rename = "OTHN")]
10136    Othn,
10137    #[serde(rename = "OTHP")]
10138    Othp,
10139    #[serde(rename = "PART")]
10140    Part,
10141    #[serde(rename = "SUCC")]
10142    Succ,
10143    #[serde(rename = "ERRR")]
10144    Errr,
10145    #[default]
10146    Unknown,
10147}
10148#[derive(
10149    Debug,
10150    Default,
10151    Clone,
10152    PartialEq,
10153    ::serde::Serialize,
10154    ::serde::Deserialize,
10155    ::derive_builder::Builder,
10156    ::validator::Validate,
10157)]
10158pub struct PartyIdentification260 {
10159    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
10160    pub nm: Option<Max70Text>,
10161    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
10162    pub id: Option<PartyIdentification258>,
10163    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
10164    pub adr: Option<Address2>,
10165    #[serde(rename = "Ctct", skip_serializing_if = "Option::is_none")]
10166    pub ctct: Option<Contact6>,
10167    #[serde(rename = "Instrs", skip_serializing_if = "Option::is_none")]
10168    pub instrs: Option<Max350Text>,
10169}
10170#[derive(
10171    Debug,
10172    Default,
10173    Clone,
10174    PartialEq,
10175    ::serde::Serialize,
10176    ::serde::Deserialize,
10177    ::derive_builder::Builder,
10178    ::validator::Validate,
10179)]
10180pub struct TripLeg2 {
10181    #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
10182    pub seq_nb: Option<Max35NumericText>,
10183    #[serde(rename = "Tckt", skip_serializing_if = "Option::is_none")]
10184    pub tckt: Option<Ticket2>,
10185    #[validate(length(min = 0,))]
10186    #[serde(rename = "Doc", default)]
10187    pub doc: Vec<DocumentReference1>,
10188    #[serde(rename = "PrcdrRef", skip_serializing_if = "Option::is_none")]
10189    pub prcdr_ref: Option<Max35Text>,
10190    #[serde(rename = "TrnsprtTp", skip_serializing_if = "Option::is_none")]
10191    pub trnsprt_tp: Option<TransportType1Code>,
10192    #[serde(rename = "OthrTrnsprtTp", skip_serializing_if = "Option::is_none")]
10193    pub othr_trnsprt_tp: Option<Max35Text>,
10194    #[serde(rename = "CmmdtyCd", skip_serializing_if = "Option::is_none")]
10195    pub cmmdty_cd: Option<Max4Text>,
10196    #[serde(rename = "Crrier", skip_serializing_if = "Option::is_none")]
10197    pub crrier: Option<CarrierIdentification1>,
10198    #[serde(rename = "RouteNb", skip_serializing_if = "Option::is_none")]
10199    pub route_nb: Option<Max35Text>,
10200    #[serde(rename = "SvcClss", skip_serializing_if = "Option::is_none")]
10201    pub svc_clss: Option<Max35Text>,
10202    #[serde(rename = "Dprture", skip_serializing_if = "Option::is_none")]
10203    pub dprture: Option<DepartureOrArrival1>,
10204    #[serde(rename = "Arrvl", skip_serializing_if = "Option::is_none")]
10205    pub arrvl: Option<DepartureOrArrival1>,
10206    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
10207    pub drtn: Option<Max4NumericText>,
10208    #[serde(rename = "StopOverInd", skip_serializing_if = "Option::is_none")]
10209    pub stop_over_ind: Option<TrueFalseIndicator>,
10210    #[serde(rename = "NonDrctRouteCd", skip_serializing_if = "Option::is_none")]
10211    pub non_drct_route_cd: Option<Max35Text>,
10212    #[serde(rename = "FairBsisCd", skip_serializing_if = "Option::is_none")]
10213    pub fair_bsis_cd: Option<Max35Text>,
10214    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
10215    pub insrnc_ind: Option<TrueFalseIndicator>,
10216    #[validate(length(min = 0,))]
10217    #[serde(rename = "TripLegAmt", default)]
10218    pub trip_leg_amt: Vec<AmountDetails2>,
10219    #[serde(rename = "CdtRsnCd", skip_serializing_if = "Option::is_none")]
10220    pub cdt_rsn_cd: Option<Max35Text>,
10221    #[serde(rename = "PrcdrId", skip_serializing_if = "Option::is_none")]
10222    pub prcdr_id: Option<Max35Text>,
10223    #[serde(rename = "LltyPrgrmm", skip_serializing_if = "Option::is_none")]
10224    pub llty_prgrmm: Option<LoyaltyProgramme2>,
10225    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
10226    pub addtl_data: Option<Max350Text>,
10227}
10228#[derive(
10229    Debug,
10230    Default,
10231    Clone,
10232    PartialEq,
10233    ::serde::Serialize,
10234    ::serde::Deserialize,
10235    ::derive_builder::Builder,
10236    ::validator::Validate,
10237)]
10238pub struct CertificateIssuer1 {
10239    #[validate(length(min = 1,))]
10240    #[serde(rename = "RltvDstngshdNm", default)]
10241    pub rltv_dstngshd_nm: Vec<RelativeDistinguishedName1>,
10242}
10243#[derive(
10244    Debug,
10245    Default,
10246    Clone,
10247    PartialEq,
10248    ::serde::Serialize,
10249    ::serde::Deserialize,
10250    ::derive_builder::Builder,
10251    ::validator::Validate,
10252)]
10253pub struct FleetLineItem4 {
10254    #[validate]
10255    #[serde(rename = "FuelInd")]
10256    pub fuel_ind: TrueFalseIndicator,
10257    #[serde(rename = "SvcTp", skip_serializing_if = "Option::is_none")]
10258    pub svc_tp: Option<FleetServiceType1Code>,
10259    #[serde(rename = "FuelBrndCd", skip_serializing_if = "Option::is_none")]
10260    pub fuel_brnd_cd: Option<Max4Text>,
10261    #[serde(rename = "FleetPdctCd", skip_serializing_if = "Option::is_none")]
10262    pub fleet_pdct_cd: Option<Max4Text>,
10263    #[serde(rename = "FleetPdctCtgy", skip_serializing_if = "Option::is_none")]
10264    pub fleet_pdct_ctgy: Option<Max35Text>,
10265    #[serde(rename = "FleetPdctQlfr", skip_serializing_if = "Option::is_none")]
10266    pub fleet_pdct_qlfr: Option<Max6Text>,
10267    #[serde(rename = "FleetPdctCdAssgnr", skip_serializing_if = "Option::is_none")]
10268    pub fleet_pdct_cd_assgnr: Option<Max35Text>,
10269    #[serde(rename = "UnitPricTaxInd", skip_serializing_if = "Option::is_none")]
10270    pub unit_pric_tax_ind: Option<TrueFalseIndicator>,
10271    #[serde(rename = "UnitPric", skip_serializing_if = "Option::is_none")]
10272    pub unit_pric: Option<ImpliedCurrencyAndAmount>,
10273    #[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
10274    pub unit_of_measr: Option<UnitOfMeasure1Code>,
10275    #[serde(rename = "OthrUnitOfMeasr", skip_serializing_if = "Option::is_none")]
10276    pub othr_unit_of_measr: Option<Max35Text>,
10277    #[serde(rename = "PdctQty", skip_serializing_if = "Option::is_none")]
10278    pub pdct_qty: Option<DecimalNumber>,
10279    #[serde(rename = "DscntAmt", skip_serializing_if = "Option::is_none")]
10280    pub dscnt_amt: Option<ImpliedCurrencyAndAmount>,
10281    #[serde(rename = "NonTaxblInd", skip_serializing_if = "Option::is_none")]
10282    pub non_taxbl_ind: Option<TrueFalseIndicator>,
10283    #[validate(length(min = 0,))]
10284    #[serde(rename = "Tax", default)]
10285    pub tax: Vec<Tax39>,
10286    #[serde(rename = "TtlAmtExclgTax", skip_serializing_if = "Option::is_none")]
10287    pub ttl_amt_exclg_tax: Option<ImpliedCurrencyAndAmount>,
10288    #[serde(rename = "TtlAmtInclgTax", skip_serializing_if = "Option::is_none")]
10289    pub ttl_amt_inclg_tax: Option<ImpliedCurrencyAndAmount>,
10290}
10291#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10292pub enum UnitOfMeasure10Code {
10293    #[serde(rename = "KMET")]
10294    Kmet,
10295    #[serde(rename = "MILE")]
10296    Mile,
10297    #[default]
10298    Unknown,
10299}
10300#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10301pub enum Algorithm8Code {
10302    #[serde(rename = "MGF1")]
10303    Mgf1,
10304    #[default]
10305    Unknown,
10306}
10307#[derive(
10308    Debug,
10309    Default,
10310    Clone,
10311    PartialEq,
10312    ::serde::Serialize,
10313    ::serde::Deserialize,
10314    ::derive_builder::Builder,
10315    ::validator::Validate,
10316)]
10317pub struct FundingService2 {
10318    #[serde(rename = "FndgSvc", skip_serializing_if = "Option::is_none")]
10319    pub fndg_svc: Option<TransferService2>,
10320    #[validate(length(min = 0,))]
10321    #[serde(rename = "FndgSrc", default)]
10322    pub fndg_src: Vec<FundingSource2>,
10323    #[serde(rename = "ClmInf", skip_serializing_if = "Option::is_none")]
10324    pub clm_inf: Option<ClaimInformation1>,
10325}
10326#[derive(
10327    Debug,
10328    Default,
10329    Clone,
10330    PartialEq,
10331    ::serde::Serialize,
10332    ::serde::Deserialize,
10333    ::derive_builder::Builder,
10334    ::validator::Validate,
10335)]
10336pub struct Max35Text {
10337    #[validate(length(min = 1, max = 35,))]
10338    #[serde(rename = "$text")]
10339    pub value: String,
10340}
10341#[derive(
10342    Debug,
10343    Default,
10344    Clone,
10345    PartialEq,
10346    ::serde::Serialize,
10347    ::serde::Deserialize,
10348    ::derive_builder::Builder,
10349    ::validator::Validate,
10350)]
10351pub struct Recipient6ChoiceEnum {
10352    #[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
10353    pub key_trnsprt: Option<KeyTransport5>,
10354    #[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
10355    pub kek: Option<Kek5>,
10356    #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
10357    pub key_idr: Option<KekIdentifier2>,
10358}
10359#[derive(
10360    Debug,
10361    Default,
10362    Clone,
10363    PartialEq,
10364    ::serde::Serialize,
10365    ::serde::Deserialize,
10366    ::derive_builder::Builder,
10367    ::validator::Validate,
10368)]
10369pub struct Recipient6Choice {
10370    #[serde(flatten)]
10371    pub value: Recipient6ChoiceEnum,
10372}
10373#[derive(
10374    Debug,
10375    Default,
10376    Clone,
10377    PartialEq,
10378    ::serde::Serialize,
10379    ::serde::Deserialize,
10380    ::derive_builder::Builder,
10381    ::validator::Validate,
10382)]
10383pub struct Contact6 {
10384    #[serde(rename = "HomePhneNb", skip_serializing_if = "Option::is_none")]
10385    pub home_phne_nb: Option<PhoneNumber>,
10386    #[serde(rename = "BizPhneNb", skip_serializing_if = "Option::is_none")]
10387    pub biz_phne_nb: Option<PhoneNumber>,
10388    #[serde(rename = "MobPhneNb", skip_serializing_if = "Option::is_none")]
10389    pub mob_phne_nb: Option<PhoneNumber>,
10390    #[serde(rename = "OthrPhneNb", skip_serializing_if = "Option::is_none")]
10391    pub othr_phne_nb: Option<PhoneNumber>,
10392    #[serde(rename = "PrsnlEmailAdr", skip_serializing_if = "Option::is_none")]
10393    pub prsnl_email_adr: Option<Max256Text>,
10394    #[serde(rename = "BizEmailAdr", skip_serializing_if = "Option::is_none")]
10395    pub biz_email_adr: Option<Max256Text>,
10396    #[serde(rename = "OthrEmailAdr", skip_serializing_if = "Option::is_none")]
10397    pub othr_email_adr: Option<Max256Text>,
10398    #[serde(rename = "HomeFaxNb", skip_serializing_if = "Option::is_none")]
10399    pub home_fax_nb: Option<PhoneNumber>,
10400    #[serde(rename = "BizFaxNb", skip_serializing_if = "Option::is_none")]
10401    pub biz_fax_nb: Option<PhoneNumber>,
10402    #[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
10403    pub url_adr: Option<Max256Text>,
10404    #[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
10405    pub lang: Option<LanguageCode>,
10406}
10407#[derive(
10408    Debug,
10409    Default,
10410    Clone,
10411    PartialEq,
10412    ::serde::Serialize,
10413    ::serde::Deserialize,
10414    ::derive_builder::Builder,
10415    ::validator::Validate,
10416)]
10417pub struct LocalData4 {
10418    #[serde(rename = "Lang")]
10419    pub lang: IsoMax3ALanguageCode,
10420    #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
10421    pub shrt_nm: Option<Max70Text>,
10422    #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
10423    pub lgl_corp_nm: Option<Max210Text>,
10424    #[serde(rename = "NmAndLctn", skip_serializing_if = "Option::is_none")]
10425    pub nm_and_lctn: Option<Max200Text>,
10426    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
10427    pub adr: Option<Address3>,
10428    #[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
10429    pub addtl_adr_inf: Option<Max512Text>,
10430    #[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
10431    pub addtl_ctct_inf: Option<Max512Text>,
10432    #[validate(length(min = 0,))]
10433    #[serde(rename = "AddtlData", default)]
10434    pub addtl_data: Vec<AdditionalData1>,
10435}
10436#[derive(
10437    Debug,
10438    Default,
10439    Clone,
10440    PartialEq,
10441    ::serde::Serialize,
10442    ::serde::Deserialize,
10443    ::derive_builder::Builder,
10444    ::validator::Validate,
10445)]
10446pub struct Max104Text {
10447    #[validate(length(min = 1, max = 104,))]
10448    #[serde(rename = "$text")]
10449    pub value: String,
10450}
10451#[derive(
10452    Debug,
10453    Default,
10454    Clone,
10455    PartialEq,
10456    ::serde::Serialize,
10457    ::serde::Deserialize,
10458    ::derive_builder::Builder,
10459    ::validator::Validate,
10460)]
10461pub struct Recipient7ChoiceEnum {
10462    #[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
10463    pub key_trnsprt: Option<KeyTransport6>,
10464    #[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
10465    pub kek: Option<Kek6>,
10466    #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
10467    pub key_idr: Option<KekIdentifier6>,
10468}
10469#[derive(
10470    Debug,
10471    Default,
10472    Clone,
10473    PartialEq,
10474    ::serde::Serialize,
10475    ::serde::Deserialize,
10476    ::derive_builder::Builder,
10477    ::validator::Validate,
10478)]
10479pub struct Recipient7Choice {
10480    #[serde(flatten)]
10481    pub value: Recipient7ChoiceEnum,
10482}
10483#[derive(
10484    Debug,
10485    Default,
10486    Clone,
10487    PartialEq,
10488    ::serde::Serialize,
10489    ::serde::Deserialize,
10490    ::derive_builder::Builder,
10491    ::validator::Validate,
10492)]
10493pub struct SettlementReportingEntity1 {
10494    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
10495    pub tp: Option<Max35Text>,
10496    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
10497    pub id: Option<Max35Text>,
10498}
10499#[derive(
10500    Debug,
10501    Default,
10502    Clone,
10503    PartialEq,
10504    ::serde::Serialize,
10505    ::serde::Deserialize,
10506    ::derive_builder::Builder,
10507    ::validator::Validate,
10508)]
10509pub struct CustomerDevice4 {
10510    #[serde(rename = "Dvc", skip_serializing_if = "Option::is_none")]
10511    pub dvc: Option<Device2>,
10512    #[serde(rename = "DvcId", skip_serializing_if = "Option::is_none")]
10513    pub dvc_id: Option<DeviceIdentification1>,
10514    #[serde(rename = "OprgSys", skip_serializing_if = "Option::is_none")]
10515    pub oprg_sys: Option<DeviceOperatingSystem1>,
10516    #[serde(rename = "Prvdr", skip_serializing_if = "Option::is_none")]
10517    pub prvdr: Option<Max35Text>,
10518    #[validate(length(min = 0,))]
10519    #[serde(rename = "AddtlData", default)]
10520    pub addtl_data: Vec<AdditionalData1>,
10521}
10522#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10523pub enum CorporateTaxType1Code {
10524    #[serde(rename = "SMBS")]
10525    Smbs,
10526    #[serde(rename = "OTHR")]
10527    Othr,
10528    #[serde(rename = "CORP")]
10529    Corp,
10530    #[default]
10531    Unknown,
10532}
10533#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10534pub enum PartyType32Code {
10535    #[serde(rename = "ACQR")]
10536    Acqr,
10537    #[serde(rename = "AGNT")]
10538    Agnt,
10539    #[serde(rename = "ISUR")]
10540    Isur,
10541    #[serde(rename = "OTHN")]
10542    Othn,
10543    #[serde(rename = "OTHP")]
10544    Othp,
10545    #[default]
10546    Unknown,
10547}
10548#[derive(
10549    Debug,
10550    Default,
10551    Clone,
10552    PartialEq,
10553    ::serde::Serialize,
10554    ::serde::Deserialize,
10555    ::derive_builder::Builder,
10556    ::validator::Validate,
10557)]
10558pub struct Exact1NumericText {
10559    #[validate(regex = "EXACT_1_NUMERIC_TEXT_REGEX")]
10560    #[serde(rename = "$text")]
10561    pub value: String,
10562}
10563#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10564pub enum Algorithm17Code {
10565    #[serde(rename = "MACC")]
10566    Macc,
10567    #[serde(rename = "MCCS")]
10568    Mccs,
10569    #[serde(rename = "CMA1")]
10570    Cma1,
10571    #[serde(rename = "MCC1")]
10572    Mcc1,
10573    #[serde(rename = "CMA9")]
10574    Cma9,
10575    #[serde(rename = "CMA5")]
10576    Cma5,
10577    #[serde(rename = "CMA2")]
10578    Cma2,
10579    #[serde(rename = "CM31")]
10580    Cm31,
10581    #[serde(rename = "CM32")]
10582    Cm32,
10583    #[serde(rename = "CM33")]
10584    Cm33,
10585    #[serde(rename = "MCS3")]
10586    Mcs3,
10587    #[serde(rename = "CCA1")]
10588    Cca1,
10589    #[serde(rename = "CCA2")]
10590    Cca2,
10591    #[serde(rename = "CCA3")]
10592    Cca3,
10593    #[default]
10594    Unknown,
10595}
10596#[derive(
10597    Debug,
10598    Default,
10599    Clone,
10600    PartialEq,
10601    ::serde::Serialize,
10602    ::serde::Deserialize,
10603    ::derive_builder::Builder,
10604    ::validator::Validate,
10605)]
10606pub struct GracePeriod2 {
10607    #[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
10608    pub tm: Option<Max3NumericText>,
10609    #[serde(rename = "UnitTp", skip_serializing_if = "Option::is_none")]
10610    pub unit_tp: Option<GracePeriodUnitType1Code>,
10611    #[serde(rename = "OthrUnitTp", skip_serializing_if = "Option::is_none")]
10612    pub othr_unit_tp: Option<Max35Text>,
10613    #[serde(
10614        rename = "CstmrSelctdGracePrd",
10615        skip_serializing_if = "Option::is_none"
10616    )]
10617    pub cstmr_selctd_grace_prd: Option<bool>,
10618}
10619#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10620pub enum PresentationMedium2Code {
10621    #[serde(rename = "BIOM")]
10622    Biom,
10623    #[serde(rename = "ELEC")]
10624    Elec,
10625    #[serde(rename = "PAPR")]
10626    Papr,
10627    #[serde(rename = "BOTH")]
10628    Both,
10629    #[default]
10630    Unknown,
10631}
10632#[derive(
10633    Debug,
10634    Default,
10635    Clone,
10636    PartialEq,
10637    ::serde::Serialize,
10638    ::serde::Deserialize,
10639    ::derive_builder::Builder,
10640    ::validator::Validate,
10641)]
10642pub struct FundingSource2 {
10643    #[serde(rename = "SrcTp", skip_serializing_if = "Option::is_none")]
10644    pub src_tp: Option<FundingSourceType2Code>,
10645    #[serde(rename = "OthrSrcTp", skip_serializing_if = "Option::is_none")]
10646    pub othr_src_tp: Option<Max35Text>,
10647    #[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
10648    pub r#ref: Option<Max35Text>,
10649}
10650#[derive(
10651    Debug,
10652    Default,
10653    Clone,
10654    PartialEq,
10655    ::serde::Serialize,
10656    ::serde::Deserialize,
10657    ::derive_builder::Builder,
10658    ::validator::Validate,
10659)]
10660pub struct Max5PositiveNumber {
10661    #[validate(range(min = 1,))]
10662    #[serde(rename = "$text")]
10663    pub value: f64,
10664}
10665#[derive(
10666    Debug,
10667    Default,
10668    Clone,
10669    PartialEq,
10670    ::serde::Serialize,
10671    ::serde::Deserialize,
10672    ::derive_builder::Builder,
10673    ::validator::Validate,
10674)]
10675pub struct ImpliedCurrencyAndAmount {
10676    #[validate(range(min = 0,))]
10677    #[serde(rename = "$text")]
10678    pub value: f64,
10679}
10680#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10681pub enum LodgingService1Code {
10682    #[serde(rename = "ACCO")]
10683    Acco,
10684    #[serde(rename = "AUDI")]
10685    Audi,
10686    #[serde(rename = "BANQ")]
10687    Banq,
10688    #[serde(rename = "BREK")]
10689    Brek,
10690    #[serde(rename = "BUSS")]
10691    Buss,
10692    #[serde(rename = "CONC")]
10693    Conc,
10694    #[serde(rename = "EARA")]
10695    Eara,
10696    #[serde(rename = "EARD")]
10697    Eard,
10698    #[serde(rename = "ENTR")]
10699    Entr,
10700    #[serde(rename = "FCAA")]
10701    Fcaa,
10702    #[serde(rename = "GAME")]
10703    Game,
10704    #[serde(rename = "GARA")]
10705    Gara,
10706    #[serde(rename = "GIFT")]
10707    Gift,
10708    #[serde(rename = "HEAL")]
10709    Heal,
10710    #[serde(rename = "INTE")]
10711    Inte,
10712    #[serde(rename = "LAUN")]
10713    Laun,
10714    #[serde(rename = "LONG")]
10715    Long,
10716    #[serde(rename = "MINI")]
10717    Mini,
10718    #[serde(rename = "NOSH")]
10719    Nosh,
10720    #[serde(rename = "OTHR")]
10721    Othr,
10722    #[serde(rename = "PARK")]
10723    Park,
10724    #[serde(rename = "PHON")]
10725    Phon,
10726    #[serde(rename = "REST")]
10727    Rest,
10728    #[serde(rename = "RMSE")]
10729    Rmse,
10730    #[serde(rename = "SPAS")]
10731    Spas,
10732    #[serde(rename = "THRD")]
10733    Thrd,
10734    #[serde(rename = "TRAN")]
10735    Tran,
10736    #[serde(rename = "VODS")]
10737    Vods,
10738    #[default]
10739    Unknown,
10740}
10741#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10742pub enum AdministrativeType1Code {
10743    #[serde(rename = "OTHN")]
10744    Othn,
10745    #[serde(rename = "OTHP")]
10746    Othp,
10747    #[serde(rename = "TEXT")]
10748    Text,
10749    #[default]
10750    Unknown,
10751}
10752#[derive(
10753    Debug,
10754    Default,
10755    Clone,
10756    PartialEq,
10757    ::serde::Serialize,
10758    ::serde::Deserialize,
10759    ::derive_builder::Builder,
10760    ::validator::Validate,
10761)]
10762pub struct Discount3 {
10763    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
10764    pub tp: Option<Max35Text>,
10765    #[validate]
10766    #[serde(rename = "Val")]
10767    pub val: Max35Text,
10768}
10769#[derive(
10770    Debug,
10771    Default,
10772    Clone,
10773    PartialEq,
10774    ::serde::Serialize,
10775    ::serde::Deserialize,
10776    ::derive_builder::Builder,
10777    ::validator::Validate,
10778)]
10779pub struct CardholderVerificationCapabilities1 {
10780    #[serde(rename = "Cpblty")]
10781    pub cpblty: CardholderVerificationCapability5Code,
10782    #[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
10783    pub othr_cpblty: Option<Max35Text>,
10784}
10785#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10786pub enum SecurityCharacteristics1Code {
10787    #[serde(rename = "CETE")]
10788    Cete,
10789    #[serde(rename = "CPTE")]
10790    Cpte,
10791    #[serde(rename = "CENC")]
10792    Cenc,
10793    #[serde(rename = "CMAC")]
10794    Cmac,
10795    #[serde(rename = "ETEE")]
10796    Etee,
10797    #[serde(rename = "METE")]
10798    Mete,
10799    #[serde(rename = "MPTE")]
10800    Mpte,
10801    #[serde(rename = "OPNN")]
10802    Opnn,
10803    #[serde(rename = "PMAC")]
10804    Pmac,
10805    #[serde(rename = "PKIE")]
10806    Pkie,
10807    #[serde(rename = "PRAE")]
10808    Prae,
10809    #[serde(rename = "PRAM")]
10810    Pram,
10811    #[serde(rename = "PRVN")]
10812    Prvn,
10813    #[serde(rename = "STAM")]
10814    Stam,
10815    #[serde(rename = "APTE")]
10816    Apte,
10817    #[serde(rename = "AETE")]
10818    Aete,
10819    #[serde(rename = "OTHN")]
10820    Othn,
10821    #[serde(rename = "OTHP")]
10822    Othp,
10823    #[default]
10824    Unknown,
10825}
10826#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10827pub enum PurchaseIdentifierType1Code {
10828    #[serde(rename = "CONU")]
10829    Conu,
10830    #[serde(rename = "CUOR")]
10831    Cuor,
10832    #[serde(rename = "CUPO")]
10833    Cupo,
10834    #[serde(rename = "FONU")]
10835    Fonu,
10836    #[serde(rename = "INNU")]
10837    Innu,
10838    #[serde(rename = "ORNU")]
10839    Ornu,
10840    #[serde(rename = "OTHN")]
10841    Othn,
10842    #[serde(rename = "OTHP")]
10843    Othp,
10844    #[serde(rename = "PRNU")]
10845    Prnu,
10846    #[serde(rename = "PUID")]
10847    Puid,
10848    #[serde(rename = "RELO")]
10849    Relo,
10850    #[serde(rename = "REAG")]
10851    Reag,
10852    #[serde(rename = "RENU")]
10853    Renu,
10854    #[serde(rename = "RSNU")]
10855    Rsnu,
10856    #[serde(rename = "SUOR")]
10857    Suor,
10858    #[serde(rename = "TINU")]
10859    Tinu,
10860    #[serde(rename = "TRNU")]
10861    Trnu,
10862    #[serde(rename = "SUIN")]
10863    Suin,
10864    #[serde(rename = "TNID")]
10865    Tnid,
10866    #[default]
10867    Unknown,
10868}
10869#[derive(
10870    Debug,
10871    Default,
10872    Clone,
10873    PartialEq,
10874    ::serde::Serialize,
10875    ::serde::Deserialize,
10876    ::derive_builder::Builder,
10877    ::validator::Validate,
10878)]
10879pub struct Max8HexBinaryText {
10880    #[validate(regex = "MAX_8_HEX_BINARY_TEXT_REGEX")]
10881    #[serde(rename = "$text")]
10882    pub value: String,
10883}
10884#[derive(
10885    Debug,
10886    Default,
10887    Clone,
10888    PartialEq,
10889    ::serde::Serialize,
10890    ::serde::Deserialize,
10891    ::derive_builder::Builder,
10892    ::validator::Validate,
10893)]
10894pub struct RateLock1 {
10895    #[serde(rename = "ReqdInd", skip_serializing_if = "Option::is_none")]
10896    pub reqd_ind: Option<TrueFalseIndicator>,
10897    #[serde(rename = "ElgblInd", skip_serializing_if = "Option::is_none")]
10898    pub elgbl_ind: Option<TrueFalseIndicator>,
10899    #[serde(rename = "ApldInd", skip_serializing_if = "Option::is_none")]
10900    pub apld_ind: Option<TrueFalseIndicator>,
10901}
10902#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10903pub enum UserInterface1Code {
10904    #[serde(rename = "CDSP")]
10905    Cdsp,
10906    #[serde(rename = "CRCP")]
10907    Crcp,
10908    #[serde(rename = "MDSP")]
10909    Mdsp,
10910    #[serde(rename = "MRCP")]
10911    Mrcp,
10912    #[default]
10913    Unknown,
10914}
10915#[derive(
10916    Debug,
10917    Default,
10918    Clone,
10919    PartialEq,
10920    ::serde::Serialize,
10921    ::serde::Deserialize,
10922    ::derive_builder::Builder,
10923    ::validator::Validate,
10924)]
10925pub struct VehicleRentalAgreement2 {
10926    #[serde(rename = "AgrmtNb", skip_serializing_if = "Option::is_none")]
10927    pub agrmt_nb: Option<Max35Text>,
10928    #[serde(rename = "AdjstdInd", skip_serializing_if = "Option::is_none")]
10929    pub adjstd_ind: Option<TrueFalseIndicator>,
10930    #[serde(rename = "RntlLctn", skip_serializing_if = "Option::is_none")]
10931    pub rntl_lctn: Option<Address2>,
10932    #[validate(length(min = 0,))]
10933    #[serde(rename = "PckpLctn", default)]
10934    pub pckp_lctn: Vec<Address2>,
10935    #[serde(rename = "ChckOutDt", skip_serializing_if = "Option::is_none")]
10936    pub chck_out_dt: Option<IsoDate>,
10937    #[serde(rename = "ChckOutTm", skip_serializing_if = "Option::is_none")]
10938    pub chck_out_tm: Option<IsoTime>,
10939    #[serde(rename = "RtrLctn", skip_serializing_if = "Option::is_none")]
10940    pub rtr_lctn: Option<Address2>,
10941    #[serde(rename = "ChckInDt", skip_serializing_if = "Option::is_none")]
10942    pub chck_in_dt: Option<IsoDate>,
10943    #[serde(rename = "ChckInTm", skip_serializing_if = "Option::is_none")]
10944    pub chck_in_tm: Option<IsoTime>,
10945    #[serde(rename = "Drtn", skip_serializing_if = "Option::is_none")]
10946    pub drtn: Option<Max4NumericText>,
10947    #[serde(rename = "VhclClssDtls", skip_serializing_if = "Option::is_none")]
10948    pub vhcl_clss_dtls: Option<Vehicle4>,
10949    #[serde(rename = "TrvlDstnc", skip_serializing_if = "Option::is_none")]
10950    pub trvl_dstnc: Option<Distance1>,
10951    #[validate(length(min = 0,))]
10952    #[serde(rename = "RntlRate", default)]
10953    pub rntl_rate: Vec<RentalRate1>,
10954    #[serde(rename = "RntlDtls", skip_serializing_if = "Option::is_none")]
10955    pub rntl_dtls: Option<RentalDetails2>,
10956    #[serde(rename = "VhclRegnNb", skip_serializing_if = "Option::is_none")]
10957    pub vhcl_regn_nb: Option<Max70Text>,
10958    #[serde(rename = "InsrncInd", skip_serializing_if = "Option::is_none")]
10959    pub insrnc_ind: Option<TrueFalseIndicator>,
10960    #[validate(length(min = 0,))]
10961    #[serde(rename = "AddtlAmt", default)]
10962    pub addtl_amt: Vec<Amount18>,
10963    #[validate(length(min = 0,))]
10964    #[serde(rename = "EstmtdTax", default)]
10965    pub estmtd_tax: Vec<Tax39>,
10966    #[validate(length(min = 0,))]
10967    #[serde(rename = "DscntPrgrmm", default)]
10968    pub dscnt_prgrmm: Vec<Discount3>,
10969    #[validate(length(min = 0,))]
10970    #[serde(rename = "LltyPrgrmm", default)]
10971    pub llty_prgrmm: Vec<LoyaltyProgramme3>,
10972}
10973#[derive(
10974    Debug,
10975    Default,
10976    Clone,
10977    PartialEq,
10978    ::serde::Serialize,
10979    ::serde::Deserialize,
10980    ::derive_builder::Builder,
10981    ::validator::Validate,
10982)]
10983pub struct SettlementService3 {
10984    #[serde(rename = "SttlmSvcPropsd", skip_serializing_if = "Option::is_none")]
10985    pub sttlm_svc_propsd: Option<SettlementServiceMode1>,
10986    #[serde(rename = "SttlmSvcApld", skip_serializing_if = "Option::is_none")]
10987    pub sttlm_svc_apld: Option<SettlementServiceMode1>,
10988    #[serde(rename = "SttlmSvcDts", skip_serializing_if = "Option::is_none")]
10989    pub sttlm_svc_dts: Option<SettlementServiceDate2>,
10990    #[serde(rename = "SttlmRptgNtty", skip_serializing_if = "Option::is_none")]
10991    pub sttlm_rptg_ntty: Option<SettlementReportingEntity1>,
10992    #[validate(length(min = 0,))]
10993    #[serde(rename = "AddtlSttlmInf", default)]
10994    pub addtl_sttlm_inf: Vec<AdditionalData1>,
10995}
10996#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
10997pub enum VerificationEntity2Code {
10998    #[serde(rename = "MERC")]
10999    Merc,
11000    #[serde(rename = "ACQR")]
11001    Acqr,
11002    #[serde(rename = "AGNT")]
11003    Agnt,
11004    #[serde(rename = "ISSR")]
11005    Issr,
11006    #[serde(rename = "OTHN")]
11007    Othn,
11008    #[serde(rename = "OTHP")]
11009    Othp,
11010    #[serde(rename = "CDAD")]
11011    Cdad,
11012    #[serde(rename = "ICCA")]
11013    Icca,
11014    #[default]
11015    Unknown,
11016}
11017#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11018pub enum AdditionalIdentificationType1Code {
11019    #[serde(rename = "OTHP")]
11020    Othp,
11021    #[serde(rename = "OTHN")]
11022    Othn,
11023    #[serde(rename = "ICSN")]
11024    Icsn,
11025    #[serde(rename = "ATNU")]
11026    Atnu,
11027    #[default]
11028    Unknown,
11029}
11030#[derive(
11031    Debug,
11032    Default,
11033    Clone,
11034    PartialEq,
11035    ::serde::Serialize,
11036    ::serde::Deserialize,
11037    ::derive_builder::Builder,
11038    ::validator::Validate,
11039)]
11040pub struct Min5Max16Binary {
11041    #[validate(length(min = 5, max = 16,), regex = "MIN_5_MAX_16_BINARY_REGEX")]
11042    pub value: String,
11043}
11044#[derive(
11045    Debug,
11046    Default,
11047    Clone,
11048    PartialEq,
11049    ::serde::Serialize,
11050    ::serde::Deserialize,
11051    ::derive_builder::Builder,
11052    ::validator::Validate,
11053)]
11054pub struct ProcessingResult10 {
11055    #[serde(rename = "RspnSrc", skip_serializing_if = "Option::is_none")]
11056    pub rspn_src: Option<ApprovalEntity2>,
11057    #[validate]
11058    #[serde(rename = "RsltData")]
11059    pub rslt_data: ResultData7,
11060    #[serde(rename = "ApprvlCd", skip_serializing_if = "Option::is_none")]
11061    pub apprvl_cd: Option<Exact6AlphaNumericText>,
11062    #[serde(rename = "ErrDtl", skip_serializing_if = "Option::is_none")]
11063    pub err_dtl: Option<ErrorDetails2>,
11064    #[serde(rename = "OrgnlRsltData", skip_serializing_if = "Option::is_none")]
11065    pub orgnl_rslt_data: Option<ResultData7>,
11066    #[serde(rename = "ActnReqrd", skip_serializing_if = "Option::is_none")]
11067    pub actn_reqrd: Option<YesNoIndicator>,
11068    #[validate(length(min = 0,))]
11069    #[serde(rename = "Actn", default)]
11070    pub actn: Vec<Action13>,
11071    #[validate(length(min = 0,))]
11072    #[serde(rename = "AddtlActn", default)]
11073    pub addtl_actn: Vec<AdditionalAction1>,
11074    #[validate(length(min = 0,))]
11075    #[serde(rename = "AddtlInf", default)]
11076    pub addtl_inf: Vec<AdditionalInformation29>,
11077}
11078#[derive(
11079    Debug,
11080    Default,
11081    Clone,
11082    PartialEq,
11083    ::serde::Serialize,
11084    ::serde::Deserialize,
11085    ::derive_builder::Builder,
11086    ::validator::Validate,
11087)]
11088pub struct InstalmentAmountDetails2 {
11089    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
11090    pub tp: Option<InstalmentAmountDetailsType2Code>,
11091    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
11092    pub othr_tp: Option<Max35Text>,
11093    #[serde(rename = "SubTp", skip_serializing_if = "Option::is_none")]
11094    pub sub_tp: Option<Max35Text>,
11095    #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
11096    pub amt: Option<Amount16>,
11097    #[serde(rename = "Pctg", skip_serializing_if = "Option::is_none")]
11098    pub pctg: Option<PercentageRate>,
11099}
11100#[derive(
11101    Debug,
11102    Default,
11103    Clone,
11104    PartialEq,
11105    ::serde::Serialize,
11106    ::serde::Deserialize,
11107    ::derive_builder::Builder,
11108    ::validator::Validate,
11109)]
11110pub struct TransactionIdentification18 {
11111    #[serde(rename = "LclDt", skip_serializing_if = "Option::is_none")]
11112    pub lcl_dt: Option<IsoDate>,
11113    #[serde(rename = "LclTm", skip_serializing_if = "Option::is_none")]
11114    pub lcl_tm: Option<IsoTime>,
11115    #[serde(rename = "TmZone", skip_serializing_if = "Option::is_none")]
11116    pub tm_zone: Option<Max70Text>,
11117    #[serde(rename = "TxRef", skip_serializing_if = "Option::is_none")]
11118    pub tx_ref: Option<Max35Text>,
11119    #[serde(rename = "TrnsmssnDtTm", skip_serializing_if = "Option::is_none")]
11120    pub trnsmssn_dt_tm: Option<IsoDateTime>,
11121    #[validate]
11122    #[serde(rename = "SysTracAudtNb")]
11123    pub sys_trac_audt_nb: Max12NumericText,
11124    #[validate]
11125    #[serde(rename = "RtrvlRefNb")]
11126    pub rtrvl_ref_nb: Exact12Text,
11127    #[serde(rename = "LifeCyclSpprtInd", skip_serializing_if = "Option::is_none")]
11128    pub life_cycl_spprt_ind: Option<Exact2NumericText>,
11129    #[serde(rename = "LifeCyclTracIdData", skip_serializing_if = "Option::is_none")]
11130    pub life_cycl_trac_id_data: Option<TransactionLifeCycleIdentification1>,
11131    #[serde(
11132        rename = "LifeCyclTracIdMssng",
11133        skip_serializing_if = "Option::is_none"
11134    )]
11135    pub life_cycl_trac_id_mssng: Option<Max70Text>,
11136    #[serde(rename = "AcqrrRefData", skip_serializing_if = "Option::is_none")]
11137    pub acqrr_ref_data: Option<Max140Text>,
11138    #[serde(rename = "AcqrrRefNb", skip_serializing_if = "Option::is_none")]
11139    pub acqrr_ref_nb: Option<Max23NumericText>,
11140    #[serde(rename = "CardIssrRefData", skip_serializing_if = "Option::is_none")]
11141    pub card_issr_ref_data: Option<Max1000Text>,
11142}
11143#[derive(
11144    Debug,
11145    Default,
11146    Clone,
11147    PartialEq,
11148    ::serde::Serialize,
11149    ::serde::Deserialize,
11150    ::derive_builder::Builder,
11151    ::validator::Validate,
11152)]
11153pub struct DeviceIdentification1 {
11154    #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
11155    pub tp: Option<DeviceIdentificationType1Code>,
11156    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
11157    pub othr_tp: Option<Max35Text>,
11158    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
11159    pub id: Option<Max70Text>,
11160    #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
11161    pub assgnr: Option<Max70Text>,
11162}
11163#[derive(
11164    Debug,
11165    Default,
11166    Clone,
11167    PartialEq,
11168    ::serde::Serialize,
11169    ::serde::Deserialize,
11170    ::derive_builder::Builder,
11171    ::validator::Validate,
11172)]
11173pub struct Adjustment12 {
11174    #[validate]
11175    #[serde(rename = "Amt")]
11176    pub amt: ImpliedCurrencyAndAmount,
11177    #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
11178    pub cdt_dbt: Option<CreditDebit3Code>,
11179    #[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
11180    pub rsn: Option<Max35Text>,
11181}
11182#[derive(
11183    Debug,
11184    Default,
11185    Clone,
11186    PartialEq,
11187    ::serde::Serialize,
11188    ::serde::Deserialize,
11189    ::derive_builder::Builder,
11190    ::validator::Validate,
11191)]
11192pub struct Location4 {
11193    #[serde(rename = "LctnCd", skip_serializing_if = "Option::is_none")]
11194    pub lctn_cd: Option<Max35Text>,
11195    #[serde(rename = "LctnNm", skip_serializing_if = "Option::is_none")]
11196    pub lctn_nm: Option<Max35Text>,
11197    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
11198    pub desc: Option<Max256Text>,
11199    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
11200    pub adr: Option<Address2>,
11201    #[serde(rename = "LclTmZone", skip_serializing_if = "Option::is_none")]
11202    pub lcl_tm_zone: Option<Max70Text>,
11203    #[serde(rename = "LclCcy", skip_serializing_if = "Option::is_none")]
11204    pub lcl_ccy: Option<Iso3NumericCurrencyCode>,
11205}
11206#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11207pub enum FleetPurchaseType1Code {
11208    #[serde(rename = "FUEL")]
11209    Fuel,
11210    #[serde(rename = "NONF")]
11211    Nonf,
11212    #[serde(rename = "FANF")]
11213    Fanf,
11214    #[default]
11215    Unknown,
11216}
11217#[derive(
11218    Debug,
11219    Default,
11220    Clone,
11221    PartialEq,
11222    ::serde::Serialize,
11223    ::serde::Deserialize,
11224    ::derive_builder::Builder,
11225    ::validator::Validate,
11226)]
11227pub struct Exact2NumericText {
11228    #[validate(regex = "EXACT_2_NUMERIC_TEXT_REGEX")]
11229    #[serde(rename = "$text")]
11230    pub value: String,
11231}
11232#[derive(
11233    Debug,
11234    Default,
11235    Clone,
11236    PartialEq,
11237    ::serde::Serialize,
11238    ::serde::Deserialize,
11239    ::derive_builder::Builder,
11240    ::validator::Validate,
11241)]
11242pub struct Max512Text {
11243    #[validate(length(min = 1, max = 512,))]
11244    #[serde(rename = "$text")]
11245    pub value: String,
11246}
11247#[derive(
11248    Debug,
11249    Default,
11250    Clone,
11251    PartialEq,
11252    ::serde::Serialize,
11253    ::serde::Deserialize,
11254    ::derive_builder::Builder,
11255    ::validator::Validate,
11256)]
11257pub struct AdditionalService2 {
11258    #[serde(rename = "Tp")]
11259    pub tp: AdditionalServiceType2Code,
11260    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
11261    pub othr_tp: Option<Max35Text>,
11262    #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
11263    pub rslt: Option<AdditionalServiceResult1Code>,
11264    #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
11265    pub othr_rslt: Option<Max35Text>,
11266    #[validate(length(min = 0,))]
11267    #[serde(rename = "SvcDtl", default)]
11268    pub svc_dtl: Vec<AdditionalData1>,
11269}
11270#[derive(
11271    Debug,
11272    Default,
11273    Clone,
11274    PartialEq,
11275    ::serde::Serialize,
11276    ::serde::Deserialize,
11277    ::derive_builder::Builder,
11278    ::validator::Validate,
11279)]
11280pub struct AlgorithmIdentification25 {
11281    #[serde(rename = "Algo")]
11282    pub algo: Algorithm23Code,
11283    #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
11284    pub param: Option<Parameter7>,
11285}
11286#[derive(
11287    Debug,
11288    Default,
11289    Clone,
11290    PartialEq,
11291    ::serde::Serialize,
11292    ::serde::Deserialize,
11293    ::derive_builder::Builder,
11294    ::validator::Validate,
11295)]
11296pub struct Parameter14 {
11297    #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
11298    pub ncrptn_frmt: Option<EncryptionFormat3Code>,
11299    #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
11300    pub initlstn_vctr: Option<Max500Binary>,
11301    #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
11302    pub b_pddg: Option<BytePadding1Code>,
11303}
11304#[derive(
11305    Debug,
11306    Default,
11307    Clone,
11308    PartialEq,
11309    ::serde::Serialize,
11310    ::serde::Deserialize,
11311    ::derive_builder::Builder,
11312    ::validator::Validate,
11313)]
11314pub struct LocalData7 {
11315    #[serde(rename = "Lang")]
11316    pub lang: IsoMax3ALanguageCode,
11317    #[serde(rename = "CrdhldrNm", skip_serializing_if = "Option::is_none")]
11318    pub crdhldr_nm: Option<CardholderName2>,
11319    #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
11320    pub adr: Option<Address3>,
11321    #[validate(length(min = 0,))]
11322    #[serde(rename = "AddtlData", default)]
11323    pub addtl_data: Vec<AdditionalData1>,
11324}
11325#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11326pub enum TimeSegment1Code {
11327    #[serde(rename = "AMBN")]
11328    Ambn,
11329    #[serde(rename = "PMAN")]
11330    Pman,
11331    #[default]
11332    Unknown,
11333}
11334#[derive(
11335    Debug,
11336    Default,
11337    Clone,
11338    PartialEq,
11339    ::serde::Serialize,
11340    ::serde::Deserialize,
11341    ::derive_builder::Builder,
11342    ::validator::Validate,
11343)]
11344pub struct DisputeReference1 {
11345    #[serde(rename = "AssgnrNtty", skip_serializing_if = "Option::is_none")]
11346    pub assgnr_ntty: Option<PartyType32Code>,
11347    #[serde(rename = "OthrAssgnrNtty", skip_serializing_if = "Option::is_none")]
11348    pub othr_assgnr_ntty: Option<Max35Text>,
11349    #[validate(length(min = 1,))]
11350    #[serde(rename = "DsptId", default)]
11351    pub dspt_id: Vec<DisputeIdentification1>,
11352}
11353#[derive(
11354    Debug,
11355    Default,
11356    Clone,
11357    PartialEq,
11358    ::serde::Serialize,
11359    ::serde::Deserialize,
11360    ::derive_builder::Builder,
11361    ::validator::Validate,
11362)]
11363pub struct Parameter9 {
11364    #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
11365    pub dgst_algo: Option<Algorithm16Code>,
11366}
11367#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11368pub enum Algorithm5Code {
11369    #[serde(rename = "HS25")]
11370    Hs25,
11371    #[serde(rename = "HS38")]
11372    Hs38,
11373    #[serde(rename = "HS51")]
11374    Hs51,
11375    #[default]
11376    Unknown,
11377}
11378#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11379pub enum ActionType10Code {
11380    #[serde(rename = "ACTV")]
11381    Actv,
11382    #[serde(rename = "DEAC")]
11383    Deac,
11384    #[serde(rename = "DISP")]
11385    Disp,
11386    #[serde(rename = "FUPD")]
11387    Fupd,
11388    #[serde(rename = "PRNT")]
11389    Prnt,
11390    #[serde(rename = "SNDM")]
11391    Sndm,
11392    #[default]
11393    Unknown,
11394}
11395#[derive(
11396    Debug,
11397    Default,
11398    Clone,
11399    PartialEq,
11400    ::serde::Serialize,
11401    ::serde::Deserialize,
11402    ::derive_builder::Builder,
11403    ::validator::Validate,
11404)]
11405pub struct AuthorisedAmount1 {
11406    #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
11407    pub dt_tm: Option<IsoDateTime>,
11408    #[validate]
11409    #[serde(rename = "Amt")]
11410    pub amt: ImpliedCurrencyAndAmount,
11411    #[serde(rename = "AddtlData", skip_serializing_if = "Option::is_none")]
11412    pub addtl_data: Option<Max350Text>,
11413}
11414#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11415pub enum ActionType8Code {
11416    #[serde(rename = "APPV")]
11417    Appv,
11418    #[serde(rename = "BLCK")]
11419    Blck,
11420    #[serde(rename = "CPTR")]
11421    Cptr,
11422    #[serde(rename = "DCLN")]
11423    Dcln,
11424    #[serde(rename = "RQID")]
11425    Rqid,
11426    #[serde(rename = "NDCL")]
11427    Ndcl,
11428    #[serde(rename = "RFRL")]
11429    Rfrl,
11430    #[serde(rename = "OTHN")]
11431    Othn,
11432    #[serde(rename = "OTHP")]
11433    Othp,
11434    #[serde(rename = "STUA")]
11435    Stua,
11436    #[default]
11437    Unknown,
11438}
11439#[derive(
11440    Debug,
11441    Default,
11442    Clone,
11443    PartialEq,
11444    ::serde::Serialize,
11445    ::serde::Deserialize,
11446    ::derive_builder::Builder,
11447    ::validator::Validate,
11448)]
11449pub struct EncryptedContent5 {
11450    #[serde(rename = "CnttTp")]
11451    pub cntt_tp: ContentType2Code,
11452    #[validate]
11453    #[serde(rename = "CnttNcrptnAlgo")]
11454    pub cntt_ncrptn_algo: AlgorithmIdentification25,
11455    #[validate(length(min = 1,))]
11456    #[serde(rename = "NcrptdDataElmt", default)]
11457    pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
11458}
11459#[derive(
11460    Debug,
11461    Default,
11462    Clone,
11463    PartialEq,
11464    ::serde::Serialize,
11465    ::serde::Deserialize,
11466    ::derive_builder::Builder,
11467    ::validator::Validate,
11468)]
11469pub struct AdditionalFee2 {
11470    #[serde(rename = "Tp")]
11471    pub tp: TypeOfAmount21Code,
11472    #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
11473    pub othr_tp: Option<Max35Text>,
11474    #[serde(rename = "FeePrgm", skip_serializing_if = "Option::is_none")]
11475    pub fee_prgm: Option<Max35Text>,
11476    #[serde(rename = "FeeDscrptr", skip_serializing_if = "Option::is_none")]
11477    pub fee_dscrptr: Option<Max35Text>,
11478    #[validate]
11479    #[serde(rename = "FeeAmt")]
11480    pub fee_amt: FeeAmount3,
11481    #[serde(rename = "FeeRcncltnAmt", skip_serializing_if = "Option::is_none")]
11482    pub fee_rcncltn_amt: Option<FeeAmount3>,
11483    #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
11484    pub desc: Option<Max140Text>,
11485    #[validate(length(min = 0,))]
11486    #[serde(rename = "AddtlData", default)]
11487    pub addtl_data: Vec<AdditionalData1>,
11488}
11489#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11490pub enum ActionDestination1Code {
11491    #[serde(rename = "FILE")]
11492    File,
11493    #[serde(rename = "MOBL")]
11494    Mobl,
11495    #[serde(rename = "OTHN")]
11496    Othn,
11497    #[serde(rename = "OTHP")]
11498    Othp,
11499    #[serde(rename = "PECR")]
11500    Pecr,
11501    #[serde(rename = "POFS")]
11502    Pofs,
11503    #[default]
11504    Unknown,
11505}
11506#[derive(
11507    Debug,
11508    Default,
11509    Clone,
11510    PartialEq,
11511    ::serde::Serialize,
11512    ::serde::Deserialize,
11513    ::derive_builder::Builder,
11514    ::validator::Validate,
11515)]
11516pub struct CardholderName3 {
11517    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
11518    pub nm: Option<Max70Text>,
11519    #[serde(rename = "GvnNm", skip_serializing_if = "Option::is_none")]
11520    pub gvn_nm: Option<Max35Text>,
11521    #[serde(rename = "MddlNm", skip_serializing_if = "Option::is_none")]
11522    pub mddl_nm: Option<Max35Text>,
11523    #[serde(rename = "LastNm", skip_serializing_if = "Option::is_none")]
11524    pub last_nm: Option<Max35Text>,
11525}
11526#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11527pub enum OutputFormat1Code {
11528    #[serde(rename = "MREF")]
11529    Mref,
11530    #[serde(rename = "TEXT")]
11531    Text,
11532    #[serde(rename = "HTML")]
11533    Html,
11534    #[default]
11535    Unknown,
11536}
11537#[derive(
11538    Debug,
11539    Default,
11540    Clone,
11541    PartialEq,
11542    ::serde::Serialize,
11543    ::serde::Deserialize,
11544    ::derive_builder::Builder,
11545    ::validator::Validate,
11546)]
11547pub struct JourneyInformation1 {
11548    #[serde(rename = "JrnyTp", skip_serializing_if = "Option::is_none")]
11549    pub jrny_tp: Option<JourneyType1Code>,
11550    #[serde(rename = "JrnyData", skip_serializing_if = "Option::is_none")]
11551    pub jrny_data: Option<Max35Text>,
11552    #[serde(rename = "DtAndTm", skip_serializing_if = "Option::is_none")]
11553    pub dt_and_tm: Option<IsoDateTime>,
11554}
11555#[derive(
11556    Debug,
11557    Default,
11558    Clone,
11559    PartialEq,
11560    ::serde::Serialize,
11561    ::serde::Deserialize,
11562    ::derive_builder::Builder,
11563    ::validator::Validate,
11564)]
11565pub struct VerificationValue1ChoiceEnum {
11566    #[serde(rename = "PINData", skip_serializing_if = "Option::is_none")]
11567    pub pin_data: Option<PinData1>,
11568    #[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
11569    pub hex_binry_val: Option<Max9999HexBinaryText>,
11570    #[serde(rename = "TxtVal", skip_serializing_if = "Option::is_none")]
11571    pub txt_val: Option<Max2048Text>,
11572    #[serde(rename = "BinryVal", skip_serializing_if = "Option::is_none")]
11573    pub binry_val: Option<Max5000Binary>,
11574}
11575#[derive(
11576    Debug,
11577    Default,
11578    Clone,
11579    PartialEq,
11580    ::serde::Serialize,
11581    ::serde::Deserialize,
11582    ::derive_builder::Builder,
11583    ::validator::Validate,
11584)]
11585pub struct VerificationValue1Choice {
11586    #[serde(flatten)]
11587    pub value: VerificationValue1ChoiceEnum,
11588}
11589#[derive(
11590    Debug,
11591    Default,
11592    Clone,
11593    PartialEq,
11594    ::serde::Serialize,
11595    ::serde::Deserialize,
11596    ::derive_builder::Builder,
11597    ::validator::Validate,
11598)]
11599#[serde(rename = "Document")]
11600pub struct Document<
11601    A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
11602> {
11603    #[validate]
11604    #[serde(rename = "AdmstvInitn")]
11605    pub admstv_initn: AdministrativeInitiationV01<A>,
11606    #[serde(rename = "@xmlns", default = "namespace")]
11607    pub xmlns: String,
11608}
11609#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11610pub enum GoodsAndServicesSubType1Code {
11611    #[serde(rename = "CRCU")]
11612    Crcu,
11613    #[serde(rename = "FORX")]
11614    Forx,
11615    #[serde(rename = "OTHN")]
11616    Othn,
11617    #[serde(rename = "OTHP")]
11618    Othp,
11619    #[serde(rename = "SECS")]
11620    Secs,
11621    #[default]
11622    Unknown,
11623}
11624#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11625pub enum AdditionalServiceResult1Code {
11626    #[serde(rename = "NOPF")]
11627    Nopf,
11628    #[serde(rename = "NOSP")]
11629    Nosp,
11630    #[serde(rename = "OTHN")]
11631    Othn,
11632    #[serde(rename = "OTHP")]
11633    Othp,
11634    #[serde(rename = "PERF")]
11635    Perf,
11636    #[default]
11637    Unknown,
11638}
11639#[derive(
11640    Debug,
11641    Default,
11642    Clone,
11643    PartialEq,
11644    ::serde::Serialize,
11645    ::serde::Deserialize,
11646    ::derive_builder::Builder,
11647    ::validator::Validate,
11648)]
11649pub struct Customer6 {
11650    #[serde(rename = "AcctNb", skip_serializing_if = "Option::is_none")]
11651    pub acct_nb: Option<Max35Text>,
11652    #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
11653    pub nm: Option<Max70Text>,
11654    #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
11655    pub phne_nb: Option<PhoneNumber>,
11656}
11657#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11658pub enum PartyType20Code {
11659    #[serde(rename = "ACCP")]
11660    Accp,
11661    #[serde(rename = "ACQR")]
11662    Acqr,
11663    #[serde(rename = "CRDH")]
11664    Crdh,
11665    #[serde(rename = "CISS")]
11666    Ciss,
11667    #[serde(rename = "AGNT")]
11668    Agnt,
11669    #[default]
11670    Unknown,
11671}
11672#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
11673pub enum TypeOfAmount22Code {
11674    #[serde(rename = "ACTL")]
11675    Actl,
11676    #[serde(rename = "DFLT")]
11677    Dflt,
11678    #[serde(rename = "DPST")]
11679    Dpst,
11680    #[serde(rename = "ESTM")]
11681    Estm,
11682    #[serde(rename = "MAXI")]
11683    Maxi,
11684    #[serde(rename = "PRXY")]
11685    Prxy,
11686    #[serde(rename = "RESD")]
11687    Resd,
11688    #[default]
11689    Unknown,
11690}