1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 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();
25}
26
27::lazy_static::lazy_static! {
28 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();
29}
30
31::lazy_static::lazy_static! {
32 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();
33}
34
35::lazy_static::lazy_static! {
36 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();
37}
38
39::lazy_static::lazy_static! {
40 static ref MIN_2_MAX_3_ALPHA_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z]{2,3}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 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();
45}
46
47::lazy_static::lazy_static! {
48 static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
49}
50
51::lazy_static::lazy_static! {
52 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();
53}
54
55pub fn namespace() -> String {
57 "urn:iso:std:iso:20022:tech:xsd:caam.005.001.02".to_string()
58}
59
60#[derive(
61 Debug,
62 Default,
63 Clone,
64 PartialEq,
65 ::serde::Serialize,
66 ::serde::Deserialize,
67 ::derive_builder::Builder,
68 ::validator::Validate,
69)]
70pub struct Min5Max16Binary {
71 #[validate(length(min = 5, max = 16,), regex = "MIN_5_MAX_16_BINARY_REGEX")]
72 pub value: String,
73}
74#[derive(
75 Debug,
76 Default,
77 Clone,
78 PartialEq,
79 ::serde::Serialize,
80 ::serde::Deserialize,
81 ::derive_builder::Builder,
82 ::validator::Validate,
83)]
84pub struct EncryptedContent3 {
85 #[serde(rename = "CnttTp")]
86 pub cntt_tp: ContentType2Code,
87 #[validate]
88 #[serde(rename = "CnttNcrptnAlgo")]
89 pub cntt_ncrptn_algo: AlgorithmIdentification14,
90 #[validate]
91 #[serde(rename = "NcrptdData")]
92 pub ncrptd_data: Max100KBinary,
93}
94#[derive(
95 Debug,
96 Default,
97 Clone,
98 PartialEq,
99 ::serde::Serialize,
100 ::serde::Deserialize,
101 ::derive_builder::Builder,
102 ::validator::Validate,
103)]
104pub struct Header31 {
105 #[validate]
106 #[serde(rename = "MsgFctn")]
107 pub msg_fctn: AtmMessageFunction2,
108 #[validate]
109 #[serde(rename = "PrtcolVrsn")]
110 pub prtcol_vrsn: Max6Text,
111 #[validate]
112 #[serde(rename = "XchgId")]
113 pub xchg_id: Max3NumericText,
114 #[validate]
115 #[serde(rename = "CreDtTm")]
116 pub cre_dt_tm: IsoDateTime,
117 #[validate]
118 #[serde(rename = "InitgPty")]
119 pub initg_pty: Max35Text,
120 #[serde(rename = "RcptPty", skip_serializing_if = "Option::is_none")]
121 pub rcpt_pty: Option<Max35Text>,
122 #[serde(rename = "PrcStat", skip_serializing_if = "Option::is_none")]
123 pub prc_stat: Option<Max35Text>,
124 #[validate(length(min = 0,))]
125 #[serde(rename = "Tracblt", default)]
126 pub tracblt: Vec<Traceability4>,
127}
128#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
129pub enum Algorithm8Code {
130 #[serde(rename = "MGF1")]
131 Mgf1,
132 #[default]
133 Unknown,
134}
135#[derive(
136 Debug,
137 Default,
138 Clone,
139 PartialEq,
140 ::serde::Serialize,
141 ::serde::Deserialize,
142 ::derive_builder::Builder,
143 ::validator::Validate,
144)]
145pub struct Recipient4ChoiceEnum {
146 #[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
147 pub key_trnsprt: Option<KeyTransport4>,
148 #[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
149 pub kek: Option<Kek4>,
150 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
151 pub key_idr: Option<KekIdentifier2>,
152}
153#[derive(
154 Debug,
155 Default,
156 Clone,
157 PartialEq,
158 ::serde::Serialize,
159 ::serde::Deserialize,
160 ::derive_builder::Builder,
161 ::validator::Validate,
162)]
163pub struct Recipient4Choice {
164 #[serde(flatten)]
165 pub value: Recipient4ChoiceEnum,
166}
167#[derive(
168 Debug,
169 Default,
170 Clone,
171 PartialEq,
172 ::serde::Serialize,
173 ::serde::Deserialize,
174 ::derive_builder::Builder,
175 ::validator::Validate,
176)]
177pub struct AlgorithmIdentification13 {
178 #[serde(rename = "Algo")]
179 pub algo: Algorithm13Code,
180 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
181 pub param: Option<Parameter6>,
182}
183#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
184pub enum Algorithm15Code {
185 #[serde(rename = "EA2C")]
186 Ea2C,
187 #[serde(rename = "E3DC")]
188 E3Dc,
189 #[serde(rename = "EA9C")]
190 Ea9C,
191 #[serde(rename = "EA5C")]
192 Ea5C,
193 #[default]
194 Unknown,
195}
196#[derive(
197 Debug,
198 Default,
199 Clone,
200 PartialEq,
201 ::serde::Serialize,
202 ::serde::Deserialize,
203 ::derive_builder::Builder,
204 ::validator::Validate,
205)]
206pub struct GenericIdentification77 {
207 #[validate]
208 #[serde(rename = "Id")]
209 pub id: Max35Text,
210 #[serde(rename = "Tp")]
211 pub tp: PartyType12Code,
212 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
213 pub issr: Option<PartyType12Code>,
214 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
215 pub ctry: Option<Min2Max3AlphaText>,
216 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
217 pub shrt_nm: Option<Max35Text>,
218}
219#[derive(
220 Debug,
221 Default,
222 Clone,
223 PartialEq,
224 ::serde::Serialize,
225 ::serde::Deserialize,
226 ::derive_builder::Builder,
227 ::validator::Validate,
228)]
229pub struct Max140Text {
230 #[validate(length(min = 1, max = 140,))]
231 #[serde(rename = "$text")]
232 pub value: String,
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 KeyTransport4 {
245 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
246 pub vrsn: Option<Number>,
247 #[serde(rename = "RcptId")]
248 pub rcpt_id: Recipient5Choice,
249 #[validate]
250 #[serde(rename = "KeyNcrptnAlgo")]
251 pub key_ncrptn_algo: AlgorithmIdentification11,
252 #[validate]
253 #[serde(rename = "NcrptdKey")]
254 pub ncrptd_key: Max5000Binary,
255}
256#[derive(
257 Debug,
258 Default,
259 Clone,
260 PartialEq,
261 ::serde::Serialize,
262 ::serde::Deserialize,
263 ::derive_builder::Builder,
264 ::validator::Validate,
265)]
266pub struct Parameter5 {
267 #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
268 pub dgst_algo: Option<Algorithm11Code>,
269}
270#[derive(
271 Debug,
272 Default,
273 Clone,
274 PartialEq,
275 ::serde::Serialize,
276 ::serde::Deserialize,
277 ::derive_builder::Builder,
278 ::validator::Validate,
279)]
280pub struct Parameter6 {
281 #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
282 pub ncrptn_frmt: Option<EncryptionFormat1Code>,
283 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
284 pub initlstn_vctr: Option<Max500Binary>,
285 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
286 pub b_pddg: Option<BytePadding1Code>,
287}
288#[derive(
289 Debug,
290 Default,
291 Clone,
292 PartialEq,
293 ::serde::Serialize,
294 ::serde::Deserialize,
295 ::derive_builder::Builder,
296 ::validator::Validate,
297)]
298pub struct ContentInformationType10 {
299 #[serde(rename = "CnttTp")]
300 pub cntt_tp: ContentType2Code,
301 #[validate]
302 #[serde(rename = "EnvlpdData")]
303 pub envlpd_data: EnvelopedData4,
304}
305#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
306pub enum EncryptionFormat1Code {
307 #[serde(rename = "TR31")]
308 Tr31,
309 #[serde(rename = "TR34")]
310 Tr34,
311 #[default]
312 Unknown,
313}
314#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
315pub enum Algorithm12Code {
316 #[serde(rename = "MACC")]
317 Macc,
318 #[serde(rename = "MCCS")]
319 Mccs,
320 #[serde(rename = "CMA1")]
321 Cma1,
322 #[serde(rename = "MCC1")]
323 Mcc1,
324 #[serde(rename = "CMA9")]
325 Cma9,
326 #[serde(rename = "CMA5")]
327 Cma5,
328 #[default]
329 Unknown,
330}
331#[derive(
332 Debug,
333 Default,
334 Clone,
335 PartialEq,
336 ::serde::Serialize,
337 ::serde::Deserialize,
338 ::derive_builder::Builder,
339 ::validator::Validate,
340)]
341pub struct ContentInformationType15 {
342 #[serde(rename = "CnttTp")]
343 pub cntt_tp: ContentType2Code,
344 #[validate]
345 #[serde(rename = "AuthntcdData")]
346 pub authntcd_data: AuthenticatedData4,
347}
348#[derive(
349 Debug,
350 Default,
351 Clone,
352 PartialEq,
353 ::serde::Serialize,
354 ::serde::Deserialize,
355 ::derive_builder::Builder,
356 ::validator::Validate,
357)]
358pub struct EnvelopedData4 {
359 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
360 pub vrsn: Option<Number>,
361 #[validate(length(min = 1,))]
362 #[serde(rename = "Rcpt", default)]
363 pub rcpt: Vec<Recipient4Choice>,
364 #[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
365 pub ncrptd_cntt: Option<EncryptedContent3>,
366}
367#[derive(
368 Debug,
369 Default,
370 Clone,
371 PartialEq,
372 ::serde::Serialize,
373 ::serde::Deserialize,
374 ::derive_builder::Builder,
375 ::validator::Validate,
376)]
377pub struct AtmMessageFunction2 {
378 #[serde(rename = "Fctn")]
379 pub fctn: MessageFunction11Code,
380 #[serde(rename = "ATMSvcCd", skip_serializing_if = "Option::is_none")]
381 pub atm_svc_cd: Option<Max35Text>,
382 #[serde(rename = "HstSvcCd", skip_serializing_if = "Option::is_none")]
383 pub hst_svc_cd: Option<Max35Text>,
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 Max140Binary {
396 #[validate(length(min = 1, max = 140,), regex = "MAX_140_BINARY_REGEX")]
397 pub value: String,
398}
399#[derive(
400 Debug,
401 Default,
402 Clone,
403 PartialEq,
404 ::serde::Serialize,
405 ::serde::Deserialize,
406 ::derive_builder::Builder,
407 ::validator::Validate,
408)]
409pub struct Max6Text {
410 #[validate(length(min = 1, max = 6,))]
411 #[serde(rename = "$text")]
412 pub value: String,
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 Number {
425 #[serde(rename = "$text")]
426 pub value: f64,
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 CertificateIssuer1 {
439 #[validate(length(min = 1,))]
440 #[serde(rename = "RltvDstngshdNm", default)]
441 pub rltv_dstngshd_nm: Vec<RelativeDistinguishedName1>,
442}
443#[derive(
444 Debug,
445 Default,
446 Clone,
447 PartialEq,
448 ::serde::Serialize,
449 ::serde::Deserialize,
450 ::derive_builder::Builder,
451 ::validator::Validate,
452)]
453pub struct Parameter4 {
454 #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
455 pub ncrptn_frmt: Option<EncryptionFormat1Code>,
456 #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
457 pub dgst_algo: Option<Algorithm11Code>,
458 #[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
459 pub msk_gnrtr_algo: Option<AlgorithmIdentification12>,
460}
461#[derive(
462 Debug,
463 Default,
464 Clone,
465 PartialEq,
466 ::serde::Serialize,
467 ::serde::Deserialize,
468 ::derive_builder::Builder,
469 ::validator::Validate,
470)]
471pub struct AlgorithmIdentification11 {
472 #[serde(rename = "Algo")]
473 pub algo: Algorithm7Code,
474 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
475 pub param: Option<Parameter4>,
476}
477#[derive(
478 Debug,
479 Default,
480 Clone,
481 PartialEq,
482 ::serde::Serialize,
483 ::serde::Deserialize,
484 ::derive_builder::Builder,
485 ::validator::Validate,
486)]
487#[serde(rename = "Document")]
488pub struct Document {
489 #[validate]
490 #[serde(rename = "ATMDgnstcReq")]
491 pub atm_dgnstc_req: AtmDiagnosticRequestV02,
492 #[serde(rename = "@xmlns", default = "namespace")]
493 pub xmlns: String,
494}
495#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
496pub enum PartyType12Code {
497 #[serde(rename = "ACQR")]
498 Acqr,
499 #[serde(rename = "ATMG")]
500 Atmg,
501 #[serde(rename = "CISP")]
502 Cisp,
503 #[serde(rename = "DLIS")]
504 Dlis,
505 #[serde(rename = "HSTG")]
506 Hstg,
507 #[serde(rename = "ITAG")]
508 Itag,
509 #[serde(rename = "OATM")]
510 Oatm,
511 #[default]
512 Unknown,
513}
514#[derive(
515 Debug,
516 Default,
517 Clone,
518 PartialEq,
519 ::serde::Serialize,
520 ::serde::Deserialize,
521 ::derive_builder::Builder,
522 ::validator::Validate,
523)]
524pub struct Max500Binary {
525 #[validate(length(min = 1, max = 500,), regex = "MAX_500_BINARY_REGEX")]
526 pub value: String,
527}
528#[derive(
529 Debug,
530 Default,
531 Clone,
532 PartialEq,
533 ::serde::Serialize,
534 ::serde::Deserialize,
535 ::derive_builder::Builder,
536 ::validator::Validate,
537)]
538pub struct Recipient5ChoiceEnum {
539 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
540 pub key_idr: Option<KekIdentifier2>,
541 #[serde(rename = "IssrAndSrlNb", skip_serializing_if = "Option::is_none")]
542 pub issr_and_srl_nb: Option<IssuerAndSerialNumber1>,
543}
544#[derive(
545 Debug,
546 Default,
547 Clone,
548 PartialEq,
549 ::serde::Serialize,
550 ::serde::Deserialize,
551 ::derive_builder::Builder,
552 ::validator::Validate,
553)]
554pub struct Recipient5Choice {
555 #[serde(flatten)]
556 pub value: Recipient5ChoiceEnum,
557}
558#[derive(
559 Debug,
560 Default,
561 Clone,
562 PartialEq,
563 ::serde::Serialize,
564 ::serde::Deserialize,
565 ::derive_builder::Builder,
566 ::validator::Validate,
567)]
568pub struct Traceability4 {
569 #[validate]
570 #[serde(rename = "RlayId")]
571 pub rlay_id: GenericIdentification77,
572 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
573 pub seq_nb: Option<Max35Text>,
574 #[validate]
575 #[serde(rename = "TracDtTmIn")]
576 pub trac_dt_tm_in: IsoDateTime,
577 #[validate]
578 #[serde(rename = "TracDtTmOut")]
579 pub trac_dt_tm_out: IsoDateTime,
580}
581#[derive(
582 Debug,
583 Default,
584 Clone,
585 PartialEq,
586 ::serde::Serialize,
587 ::serde::Deserialize,
588 ::derive_builder::Builder,
589 ::validator::Validate,
590)]
591pub struct AlgorithmIdentification14 {
592 #[serde(rename = "Algo")]
593 pub algo: Algorithm15Code,
594 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
595 pub param: Option<Parameter6>,
596}
597#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
598pub enum BytePadding1Code {
599 #[serde(rename = "LNGT")]
600 Lngt,
601 #[serde(rename = "NUL8")]
602 Nul8,
603 #[serde(rename = "NULG")]
604 Nulg,
605 #[serde(rename = "NULL")]
606 Null,
607 #[serde(rename = "RAND")]
608 Rand,
609 #[default]
610 Unknown,
611}
612#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
613pub enum Algorithm13Code {
614 #[serde(rename = "EA2C")]
615 Ea2C,
616 #[serde(rename = "E3DC")]
617 E3Dc,
618 #[serde(rename = "DKP9")]
619 Dkp9,
620 #[serde(rename = "UKPT")]
621 Ukpt,
622 #[serde(rename = "UKA1")]
623 Uka1,
624 #[serde(rename = "EA9C")]
625 Ea9C,
626 #[serde(rename = "EA5C")]
627 Ea5C,
628 #[default]
629 Unknown,
630}
631#[derive(
632 Debug,
633 Default,
634 Clone,
635 PartialEq,
636 ::serde::Serialize,
637 ::serde::Deserialize,
638 ::derive_builder::Builder,
639 ::validator::Validate,
640)]
641pub struct AtmStatus1 {
642 #[serde(rename = "CurSts")]
643 pub cur_sts: AtmStatus1Code,
644 #[serde(rename = "DmnddSts", skip_serializing_if = "Option::is_none")]
645 pub dmndd_sts: Option<AtmStatus1Code>,
646}
647#[derive(
648 Debug,
649 Default,
650 Clone,
651 PartialEq,
652 ::serde::Serialize,
653 ::serde::Deserialize,
654 ::derive_builder::Builder,
655 ::validator::Validate,
656)]
657pub struct Max35Text {
658 #[validate(length(min = 1, max = 35,))]
659 #[serde(rename = "$text")]
660 pub value: String,
661}
662#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
663pub enum ContentType2Code {
664 #[serde(rename = "DATA")]
665 Data,
666 #[serde(rename = "SIGN")]
667 Sign,
668 #[serde(rename = "EVLP")]
669 Evlp,
670 #[serde(rename = "DGST")]
671 Dgst,
672 #[serde(rename = "AUTH")]
673 Auth,
674 #[default]
675 Unknown,
676}
677#[derive(
678 Debug,
679 Default,
680 Clone,
681 PartialEq,
682 ::serde::Serialize,
683 ::serde::Deserialize,
684 ::derive_builder::Builder,
685 ::validator::Validate,
686)]
687pub struct Max5000Binary {
688 #[validate(length(min = 1, max = 5000,), regex = "MAX_5000_BINARY_REGEX")]
689 pub value: String,
690}
691#[derive(
692 Debug,
693 Default,
694 Clone,
695 PartialEq,
696 ::serde::Serialize,
697 ::serde::Deserialize,
698 ::derive_builder::Builder,
699 ::validator::Validate,
700)]
701pub struct Min2Max3AlphaText {
702 #[validate(regex = "MIN_2_MAX_3_ALPHA_TEXT_REGEX")]
703 #[serde(rename = "$text")]
704 pub value: String,
705}
706#[derive(
707 Debug,
708 Default,
709 Clone,
710 PartialEq,
711 ::serde::Serialize,
712 ::serde::Deserialize,
713 ::derive_builder::Builder,
714 ::validator::Validate,
715)]
716pub struct AlgorithmIdentification15 {
717 #[serde(rename = "Algo")]
718 pub algo: Algorithm12Code,
719 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
720 pub param: Option<Parameter7>,
721}
722#[derive(
723 Debug,
724 Default,
725 Clone,
726 PartialEq,
727 ::serde::Serialize,
728 ::serde::Deserialize,
729 ::derive_builder::Builder,
730 ::validator::Validate,
731)]
732pub struct IssuerAndSerialNumber1 {
733 #[validate]
734 #[serde(rename = "Issr")]
735 pub issr: CertificateIssuer1,
736 #[validate]
737 #[serde(rename = "SrlNb")]
738 pub srl_nb: Max35Binary,
739}
740#[derive(
741 Debug,
742 Default,
743 Clone,
744 PartialEq,
745 ::serde::Serialize,
746 ::serde::Deserialize,
747 ::derive_builder::Builder,
748 ::validator::Validate,
749)]
750pub struct AlgorithmIdentification12 {
751 #[serde(rename = "Algo")]
752 pub algo: Algorithm8Code,
753 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
754 pub param: Option<Parameter5>,
755}
756#[derive(
757 Debug,
758 Default,
759 Clone,
760 PartialEq,
761 ::serde::Serialize,
762 ::serde::Deserialize,
763 ::derive_builder::Builder,
764 ::validator::Validate,
765)]
766pub struct AuthenticatedData4 {
767 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
768 pub vrsn: Option<Number>,
769 #[validate(length(min = 1,))]
770 #[serde(rename = "Rcpt", default)]
771 pub rcpt: Vec<Recipient4Choice>,
772 #[validate]
773 #[serde(rename = "MACAlgo")]
774 pub mac_algo: AlgorithmIdentification15,
775 #[validate]
776 #[serde(rename = "NcpsltdCntt")]
777 pub ncpsltd_cntt: EncapsulatedContent3,
778 #[validate]
779 #[serde(rename = "MAC")]
780 pub mac: Max140Binary,
781}
782#[derive(
783 Debug,
784 Default,
785 Clone,
786 PartialEq,
787 ::serde::Serialize,
788 ::serde::Deserialize,
789 ::derive_builder::Builder,
790 ::validator::Validate,
791)]
792pub struct Max35Binary {
793 #[validate(length(min = 1, max = 35,), regex = "MAX_35_BINARY_REGEX")]
794 pub value: String,
795}
796#[derive(
797 Debug,
798 Default,
799 Clone,
800 PartialEq,
801 ::serde::Serialize,
802 ::serde::Deserialize,
803 ::derive_builder::Builder,
804 ::validator::Validate,
805)]
806pub struct IsoDateTime {
807 #[serde(rename = "$text")]
808 pub value: ::chrono::DateTime<::chrono::Utc>,
809}
810#[derive(
811 Debug,
812 Default,
813 Clone,
814 PartialEq,
815 ::serde::Serialize,
816 ::serde::Deserialize,
817 ::derive_builder::Builder,
818 ::validator::Validate,
819)]
820pub struct EncapsulatedContent3 {
821 #[serde(rename = "CnttTp")]
822 pub cntt_tp: ContentType2Code,
823 #[serde(rename = "Cntt", skip_serializing_if = "Option::is_none")]
824 pub cntt: Option<Max100KBinary>,
825}
826#[derive(
827 Debug,
828 Default,
829 Clone,
830 PartialEq,
831 ::serde::Serialize,
832 ::serde::Deserialize,
833 ::derive_builder::Builder,
834 ::validator::Validate,
835)]
836pub struct AtmEnvironment9 {
837 #[serde(rename = "Acqrr", skip_serializing_if = "Option::is_none")]
838 pub acqrr: Option<Acquirer7>,
839 #[serde(rename = "ATMMgrId", skip_serializing_if = "Option::is_none")]
840 pub atm_mgr_id: Option<Max35Text>,
841 #[validate]
842 #[serde(rename = "ATM")]
843 pub atm: AutomatedTellerMachine7,
844}
845#[derive(
846 Debug,
847 Default,
848 Clone,
849 PartialEq,
850 ::serde::Serialize,
851 ::serde::Deserialize,
852 ::derive_builder::Builder,
853 ::validator::Validate,
854)]
855pub struct Acquirer7 {
856 #[serde(rename = "AcqrgInstn", skip_serializing_if = "Option::is_none")]
857 pub acqrg_instn: Option<Max35Text>,
858 #[serde(rename = "Brnch", skip_serializing_if = "Option::is_none")]
859 pub brnch: Option<Max35Text>,
860}
861#[derive(
862 Debug,
863 Default,
864 Clone,
865 PartialEq,
866 ::serde::Serialize,
867 ::serde::Deserialize,
868 ::derive_builder::Builder,
869 ::validator::Validate,
870)]
871pub struct AtmDiagnosticRequest2 {
872 #[validate]
873 #[serde(rename = "Envt")]
874 pub envt: AtmEnvironment9,
875 #[validate]
876 #[serde(rename = "ATMGblSts")]
877 pub atm_gbl_sts: AtmStatus1,
878}
879#[derive(
880 Debug,
881 Default,
882 Clone,
883 PartialEq,
884 ::serde::Serialize,
885 ::serde::Deserialize,
886 ::derive_builder::Builder,
887 ::validator::Validate,
888)]
889pub struct AutomatedTellerMachine7 {
890 #[validate]
891 #[serde(rename = "Id")]
892 pub id: Max35Text,
893 #[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
894 pub addtl_id: Option<Max35Text>,
895 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
896 pub seq_nb: Option<Max35Text>,
897}
898#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
899pub enum Algorithm11Code {
900 #[serde(rename = "HS25")]
901 Hs25,
902 #[serde(rename = "HS38")]
903 Hs38,
904 #[serde(rename = "HS51")]
905 Hs51,
906 #[serde(rename = "HS01")]
907 Hs01,
908 #[default]
909 Unknown,
910}
911#[derive(
912 Debug,
913 Default,
914 Clone,
915 PartialEq,
916 ::serde::Serialize,
917 ::serde::Deserialize,
918 ::derive_builder::Builder,
919 ::validator::Validate,
920)]
921pub struct Parameter7 {
922 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
923 pub initlstn_vctr: Option<Max500Binary>,
924 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
925 pub b_pddg: Option<BytePadding1Code>,
926}
927#[derive(
928 Debug,
929 Default,
930 Clone,
931 PartialEq,
932 ::serde::Serialize,
933 ::serde::Deserialize,
934 ::derive_builder::Builder,
935 ::validator::Validate,
936)]
937pub struct KekIdentifier2 {
938 #[validate]
939 #[serde(rename = "KeyId")]
940 pub key_id: Max140Text,
941 #[validate]
942 #[serde(rename = "KeyVrsn")]
943 pub key_vrsn: Max140Text,
944 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
945 pub seq_nb: Option<Number>,
946 #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
947 pub derivtn_id: Option<Min5Max16Binary>,
948}
949#[derive(
950 Debug,
951 Default,
952 Clone,
953 PartialEq,
954 ::serde::Serialize,
955 ::serde::Deserialize,
956 ::derive_builder::Builder,
957 ::validator::Validate,
958)]
959pub struct AtmDiagnosticRequestV02 {
960 #[validate]
961 #[serde(rename = "Hdr")]
962 pub hdr: Header31,
963 #[serde(rename = "PrtctdATMDgnstcReq", skip_serializing_if = "Option::is_none")]
964 pub prtctd_atm_dgnstc_req: Option<ContentInformationType10>,
965 #[serde(rename = "ATMDgnstcReq", skip_serializing_if = "Option::is_none")]
966 pub atm_dgnstc_req: Option<AtmDiagnosticRequest2>,
967 #[serde(rename = "SctyTrlr", skip_serializing_if = "Option::is_none")]
968 pub scty_trlr: Option<ContentInformationType15>,
969}
970#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
971pub enum Algorithm7Code {
972 #[serde(rename = "ERSA")]
973 Ersa,
974 #[serde(rename = "RSAO")]
975 Rsao,
976 #[default]
977 Unknown,
978}
979#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
980pub enum AtmStatus1Code {
981 #[serde(rename = "INSV")]
982 Insv,
983 #[serde(rename = "OUTS")]
984 Outs,
985 #[default]
986 Unknown,
987}
988#[derive(
989 Debug,
990 Default,
991 Clone,
992 PartialEq,
993 ::serde::Serialize,
994 ::serde::Deserialize,
995 ::derive_builder::Builder,
996 ::validator::Validate,
997)]
998pub struct Kek4 {
999 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
1000 pub vrsn: Option<Number>,
1001 #[validate]
1002 #[serde(rename = "KEKId")]
1003 pub kek_id: KekIdentifier2,
1004 #[validate]
1005 #[serde(rename = "KeyNcrptnAlgo")]
1006 pub key_ncrptn_algo: AlgorithmIdentification13,
1007 #[validate]
1008 #[serde(rename = "NcrptdKey")]
1009 pub ncrptd_key: Max500Binary,
1010}
1011#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1012pub enum MessageFunction11Code {
1013 #[serde(rename = "BALN")]
1014 Baln,
1015 #[serde(rename = "CMPA")]
1016 Cmpa,
1017 #[serde(rename = "CMPD")]
1018 Cmpd,
1019 #[serde(rename = "ACMD")]
1020 Acmd,
1021 #[serde(rename = "DVCC")]
1022 Dvcc,
1023 #[serde(rename = "DIAQ")]
1024 Diaq,
1025 #[serde(rename = "DIAP")]
1026 Diap,
1027 #[serde(rename = "GSTS")]
1028 Gsts,
1029 #[serde(rename = "INQQ")]
1030 Inqq,
1031 #[serde(rename = "INQP")]
1032 Inqp,
1033 #[serde(rename = "KYAQ")]
1034 Kyaq,
1035 #[serde(rename = "KYAP")]
1036 Kyap,
1037 #[serde(rename = "PINQ")]
1038 Pinq,
1039 #[serde(rename = "PINP")]
1040 Pinp,
1041 #[serde(rename = "RJAQ")]
1042 Rjaq,
1043 #[serde(rename = "RJAP")]
1044 Rjap,
1045 #[serde(rename = "WITV")]
1046 Witv,
1047 #[serde(rename = "WITK")]
1048 Witk,
1049 #[serde(rename = "WITQ")]
1050 Witq,
1051 #[serde(rename = "WITP")]
1052 Witp,
1053 #[serde(rename = "INQC")]
1054 Inqc,
1055 #[serde(rename = "H2AP")]
1056 H2Ap,
1057 #[serde(rename = "H2AQ")]
1058 H2Aq,
1059 #[serde(rename = "TMOP")]
1060 Tmop,
1061 #[serde(rename = "CSEC")]
1062 Csec,
1063 #[serde(rename = "DSEC")]
1064 Dsec,
1065 #[serde(rename = "SKSC")]
1066 Sksc,
1067 #[serde(rename = "SSTS")]
1068 Ssts,
1069 #[serde(rename = "DPSK")]
1070 Dpsk,
1071 #[serde(rename = "DPSV")]
1072 Dpsv,
1073 #[serde(rename = "DPSQ")]
1074 Dpsq,
1075 #[serde(rename = "DPSP")]
1076 Dpsp,
1077 #[serde(rename = "EXPK")]
1078 Expk,
1079 #[serde(rename = "EXPV")]
1080 Expv,
1081 #[serde(rename = "TRFQ")]
1082 Trfq,
1083 #[serde(rename = "TRFP")]
1084 Trfp,
1085 #[serde(rename = "RPTC")]
1086 Rptc,
1087 #[default]
1088 Unknown,
1089}
1090#[derive(
1091 Debug,
1092 Default,
1093 Clone,
1094 PartialEq,
1095 ::serde::Serialize,
1096 ::serde::Deserialize,
1097 ::derive_builder::Builder,
1098 ::validator::Validate,
1099)]
1100pub struct Max3NumericText {
1101 #[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
1102 #[serde(rename = "$text")]
1103 pub value: String,
1104}
1105#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1106pub enum AttributeType1Code {
1107 #[serde(rename = "CNAT")]
1108 Cnat,
1109 #[serde(rename = "LATT")]
1110 Latt,
1111 #[serde(rename = "OATT")]
1112 Oatt,
1113 #[serde(rename = "OUAT")]
1114 Ouat,
1115 #[serde(rename = "CATT")]
1116 Catt,
1117 #[default]
1118 Unknown,
1119}
1120#[derive(
1121 Debug,
1122 Default,
1123 Clone,
1124 PartialEq,
1125 ::serde::Serialize,
1126 ::serde::Deserialize,
1127 ::derive_builder::Builder,
1128 ::validator::Validate,
1129)]
1130pub struct RelativeDistinguishedName1 {
1131 #[serde(rename = "AttrTp")]
1132 pub attr_tp: AttributeType1Code,
1133 #[validate]
1134 #[serde(rename = "AttrVal")]
1135 pub attr_val: Max140Text,
1136}
1137#[derive(
1138 Debug,
1139 Default,
1140 Clone,
1141 PartialEq,
1142 ::serde::Serialize,
1143 ::serde::Deserialize,
1144 ::derive_builder::Builder,
1145 ::validator::Validate,
1146)]
1147pub struct Max100KBinary {
1148 #[validate(length(min = 1, max = 102400,), regex = "MAX_100_K_BINARY_REGEX")]
1149 pub value: String,
1150}