1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 static ref MAX_15_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,15}"#).unwrap();
25}
26
27::lazy_static::lazy_static! {
28 static ref MAX_8_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,8}"#).unwrap();
29}
30
31::lazy_static::lazy_static! {
32 static ref EXACT_1_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1}"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36 static ref ISO_3_NUMERIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
37}
38
39::lazy_static::lazy_static! {
40 static ref MAX_32_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,32}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 static ref MAX_12_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,12}"#).unwrap();
45}
46
47::lazy_static::lazy_static! {
48 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();
49}
50
51::lazy_static::lazy_static! {
52 static ref EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,3}"#).unwrap();
53}
54
55::lazy_static::lazy_static! {
56 static ref ISO_MAX_3_A_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
57}
58
59::lazy_static::lazy_static! {
60 static ref MAX_9999_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,9999}"#).unwrap();
61}
62
63::lazy_static::lazy_static! {
64 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();
65}
66
67::lazy_static::lazy_static! {
68 static ref ISO_8583_RESPONSE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
69}
70
71::lazy_static::lazy_static! {
72 static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap();
73}
74
75::lazy_static::lazy_static! {
76 static ref MAX_11_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,11}"#).unwrap();
77}
78
79::lazy_static::lazy_static! {
80 static ref MAX_8_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,8}"#).unwrap();
81}
82
83::lazy_static::lazy_static! {
84 static ref MAX_4_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,4}"#).unwrap();
85}
86
87::lazy_static::lazy_static! {
88 static ref EXACT_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3}"#).unwrap();
89}
90
91::lazy_static::lazy_static! {
92 static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
93}
94
95::lazy_static::lazy_static! {
96 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();
97}
98
99::lazy_static::lazy_static! {
100 static ref ISO_3_NUMERIC_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
101}
102
103::lazy_static::lazy_static! {
104 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();
105}
106
107::lazy_static::lazy_static! {
108 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();
109}
110
111::lazy_static::lazy_static! {
112 static ref MAX_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,2}"#).unwrap();
113}
114
115::lazy_static::lazy_static! {
116 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();
117}
118
119::lazy_static::lazy_static! {
120 static ref MIN_2_MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2,3}"#).unwrap();
121}
122
123::lazy_static::lazy_static! {
124 static ref ISO_MAX_3_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,3}"#).unwrap();
125}
126
127pub fn namespace() -> String {
129 "urn:iso:std:iso:20022:tech:xsd:caad.006.001.03".to_string()
130}
131
132#[derive(
133 Debug,
134 Default,
135 Clone,
136 PartialEq,
137 ::serde::Serialize,
138 ::serde::Deserialize,
139 ::derive_builder::Builder,
140 ::validator::Validate,
141)]
142pub struct EncryptedContent5 {
143 #[serde(rename = "CnttTp")]
144 pub cntt_tp: ContentType2Code,
145 #[validate]
146 #[serde(rename = "CnttNcrptnAlgo")]
147 pub cntt_ncrptn_algo: AlgorithmIdentification25,
148 #[validate(length(min = 1,))]
149 #[serde(rename = "NcrptdDataElmt", default)]
150 pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
151}
152#[derive(
153 Debug,
154 Default,
155 Clone,
156 PartialEq,
157 ::serde::Serialize,
158 ::serde::Deserialize,
159 ::derive_builder::Builder,
160 ::validator::Validate,
161)]
162pub struct Kek6 {
163 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
164 pub vrsn: Option<Number>,
165 #[validate]
166 #[serde(rename = "KEKId")]
167 pub kek_id: KekIdentifier6,
168 #[validate]
169 #[serde(rename = "KeyNcrptnAlgo")]
170 pub key_ncrptn_algo: AlgorithmIdentification28,
171 #[serde(rename = "NcrptdKey", skip_serializing_if = "Option::is_none")]
172 pub ncrptd_key: Option<Max500Binary>,
173}
174#[derive(
175 Debug,
176 Default,
177 Clone,
178 PartialEq,
179 ::serde::Serialize,
180 ::serde::Deserialize,
181 ::derive_builder::Builder,
182 ::validator::Validate,
183)]
184pub struct Header60 {
185 #[serde(rename = "MsgFctn")]
186 pub msg_fctn: MessageFunction17Code,
187 #[validate]
188 #[serde(rename = "PrtcolVrsn")]
189 pub prtcol_vrsn: Max2048Text,
190 #[serde(rename = "XchgId", skip_serializing_if = "Option::is_none")]
191 pub xchg_id: Option<Max35Text>,
192 #[serde(rename = "ReTrnsmssnCntr", skip_serializing_if = "Option::is_none")]
193 pub re_trnsmssn_cntr: Option<Max3NumericText>,
194 #[validate]
195 #[serde(rename = "CreDtTm")]
196 pub cre_dt_tm: IsoDateTime,
197 #[serde(rename = "BtchMgmtInf", skip_serializing_if = "Option::is_none")]
198 pub btch_mgmt_inf: Option<BatchManagementInformation1>,
199 #[validate]
200 #[serde(rename = "InitgPty")]
201 pub initg_pty: GenericIdentification183,
202 #[serde(rename = "RcptPty", skip_serializing_if = "Option::is_none")]
203 pub rcpt_pty: Option<GenericIdentification183>,
204 #[validate(length(min = 0,))]
205 #[serde(rename = "TracData", default)]
206 pub trac_data: Vec<AdditionalData1>,
207 #[validate(length(min = 0,))]
208 #[serde(rename = "Tracblt", default)]
209 pub tracblt: Vec<Traceability9>,
210}
211#[derive(
212 Debug,
213 Default,
214 Clone,
215 PartialEq,
216 ::serde::Serialize,
217 ::serde::Deserialize,
218 ::derive_builder::Builder,
219 ::validator::Validate,
220)]
221pub struct ErrorDetails2 {
222 #[serde(rename = "MsgErrTp")]
223 pub msg_err_tp: MessageError1Code,
224 #[serde(rename = "OthrMsgErrTp", skip_serializing_if = "Option::is_none")]
225 pub othr_msg_err_tp: Option<Max35Text>,
226 #[serde(rename = "ErrCd", skip_serializing_if = "Option::is_none")]
227 pub err_cd: Option<Max35Text>,
228 #[serde(rename = "ErrDesc", skip_serializing_if = "Option::is_none")]
229 pub err_desc: Option<Max500Text>,
230 #[validate(length(min = 0,))]
231 #[serde(rename = "DataElmtInErr", default)]
232 pub data_elmt_in_err: Vec<Max4000Text>,
233}
234#[derive(
235 Debug,
236 Default,
237 Clone,
238 PartialEq,
239 ::serde::Serialize,
240 ::serde::Deserialize,
241 ::derive_builder::Builder,
242 ::validator::Validate,
243)]
244pub struct Max500Text {
245 #[validate(length(min = 1, max = 500,))]
246 #[serde(rename = "$text")]
247 pub value: String,
248}
249#[derive(
250 Debug,
251 Default,
252 Clone,
253 PartialEq,
254 ::serde::Serialize,
255 ::serde::Deserialize,
256 ::derive_builder::Builder,
257 ::validator::Validate,
258)]
259pub struct AlgorithmIdentification27 {
260 #[serde(rename = "Algo")]
261 pub algo: Algorithm7Code,
262 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
263 pub param: Option<Parameter13>,
264}
265#[derive(
266 Debug,
267 Default,
268 Clone,
269 PartialEq,
270 ::serde::Serialize,
271 ::serde::Deserialize,
272 ::derive_builder::Builder,
273 ::validator::Validate,
274)]
275pub struct AdditionalInformation30 {
276 #[serde(rename = "Rcpt", skip_serializing_if = "Option::is_none")]
277 pub rcpt: Option<PartyType19Code>,
278 #[validate(length(min = 0,))]
279 #[serde(rename = "Trgt", default)]
280 pub trgt: Vec<UserInterface8Code>,
281 #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
282 pub frmt: Option<OutputFormat4Code>,
283 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
284 pub tp: Option<Max35Text>,
285 #[serde(rename = "Lang")]
286 pub lang: IsoMax3ALanguageCode,
287 #[validate]
288 #[serde(rename = "Val")]
289 pub val: Max20KText,
290}
291#[derive(
292 Debug,
293 Default,
294 Clone,
295 PartialEq,
296 ::serde::Serialize,
297 ::serde::Deserialize,
298 ::derive_builder::Builder,
299 ::validator::Validate,
300)]
301pub struct IssuerAndSerialNumber1 {
302 #[validate]
303 #[serde(rename = "Issr")]
304 pub issr: CertificateIssuer1,
305 #[validate]
306 #[serde(rename = "SrlNb")]
307 pub srl_nb: Max35Binary,
308}
309#[derive(
310 Debug,
311 Default,
312 Clone,
313 PartialEq,
314 ::serde::Serialize,
315 ::serde::Deserialize,
316 ::derive_builder::Builder,
317 ::validator::Validate,
318)]
319pub struct Max15NumericText {
320 #[validate(regex = "MAX_15_NUMERIC_TEXT_REGEX")]
321 #[serde(rename = "$text")]
322 pub value: String,
323}
324#[derive(
325 Debug,
326 Default,
327 Clone,
328 PartialEq,
329 ::serde::Serialize,
330 ::serde::Deserialize,
331 ::derive_builder::Builder,
332 ::validator::Validate,
333)]
334pub struct Max8NumericText {
335 #[validate(regex = "MAX_8_NUMERIC_TEXT_REGEX")]
336 #[serde(rename = "$text")]
337 pub value: String,
338}
339#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
340pub enum MessageFunction17Code {
341 #[serde(rename = "NOTI")]
342 Noti,
343 #[serde(rename = "REQU")]
344 Requ,
345 #[serde(rename = "ADVC")]
346 Advc,
347 #[default]
348 Unknown,
349}
350#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
351pub enum OutputFormat4Code {
352 #[serde(rename = "FLNM")]
353 Flnm,
354 #[serde(rename = "MREF")]
355 Mref,
356 #[serde(rename = "OTHN")]
357 Othn,
358 #[serde(rename = "OTHP")]
359 Othp,
360 #[serde(rename = "SMSI")]
361 Smsi,
362 #[serde(rename = "TEXT")]
363 Text,
364 #[serde(rename = "URLI")]
365 Urli,
366 #[serde(rename = "HTML")]
367 Html,
368 #[default]
369 Unknown,
370}
371#[derive(
372 Debug,
373 Default,
374 Clone,
375 PartialEq,
376 ::serde::Serialize,
377 ::serde::Deserialize,
378 ::derive_builder::Builder,
379 ::validator::Validate,
380)]
381pub struct TrueFalseIndicator {
382 #[serde(rename = "$text")]
383 pub value: bool,
384}
385#[derive(
386 Debug,
387 Default,
388 Clone,
389 PartialEq,
390 ::serde::Serialize,
391 ::serde::Deserialize,
392 ::derive_builder::Builder,
393 ::validator::Validate,
394)]
395pub struct AdditionalData1 {
396 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
397 pub tp: Option<Max35Text>,
398 #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
399 pub val: Option<Max2048Text>,
400}
401#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
402pub enum AttributeType1Code {
403 #[serde(rename = "CNAT")]
404 Cnat,
405 #[serde(rename = "LATT")]
406 Latt,
407 #[serde(rename = "OATT")]
408 Oatt,
409 #[serde(rename = "OUAT")]
410 Ouat,
411 #[serde(rename = "CATT")]
412 Catt,
413 #[default]
414 Unknown,
415}
416#[derive(
417 Debug,
418 Default,
419 Clone,
420 PartialEq,
421 ::serde::Serialize,
422 ::serde::Deserialize,
423 ::derive_builder::Builder,
424 ::validator::Validate,
425)]
426pub struct Exact1HexBinaryText {
427 #[validate(regex = "EXACT_1_HEX_BINARY_TEXT_REGEX")]
428 #[serde(rename = "$text")]
429 pub value: String,
430}
431#[derive(
432 Debug,
433 Default,
434 Clone,
435 PartialEq,
436 ::serde::Serialize,
437 ::serde::Deserialize,
438 ::derive_builder::Builder,
439 ::validator::Validate,
440)]
441pub struct EncryptedDataElement1 {
442 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
443 pub id: Option<ExternalEncryptedElementIdentification1Code>,
444 #[serde(rename = "OthrId", skip_serializing_if = "Option::is_none")]
445 pub othr_id: Option<Max35Text>,
446 #[serde(rename = "NcrptdData")]
447 pub ncrptd_data: EncryptedData1Choice,
448 #[serde(rename = "ClearTxtDataFrmt", skip_serializing_if = "Option::is_none")]
449 pub clear_txt_data_frmt: Option<EncryptedDataFormat1Code>,
450 #[serde(
451 rename = "OthrClearTxtDataFrmt",
452 skip_serializing_if = "Option::is_none"
453 )]
454 pub othr_clear_txt_data_frmt: Option<Max35Text>,
455}
456#[derive(
457 Debug,
458 Default,
459 Clone,
460 PartialEq,
461 ::serde::Serialize,
462 ::serde::Deserialize,
463 ::derive_builder::Builder,
464 ::validator::Validate,
465)]
466pub struct IsoTime {
467 #[serde(rename = "$value")]
468 pub value: ::chrono::naive::NaiveTime,
469}
470#[derive(
471 Debug,
472 Default,
473 Clone,
474 PartialEq,
475 ::serde::Serialize,
476 ::serde::Deserialize,
477 ::derive_builder::Builder,
478 ::validator::Validate,
479)]
480pub struct AdditionalFeeReconciliation2 {
481 #[serde(rename = "RcncltnImpct")]
482 pub rcncltn_impct: ReconciliationImpact1Code,
483 #[serde(rename = "Tp")]
484 pub tp: TypeOfAmount21Code,
485 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
486 pub othr_tp: Option<Max35Text>,
487 #[validate]
488 #[serde(rename = "Amt")]
489 pub amt: ImpliedCurrencyAndAmount,
490 #[validate]
491 #[serde(rename = "Cnt")]
492 pub cnt: Number,
493}
494#[derive(
495 Debug,
496 Default,
497 Clone,
498 PartialEq,
499 ::serde::Serialize,
500 ::serde::Deserialize,
501 ::derive_builder::Builder,
502 ::validator::Validate,
503)]
504pub struct CertificateIssuer1 {
505 #[validate(length(min = 1,))]
506 #[serde(rename = "RltvDstngshdNm", default)]
507 pub rltv_dstngshd_nm: Vec<RelativeDistinguishedName1>,
508}
509#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
510pub enum Algorithm23Code {
511 #[serde(rename = "EA2C")]
512 Ea2C,
513 #[serde(rename = "E3DC")]
514 E3Dc,
515 #[serde(rename = "EA9C")]
516 Ea9C,
517 #[serde(rename = "EA5C")]
518 Ea5C,
519 #[serde(rename = "EA2R")]
520 Ea2R,
521 #[serde(rename = "EA9R")]
522 Ea9R,
523 #[serde(rename = "EA5R")]
524 Ea5R,
525 #[serde(rename = "E3DR")]
526 E3Dr,
527 #[serde(rename = "E36C")]
528 E36C,
529 #[serde(rename = "E36R")]
530 E36R,
531 #[serde(rename = "SD5C")]
532 Sd5C,
533 #[default]
534 Unknown,
535}
536#[derive(
537 Debug,
538 Default,
539 Clone,
540 PartialEq,
541 ::serde::Serialize,
542 ::serde::Deserialize,
543 ::derive_builder::Builder,
544 ::validator::Validate,
545)]
546pub struct ProtectedData1 {
547 #[serde(rename = "CnttTp")]
548 pub cntt_tp: ContentType3Code,
549 #[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
550 pub envlpd_data: Option<EnvelopedData6>,
551 #[serde(rename = "NcrptdData", skip_serializing_if = "Option::is_none")]
552 pub ncrptd_data: Option<EncryptedData1>,
553}
554#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
555pub enum PartyType9Code {
556 #[serde(rename = "ACQR")]
557 Acqr,
558 #[serde(rename = "ACQP")]
559 Acqp,
560 #[serde(rename = "CISS")]
561 Ciss,
562 #[serde(rename = "CISP")]
563 Cisp,
564 #[serde(rename = "CSCH")]
565 Csch,
566 #[serde(rename = "SCHP")]
567 Schp,
568 #[default]
569 Unknown,
570}
571#[derive(
572 Debug,
573 Default,
574 Clone,
575 PartialEq,
576 ::serde::Serialize,
577 ::serde::Deserialize,
578 ::derive_builder::Builder,
579 ::validator::Validate,
580)]
581pub struct Max70Text {
582 #[validate(length(min = 1, max = 70,))]
583 #[serde(rename = "$text")]
584 pub value: String,
585}
586#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
587pub enum Algorithm8Code {
588 #[serde(rename = "MGF1")]
589 Mgf1,
590 #[default]
591 Unknown,
592}
593#[derive(
594 Debug,
595 Default,
596 Clone,
597 PartialEq,
598 ::serde::Serialize,
599 ::serde::Deserialize,
600 ::derive_builder::Builder,
601 ::validator::Validate,
602)]
603pub struct MessageReconciliation3 {
604 #[serde(rename = "Tp")]
605 pub tp: ReconciliationMessageType2Code,
606 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
607 pub othr_tp: Option<Max35Text>,
608 #[validate]
609 #[serde(rename = "Cnt")]
610 pub cnt: Number,
611}
612#[derive(
613 Debug,
614 Default,
615 Clone,
616 PartialEq,
617 ::serde::Serialize,
618 ::serde::Deserialize,
619 ::derive_builder::Builder,
620 ::validator::Validate,
621)]
622pub struct Iso3NumericCurrencyCode {
623 #[validate(regex = "ISO_3_NUMERIC_CURRENCY_CODE_REGEX")]
624 #[serde(rename = "$text")]
625 pub value: String,
626}
627#[derive(
628 Debug,
629 Default,
630 Clone,
631 PartialEq,
632 ::serde::Serialize,
633 ::serde::Deserialize,
634 ::derive_builder::Builder,
635 ::validator::Validate,
636)]
637pub struct LocalData1 {
638 #[serde(rename = "Lang")]
639 pub lang: IsoMax3ALanguageCode,
640 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
641 pub shrt_nm: Option<Max70Text>,
642 #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
643 pub lgl_corp_nm: Option<Max210Text>,
644 #[validate(length(min = 0,))]
645 #[serde(rename = "AddtlData", default)]
646 pub addtl_data: Vec<AdditionalData1>,
647}
648#[derive(
649 Debug,
650 Default,
651 Clone,
652 PartialEq,
653 ::serde::Serialize,
654 ::serde::Deserialize,
655 ::derive_builder::Builder,
656 ::validator::Validate,
657)]
658pub struct Max32HexBinaryText {
659 #[validate(regex = "MAX_32_HEX_BINARY_TEXT_REGEX")]
660 #[serde(rename = "$text")]
661 pub value: String,
662}
663#[derive(
664 Debug,
665 Default,
666 Clone,
667 PartialEq,
668 ::serde::Serialize,
669 ::serde::Deserialize,
670 ::derive_builder::Builder,
671 ::validator::Validate,
672)]
673pub struct Max12NumericText {
674 #[validate(regex = "MAX_12_NUMERIC_TEXT_REGEX")]
675 #[serde(rename = "$text")]
676 pub value: String,
677}
678#[derive(
679 Debug,
680 Default,
681 Clone,
682 PartialEq,
683 ::serde::Serialize,
684 ::serde::Deserialize,
685 ::derive_builder::Builder,
686 ::validator::Validate,
687)]
688pub struct Max210Text {
689 #[validate(length(min = 1, max = 210,))]
690 #[serde(rename = "$text")]
691 pub value: String,
692}
693#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
694pub enum Response8Code {
695 #[serde(rename = "PRCS")]
696 Prcs,
697 #[serde(rename = "UNPR")]
698 Unpr,
699 #[serde(rename = "UNRV")]
700 Unrv,
701 #[serde(rename = "REJT")]
702 Rejt,
703 #[serde(rename = "TECH")]
704 Tech,
705 #[serde(rename = "OTHN")]
706 Othn,
707 #[serde(rename = "OTHP")]
708 Othp,
709 #[default]
710 Unknown,
711}
712#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
713pub enum Algorithm5Code {
714 #[serde(rename = "HS25")]
715 Hs25,
716 #[serde(rename = "HS38")]
717 Hs38,
718 #[serde(rename = "HS51")]
719 Hs51,
720 #[default]
721 Unknown,
722}
723#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
724pub enum Algorithm20Code {
725 #[serde(rename = "HS25")]
726 Hs25,
727 #[serde(rename = "HS38")]
728 Hs38,
729 #[serde(rename = "HS51")]
730 Hs51,
731 #[default]
732 Unknown,
733}
734#[derive(
735 Debug,
736 Default,
737 Clone,
738 PartialEq,
739 ::serde::Serialize,
740 ::serde::Deserialize,
741 ::derive_builder::Builder,
742 ::validator::Validate,
743)]
744pub struct Amount16 {
745 #[validate]
746 #[serde(rename = "Amt")]
747 pub amt: ImpliedCurrencyAndAmount,
748 #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
749 pub cdt_dbt: Option<CreditDebit3Code>,
750}
751#[derive(
752 Debug,
753 Default,
754 Clone,
755 PartialEq,
756 ::serde::Serialize,
757 ::serde::Deserialize,
758 ::derive_builder::Builder,
759 ::validator::Validate,
760)]
761pub struct BatchManagementInformation1 {
762 #[serde(rename = "ColltnId", skip_serializing_if = "Option::is_none")]
763 pub colltn_id: Option<Max35Text>,
764 #[validate]
765 #[serde(rename = "BtchId")]
766 pub btch_id: Max35Text,
767 #[serde(rename = "MsgSeqNb", skip_serializing_if = "Option::is_none")]
768 pub msg_seq_nb: Option<Max15NumericText>,
769 #[serde(rename = "MsgChcksmInptVal", skip_serializing_if = "Option::is_none")]
770 pub msg_chcksm_inpt_val: Option<Max140Binary>,
771}
772#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
773pub enum ReconciliationMessageType2Code {
774 #[serde(rename = "BATR")]
775 Batr,
776 #[serde(rename = "CAMI")]
777 Cami,
778 #[serde(rename = "CAMR")]
779 Camr,
780 #[serde(rename = "CGBI")]
781 Cgbi,
782 #[serde(rename = "CGBR")]
783 Cgbr,
784 #[serde(rename = "EROR")]
785 Eror,
786 #[serde(rename = "FECI")]
787 Feci,
788 #[serde(rename = "FECR")]
789 Fecr,
790 #[serde(rename = "FIAI")]
791 Fiai,
792 #[serde(rename = "FIAR")]
793 Fiar,
794 #[serde(rename = "FINR")]
795 Finr,
796 #[serde(rename = "FINI")]
797 Fini,
798 #[serde(rename = "FRDI")]
799 Frdi,
800 #[serde(rename = "FRDR")]
801 Frdr,
802 #[serde(rename = "FRRI")]
803 Frri,
804 #[serde(rename = "FRRR")]
805 Frrr,
806 #[serde(rename = "INQI")]
807 Inqi,
808 #[serde(rename = "INQR")]
809 Inqr,
810 #[serde(rename = "KYEI")]
811 Kyei,
812 #[serde(rename = "KYER")]
813 Kyer,
814 #[serde(rename = "NWMI")]
815 Nwmi,
816 #[serde(rename = "NWMR")]
817 Nwmr,
818 #[serde(rename = "RECI")]
819 Reci,
820 #[serde(rename = "RECR")]
821 Recr,
822 #[serde(rename = "RTFI")]
823 Rtfi,
824 #[serde(rename = "RTFR")]
825 Rtfr,
826 #[serde(rename = "RTRI")]
827 Rtri,
828 #[serde(rename = "REVI")]
829 Revi,
830 #[serde(rename = "REVR")]
831 Revr,
832 #[serde(rename = "SERI")]
833 Seri,
834 #[serde(rename = "SERR")]
835 Serr,
836 #[serde(rename = "VERI")]
837 Veri,
838 #[serde(rename = "VERR")]
839 Verr,
840 #[serde(rename = "AMDT")]
841 Amdt,
842 #[serde(rename = "ATHI")]
843 Athi,
844 #[serde(rename = "ATHR")]
845 Athr,
846 #[serde(rename = "BAMI")]
847 Bami,
848 #[serde(rename = "BAMR")]
849 Bamr,
850 #[serde(rename = "BATI")]
851 Bati,
852 #[serde(rename = "ADDI")]
853 Addi,
854 #[serde(rename = "ADDR")]
855 Addr,
856 #[serde(rename = "RTVI")]
857 Rtvi,
858 #[default]
859 Unknown,
860}
861#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
862pub enum EncryptionFormat3Code {
863 #[serde(rename = "TR34")]
864 Tr34,
865 #[serde(rename = "TR31")]
866 Tr31,
867 #[serde(rename = "CTCE")]
868 Ctce,
869 #[serde(rename = "CBCE")]
870 Cbce,
871 #[default]
872 Unknown,
873}
874#[derive(
875 Debug,
876 Default,
877 Clone,
878 PartialEq,
879 ::serde::Serialize,
880 ::serde::Deserialize,
881 ::derive_builder::Builder,
882 ::validator::Validate,
883)]
884pub struct Max500Binary {
885 #[validate(length(min = 1, max = 500,), regex = "MAX_500_BINARY_REGEX")]
886 pub value: String,
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 AlgorithmIdentification25 {
899 #[serde(rename = "Algo")]
900 pub algo: Algorithm23Code,
901 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
902 pub param: Option<Parameter7>,
903}
904#[derive(
905 Debug,
906 Default,
907 Clone,
908 PartialEq,
909 ::serde::Serialize,
910 ::serde::Deserialize,
911 ::derive_builder::Builder,
912 ::validator::Validate,
913)]
914pub struct Traceability9 {
915 #[validate]
916 #[serde(rename = "RlayId")]
917 pub rlay_id: GenericIdentification183,
918 #[serde(rename = "TracDtTmIn", skip_serializing_if = "Option::is_none")]
919 pub trac_dt_tm_in: Option<IsoDateTime>,
920 #[serde(rename = "TracDtTmOut", skip_serializing_if = "Option::is_none")]
921 pub trac_dt_tm_out: Option<IsoDateTime>,
922}
923#[derive(
924 Debug,
925 Default,
926 Clone,
927 PartialEq,
928 ::serde::Serialize,
929 ::serde::Deserialize,
930 ::derive_builder::Builder,
931 ::validator::Validate,
932)]
933pub struct ExternalEncryptedElementIdentification1Code {
934 #[validate(regex = "EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX")]
935 #[serde(rename = "$text")]
936 pub value: String,
937}
938#[derive(
939 Debug,
940 Default,
941 Clone,
942 PartialEq,
943 ::serde::Serialize,
944 ::serde::Deserialize,
945 ::derive_builder::Builder,
946 ::validator::Validate,
947)]
948pub struct FeeAmount3 {
949 #[validate]
950 #[serde(rename = "Amt")]
951 pub amt: ImpliedCurrencyAndAmount,
952 #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
953 pub cdt_dbt: Option<CreditDebit3Code>,
954 #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
955 pub ccy: Option<Iso3NumericCurrencyCode>,
956 #[serde(rename = "FctvXchgRate", skip_serializing_if = "Option::is_none")]
957 pub fctv_xchg_rate: Option<BaseOne25Rate>,
958 #[serde(rename = "ConvsDt", skip_serializing_if = "Option::is_none")]
959 pub convs_dt: Option<IsoDate>,
960 #[serde(rename = "ConvsTm", skip_serializing_if = "Option::is_none")]
961 pub convs_tm: Option<IsoTime>,
962}
963#[derive(
964 Debug,
965 Default,
966 Clone,
967 PartialEq,
968 ::serde::Serialize,
969 ::serde::Deserialize,
970 ::derive_builder::Builder,
971 ::validator::Validate,
972)]
973pub struct IsoMax3ACountryCode {
974 #[validate(regex = "ISO_MAX_3_A_COUNTRY_CODE_REGEX")]
975 #[serde(rename = "$text")]
976 pub value: String,
977}
978#[derive(
979 Debug,
980 Default,
981 Clone,
982 PartialEq,
983 ::serde::Serialize,
984 ::serde::Deserialize,
985 ::derive_builder::Builder,
986 ::validator::Validate,
987)]
988pub struct Exact12Text {
989 #[serde(rename = "$text")]
990 pub value: String,
991}
992#[derive(
993 Debug,
994 Default,
995 Clone,
996 PartialEq,
997 ::serde::Serialize,
998 ::serde::Deserialize,
999 ::derive_builder::Builder,
1000 ::validator::Validate,
1001)]
1002pub struct Max9999HexBinaryText {
1003 #[validate(regex = "MAX_9999_HEX_BINARY_TEXT_REGEX")]
1004 #[serde(rename = "$text")]
1005 pub value: String,
1006}
1007#[derive(
1008 Debug,
1009 Default,
1010 Clone,
1011 PartialEq,
1012 ::serde::Serialize,
1013 ::serde::Deserialize,
1014 ::derive_builder::Builder,
1015 ::validator::Validate,
1016)]
1017pub struct Recipient7ChoiceEnum {
1018 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
1019 pub key_idr: Option<KekIdentifier6>,
1020 #[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
1021 pub key_trnsprt: Option<KeyTransport6>,
1022 #[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
1023 pub kek: Option<Kek6>,
1024}
1025#[derive(
1026 Debug,
1027 Default,
1028 Clone,
1029 PartialEq,
1030 ::serde::Serialize,
1031 ::serde::Deserialize,
1032 ::derive_builder::Builder,
1033 ::validator::Validate,
1034)]
1035pub struct Recipient7Choice {
1036 #[serde(flatten)]
1037 pub value: Recipient7ChoiceEnum,
1038}
1039#[derive(
1040 Debug,
1041 Default,
1042 Clone,
1043 PartialEq,
1044 ::serde::Serialize,
1045 ::serde::Deserialize,
1046 ::derive_builder::Builder,
1047 ::validator::Validate,
1048)]
1049pub struct MacData1 {
1050 #[validate]
1051 #[serde(rename = "Ctrl")]
1052 pub ctrl: Exact1HexBinaryText,
1053 #[validate]
1054 #[serde(rename = "KeySetIdr")]
1055 pub key_set_idr: Max8NumericText,
1056 #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
1057 pub drvd_inf: Option<Max32HexBinaryText>,
1058 #[validate]
1059 #[serde(rename = "Algo")]
1060 pub algo: Max2NumericText,
1061 #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
1062 pub key_lngth: Option<Max4NumericText>,
1063 #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
1064 pub key_prtcn: Option<Max2NumericText>,
1065 #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
1066 pub key_indx: Option<Max5NumericText>,
1067 #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
1068 pub pddg_mtd: Option<Max2NumericText>,
1069 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
1070 pub initlstn_vctr: Option<Max32HexBinaryText>,
1071}
1072#[derive(
1073 Debug,
1074 Default,
1075 Clone,
1076 PartialEq,
1077 ::serde::Serialize,
1078 ::serde::Deserialize,
1079 ::derive_builder::Builder,
1080 ::validator::Validate,
1081)]
1082#[serde(rename = "Document")]
1083pub struct Document<
1084 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1085> {
1086 #[validate]
1087 #[serde(rename = "RcncltnRspn")]
1088 pub rcncltn_rspn: ReconciliationResponseV03<A>,
1089 #[serde(rename = "@xmlns", default = "namespace")]
1090 pub xmlns: String,
1091}
1092#[derive(
1093 Debug,
1094 Default,
1095 Clone,
1096 PartialEq,
1097 ::serde::Serialize,
1098 ::serde::Deserialize,
1099 ::derive_builder::Builder,
1100 ::validator::Validate,
1101)]
1102pub struct EncryptedData1ChoiceEnum {
1103 #[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
1104 pub hex_binry_val: Option<Max9999HexBinaryText>,
1105 #[serde(rename = "BinryData", skip_serializing_if = "Option::is_none")]
1106 pub binry_data: Option<Max100KBinary>,
1107}
1108#[derive(
1109 Debug,
1110 Default,
1111 Clone,
1112 PartialEq,
1113 ::serde::Serialize,
1114 ::serde::Deserialize,
1115 ::derive_builder::Builder,
1116 ::validator::Validate,
1117)]
1118pub struct EncryptedData1Choice {
1119 #[serde(flatten)]
1120 pub value: EncryptedData1ChoiceEnum,
1121}
1122#[derive(
1123 Debug,
1124 Default,
1125 Clone,
1126 PartialEq,
1127 ::serde::Serialize,
1128 ::serde::Deserialize,
1129 ::derive_builder::Builder,
1130 ::validator::Validate,
1131)]
1132pub struct Jurisdiction2 {
1133 #[serde(rename = "DmstInd", skip_serializing_if = "Option::is_none")]
1134 pub dmst_ind: Option<TrueFalseIndicator>,
1135 #[serde(rename = "DmstQlfctn", skip_serializing_if = "Option::is_none")]
1136 pub dmst_qlfctn: Option<Max35Text>,
1137}
1138#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1139pub enum ReconciliationFunction1Code {
1140 #[serde(rename = "INQR")]
1141 Inqr,
1142 #[serde(rename = "INCU")]
1143 Incu,
1144 #[serde(rename = "CNVY")]
1145 Cnvy,
1146 #[default]
1147 Unknown,
1148}
1149#[derive(
1150 Debug,
1151 Default,
1152 Clone,
1153 PartialEq,
1154 ::serde::Serialize,
1155 ::serde::Deserialize,
1156 ::derive_builder::Builder,
1157 ::validator::Validate,
1158)]
1159pub struct Max35Text {
1160 #[validate(length(min = 1, max = 35,))]
1161 #[serde(rename = "$text")]
1162 pub value: String,
1163}
1164#[derive(
1165 Debug,
1166 Default,
1167 Clone,
1168 PartialEq,
1169 ::serde::Serialize,
1170 ::serde::Deserialize,
1171 ::derive_builder::Builder,
1172 ::validator::Validate,
1173)]
1174pub struct IsoDate {
1175 #[serde(rename = "$text")]
1176 pub value: ::chrono::NaiveDate,
1177}
1178#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1179pub enum PartyType19Code {
1180 #[serde(rename = "ACCP")]
1181 Accp,
1182 #[serde(rename = "ACQR")]
1183 Acqr,
1184 #[serde(rename = "ACQP")]
1185 Acqp,
1186 #[serde(rename = "CISS")]
1187 Ciss,
1188 #[serde(rename = "CISP")]
1189 Cisp,
1190 #[serde(rename = "AGNT")]
1191 Agnt,
1192 #[serde(rename = "OTHN")]
1193 Othn,
1194 #[serde(rename = "OTHP")]
1195 Othp,
1196 #[default]
1197 Unknown,
1198}
1199#[derive(
1200 Debug,
1201 Default,
1202 Clone,
1203 PartialEq,
1204 ::serde::Serialize,
1205 ::serde::Deserialize,
1206 ::derive_builder::Builder,
1207 ::validator::Validate,
1208)]
1209pub struct GenericIdentification183 {
1210 #[validate]
1211 #[serde(rename = "Id")]
1212 pub id: Max35Text,
1213 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1214 pub tp: Option<PartyType17Code>,
1215 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1216 pub othr_tp: Option<Max35Text>,
1217 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1218 pub assgnr: Option<PartyType18Code>,
1219 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1220 pub ctry: Option<IsoMax3ACountryCode>,
1221 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1222 pub shrt_nm: Option<Max35Text>,
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 SettlementServiceDate2 {
1235 #[serde(rename = "ReqdSttlmDt", skip_serializing_if = "Option::is_none")]
1236 pub reqd_sttlm_dt: Option<IsoDate>,
1237 #[serde(rename = "DfrrdSttlmInd", skip_serializing_if = "Option::is_none")]
1238 pub dfrrd_sttlm_ind: Option<TrueFalseIndicator>,
1239 #[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
1240 pub sttlm_dt: Option<IsoDate>,
1241 #[serde(rename = "SttlmTm", skip_serializing_if = "Option::is_none")]
1242 pub sttlm_tm: Option<IsoTime>,
1243 #[serde(rename = "SttlmPrd", skip_serializing_if = "Option::is_none")]
1244 pub sttlm_prd: Option<Max35Text>,
1245 #[serde(rename = "SttlmCutOffTm", skip_serializing_if = "Option::is_none")]
1246 pub sttlm_cut_off_tm: Option<IsoDateTime>,
1247}
1248#[derive(
1249 Debug,
1250 Default,
1251 Clone,
1252 PartialEq,
1253 ::serde::Serialize,
1254 ::serde::Deserialize,
1255 ::derive_builder::Builder,
1256 ::validator::Validate,
1257)]
1258pub struct EnvelopedData6 {
1259 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
1260 pub vrsn: Option<Number>,
1261 #[validate(length(min = 1,))]
1262 #[serde(rename = "Rcpt", default)]
1263 pub rcpt: Vec<Recipient7Choice>,
1264 #[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
1265 pub ncrptd_cntt: Option<EncryptedContent5>,
1266}
1267#[derive(
1268 Debug,
1269 Default,
1270 Clone,
1271 PartialEq,
1272 ::serde::Serialize,
1273 ::serde::Deserialize,
1274 ::derive_builder::Builder,
1275 ::validator::Validate,
1276)]
1277pub struct Max140Binary {
1278 #[validate(length(min = 1, max = 140,), regex = "MAX_140_BINARY_REGEX")]
1279 pub value: String,
1280}
1281#[derive(
1282 Debug,
1283 Default,
1284 Clone,
1285 PartialEq,
1286 ::serde::Serialize,
1287 ::serde::Deserialize,
1288 ::derive_builder::Builder,
1289 ::validator::Validate,
1290)]
1291pub struct KekIdentifier6 {
1292 #[validate]
1293 #[serde(rename = "KeyId")]
1294 pub key_id: Max140Text,
1295 #[serde(rename = "KeyVrsn", skip_serializing_if = "Option::is_none")]
1296 pub key_vrsn: Option<Max140Text>,
1297 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
1298 pub seq_nb: Option<Number>,
1299 #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
1300 pub derivtn_id: Option<Min5Max16Binary>,
1301}
1302#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1303pub enum PartyType17Code {
1304 #[serde(rename = "OTHN")]
1305 Othn,
1306 #[serde(rename = "OTHP")]
1307 Othp,
1308 #[serde(rename = "ACQR")]
1309 Acqr,
1310 #[serde(rename = "ACQP")]
1311 Acqp,
1312 #[serde(rename = "CISS")]
1313 Ciss,
1314 #[serde(rename = "CISP")]
1315 Cisp,
1316 #[serde(rename = "AGNT")]
1317 Agnt,
1318 #[default]
1319 Unknown,
1320}
1321#[derive(
1322 Debug,
1323 Default,
1324 Clone,
1325 PartialEq,
1326 ::serde::Serialize,
1327 ::serde::Deserialize,
1328 ::derive_builder::Builder,
1329 ::validator::Validate,
1330)]
1331pub struct Max4000Text {
1332 #[validate(length(min = 1, max = 4000,))]
1333 #[serde(rename = "$text")]
1334 pub value: String,
1335}
1336#[derive(
1337 Debug,
1338 Default,
1339 Clone,
1340 PartialEq,
1341 ::serde::Serialize,
1342 ::serde::Deserialize,
1343 ::derive_builder::Builder,
1344 ::validator::Validate,
1345)]
1346pub struct ResultData7 {
1347 #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
1348 pub rslt: Option<Response8Code>,
1349 #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
1350 pub othr_rslt: Option<Max35Text>,
1351 #[serde(rename = "RsltDtls")]
1352 pub rslt_dtls: Iso8583ResponseCode,
1353 #[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
1354 pub othr_rslt_dtls: Option<Max35Text>,
1355 #[serde(
1356 rename = "TempScrCardDataReusePrtd",
1357 skip_serializing_if = "Option::is_none"
1358 )]
1359 pub temp_scr_card_data_reuse_prtd: Option<TrueFalseIndicator>,
1360 #[validate(length(min = 0,))]
1361 #[serde(rename = "AddtlRsltInf", default)]
1362 pub addtl_rslt_inf: Vec<AdditionalData1>,
1363}
1364#[derive(
1365 Debug,
1366 Default,
1367 Clone,
1368 PartialEq,
1369 ::serde::Serialize,
1370 ::serde::Deserialize,
1371 ::derive_builder::Builder,
1372 ::validator::Validate,
1373)]
1374pub struct Parameter14 {
1375 #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
1376 pub ncrptn_frmt: Option<EncryptionFormat3Code>,
1377 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
1378 pub initlstn_vctr: Option<Max500Binary>,
1379 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
1380 pub b_pddg: Option<BytePadding1Code>,
1381}
1382#[derive(
1383 Debug,
1384 Default,
1385 Clone,
1386 PartialEq,
1387 ::serde::Serialize,
1388 ::serde::Deserialize,
1389 ::derive_builder::Builder,
1390 ::validator::Validate,
1391)]
1392pub struct SettlementServiceMode1 {
1393 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1394 pub tp: Option<Max35Text>,
1395 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1396 pub id: Option<Max35Text>,
1397 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1398 pub shrt_nm: Option<Max35Text>,
1399 #[serde(rename = "SttlmPrty", skip_serializing_if = "Option::is_none")]
1400 pub sttlm_prty: Option<Priority3Code>,
1401}
1402#[derive(
1403 Debug,
1404 Default,
1405 Clone,
1406 PartialEq,
1407 ::serde::Serialize,
1408 ::serde::Deserialize,
1409 ::derive_builder::Builder,
1410 ::validator::Validate,
1411)]
1412pub struct Iso8583ResponseCode {
1413 #[validate(regex = "ISO_8583_RESPONSE_CODE_REGEX")]
1414 #[serde(rename = "$text")]
1415 pub value: String,
1416}
1417#[derive(
1418 Debug,
1419 Default,
1420 Clone,
1421 PartialEq,
1422 ::serde::Serialize,
1423 ::serde::Deserialize,
1424 ::derive_builder::Builder,
1425 ::validator::Validate,
1426)]
1427pub struct KekIdentifier2 {
1428 #[validate]
1429 #[serde(rename = "KeyId")]
1430 pub key_id: Max140Text,
1431 #[validate]
1432 #[serde(rename = "KeyVrsn")]
1433 pub key_vrsn: Max140Text,
1434 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
1435 pub seq_nb: Option<Number>,
1436 #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
1437 pub derivtn_id: Option<Min5Max16Binary>,
1438}
1439#[derive(
1440 Debug,
1441 Default,
1442 Clone,
1443 PartialEq,
1444 ::serde::Serialize,
1445 ::serde::Deserialize,
1446 ::derive_builder::Builder,
1447 ::validator::Validate,
1448)]
1449pub struct RelativeDistinguishedName1 {
1450 #[serde(rename = "AttrTp")]
1451 pub attr_tp: AttributeType1Code,
1452 #[validate]
1453 #[serde(rename = "AttrVal")]
1454 pub attr_val: Max140Text,
1455}
1456#[derive(
1457 Debug,
1458 Default,
1459 Clone,
1460 PartialEq,
1461 ::serde::Serialize,
1462 ::serde::Deserialize,
1463 ::derive_builder::Builder,
1464 ::validator::Validate,
1465)]
1466pub struct ReconciliationResponse7<
1467 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1468> {
1469 #[validate]
1470 #[serde(rename = "Envt")]
1471 pub envt: Environment33,
1472 #[serde(rename = "Cntxt", skip_serializing_if = "Option::is_none")]
1473 pub cntxt: Option<Context17>,
1474 #[validate]
1475 #[serde(rename = "Tx")]
1476 pub tx: Transaction135,
1477 #[validate]
1478 #[serde(rename = "PrcgRslt")]
1479 pub prcg_rslt: ProcessingResult19,
1480 #[validate(length(min = 0,))]
1481 #[serde(rename = "PrtctdData", default)]
1482 pub prtctd_data: Vec<ProtectedData1>,
1483 #[validate(length(min = 0,))]
1484 #[serde(rename = "SplmtryData", default)]
1485 pub splmtry_data: Vec<SupplementaryData1<A>>,
1486}
1487#[derive(
1488 Debug,
1489 Default,
1490 Clone,
1491 PartialEq,
1492 ::serde::Serialize,
1493 ::serde::Deserialize,
1494 ::derive_builder::Builder,
1495 ::validator::Validate,
1496)]
1497pub struct BaseOne25Rate {
1498 #[serde(rename = "$text")]
1499 pub value: f64,
1500}
1501#[derive(
1502 Debug,
1503 Default,
1504 Clone,
1505 PartialEq,
1506 ::serde::Serialize,
1507 ::serde::Deserialize,
1508 ::derive_builder::Builder,
1509 ::validator::Validate,
1510)]
1511pub struct PartyIdentification263 {
1512 #[validate]
1513 #[serde(rename = "Id")]
1514 pub id: Max11NumericText,
1515 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1516 pub assgnr: Option<Max35Text>,
1517 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1518 pub ctry: Option<Iso3NumericCountryCode>,
1519 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1520 pub shrt_nm: Option<Max35Text>,
1521 #[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
1522 pub lgl_corp_nm: Option<Max99Text>,
1523 #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
1524 pub addtl_id: Option<AdditionalData1>,
1525 #[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
1526 pub lcl_data: Option<LocalData1>,
1527}
1528#[derive(
1529 Debug,
1530 Default,
1531 Clone,
1532 PartialEq,
1533 ::serde::Serialize,
1534 ::serde::Deserialize,
1535 ::derive_builder::Builder,
1536 ::validator::Validate,
1537)]
1538pub struct Max140Text {
1539 #[validate(length(min = 1, max = 140,))]
1540 #[serde(rename = "$text")]
1541 pub value: String,
1542}
1543#[derive(
1544 Debug,
1545 Default,
1546 Clone,
1547 PartialEq,
1548 ::serde::Serialize,
1549 ::serde::Deserialize,
1550 ::derive_builder::Builder,
1551 ::validator::Validate,
1552)]
1553pub struct TransactionContext10 {
1554 #[serde(rename = "CardPrgrmmApld", skip_serializing_if = "Option::is_none")]
1555 pub card_prgrmm_apld: Option<CardProgrammeMode3>,
1556 #[serde(rename = "Jursdctn", skip_serializing_if = "Option::is_none")]
1557 pub jursdctn: Option<Jurisdiction2>,
1558 #[serde(rename = "SttlmSvc", skip_serializing_if = "Option::is_none")]
1559 pub sttlm_svc: Option<SettlementService4>,
1560 #[serde(rename = "Rcncltn", skip_serializing_if = "Option::is_none")]
1561 pub rcncltn: Option<Reconciliation3>,
1562 #[validate(length(min = 0,))]
1563 #[serde(rename = "AddtlData", default)]
1564 pub addtl_data: Vec<AdditionalData1>,
1565}
1566#[derive(
1567 Debug,
1568 Default,
1569 Clone,
1570 PartialEq,
1571 ::serde::Serialize,
1572 ::serde::Deserialize,
1573 ::derive_builder::Builder,
1574 ::validator::Validate,
1575)]
1576pub struct Number {
1577 #[serde(rename = "$text")]
1578 pub value: f64,
1579}
1580#[derive(
1581 Debug,
1582 Default,
1583 Clone,
1584 PartialEq,
1585 ::serde::Serialize,
1586 ::serde::Deserialize,
1587 ::derive_builder::Builder,
1588 ::validator::Validate,
1589)]
1590pub struct ImpliedCurrencyAndAmount {
1591 #[validate(range(min = 0,))]
1592 #[serde(rename = "$text")]
1593 pub value: f64,
1594}
1595#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1596pub enum ReconciliationCategory1Code {
1597 #[serde(rename = "RVSL")]
1598 Rvsl,
1599 #[serde(rename = "OTHP")]
1600 Othp,
1601 #[serde(rename = "OTHN")]
1602 Othn,
1603 #[serde(rename = "FNCL")]
1604 Fncl,
1605 #[serde(rename = "CGBK")]
1606 Cgbk,
1607 #[default]
1608 Unknown,
1609}
1610#[derive(
1611 Debug,
1612 Default,
1613 Clone,
1614 PartialEq,
1615 ::serde::Serialize,
1616 ::serde::Deserialize,
1617 ::derive_builder::Builder,
1618 ::validator::Validate,
1619)]
1620pub struct Parameter13 {
1621 #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
1622 pub dgst_algo: Option<Algorithm20Code>,
1623 #[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
1624 pub msk_gnrtr_algo: Option<AlgorithmIdentification26>,
1625}
1626#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1627pub enum ReconciliationImpact1Code {
1628 #[serde(rename = "DEBT")]
1629 Debt,
1630 #[serde(rename = "CRDT")]
1631 Crdt,
1632 #[default]
1633 Unknown,
1634}
1635#[derive(
1636 Debug,
1637 Default,
1638 Clone,
1639 PartialEq,
1640 ::serde::Serialize,
1641 ::serde::Deserialize,
1642 ::derive_builder::Builder,
1643 ::validator::Validate,
1644)]
1645pub struct SupplementaryData1<
1646 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1647> {
1648 #[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
1649 pub plc_and_nm: Option<Max350Text>,
1650 #[validate]
1651 #[serde(rename = "Envlp")]
1652 pub envlp: SupplementaryDataEnvelope1<A>,
1653}
1654#[derive(
1655 Debug,
1656 Default,
1657 Clone,
1658 PartialEq,
1659 ::serde::Serialize,
1660 ::serde::Deserialize,
1661 ::derive_builder::Builder,
1662 ::validator::Validate,
1663)]
1664pub struct AlgorithmIdentification28 {
1665 #[serde(rename = "Algo")]
1666 pub algo: Algorithm13Code,
1667 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
1668 pub param: Option<Parameter14>,
1669}
1670#[derive(
1671 Debug,
1672 Default,
1673 Clone,
1674 PartialEq,
1675 ::serde::Serialize,
1676 ::serde::Deserialize,
1677 ::derive_builder::Builder,
1678 ::validator::Validate,
1679)]
1680pub struct ApprovalEntity2 {
1681 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1682 pub id: Option<Max35Text>,
1683 #[serde(rename = "Tp")]
1684 pub tp: PartyType26Code,
1685 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1686 pub othr_tp: Option<Max35Text>,
1687 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1688 pub assgnr: Option<PartyType9Code>,
1689 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1690 pub ctry: Option<IsoMax3ACountryCode>,
1691 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1692 pub shrt_nm: Option<Max35Text>,
1693}
1694#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1695pub enum Algorithm13Code {
1696 #[serde(rename = "EA2C")]
1697 Ea2C,
1698 #[serde(rename = "E3DC")]
1699 E3Dc,
1700 #[serde(rename = "DKP9")]
1701 Dkp9,
1702 #[serde(rename = "UKPT")]
1703 Ukpt,
1704 #[serde(rename = "UKA1")]
1705 Uka1,
1706 #[serde(rename = "EA9C")]
1707 Ea9C,
1708 #[serde(rename = "EA5C")]
1709 Ea5C,
1710 #[default]
1711 Unknown,
1712}
1713#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1714pub enum ContentType2Code {
1715 #[serde(rename = "DATA")]
1716 Data,
1717 #[serde(rename = "SIGN")]
1718 Sign,
1719 #[serde(rename = "EVLP")]
1720 Evlp,
1721 #[serde(rename = "DGST")]
1722 Dgst,
1723 #[serde(rename = "AUTH")]
1724 Auth,
1725 #[default]
1726 Unknown,
1727}
1728#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1729pub enum PartyType18Code {
1730 #[serde(rename = "ACQR")]
1731 Acqr,
1732 #[serde(rename = "CISS")]
1733 Ciss,
1734 #[serde(rename = "CSCH")]
1735 Csch,
1736 #[serde(rename = "AGNT")]
1737 Agnt,
1738 #[default]
1739 Unknown,
1740}
1741#[derive(
1742 Debug,
1743 Default,
1744 Clone,
1745 PartialEq,
1746 ::serde::Serialize,
1747 ::serde::Deserialize,
1748 ::derive_builder::Builder,
1749 ::validator::Validate,
1750)]
1751pub struct EncryptedData1 {
1752 #[serde(rename = "Ctrl", skip_serializing_if = "Option::is_none")]
1753 pub ctrl: Option<Exact1HexBinaryText>,
1754 #[serde(rename = "KeySetIdr", skip_serializing_if = "Option::is_none")]
1755 pub key_set_idr: Option<Max8NumericText>,
1756 #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
1757 pub drvd_inf: Option<Max32HexBinaryText>,
1758 #[serde(rename = "Algo", skip_serializing_if = "Option::is_none")]
1759 pub algo: Option<Max2NumericText>,
1760 #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
1761 pub key_lngth: Option<Max4NumericText>,
1762 #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
1763 pub key_prtcn: Option<Max2NumericText>,
1764 #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
1765 pub key_indx: Option<Max5NumericText>,
1766 #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
1767 pub pddg_mtd: Option<Max2NumericText>,
1768 #[serde(rename = "NcrptdDataFrmt", skip_serializing_if = "Option::is_none")]
1769 pub ncrptd_data_frmt: Option<Max2NumericText>,
1770 #[validate(length(min = 1,))]
1771 #[serde(rename = "NcrptdDataElmt", default)]
1772 pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
1773}
1774#[derive(
1775 Debug,
1776 Default,
1777 Clone,
1778 PartialEq,
1779 ::serde::Serialize,
1780 ::serde::Deserialize,
1781 ::derive_builder::Builder,
1782 ::validator::Validate,
1783)]
1784pub struct Max5NumericText {
1785 #[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
1786 #[serde(rename = "$text")]
1787 pub value: String,
1788}
1789#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1790pub enum Priority3Code {
1791 #[serde(rename = "URGT")]
1792 Urgt,
1793 #[serde(rename = "HIGH")]
1794 High,
1795 #[serde(rename = "NORM")]
1796 Norm,
1797 #[default]
1798 Unknown,
1799}
1800#[derive(
1801 Debug,
1802 Default,
1803 Clone,
1804 PartialEq,
1805 ::serde::Serialize,
1806 ::serde::Deserialize,
1807 ::derive_builder::Builder,
1808 ::validator::Validate,
1809)]
1810pub struct Max11NumericText {
1811 #[validate(regex = "MAX_11_NUMERIC_TEXT_REGEX")]
1812 #[serde(rename = "$text")]
1813 pub value: String,
1814}
1815#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1816pub enum UserInterface8Code {
1817 #[serde(rename = "DSPU")]
1818 Dspu,
1819 #[serde(rename = "FILE")]
1820 File,
1821 #[serde(rename = "LOGF")]
1822 Logf,
1823 #[serde(rename = "OTHP")]
1824 Othp,
1825 #[serde(rename = "OTHN")]
1826 Othn,
1827 #[default]
1828 Unknown,
1829}
1830#[derive(
1831 Debug,
1832 Default,
1833 Clone,
1834 PartialEq,
1835 ::serde::Serialize,
1836 ::serde::Deserialize,
1837 ::derive_builder::Builder,
1838 ::validator::Validate,
1839)]
1840pub struct ContentInformationType20 {
1841 #[validate]
1842 #[serde(rename = "MACData")]
1843 pub mac_data: MacData1,
1844 #[validate]
1845 #[serde(rename = "MAC")]
1846 pub mac: Max8HexBinaryText,
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 Max8HexBinaryText {
1859 #[validate(regex = "MAX_8_HEX_BINARY_TEXT_REGEX")]
1860 #[serde(rename = "$text")]
1861 pub value: String,
1862}
1863#[derive(
1864 Debug,
1865 Default,
1866 Clone,
1867 PartialEq,
1868 ::serde::Serialize,
1869 ::serde::Deserialize,
1870 ::derive_builder::Builder,
1871 ::validator::Validate,
1872)]
1873pub struct ProcessingResult19 {
1874 #[serde(rename = "RspnSrc", skip_serializing_if = "Option::is_none")]
1875 pub rspn_src: Option<ApprovalEntity2>,
1876 #[validate]
1877 #[serde(rename = "RsltData")]
1878 pub rslt_data: ResultData10,
1879 #[validate(length(min = 0,))]
1880 #[serde(rename = "ErrDtl", default)]
1881 pub err_dtl: Vec<ErrorDetails2>,
1882 #[serde(rename = "OrgnlRsltData", skip_serializing_if = "Option::is_none")]
1883 pub orgnl_rslt_data: Option<ResultData7>,
1884 #[validate(length(min = 0,))]
1885 #[serde(rename = "AddtlInf", default)]
1886 pub addtl_inf: Vec<AdditionalInformation30>,
1887}
1888#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1889pub enum ReconciliationActivityType1Code {
1890 #[serde(rename = "ACQG")]
1891 Acqg,
1892 #[serde(rename = "CNSD")]
1893 Cnsd,
1894 #[serde(rename = "ISSG")]
1895 Issg,
1896 #[serde(rename = "OTHN")]
1897 Othn,
1898 #[serde(rename = "OTHP")]
1899 Othp,
1900 #[default]
1901 Unknown,
1902}
1903#[derive(
1904 Debug,
1905 Default,
1906 Clone,
1907 PartialEq,
1908 ::serde::Serialize,
1909 ::serde::Deserialize,
1910 ::derive_builder::Builder,
1911 ::validator::Validate,
1912)]
1913pub struct Max4NumericText {
1914 #[validate(regex = "MAX_4_NUMERIC_TEXT_REGEX")]
1915 #[serde(rename = "$text")]
1916 pub value: String,
1917}
1918#[derive(
1919 Debug,
1920 Default,
1921 Clone,
1922 PartialEq,
1923 ::serde::Serialize,
1924 ::serde::Deserialize,
1925 ::derive_builder::Builder,
1926 ::validator::Validate,
1927)]
1928pub struct Reconciliation3 {
1929 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1930 pub id: Option<Max35Text>,
1931 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
1932 pub dt: Option<IsoDate>,
1933 #[serde(rename = "ChckptRef", skip_serializing_if = "Option::is_none")]
1934 pub chckpt_ref: Option<Max35Text>,
1935}
1936#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1937pub enum ContentType3Code {
1938 #[serde(rename = "EVLP")]
1939 Evlp,
1940 #[serde(rename = "IFSE")]
1941 Ifse,
1942 #[default]
1943 Unknown,
1944}
1945#[derive(
1946 Debug,
1947 Default,
1948 Clone,
1949 PartialEq,
1950 ::serde::Serialize,
1951 ::serde::Deserialize,
1952 ::derive_builder::Builder,
1953 ::validator::Validate,
1954)]
1955pub struct Recipient5ChoiceEnum {
1956 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
1957 pub key_idr: Option<KekIdentifier2>,
1958 #[serde(rename = "IssrAndSrlNb", skip_serializing_if = "Option::is_none")]
1959 pub issr_and_srl_nb: Option<IssuerAndSerialNumber1>,
1960}
1961#[derive(
1962 Debug,
1963 Default,
1964 Clone,
1965 PartialEq,
1966 ::serde::Serialize,
1967 ::serde::Deserialize,
1968 ::derive_builder::Builder,
1969 ::validator::Validate,
1970)]
1971pub struct Recipient5Choice {
1972 #[serde(flatten)]
1973 pub value: Recipient5ChoiceEnum,
1974}
1975#[derive(
1976 Debug,
1977 Default,
1978 Clone,
1979 PartialEq,
1980 ::serde::Serialize,
1981 ::serde::Deserialize,
1982 ::derive_builder::Builder,
1983 ::validator::Validate,
1984)]
1985pub struct Exact3NumericText {
1986 #[validate(regex = "EXACT_3_NUMERIC_TEXT_REGEX")]
1987 #[serde(rename = "$text")]
1988 pub value: String,
1989}
1990#[derive(
1991 Debug,
1992 Default,
1993 Clone,
1994 PartialEq,
1995 ::serde::Serialize,
1996 ::serde::Deserialize,
1997 ::derive_builder::Builder,
1998 ::validator::Validate,
1999)]
2000pub struct Max3NumericText {
2001 #[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
2002 #[serde(rename = "$text")]
2003 pub value: String,
2004}
2005#[derive(
2006 Debug,
2007 Default,
2008 Clone,
2009 PartialEq,
2010 ::serde::Serialize,
2011 ::serde::Deserialize,
2012 ::derive_builder::Builder,
2013 ::validator::Validate,
2014)]
2015pub struct SettlementReportingEntity1 {
2016 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
2017 pub tp: Option<Max35Text>,
2018 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
2019 pub id: Option<Max35Text>,
2020}
2021#[derive(
2022 Debug,
2023 Default,
2024 Clone,
2025 PartialEq,
2026 ::serde::Serialize,
2027 ::serde::Deserialize,
2028 ::derive_builder::Builder,
2029 ::validator::Validate,
2030)]
2031pub struct Transaction135 {
2032 #[serde(rename = "RcncltnFctn")]
2033 pub rcncltn_fctn: ReconciliationFunction1Code,
2034 #[serde(rename = "RcncltnActvtyTp", skip_serializing_if = "Option::is_none")]
2035 pub rcncltn_actvty_tp: Option<ReconciliationActivityType1Code>,
2036 #[serde(
2037 rename = "OthrRcncltnActvtyTp",
2038 skip_serializing_if = "Option::is_none"
2039 )]
2040 pub othr_rcncltn_actvty_tp: Option<Max35Text>,
2041 #[serde(rename = "RcncltnTp")]
2042 pub rcncltn_tp: CardServiceType4Code,
2043 #[serde(rename = "OthrRcncltnTp", skip_serializing_if = "Option::is_none")]
2044 pub othr_rcncltn_tp: Option<Max35Text>,
2045 #[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
2046 pub tx_id: Option<TransactionIdentification12>,
2047 #[validate(length(min = 0,))]
2048 #[serde(rename = "ReqdCcy", default)]
2049 pub reqd_ccy: Vec<Exact3NumericText>,
2050 #[validate(length(min = 0,))]
2051 #[serde(rename = "RcncltnTtls", default)]
2052 pub rcncltn_ttls: Vec<TransactionTotals13>,
2053 #[validate(length(min = 0,))]
2054 #[serde(rename = "AddtlFee", default)]
2055 pub addtl_fee: Vec<AdditionalFee2>,
2056 #[validate(length(min = 0,))]
2057 #[serde(rename = "AddtlData", default)]
2058 pub addtl_data: Vec<AdditionalData1>,
2059}
2060#[derive(
2061 Debug,
2062 Default,
2063 Clone,
2064 PartialEq,
2065 ::serde::Serialize,
2066 ::serde::Deserialize,
2067 ::derive_builder::Builder,
2068 ::validator::Validate,
2069)]
2070pub struct Max99Text {
2071 #[validate(length(min = 1, max = 99,))]
2072 #[serde(rename = "$text")]
2073 pub value: String,
2074}
2075#[derive(
2076 Debug,
2077 Default,
2078 Clone,
2079 PartialEq,
2080 ::serde::Serialize,
2081 ::serde::Deserialize,
2082 ::derive_builder::Builder,
2083 ::validator::Validate,
2084)]
2085pub struct Max35Binary {
2086 #[validate(length(min = 1, max = 35,), regex = "MAX_35_BINARY_REGEX")]
2087 pub value: String,
2088}
2089#[derive(
2090 Debug,
2091 Default,
2092 Clone,
2093 PartialEq,
2094 ::serde::Serialize,
2095 ::serde::Deserialize,
2096 ::derive_builder::Builder,
2097 ::validator::Validate,
2098)]
2099pub struct KeyTransport6 {
2100 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
2101 pub vrsn: Option<Number>,
2102 #[serde(rename = "RcptId")]
2103 pub rcpt_id: Recipient5Choice,
2104 #[validate]
2105 #[serde(rename = "KeyNcrptnAlgo")]
2106 pub key_ncrptn_algo: AlgorithmIdentification27,
2107 #[validate]
2108 #[serde(rename = "NcrptdKey")]
2109 pub ncrptd_key: Max5000Binary,
2110}
2111#[derive(
2112 Debug,
2113 Default,
2114 Clone,
2115 PartialEq,
2116 ::serde::Serialize,
2117 ::serde::Deserialize,
2118 ::derive_builder::Builder,
2119 ::validator::Validate,
2120)]
2121pub struct AlgorithmIdentification26 {
2122 #[serde(rename = "Algo")]
2123 pub algo: Algorithm8Code,
2124 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
2125 pub param: Option<Algorithm5Code>,
2126}
2127#[derive(
2128 Debug,
2129 Default,
2130 Clone,
2131 PartialEq,
2132 ::serde::Serialize,
2133 ::serde::Deserialize,
2134 ::derive_builder::Builder,
2135 ::validator::Validate,
2136)]
2137pub struct TransactionTotals13 {
2138 #[serde(rename = "Rcncltn", skip_serializing_if = "Option::is_none")]
2139 pub rcncltn: Option<Reconciliation3>,
2140 #[validate(length(min = 0,))]
2141 #[serde(rename = "FinRcncltn", default)]
2142 pub fin_rcncltn: Vec<FinancialReconciliation2>,
2143 #[validate(length(min = 0,))]
2144 #[serde(rename = "MsgRcncltn", default)]
2145 pub msg_rcncltn: Vec<MessageReconciliation3>,
2146 #[validate(length(min = 0,))]
2147 #[serde(rename = "AddtlFeeRcncltn", default)]
2148 pub addtl_fee_rcncltn: Vec<AdditionalFeeReconciliation2>,
2149 #[validate]
2150 #[serde(rename = "Ccy")]
2151 pub ccy: Min2Max3NumericText,
2152 #[serde(rename = "NetAmtRcncltn", skip_serializing_if = "Option::is_none")]
2153 pub net_amt_rcncltn: Option<Amount16>,
2154}
2155#[derive(
2156 Debug,
2157 Default,
2158 Clone,
2159 PartialEq,
2160 ::serde::Serialize,
2161 ::serde::Deserialize,
2162 ::derive_builder::Builder,
2163 ::validator::Validate,
2164)]
2165pub struct Exact15Text {
2166 #[serde(rename = "$text")]
2167 pub value: String,
2168}
2169#[derive(
2170 Debug,
2171 Default,
2172 Clone,
2173 PartialEq,
2174 ::serde::Serialize,
2175 ::serde::Deserialize,
2176 ::derive_builder::Builder,
2177 ::validator::Validate,
2178)]
2179pub struct Iso3NumericCountryCode {
2180 #[validate(regex = "ISO_3_NUMERIC_COUNTRY_CODE_REGEX")]
2181 #[serde(rename = "$text")]
2182 pub value: String,
2183}
2184#[derive(
2185 Debug,
2186 Default,
2187 Clone,
2188 PartialEq,
2189 ::serde::Serialize,
2190 ::serde::Deserialize,
2191 ::derive_builder::Builder,
2192 ::validator::Validate,
2193)]
2194pub struct Max5000Binary {
2195 #[validate(length(min = 1, max = 5000,), regex = "MAX_5000_BINARY_REGEX")]
2196 pub value: String,
2197}
2198#[derive(
2199 Debug,
2200 Default,
2201 Clone,
2202 PartialEq,
2203 ::serde::Serialize,
2204 ::serde::Deserialize,
2205 ::derive_builder::Builder,
2206 ::validator::Validate,
2207)]
2208pub struct Max100KBinary {
2209 #[validate(length(min = 1, max = 102400,), regex = "MAX_100_K_BINARY_REGEX")]
2210 pub value: String,
2211}
2212#[derive(
2213 Debug,
2214 Default,
2215 Clone,
2216 PartialEq,
2217 ::serde::Serialize,
2218 ::serde::Deserialize,
2219 ::derive_builder::Builder,
2220 ::validator::Validate,
2221)]
2222pub struct Max2048Text {
2223 #[validate(length(min = 1, max = 2048,))]
2224 #[serde(rename = "$text")]
2225 pub value: String,
2226}
2227#[derive(
2228 Debug,
2229 Default,
2230 Clone,
2231 PartialEq,
2232 ::serde::Serialize,
2233 ::serde::Deserialize,
2234 ::derive_builder::Builder,
2235 ::validator::Validate,
2236)]
2237pub struct Max2NumericText {
2238 #[validate(regex = "MAX_2_NUMERIC_TEXT_REGEX")]
2239 #[serde(rename = "$text")]
2240 pub value: String,
2241}
2242#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2243pub enum MessageError1Code {
2244 #[serde(rename = "IDEF")]
2245 Idef,
2246 #[serde(rename = "IDEL")]
2247 Idel,
2248 #[serde(rename = "IDEV")]
2249 Idev,
2250 #[serde(rename = "INME")]
2251 Inme,
2252 #[serde(rename = "INMF")]
2253 Inmf,
2254 #[serde(rename = "MEPE")]
2255 Mepe,
2256 #[serde(rename = "OTHP")]
2257 Othp,
2258 #[serde(rename = "PRVE")]
2259 Prve,
2260 #[serde(rename = "RDEM")]
2261 Rdem,
2262 #[serde(rename = "SECU")]
2263 Secu,
2264 #[serde(rename = "UDFD")]
2265 Udfd,
2266 #[serde(rename = "OTHN")]
2267 Othn,
2268 #[serde(rename = "ITDE")]
2269 Itde,
2270 #[serde(rename = "DUME")]
2271 Dume,
2272 #[serde(rename = "IDWM")]
2273 Idwm,
2274 #[serde(rename = "IDRM")]
2275 Idrm,
2276 #[serde(rename = "IBAT")]
2277 Ibat,
2278 #[serde(rename = "ICOL")]
2279 Icol,
2280 #[default]
2281 Unknown,
2282}
2283#[derive(
2284 Debug,
2285 Default,
2286 Clone,
2287 PartialEq,
2288 ::serde::Serialize,
2289 ::serde::Deserialize,
2290 ::derive_builder::Builder,
2291 ::validator::Validate,
2292)]
2293pub struct ReconciliationResponseV03<
2294 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2295> {
2296 #[validate]
2297 #[serde(rename = "Hdr")]
2298 pub hdr: Header60,
2299 #[validate]
2300 #[serde(rename = "Body")]
2301 pub body: ReconciliationResponse7<A>,
2302 #[serde(rename = "SctyTrlr", skip_serializing_if = "Option::is_none")]
2303 pub scty_trlr: Option<ContentInformationType20>,
2304}
2305#[derive(
2306 Debug,
2307 Default,
2308 Clone,
2309 PartialEq,
2310 ::serde::Serialize,
2311 ::serde::Deserialize,
2312 ::derive_builder::Builder,
2313 ::validator::Validate,
2314)]
2315pub struct SettlementService4 {
2316 #[serde(rename = "SttlmSvcApld", skip_serializing_if = "Option::is_none")]
2317 pub sttlm_svc_apld: Option<SettlementServiceMode1>,
2318 #[serde(rename = "SttlmSvcDts", skip_serializing_if = "Option::is_none")]
2319 pub sttlm_svc_dts: Option<SettlementServiceDate2>,
2320 #[serde(rename = "SttlmRptgNtty", skip_serializing_if = "Option::is_none")]
2321 pub sttlm_rptg_ntty: Option<SettlementReportingEntity1>,
2322 #[validate(length(min = 0,))]
2323 #[serde(rename = "AddtlSttlmInf", default)]
2324 pub addtl_sttlm_inf: Vec<AdditionalData1>,
2325}
2326#[derive(
2327 Debug,
2328 Default,
2329 Clone,
2330 PartialEq,
2331 ::serde::Serialize,
2332 ::serde::Deserialize,
2333 ::derive_builder::Builder,
2334 ::validator::Validate,
2335)]
2336pub struct TransactionIdentification12 {
2337 #[validate]
2338 #[serde(rename = "SysTracAudtNb")]
2339 pub sys_trac_audt_nb: Max12NumericText,
2340 #[validate]
2341 #[serde(rename = "TrnsmssnDtTm")]
2342 pub trnsmssn_dt_tm: IsoDateTime,
2343 #[serde(rename = "RtrvlRefNb", skip_serializing_if = "Option::is_none")]
2344 pub rtrvl_ref_nb: Option<Exact12Text>,
2345 #[serde(rename = "LifeCyclTracIdData", skip_serializing_if = "Option::is_none")]
2346 pub life_cycl_trac_id_data: Option<TransactionLifeCycleIdentification2>,
2347}
2348#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2349pub enum PartyType26Code {
2350 #[serde(rename = "ACCP")]
2351 Accp,
2352 #[serde(rename = "ACQR")]
2353 Acqr,
2354 #[serde(rename = "ICCA")]
2355 Icca,
2356 #[serde(rename = "CISS")]
2357 Ciss,
2358 #[serde(rename = "DLIS")]
2359 Dlis,
2360 #[serde(rename = "AGNT")]
2361 Agnt,
2362 #[serde(rename = "OTHN")]
2363 Othn,
2364 #[serde(rename = "OTHP")]
2365 Othp,
2366 #[default]
2367 Unknown,
2368}
2369#[derive(
2370 Debug,
2371 Default,
2372 Clone,
2373 PartialEq,
2374 ::serde::Serialize,
2375 ::serde::Deserialize,
2376 ::derive_builder::Builder,
2377 ::validator::Validate,
2378)]
2379pub struct ResultData10 {
2380 #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
2381 pub rslt: Option<Response8Code>,
2382 #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
2383 pub othr_rslt: Option<Max35Text>,
2384 #[serde(rename = "RsltDtls")]
2385 pub rslt_dtls: Iso8583ResponseCode,
2386 #[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
2387 pub othr_rslt_dtls: Option<Max35Text>,
2388 #[validate(length(min = 0,))]
2389 #[serde(rename = "AddtlRsltInf", default)]
2390 pub addtl_rslt_inf: Vec<AdditionalData1>,
2391}
2392#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2393pub enum BytePadding1Code {
2394 #[serde(rename = "LNGT")]
2395 Lngt,
2396 #[serde(rename = "NUL8")]
2397 Nul8,
2398 #[serde(rename = "NULG")]
2399 Nulg,
2400 #[serde(rename = "NULL")]
2401 Null,
2402 #[serde(rename = "RAND")]
2403 Rand,
2404 #[default]
2405 Unknown,
2406}
2407#[derive(
2408 Debug,
2409 Default,
2410 Clone,
2411 PartialEq,
2412 ::serde::Serialize,
2413 ::serde::Deserialize,
2414 ::derive_builder::Builder,
2415 ::validator::Validate,
2416)]
2417pub struct SupplementaryDataEnvelope1<
2418 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2419> {
2420 #[validate]
2421 #[serde(flatten)]
2422 pub value: A,
2423}
2424#[derive(
2425 Debug,
2426 Default,
2427 Clone,
2428 PartialEq,
2429 ::serde::Serialize,
2430 ::serde::Deserialize,
2431 ::derive_builder::Builder,
2432 ::validator::Validate,
2433)]
2434pub struct Min5Max16Binary {
2435 #[validate(length(min = 5, max = 16,), regex = "MIN_5_MAX_16_BINARY_REGEX")]
2436 pub value: String,
2437}
2438#[derive(
2439 Debug,
2440 Default,
2441 Clone,
2442 PartialEq,
2443 ::serde::Serialize,
2444 ::serde::Deserialize,
2445 ::derive_builder::Builder,
2446 ::validator::Validate,
2447)]
2448pub struct Parameter7 {
2449 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
2450 pub initlstn_vctr: Option<Max500Binary>,
2451 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
2452 pub b_pddg: Option<BytePadding1Code>,
2453}
2454#[derive(
2455 Debug,
2456 Default,
2457 Clone,
2458 PartialEq,
2459 ::serde::Serialize,
2460 ::serde::Deserialize,
2461 ::derive_builder::Builder,
2462 ::validator::Validate,
2463)]
2464pub struct Min2Max3NumericText {
2465 #[validate(regex = "MIN_2_MAX_3_NUMERIC_TEXT_REGEX")]
2466 #[serde(rename = "$text")]
2467 pub value: String,
2468}
2469#[derive(
2470 Debug,
2471 Default,
2472 Clone,
2473 PartialEq,
2474 ::serde::Serialize,
2475 ::serde::Deserialize,
2476 ::derive_builder::Builder,
2477 ::validator::Validate,
2478)]
2479pub struct Context17 {
2480 #[serde(rename = "TxCntxt", skip_serializing_if = "Option::is_none")]
2481 pub tx_cntxt: Option<TransactionContext10>,
2482}
2483#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2484pub enum CreditDebit3Code {
2485 #[serde(rename = "CRDT")]
2486 Crdt,
2487 #[serde(rename = "DBIT")]
2488 Dbit,
2489 #[default]
2490 Unknown,
2491}
2492#[derive(
2493 Debug,
2494 Default,
2495 Clone,
2496 PartialEq,
2497 ::serde::Serialize,
2498 ::serde::Deserialize,
2499 ::derive_builder::Builder,
2500 ::validator::Validate,
2501)]
2502pub struct Max20KText {
2503 #[validate(length(min = 1, max = 20000,))]
2504 #[serde(rename = "$text")]
2505 pub value: String,
2506}
2507#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2508pub enum CardServiceType4Code {
2509 #[serde(rename = "PART")]
2510 Part,
2511 #[serde(rename = "FINL")]
2512 Finl,
2513 #[serde(rename = "OTHN")]
2514 Othn,
2515 #[serde(rename = "OTHP")]
2516 Othp,
2517 #[default]
2518 Unknown,
2519}
2520#[derive(
2521 Debug,
2522 Default,
2523 Clone,
2524 PartialEq,
2525 ::serde::Serialize,
2526 ::serde::Deserialize,
2527 ::derive_builder::Builder,
2528 ::validator::Validate,
2529)]
2530pub struct TransactionLifeCycleIdentification2 {
2531 #[validate]
2532 #[serde(rename = "Id")]
2533 pub id: Exact15Text,
2534}
2535#[derive(
2536 Debug,
2537 Default,
2538 Clone,
2539 PartialEq,
2540 ::serde::Serialize,
2541 ::serde::Deserialize,
2542 ::derive_builder::Builder,
2543 ::validator::Validate,
2544)]
2545pub struct Environment33 {
2546 #[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
2547 pub orgtr: Option<PartyIdentification263>,
2548 #[serde(rename = "Sndr", skip_serializing_if = "Option::is_none")]
2549 pub sndr: Option<PartyIdentification263>,
2550 #[serde(rename = "Rcvr", skip_serializing_if = "Option::is_none")]
2551 pub rcvr: Option<PartyIdentification263>,
2552 #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
2553 pub dstn: Option<PartyIdentification263>,
2554}
2555#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2556pub enum TypeOfAmount21Code {
2557 #[serde(rename = "INTC")]
2558 Intc,
2559 #[serde(rename = "FEEP")]
2560 Feep,
2561 #[serde(rename = "OTHN")]
2562 Othn,
2563 #[serde(rename = "OTHP")]
2564 Othp,
2565 #[serde(rename = "FEEA")]
2566 Feea,
2567 #[serde(rename = "CSIF")]
2568 Csif,
2569 #[serde(rename = "MXIF")]
2570 Mxif,
2571 #[serde(rename = "MNIF")]
2572 Mnif,
2573 #[default]
2574 Unknown,
2575}
2576#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2577pub enum EncryptedDataFormat1Code {
2578 #[serde(rename = "ASCI")]
2579 Asci,
2580 #[serde(rename = "BINF")]
2581 Binf,
2582 #[serde(rename = "EBCD")]
2583 Ebcd,
2584 #[serde(rename = "HEXF")]
2585 Hexf,
2586 #[serde(rename = "OTHN")]
2587 Othn,
2588 #[serde(rename = "OTHP")]
2589 Othp,
2590 #[default]
2591 Unknown,
2592}
2593#[derive(
2594 Debug,
2595 Default,
2596 Clone,
2597 PartialEq,
2598 ::serde::Serialize,
2599 ::serde::Deserialize,
2600 ::derive_builder::Builder,
2601 ::validator::Validate,
2602)]
2603pub struct AdditionalFee2 {
2604 #[serde(rename = "Tp")]
2605 pub tp: TypeOfAmount21Code,
2606 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
2607 pub othr_tp: Option<Max35Text>,
2608 #[serde(rename = "FeePrgm", skip_serializing_if = "Option::is_none")]
2609 pub fee_prgm: Option<Max35Text>,
2610 #[serde(rename = "FeeDscrptr", skip_serializing_if = "Option::is_none")]
2611 pub fee_dscrptr: Option<Max35Text>,
2612 #[validate]
2613 #[serde(rename = "FeeAmt")]
2614 pub fee_amt: FeeAmount3,
2615 #[serde(rename = "FeeRcncltnAmt", skip_serializing_if = "Option::is_none")]
2616 pub fee_rcncltn_amt: Option<FeeAmount3>,
2617 #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
2618 pub desc: Option<Max140Text>,
2619 #[validate(length(min = 0,))]
2620 #[serde(rename = "AddtlData", default)]
2621 pub addtl_data: Vec<AdditionalData1>,
2622}
2623#[derive(
2624 Debug,
2625 Default,
2626 Clone,
2627 PartialEq,
2628 ::serde::Serialize,
2629 ::serde::Deserialize,
2630 ::derive_builder::Builder,
2631 ::validator::Validate,
2632)]
2633pub struct IsoMax3ALanguageCode {
2634 #[validate(regex = "ISO_MAX_3_A_LANGUAGE_CODE_REGEX")]
2635 #[serde(rename = "$text")]
2636 pub value: String,
2637}
2638#[derive(
2639 Debug,
2640 Default,
2641 Clone,
2642 PartialEq,
2643 ::serde::Serialize,
2644 ::serde::Deserialize,
2645 ::derive_builder::Builder,
2646 ::validator::Validate,
2647)]
2648pub struct FinancialReconciliation2 {
2649 #[serde(rename = "RcncltnImpct")]
2650 pub rcncltn_impct: ReconciliationImpact1Code,
2651 #[serde(rename = "Tp")]
2652 pub tp: ReconciliationCategory1Code,
2653 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
2654 pub othr_tp: Option<Max35Text>,
2655 #[validate]
2656 #[serde(rename = "Amt")]
2657 pub amt: ImpliedCurrencyAndAmount,
2658 #[validate]
2659 #[serde(rename = "Cnt")]
2660 pub cnt: Number,
2661}
2662#[derive(
2663 Debug,
2664 Default,
2665 Clone,
2666 PartialEq,
2667 ::serde::Serialize,
2668 ::serde::Deserialize,
2669 ::derive_builder::Builder,
2670 ::validator::Validate,
2671)]
2672pub struct IsoDateTime {
2673 #[serde(rename = "$text")]
2674 pub value: ::chrono::DateTime<::chrono::Utc>,
2675}
2676#[derive(
2677 Debug,
2678 Default,
2679 Clone,
2680 PartialEq,
2681 ::serde::Serialize,
2682 ::serde::Deserialize,
2683 ::derive_builder::Builder,
2684 ::validator::Validate,
2685)]
2686pub struct CardProgrammeMode3 {
2687 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
2688 pub tp: Option<Max35Text>,
2689 #[validate]
2690 #[serde(rename = "Id")]
2691 pub id: Max35Text,
2692 #[validate(length(min = 0,))]
2693 #[serde(rename = "AddtlId", default)]
2694 pub addtl_id: Vec<AdditionalData1>,
2695}
2696#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2697pub enum Algorithm7Code {
2698 #[serde(rename = "ERSA")]
2699 Ersa,
2700 #[serde(rename = "RSAO")]
2701 Rsao,
2702 #[default]
2703 Unknown,
2704}
2705#[derive(
2706 Debug,
2707 Default,
2708 Clone,
2709 PartialEq,
2710 ::serde::Serialize,
2711 ::serde::Deserialize,
2712 ::derive_builder::Builder,
2713 ::validator::Validate,
2714)]
2715pub struct Max350Text {
2716 #[validate(length(min = 1, max = 350,))]
2717 #[serde(rename = "$text")]
2718 pub value: String,
2719}