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