1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 static ref EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,3}"#).unwrap();
25}
26
27::lazy_static::lazy_static! {
28 static ref MAX_32_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,32}"#).unwrap();
29}
30
31::lazy_static::lazy_static! {
32 static ref MAX_8_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,8}"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36 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();
37}
38
39::lazy_static::lazy_static! {
40 static ref MAX_4_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,4}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 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();
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 ISO_MAX_3_A_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
53}
54
55::lazy_static::lazy_static! {
56 static ref MAX_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,2}"#).unwrap();
57}
58
59::lazy_static::lazy_static! {
60 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();
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 ISO_3_NUMERIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
69}
70
71::lazy_static::lazy_static! {
72 static ref MAX_15_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,15}"#).unwrap();
73}
74
75::lazy_static::lazy_static! {
76 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();
77}
78
79::lazy_static::lazy_static! {
80 static ref MAX_12_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,12}"#).unwrap();
81}
82
83::lazy_static::lazy_static! {
84 static ref MAX_9999_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,9999}"#).unwrap();
85}
86
87::lazy_static::lazy_static! {
88 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();
89}
90
91::lazy_static::lazy_static! {
92 static ref EXACT_1_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1}"#).unwrap();
93}
94
95::lazy_static::lazy_static! {
96 static ref MAX_8_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,8}"#).unwrap();
97}
98
99::lazy_static::lazy_static! {
100 static ref ISO_8583_RESPONSE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).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_2_MB_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 ISO_3_NUMERIC_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
113}
114
115pub fn namespace() -> String {
117 "urn:iso:std:iso:20022:tech:xsd:caad.003.001.02".to_string()
118}
119
120#[derive(
121 Debug,
122 Default,
123 Clone,
124 PartialEq,
125 ::serde::Serialize,
126 ::serde::Deserialize,
127 ::derive_builder::Builder,
128 ::validator::Validate,
129)]
130pub struct ExternalEncryptedElementIdentification1Code {
131 #[validate(regex = "EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX")]
132 #[serde(rename = "$text")]
133 pub value: String,
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 IsoDate {
146 #[serde(rename = "$text")]
147 pub value: ::chrono::NaiveDate,
148}
149#[derive(
150 Debug,
151 Default,
152 Clone,
153 PartialEq,
154 ::serde::Serialize,
155 ::serde::Deserialize,
156 ::derive_builder::Builder,
157 ::validator::Validate,
158)]
159pub struct Parameter7 {
160 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
161 pub initlstn_vctr: Option<Max500Binary>,
162 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
163 pub b_pddg: Option<BytePadding1Code>,
164}
165#[derive(
166 Debug,
167 Default,
168 Clone,
169 PartialEq,
170 ::serde::Serialize,
171 ::serde::Deserialize,
172 ::derive_builder::Builder,
173 ::validator::Validate,
174)]
175pub struct Max32HexBinaryText {
176 #[validate(regex = "MAX_32_HEX_BINARY_TEXT_REGEX")]
177 #[serde(rename = "$text")]
178 pub value: String,
179}
180#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
181pub enum EncryptedDataFormat1Code {
182 #[serde(rename = "ASCI")]
183 Asci,
184 #[serde(rename = "BINF")]
185 Binf,
186 #[serde(rename = "EBCD")]
187 Ebcd,
188 #[serde(rename = "HEXF")]
189 Hexf,
190 #[serde(rename = "OTHN")]
191 Othn,
192 #[serde(rename = "OTHP")]
193 Othp,
194 #[default]
195 Unknown,
196}
197#[derive(
198 Debug,
199 Default,
200 Clone,
201 PartialEq,
202 ::serde::Serialize,
203 ::serde::Deserialize,
204 ::derive_builder::Builder,
205 ::validator::Validate,
206)]
207pub struct Amount17 {
208 #[validate]
209 #[serde(rename = "Amt")]
210 pub amt: ImpliedCurrencyAndAmount,
211 #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
212 pub ccy: Option<Iso3NumericCurrencyCode>,
213 #[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
214 pub cdt_dbt: Option<CreditDebit3Code>,
215}
216#[derive(
217 Debug,
218 Default,
219 Clone,
220 PartialEq,
221 ::serde::Serialize,
222 ::serde::Deserialize,
223 ::derive_builder::Builder,
224 ::validator::Validate,
225)]
226pub struct Max8HexBinaryText {
227 #[validate(regex = "MAX_8_HEX_BINARY_TEXT_REGEX")]
228 #[serde(rename = "$text")]
229 pub value: String,
230}
231#[derive(
232 Debug,
233 Default,
234 Clone,
235 PartialEq,
236 ::serde::Serialize,
237 ::serde::Deserialize,
238 ::derive_builder::Builder,
239 ::validator::Validate,
240)]
241pub struct KekIdentifier2 {
242 #[validate]
243 #[serde(rename = "KeyId")]
244 pub key_id: Max140Text,
245 #[validate]
246 #[serde(rename = "KeyVrsn")]
247 pub key_vrsn: Max140Text,
248 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
249 pub seq_nb: Option<Number>,
250 #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
251 pub derivtn_id: Option<Min5Max16Binary>,
252}
253#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
254pub enum CreditDebit3Code {
255 #[serde(rename = "CRDT")]
256 Crdt,
257 #[serde(rename = "DBIT")]
258 Dbit,
259 #[default]
260 Unknown,
261}
262#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
263pub enum UserInterface7Code {
264 #[serde(rename = "OCAI")]
265 Ocai,
266 #[serde(rename = "CLRL")]
267 Clrl,
268 #[serde(rename = "CLRA")]
269 Clra,
270 #[default]
271 Unknown,
272}
273#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
274pub enum PartyType17Code {
275 #[serde(rename = "OTHN")]
276 Othn,
277 #[serde(rename = "OTHP")]
278 Othp,
279 #[serde(rename = "ACQR")]
280 Acqr,
281 #[serde(rename = "ACQP")]
282 Acqp,
283 #[serde(rename = "CISS")]
284 Ciss,
285 #[serde(rename = "CISP")]
286 Cisp,
287 #[serde(rename = "AGNT")]
288 Agnt,
289 #[default]
290 Unknown,
291}
292#[derive(
293 Debug,
294 Default,
295 Clone,
296 PartialEq,
297 ::serde::Serialize,
298 ::serde::Deserialize,
299 ::derive_builder::Builder,
300 ::validator::Validate,
301)]
302pub struct Max35Binary {
303 #[validate(length(min = 1, max = 35,), regex = "MAX_35_BINARY_REGEX")]
304 pub value: String,
305}
306#[derive(
307 Debug,
308 Default,
309 Clone,
310 PartialEq,
311 ::serde::Serialize,
312 ::serde::Deserialize,
313 ::derive_builder::Builder,
314 ::validator::Validate,
315)]
316pub struct EncryptedDataElement1 {
317 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
318 pub id: Option<ExternalEncryptedElementIdentification1Code>,
319 #[serde(rename = "OthrId", skip_serializing_if = "Option::is_none")]
320 pub othr_id: Option<Max35Text>,
321 #[serde(rename = "NcrptdData")]
322 pub ncrptd_data: EncryptedData1Choice,
323 #[serde(rename = "ClearTxtDataFrmt", skip_serializing_if = "Option::is_none")]
324 pub clear_txt_data_frmt: Option<EncryptedDataFormat1Code>,
325 #[serde(
326 rename = "OthrClearTxtDataFrmt",
327 skip_serializing_if = "Option::is_none"
328 )]
329 pub othr_clear_txt_data_frmt: Option<Max35Text>,
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 Max70Text {
342 #[validate(length(min = 1, max = 70,))]
343 #[serde(rename = "$text")]
344 pub value: String,
345}
346#[derive(
347 Debug,
348 Default,
349 Clone,
350 PartialEq,
351 ::serde::Serialize,
352 ::serde::Deserialize,
353 ::derive_builder::Builder,
354 ::validator::Validate,
355)]
356pub struct Max4NumericText {
357 #[validate(regex = "MAX_4_NUMERIC_TEXT_REGEX")]
358 #[serde(rename = "$text")]
359 pub value: String,
360}
361#[derive(
362 Debug,
363 Default,
364 Clone,
365 PartialEq,
366 ::serde::Serialize,
367 ::serde::Deserialize,
368 ::derive_builder::Builder,
369 ::validator::Validate,
370)]
371pub struct BatchTransferInitiationV02<
372 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
373> {
374 #[validate]
375 #[serde(rename = "Hdr")]
376 pub hdr: Header60,
377 #[validate]
378 #[serde(rename = "Body")]
379 pub body: BatchTransferInitiation2<A>,
380 #[serde(rename = "SctyTrlr", skip_serializing_if = "Option::is_none")]
381 pub scty_trlr: Option<ContentInformationType20>,
382}
383#[derive(
384 Debug,
385 Default,
386 Clone,
387 PartialEq,
388 ::serde::Serialize,
389 ::serde::Deserialize,
390 ::derive_builder::Builder,
391 ::validator::Validate,
392)]
393pub struct Max500Binary {
394 #[validate(length(min = 1, max = 500,), regex = "MAX_500_BINARY_REGEX")]
395 pub value: String,
396}
397#[derive(
398 Debug,
399 Default,
400 Clone,
401 PartialEq,
402 ::serde::Serialize,
403 ::serde::Deserialize,
404 ::derive_builder::Builder,
405 ::validator::Validate,
406)]
407pub struct EncryptedData1ChoiceEnum {
408 #[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
409 pub hex_binry_val: Option<Max9999HexBinaryText>,
410 #[serde(rename = "BinryData", skip_serializing_if = "Option::is_none")]
411 pub binry_data: Option<Max100KBinary>,
412}
413#[derive(
414 Debug,
415 Default,
416 Clone,
417 PartialEq,
418 ::serde::Serialize,
419 ::serde::Deserialize,
420 ::derive_builder::Builder,
421 ::validator::Validate,
422)]
423pub struct EncryptedData1Choice {
424 #[serde(flatten)]
425 pub value: EncryptedData1ChoiceEnum,
426}
427#[derive(
428 Debug,
429 Default,
430 Clone,
431 PartialEq,
432 ::serde::Serialize,
433 ::serde::Deserialize,
434 ::derive_builder::Builder,
435 ::validator::Validate,
436)]
437pub struct Max3NumericText {
438 #[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
439 #[serde(rename = "$text")]
440 pub value: String,
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 ImpliedCurrencyAndAmount {
453 #[validate(range(min = 0,))]
454 #[serde(rename = "$text")]
455 pub value: f64,
456}
457#[derive(
458 Debug,
459 Default,
460 Clone,
461 PartialEq,
462 ::serde::Serialize,
463 ::serde::Deserialize,
464 ::derive_builder::Builder,
465 ::validator::Validate,
466)]
467pub struct Parameter14 {
468 #[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
469 pub ncrptn_frmt: Option<EncryptionFormat3Code>,
470 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
471 pub initlstn_vctr: Option<Max500Binary>,
472 #[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
473 pub b_pddg: Option<BytePadding1Code>,
474}
475#[derive(
476 Debug,
477 Default,
478 Clone,
479 PartialEq,
480 ::serde::Serialize,
481 ::serde::Deserialize,
482 ::derive_builder::Builder,
483 ::validator::Validate,
484)]
485pub struct ContentInformationType20 {
486 #[validate]
487 #[serde(rename = "MACData")]
488 pub mac_data: MacData1,
489 #[validate]
490 #[serde(rename = "MAC")]
491 pub mac: Max8HexBinaryText,
492}
493#[derive(
494 Debug,
495 Default,
496 Clone,
497 PartialEq,
498 ::serde::Serialize,
499 ::serde::Deserialize,
500 ::derive_builder::Builder,
501 ::validator::Validate,
502)]
503pub struct Transaction141 {
504 #[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
505 pub tx_id: Option<TransactionIdentification12>,
506 #[serde(rename = "BtchId", skip_serializing_if = "Option::is_none")]
507 pub btch_id: Option<Max70Text>,
508 #[serde(rename = "OrgnlBtchId", skip_serializing_if = "Option::is_none")]
509 pub orgnl_btch_id: Option<Max70Text>,
510 #[serde(rename = "NbOfMsgs", skip_serializing_if = "Option::is_none")]
511 pub nb_of_msgs: Option<Number>,
512 #[serde(rename = "BtchChcksm", skip_serializing_if = "Option::is_none")]
513 pub btch_chcksm: Option<Max35Binary>,
514 #[serde(rename = "ReqAck", skip_serializing_if = "Option::is_none")]
515 pub req_ack: Option<TrueFalseIndicator>,
516 #[validate(length(min = 0,))]
517 #[serde(rename = "ClrBtchData", default)]
518 pub clr_btch_data: Vec<ClearingBatchData2>,
519 #[serde(rename = "ClrCtrlTtls", skip_serializing_if = "Option::is_none")]
520 pub clr_ctrl_ttls: Option<ClearingControlTotals2>,
521 #[validate(length(min = 0,))]
522 #[serde(rename = "AgtData", default)]
523 pub agt_data: Vec<AdditionalInformation21>,
524 #[validate(length(min = 0,))]
525 #[serde(rename = "Rcrd", default)]
526 pub rcrd: Vec<Record2>,
527 #[validate(length(min = 0,))]
528 #[serde(rename = "AddtlData", default)]
529 pub addtl_data: Vec<AdditionalData1>,
530}
531#[derive(
532 Debug,
533 Default,
534 Clone,
535 PartialEq,
536 ::serde::Serialize,
537 ::serde::Deserialize,
538 ::derive_builder::Builder,
539 ::validator::Validate,
540)]
541pub struct SettlementReportingEntity1 {
542 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
543 pub tp: Option<Max35Text>,
544 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
545 pub id: Option<Max35Text>,
546}
547#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
548pub enum ContentType2Code {
549 #[serde(rename = "DATA")]
550 Data,
551 #[serde(rename = "SIGN")]
552 Sign,
553 #[serde(rename = "EVLP")]
554 Evlp,
555 #[serde(rename = "DGST")]
556 Dgst,
557 #[serde(rename = "AUTH")]
558 Auth,
559 #[default]
560 Unknown,
561}
562#[derive(
563 Debug,
564 Default,
565 Clone,
566 PartialEq,
567 ::serde::Serialize,
568 ::serde::Deserialize,
569 ::derive_builder::Builder,
570 ::validator::Validate,
571)]
572pub struct Header60 {
573 #[serde(rename = "MsgFctn")]
574 pub msg_fctn: MessageFunction17Code,
575 #[validate]
576 #[serde(rename = "PrtcolVrsn")]
577 pub prtcol_vrsn: Max2048Text,
578 #[serde(rename = "XchgId", skip_serializing_if = "Option::is_none")]
579 pub xchg_id: Option<Max35Text>,
580 #[serde(rename = "ReTrnsmssnCntr", skip_serializing_if = "Option::is_none")]
581 pub re_trnsmssn_cntr: Option<Max3NumericText>,
582 #[validate]
583 #[serde(rename = "CreDtTm")]
584 pub cre_dt_tm: IsoDateTime,
585 #[serde(rename = "BtchMgmtInf", skip_serializing_if = "Option::is_none")]
586 pub btch_mgmt_inf: Option<BatchManagementInformation1>,
587 #[validate]
588 #[serde(rename = "InitgPty")]
589 pub initg_pty: GenericIdentification183,
590 #[serde(rename = "RcptPty", skip_serializing_if = "Option::is_none")]
591 pub rcpt_pty: Option<GenericIdentification183>,
592 #[validate(length(min = 0,))]
593 #[serde(rename = "TracData", default)]
594 pub trac_data: Vec<AdditionalData1>,
595 #[validate(length(min = 0,))]
596 #[serde(rename = "Tracblt", default)]
597 pub tracblt: Vec<Traceability9>,
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 ProtectedData1 {
610 #[serde(rename = "CnttTp")]
611 pub cntt_tp: ContentType3Code,
612 #[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
613 pub envlpd_data: Option<EnvelopedData6>,
614 #[serde(rename = "NcrptdData", skip_serializing_if = "Option::is_none")]
615 pub ncrptd_data: Option<EncryptedData1>,
616}
617#[derive(
618 Debug,
619 Default,
620 Clone,
621 PartialEq,
622 ::serde::Serialize,
623 ::serde::Deserialize,
624 ::derive_builder::Builder,
625 ::validator::Validate,
626)]
627pub struct IsoMax3ACountryCode {
628 #[validate(regex = "ISO_MAX_3_A_COUNTRY_CODE_REGEX")]
629 #[serde(rename = "$text")]
630 pub value: String,
631}
632#[derive(
633 Debug,
634 Default,
635 Clone,
636 PartialEq,
637 ::serde::Serialize,
638 ::serde::Deserialize,
639 ::derive_builder::Builder,
640 ::validator::Validate,
641)]
642pub struct Max2NumericText {
643 #[validate(regex = "MAX_2_NUMERIC_TEXT_REGEX")]
644 #[serde(rename = "$text")]
645 pub value: String,
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 Reconciliation3 {
658 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
659 pub id: Option<Max35Text>,
660 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
661 pub dt: Option<IsoDate>,
662 #[serde(rename = "ChckptRef", skip_serializing_if = "Option::is_none")]
663 pub chckpt_ref: Option<Max35Text>,
664}
665#[derive(
666 Debug,
667 Default,
668 Clone,
669 PartialEq,
670 ::serde::Serialize,
671 ::serde::Deserialize,
672 ::derive_builder::Builder,
673 ::validator::Validate,
674)]
675pub struct Jurisdiction2 {
676 #[serde(rename = "DmstInd", skip_serializing_if = "Option::is_none")]
677 pub dmst_ind: Option<TrueFalseIndicator>,
678 #[serde(rename = "DmstQlfctn", skip_serializing_if = "Option::is_none")]
679 pub dmst_qlfctn: Option<Max35Text>,
680}
681#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
682pub enum Response8Code {
683 #[serde(rename = "PRCS")]
684 Prcs,
685 #[serde(rename = "UNPR")]
686 Unpr,
687 #[serde(rename = "UNRV")]
688 Unrv,
689 #[serde(rename = "REJT")]
690 Rejt,
691 #[serde(rename = "TECH")]
692 Tech,
693 #[serde(rename = "OTHN")]
694 Othn,
695 #[serde(rename = "OTHP")]
696 Othp,
697 #[default]
698 Unknown,
699}
700#[derive(
701 Debug,
702 Default,
703 Clone,
704 PartialEq,
705 ::serde::Serialize,
706 ::serde::Deserialize,
707 ::derive_builder::Builder,
708 ::validator::Validate,
709)]
710pub struct Min5Max16Binary {
711 #[validate(length(min = 5, max = 16,), regex = "MIN_5_MAX_16_BINARY_REGEX")]
712 pub value: String,
713}
714#[derive(
715 Debug,
716 Default,
717 Clone,
718 PartialEq,
719 ::serde::Serialize,
720 ::serde::Deserialize,
721 ::derive_builder::Builder,
722 ::validator::Validate,
723)]
724pub struct EnvelopedData6 {
725 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
726 pub vrsn: Option<Number>,
727 #[validate(length(min = 1,))]
728 #[serde(rename = "Rcpt", default)]
729 pub rcpt: Vec<Recipient7Choice>,
730 #[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
731 pub ncrptd_cntt: Option<EncryptedContent5>,
732}
733#[derive(
734 Debug,
735 Default,
736 Clone,
737 PartialEq,
738 ::serde::Serialize,
739 ::serde::Deserialize,
740 ::derive_builder::Builder,
741 ::validator::Validate,
742)]
743pub struct Max350Text {
744 #[validate(length(min = 1, max = 350,))]
745 #[serde(rename = "$text")]
746 pub value: String,
747}
748#[derive(
749 Debug,
750 Default,
751 Clone,
752 PartialEq,
753 ::serde::Serialize,
754 ::serde::Deserialize,
755 ::derive_builder::Builder,
756 ::validator::Validate,
757)]
758pub struct SupplementaryData1<
759 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
760> {
761 #[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
762 pub plc_and_nm: Option<Max350Text>,
763 #[validate]
764 #[serde(rename = "Envlp")]
765 pub envlp: SupplementaryDataEnvelope1<A>,
766}
767#[derive(
768 Debug,
769 Default,
770 Clone,
771 PartialEq,
772 ::serde::Serialize,
773 ::serde::Deserialize,
774 ::derive_builder::Builder,
775 ::validator::Validate,
776)]
777pub struct Exact15Text {
778 #[serde(rename = "$text")]
779 pub value: String,
780}
781#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
782pub enum AttributeType1Code {
783 #[serde(rename = "CNAT")]
784 Cnat,
785 #[serde(rename = "LATT")]
786 Latt,
787 #[serde(rename = "OATT")]
788 Oatt,
789 #[serde(rename = "OUAT")]
790 Ouat,
791 #[serde(rename = "CATT")]
792 Catt,
793 #[default]
794 Unknown,
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 KekIdentifier6 {
807 #[validate]
808 #[serde(rename = "KeyId")]
809 pub key_id: Max140Text,
810 #[serde(rename = "KeyVrsn", skip_serializing_if = "Option::is_none")]
811 pub key_vrsn: Option<Max140Text>,
812 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
813 pub seq_nb: Option<Number>,
814 #[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
815 pub derivtn_id: Option<Min5Max16Binary>,
816}
817#[derive(
818 Debug,
819 Default,
820 Clone,
821 PartialEq,
822 ::serde::Serialize,
823 ::serde::Deserialize,
824 ::derive_builder::Builder,
825 ::validator::Validate,
826)]
827pub struct IsoTime {
828 #[serde(rename = "$value")]
829 pub value: ::chrono::naive::NaiveTime,
830}
831#[derive(
832 Debug,
833 Default,
834 Clone,
835 PartialEq,
836 ::serde::Serialize,
837 ::serde::Deserialize,
838 ::derive_builder::Builder,
839 ::validator::Validate,
840)]
841pub struct BatchManagementInformation1 {
842 #[serde(rename = "ColltnId", skip_serializing_if = "Option::is_none")]
843 pub colltn_id: Option<Max35Text>,
844 #[validate]
845 #[serde(rename = "BtchId")]
846 pub btch_id: Max35Text,
847 #[serde(rename = "MsgSeqNb", skip_serializing_if = "Option::is_none")]
848 pub msg_seq_nb: Option<Max15NumericText>,
849 #[serde(rename = "MsgChcksmInptVal", skip_serializing_if = "Option::is_none")]
850 pub msg_chcksm_inpt_val: Option<Max140Binary>,
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 KeyTransport6 {
863 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
864 pub vrsn: Option<Number>,
865 #[serde(rename = "RcptId")]
866 pub rcpt_id: Recipient5Choice,
867 #[validate]
868 #[serde(rename = "KeyNcrptnAlgo")]
869 pub key_ncrptn_algo: AlgorithmIdentification27,
870 #[validate]
871 #[serde(rename = "NcrptdKey")]
872 pub ncrptd_key: Max5000Binary,
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 IsoDateTime {
885 #[serde(rename = "$text")]
886 pub value: ::chrono::DateTime<::chrono::Utc>,
887}
888#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
889pub enum OutputFormat4Code {
890 #[serde(rename = "FLNM")]
891 Flnm,
892 #[serde(rename = "MREF")]
893 Mref,
894 #[serde(rename = "OTHN")]
895 Othn,
896 #[serde(rename = "OTHP")]
897 Othp,
898 #[serde(rename = "SMSI")]
899 Smsi,
900 #[serde(rename = "TEXT")]
901 Text,
902 #[serde(rename = "URLI")]
903 Urli,
904 #[serde(rename = "HTML")]
905 Html,
906 #[default]
907 Unknown,
908}
909#[derive(
910 Debug,
911 Default,
912 Clone,
913 PartialEq,
914 ::serde::Serialize,
915 ::serde::Deserialize,
916 ::derive_builder::Builder,
917 ::validator::Validate,
918)]
919pub struct Record2 {
920 #[validate]
921 #[serde(rename = "SeqCntr")]
922 pub seq_cntr: Number,
923 #[serde(rename = "RcrdChcksmInptVal", skip_serializing_if = "Option::is_none")]
924 pub rcrd_chcksm_inpt_val: Option<Max140Binary>,
925 #[serde(rename = "ClrRcrdData", skip_serializing_if = "Option::is_none")]
926 pub clr_rcrd_data: Option<ClearingRecordData2>,
927 #[serde(rename = "RcrdMsg")]
928 pub rcrd_msg: RecordMessage1Choice,
929}
930#[derive(
931 Debug,
932 Default,
933 Clone,
934 PartialEq,
935 ::serde::Serialize,
936 ::serde::Deserialize,
937 ::derive_builder::Builder,
938 ::validator::Validate,
939)]
940pub struct RecordMessage1ChoiceEnum {
941 #[serde(rename = "NtwkMgmtInitn", skip_serializing_if = "Option::is_none")]
942 pub ntwk_mgmt_initn: Option<Max2MbBinary>,
943 #[serde(rename = "RtrvlInitn", skip_serializing_if = "Option::is_none")]
944 pub rtrvl_initn: Option<Max2MbBinary>,
945 #[serde(rename = "FinRspn", skip_serializing_if = "Option::is_none")]
946 pub fin_rspn: Option<Max2MbBinary>,
947 #[serde(rename = "VrfctnRspn", skip_serializing_if = "Option::is_none")]
948 pub vrfctn_rspn: Option<Max2MbBinary>,
949 #[serde(rename = "RcncltnInitn", skip_serializing_if = "Option::is_none")]
950 pub rcncltn_initn: Option<Max2MbBinary>,
951 #[serde(rename = "RcncltnRspn", skip_serializing_if = "Option::is_none")]
952 pub rcncltn_rspn: Option<Max2MbBinary>,
953 #[serde(rename = "FinInitn", skip_serializing_if = "Option::is_none")]
954 pub fin_initn: Option<Max2MbBinary>,
955 #[serde(rename = "RtrvlFlfmtRspn", skip_serializing_if = "Option::is_none")]
956 pub rtrvl_flfmt_rspn: Option<Max2MbBinary>,
957 #[serde(rename = "FrdRptgInitn", skip_serializing_if = "Option::is_none")]
958 pub frd_rptg_initn: Option<Max2MbBinary>,
959 #[serde(rename = "FeeColltnInitn", skip_serializing_if = "Option::is_none")]
960 pub fee_colltn_initn: Option<Max2MbBinary>,
961 #[serde(rename = "AuthstnInitn", skip_serializing_if = "Option::is_none")]
962 pub authstn_initn: Option<Max2MbBinary>,
963 #[serde(rename = "ChrgBckInitn", skip_serializing_if = "Option::is_none")]
964 pub chrg_bck_initn: Option<Max2MbBinary>,
965 #[serde(rename = "NqryRspn", skip_serializing_if = "Option::is_none")]
966 pub nqry_rspn: Option<Max2MbBinary>,
967 #[serde(rename = "CardMgmtRspn", skip_serializing_if = "Option::is_none")]
968 pub card_mgmt_rspn: Option<Max2MbBinary>,
969 #[serde(rename = "AdddmRspn", skip_serializing_if = "Option::is_none")]
970 pub adddm_rspn: Option<Max2MbBinary>,
971 #[serde(rename = "NtwkMgmtRspn", skip_serializing_if = "Option::is_none")]
972 pub ntwk_mgmt_rspn: Option<Max2MbBinary>,
973 #[serde(rename = "RtrvlRspn", skip_serializing_if = "Option::is_none")]
974 pub rtrvl_rspn: Option<Max2MbBinary>,
975 #[serde(rename = "FileActnRspn", skip_serializing_if = "Option::is_none")]
976 pub file_actn_rspn: Option<Max2MbBinary>,
977 #[serde(rename = "KeyXchgInitn", skip_serializing_if = "Option::is_none")]
978 pub key_xchg_initn: Option<Max2MbBinary>,
979 #[serde(rename = "SttlmRptgInitn", skip_serializing_if = "Option::is_none")]
980 pub sttlm_rptg_initn: Option<Max2MbBinary>,
981 #[serde(rename = "FeeColltnRspn", skip_serializing_if = "Option::is_none")]
982 pub fee_colltn_rspn: Option<Max2MbBinary>,
983 #[serde(rename = "FileActnInitn", skip_serializing_if = "Option::is_none")]
984 pub file_actn_initn: Option<Max2MbBinary>,
985 #[serde(rename = "FrdRptgRspn", skip_serializing_if = "Option::is_none")]
986 pub frd_rptg_rspn: Option<Max2MbBinary>,
987 #[serde(rename = "AdddmInitn", skip_serializing_if = "Option::is_none")]
988 pub adddm_initn: Option<Max2MbBinary>,
989 #[serde(rename = "RvslInitn", skip_serializing_if = "Option::is_none")]
990 pub rvsl_initn: Option<Max2MbBinary>,
991 #[serde(rename = "VrfctnInitn", skip_serializing_if = "Option::is_none")]
992 pub vrfctn_initn: Option<Max2MbBinary>,
993 #[serde(rename = "CardMgmtInitn", skip_serializing_if = "Option::is_none")]
994 pub card_mgmt_initn: Option<Max2MbBinary>,
995 #[serde(rename = "FrdDspstnInitn", skip_serializing_if = "Option::is_none")]
996 pub frd_dspstn_initn: Option<Max2MbBinary>,
997 #[serde(rename = "NqryInitn", skip_serializing_if = "Option::is_none")]
998 pub nqry_initn: Option<Max2MbBinary>,
999 #[serde(rename = "RtrvlFlfmtInitn", skip_serializing_if = "Option::is_none")]
1000 pub rtrvl_flfmt_initn: Option<Max2MbBinary>,
1001 #[serde(rename = "ChrgBckRspn", skip_serializing_if = "Option::is_none")]
1002 pub chrg_bck_rspn: Option<Max2MbBinary>,
1003 #[serde(rename = "RvslRspn", skip_serializing_if = "Option::is_none")]
1004 pub rvsl_rspn: Option<Max2MbBinary>,
1005 #[serde(rename = "AuthstnRspn", skip_serializing_if = "Option::is_none")]
1006 pub authstn_rspn: Option<Max2MbBinary>,
1007 #[serde(rename = "SttlmRptgRspn", skip_serializing_if = "Option::is_none")]
1008 pub sttlm_rptg_rspn: Option<Max2MbBinary>,
1009 #[serde(rename = "Err", skip_serializing_if = "Option::is_none")]
1010 pub err: Option<Max2MbBinary>,
1011 #[serde(rename = "FrdDspstnRspn", skip_serializing_if = "Option::is_none")]
1012 pub frd_dspstn_rspn: Option<Max2MbBinary>,
1013 #[serde(rename = "KeyXchgRspn", skip_serializing_if = "Option::is_none")]
1014 pub key_xchg_rspn: Option<Max2MbBinary>,
1015 #[serde(rename = "Amdmnt", skip_serializing_if = "Option::is_none")]
1016 pub amdmnt: Option<Max2MbBinary>,
1017}
1018#[derive(
1019 Debug,
1020 Default,
1021 Clone,
1022 PartialEq,
1023 ::serde::Serialize,
1024 ::serde::Deserialize,
1025 ::derive_builder::Builder,
1026 ::validator::Validate,
1027)]
1028pub struct RecordMessage1Choice {
1029 #[serde(flatten)]
1030 pub value: RecordMessage1ChoiceEnum,
1031}
1032#[derive(
1033 Debug,
1034 Default,
1035 Clone,
1036 PartialEq,
1037 ::serde::Serialize,
1038 ::serde::Deserialize,
1039 ::derive_builder::Builder,
1040 ::validator::Validate,
1041)]
1042pub struct Max5NumericText {
1043 #[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
1044 #[serde(rename = "$text")]
1045 pub value: String,
1046}
1047#[derive(
1048 Debug,
1049 Default,
1050 Clone,
1051 PartialEq,
1052 ::serde::Serialize,
1053 ::serde::Deserialize,
1054 ::derive_builder::Builder,
1055 ::validator::Validate,
1056)]
1057pub struct Max35Text {
1058 #[validate(length(min = 1, max = 35,))]
1059 #[serde(rename = "$text")]
1060 pub value: String,
1061}
1062#[derive(
1063 Debug,
1064 Default,
1065 Clone,
1066 PartialEq,
1067 ::serde::Serialize,
1068 ::serde::Deserialize,
1069 ::derive_builder::Builder,
1070 ::validator::Validate,
1071)]
1072pub struct ClearingBatchData2 {
1073 #[serde(rename = "ClrMtd")]
1074 pub clr_mtd: ClearingMethod2Code,
1075 #[serde(rename = "OthrClrMtd", skip_serializing_if = "Option::is_none")]
1076 pub othr_clr_mtd: Option<Max35Text>,
1077 #[serde(rename = "ClrPrty", skip_serializing_if = "Option::is_none")]
1078 pub clr_prty: Option<Max35Text>,
1079 #[serde(rename = "ClrDt", skip_serializing_if = "Option::is_none")]
1080 pub clr_dt: Option<IsoDate>,
1081 #[serde(rename = "ClrTtls", skip_serializing_if = "Option::is_none")]
1082 pub clr_ttls: Option<ClearingTotals2>,
1083 #[serde(rename = "IntrchngFee", skip_serializing_if = "Option::is_none")]
1084 pub intrchng_fee: Option<Amount17>,
1085 #[serde(rename = "AgtFee", skip_serializing_if = "Option::is_none")]
1086 pub agt_fee: Option<Amount17>,
1087}
1088#[derive(
1089 Debug,
1090 Default,
1091 Clone,
1092 PartialEq,
1093 ::serde::Serialize,
1094 ::serde::Deserialize,
1095 ::derive_builder::Builder,
1096 ::validator::Validate,
1097)]
1098pub struct Context17 {
1099 #[serde(rename = "TxCntxt", skip_serializing_if = "Option::is_none")]
1100 pub tx_cntxt: Option<TransactionContext10>,
1101}
1102#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1103pub enum Priority3Code {
1104 #[serde(rename = "URGT")]
1105 Urgt,
1106 #[serde(rename = "HIGH")]
1107 High,
1108 #[serde(rename = "NORM")]
1109 Norm,
1110 #[default]
1111 Unknown,
1112}
1113#[derive(
1114 Debug,
1115 Default,
1116 Clone,
1117 PartialEq,
1118 ::serde::Serialize,
1119 ::serde::Deserialize,
1120 ::derive_builder::Builder,
1121 ::validator::Validate,
1122)]
1123pub struct AlgorithmIdentification28 {
1124 #[serde(rename = "Algo")]
1125 pub algo: Algorithm13Code,
1126 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
1127 pub param: Option<Parameter14>,
1128}
1129#[derive(
1130 Debug,
1131 Default,
1132 Clone,
1133 PartialEq,
1134 ::serde::Serialize,
1135 ::serde::Deserialize,
1136 ::derive_builder::Builder,
1137 ::validator::Validate,
1138)]
1139pub struct RelativeDistinguishedName1 {
1140 #[serde(rename = "AttrTp")]
1141 pub attr_tp: AttributeType1Code,
1142 #[validate]
1143 #[serde(rename = "AttrVal")]
1144 pub attr_val: Max140Text,
1145}
1146#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1147pub enum Algorithm8Code {
1148 #[serde(rename = "MGF1")]
1149 Mgf1,
1150 #[default]
1151 Unknown,
1152}
1153#[derive(
1154 Debug,
1155 Default,
1156 Clone,
1157 PartialEq,
1158 ::serde::Serialize,
1159 ::serde::Deserialize,
1160 ::derive_builder::Builder,
1161 ::validator::Validate,
1162)]
1163pub struct ClearingRecordData2 {
1164 #[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
1165 pub orgtr: Option<Originator1>,
1166 #[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
1167 pub dstn: Option<Destination1>,
1168 #[serde(rename = "ClrMtd")]
1169 pub clr_mtd: ClearingMethod2Code,
1170 #[serde(rename = "OthrClrMtd", skip_serializing_if = "Option::is_none")]
1171 pub othr_clr_mtd: Option<Max35Text>,
1172 #[serde(rename = "ClrPrty", skip_serializing_if = "Option::is_none")]
1173 pub clr_prty: Option<Max35Text>,
1174 #[serde(rename = "ClrDt", skip_serializing_if = "Option::is_none")]
1175 pub clr_dt: Option<IsoDate>,
1176 #[serde(rename = "ClrAmt", skip_serializing_if = "Option::is_none")]
1177 pub clr_amt: Option<Amount17>,
1178 #[serde(rename = "IntrchngFee", skip_serializing_if = "Option::is_none")]
1179 pub intrchng_fee: Option<Amount17>,
1180 #[serde(rename = "AgtFee", skip_serializing_if = "Option::is_none")]
1181 pub agt_fee: Option<Amount17>,
1182 #[serde(rename = "OthrAmt", skip_serializing_if = "Option::is_none")]
1183 pub othr_amt: Option<OtherAmount4>,
1184}
1185#[derive(
1186 Debug,
1187 Default,
1188 Clone,
1189 PartialEq,
1190 ::serde::Serialize,
1191 ::serde::Deserialize,
1192 ::derive_builder::Builder,
1193 ::validator::Validate,
1194)]
1195pub struct Number {
1196 #[serde(rename = "$text")]
1197 pub value: f64,
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 Max20KText {
1210 #[validate(length(min = 1, max = 20000,))]
1211 #[serde(rename = "$text")]
1212 pub value: String,
1213}
1214#[derive(
1215 Debug,
1216 Default,
1217 Clone,
1218 PartialEq,
1219 ::serde::Serialize,
1220 ::serde::Deserialize,
1221 ::derive_builder::Builder,
1222 ::validator::Validate,
1223)]
1224pub struct EncryptedData1 {
1225 #[serde(rename = "Ctrl", skip_serializing_if = "Option::is_none")]
1226 pub ctrl: Option<Exact1HexBinaryText>,
1227 #[serde(rename = "KeySetIdr", skip_serializing_if = "Option::is_none")]
1228 pub key_set_idr: Option<Max8NumericText>,
1229 #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
1230 pub drvd_inf: Option<Max32HexBinaryText>,
1231 #[serde(rename = "Algo", skip_serializing_if = "Option::is_none")]
1232 pub algo: Option<Max2NumericText>,
1233 #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
1234 pub key_lngth: Option<Max4NumericText>,
1235 #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
1236 pub key_prtcn: Option<Max2NumericText>,
1237 #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
1238 pub key_indx: Option<Max5NumericText>,
1239 #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
1240 pub pddg_mtd: Option<Max2NumericText>,
1241 #[serde(rename = "NcrptdDataFrmt", skip_serializing_if = "Option::is_none")]
1242 pub ncrptd_data_frmt: Option<Max2NumericText>,
1243 #[validate(length(min = 1,))]
1244 #[serde(rename = "NcrptdDataElmt", default)]
1245 pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
1246}
1247#[derive(
1248 Debug,
1249 Default,
1250 Clone,
1251 PartialEq,
1252 ::serde::Serialize,
1253 ::serde::Deserialize,
1254 ::derive_builder::Builder,
1255 ::validator::Validate,
1256)]
1257pub struct Iso3NumericCurrencyCode {
1258 #[validate(regex = "ISO_3_NUMERIC_CURRENCY_CODE_REGEX")]
1259 #[serde(rename = "$text")]
1260 pub value: String,
1261}
1262#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1263pub enum BytePadding1Code {
1264 #[serde(rename = "LNGT")]
1265 Lngt,
1266 #[serde(rename = "NUL8")]
1267 Nul8,
1268 #[serde(rename = "NULG")]
1269 Nulg,
1270 #[serde(rename = "NULL")]
1271 Null,
1272 #[serde(rename = "RAND")]
1273 Rand,
1274 #[default]
1275 Unknown,
1276}
1277#[derive(
1278 Debug,
1279 Default,
1280 Clone,
1281 PartialEq,
1282 ::serde::Serialize,
1283 ::serde::Deserialize,
1284 ::derive_builder::Builder,
1285 ::validator::Validate,
1286)]
1287pub struct Max140Text {
1288 #[validate(length(min = 1, max = 140,))]
1289 #[serde(rename = "$text")]
1290 pub value: String,
1291}
1292#[derive(
1293 Debug,
1294 Default,
1295 Clone,
1296 PartialEq,
1297 ::serde::Serialize,
1298 ::serde::Deserialize,
1299 ::derive_builder::Builder,
1300 ::validator::Validate,
1301)]
1302pub struct IssuerAndSerialNumber1 {
1303 #[validate]
1304 #[serde(rename = "Issr")]
1305 pub issr: CertificateIssuer1,
1306 #[validate]
1307 #[serde(rename = "SrlNb")]
1308 pub srl_nb: Max35Binary,
1309}
1310#[derive(
1311 Debug,
1312 Default,
1313 Clone,
1314 PartialEq,
1315 ::serde::Serialize,
1316 ::serde::Deserialize,
1317 ::derive_builder::Builder,
1318 ::validator::Validate,
1319)]
1320pub struct Max15NumericText {
1321 #[validate(regex = "MAX_15_NUMERIC_TEXT_REGEX")]
1322 #[serde(rename = "$text")]
1323 pub value: String,
1324}
1325#[derive(
1326 Debug,
1327 Default,
1328 Clone,
1329 PartialEq,
1330 ::serde::Serialize,
1331 ::serde::Deserialize,
1332 ::derive_builder::Builder,
1333 ::validator::Validate,
1334)]
1335pub struct Parameter13 {
1336 #[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
1337 pub dgst_algo: Option<Algorithm20Code>,
1338 #[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
1339 pub msk_gnrtr_algo: Option<AlgorithmIdentification26>,
1340}
1341#[derive(
1342 Debug,
1343 Default,
1344 Clone,
1345 PartialEq,
1346 ::serde::Serialize,
1347 ::serde::Deserialize,
1348 ::derive_builder::Builder,
1349 ::validator::Validate,
1350)]
1351pub struct ResultData8 {
1352 #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
1353 pub rslt: Option<Response6Code>,
1354 #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
1355 pub othr_rslt: Option<Max35Text>,
1356 #[serde(rename = "RsltDtls")]
1357 pub rslt_dtls: Iso8583ResponseCode,
1358 #[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
1359 pub othr_rslt_dtls: Option<Max35Text>,
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 AlgorithmIdentification26 {
1375 #[serde(rename = "Algo")]
1376 pub algo: Algorithm8Code,
1377 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
1378 pub param: Option<Algorithm5Code>,
1379}
1380#[derive(
1381 Debug,
1382 Default,
1383 Clone,
1384 PartialEq,
1385 ::serde::Serialize,
1386 ::serde::Deserialize,
1387 ::derive_builder::Builder,
1388 ::validator::Validate,
1389)]
1390pub struct Kek6 {
1391 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
1392 pub vrsn: Option<Number>,
1393 #[validate]
1394 #[serde(rename = "KEKId")]
1395 pub kek_id: KekIdentifier6,
1396 #[validate]
1397 #[serde(rename = "KeyNcrptnAlgo")]
1398 pub key_ncrptn_algo: AlgorithmIdentification28,
1399 #[serde(rename = "NcrptdKey", skip_serializing_if = "Option::is_none")]
1400 pub ncrptd_key: Option<Max500Binary>,
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 ProcessingResult20 {
1413 #[validate]
1414 #[serde(rename = "RsltData")]
1415 pub rslt_data: ResultData8,
1416 #[serde(rename = "OrgnlRsltData", skip_serializing_if = "Option::is_none")]
1417 pub orgnl_rslt_data: Option<ResultData7>,
1418}
1419#[derive(
1420 Debug,
1421 Default,
1422 Clone,
1423 PartialEq,
1424 ::serde::Serialize,
1425 ::serde::Deserialize,
1426 ::derive_builder::Builder,
1427 ::validator::Validate,
1428)]
1429#[serde(rename = "Document")]
1430pub struct Document<
1431 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1432> {
1433 #[validate]
1434 #[serde(rename = "BtchTrfInitn")]
1435 pub btch_trf_initn: BatchTransferInitiationV02<A>,
1436 #[serde(rename = "@xmlns", default = "namespace")]
1437 pub xmlns: String,
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 Max100KBinary {
1450 #[validate(length(min = 1, max = 102400,), regex = "MAX_100_K_BINARY_REGEX")]
1451 pub value: String,
1452}
1453#[derive(
1454 Debug,
1455 Default,
1456 Clone,
1457 PartialEq,
1458 ::serde::Serialize,
1459 ::serde::Deserialize,
1460 ::derive_builder::Builder,
1461 ::validator::Validate,
1462)]
1463pub struct Max12NumericText {
1464 #[validate(regex = "MAX_12_NUMERIC_TEXT_REGEX")]
1465 #[serde(rename = "$text")]
1466 pub value: String,
1467}
1468#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1469pub enum Algorithm13Code {
1470 #[serde(rename = "EA2C")]
1471 Ea2C,
1472 #[serde(rename = "E3DC")]
1473 E3Dc,
1474 #[serde(rename = "DKP9")]
1475 Dkp9,
1476 #[serde(rename = "UKPT")]
1477 Ukpt,
1478 #[serde(rename = "UKA1")]
1479 Uka1,
1480 #[serde(rename = "EA9C")]
1481 Ea9C,
1482 #[serde(rename = "EA5C")]
1483 Ea5C,
1484 #[default]
1485 Unknown,
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 AdditionalData1 {
1498 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1499 pub tp: Option<Max35Text>,
1500 #[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
1501 pub val: Option<Max2048Text>,
1502}
1503#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1504pub enum ClearingMethod2Code {
1505 #[serde(rename = "DAYC")]
1506 Dayc,
1507 #[serde(rename = "DFRD")]
1508 Dfrd,
1509 #[serde(rename = "INST")]
1510 Inst,
1511 #[serde(rename = "OTHN")]
1512 Othn,
1513 #[serde(rename = "OTHP")]
1514 Othp,
1515 #[serde(rename = "RLTM")]
1516 Rltm,
1517 #[default]
1518 Unknown,
1519}
1520#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1521pub enum MessageFunction17Code {
1522 #[serde(rename = "NOTI")]
1523 Noti,
1524 #[serde(rename = "REQU")]
1525 Requ,
1526 #[serde(rename = "ADVC")]
1527 Advc,
1528 #[default]
1529 Unknown,
1530}
1531#[derive(
1532 Debug,
1533 Default,
1534 Clone,
1535 PartialEq,
1536 ::serde::Serialize,
1537 ::serde::Deserialize,
1538 ::derive_builder::Builder,
1539 ::validator::Validate,
1540)]
1541pub struct ResultData7 {
1542 #[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
1543 pub rslt: Option<Response8Code>,
1544 #[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
1545 pub othr_rslt: Option<Max35Text>,
1546 #[serde(rename = "RsltDtls")]
1547 pub rslt_dtls: Iso8583ResponseCode,
1548 #[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
1549 pub othr_rslt_dtls: Option<Max35Text>,
1550 #[serde(
1551 rename = "TempScrCardDataReusePrtd",
1552 skip_serializing_if = "Option::is_none"
1553 )]
1554 pub temp_scr_card_data_reuse_prtd: Option<TrueFalseIndicator>,
1555 #[validate(length(min = 0,))]
1556 #[serde(rename = "AddtlRsltInf", default)]
1557 pub addtl_rslt_inf: Vec<AdditionalData1>,
1558}
1559#[derive(
1560 Debug,
1561 Default,
1562 Clone,
1563 PartialEq,
1564 ::serde::Serialize,
1565 ::serde::Deserialize,
1566 ::derive_builder::Builder,
1567 ::validator::Validate,
1568)]
1569pub struct Environment4 {
1570 #[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
1571 pub orgtr: Option<Originator1>,
1572 #[validate]
1573 #[serde(rename = "Dstn")]
1574 pub dstn: Destination1,
1575}
1576#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1577pub enum Algorithm7Code {
1578 #[serde(rename = "ERSA")]
1579 Ersa,
1580 #[serde(rename = "RSAO")]
1581 Rsao,
1582 #[default]
1583 Unknown,
1584}
1585#[derive(
1586 Debug,
1587 Default,
1588 Clone,
1589 PartialEq,
1590 ::serde::Serialize,
1591 ::serde::Deserialize,
1592 ::derive_builder::Builder,
1593 ::validator::Validate,
1594)]
1595pub struct Recipient7ChoiceEnum {
1596 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
1597 pub key_idr: Option<KekIdentifier6>,
1598 #[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
1599 pub key_trnsprt: Option<KeyTransport6>,
1600 #[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
1601 pub kek: Option<Kek6>,
1602}
1603#[derive(
1604 Debug,
1605 Default,
1606 Clone,
1607 PartialEq,
1608 ::serde::Serialize,
1609 ::serde::Deserialize,
1610 ::derive_builder::Builder,
1611 ::validator::Validate,
1612)]
1613pub struct Recipient7Choice {
1614 #[serde(flatten)]
1615 pub value: Recipient7ChoiceEnum,
1616}
1617#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1618pub enum PartyType18Code {
1619 #[serde(rename = "ACQR")]
1620 Acqr,
1621 #[serde(rename = "CISS")]
1622 Ciss,
1623 #[serde(rename = "CSCH")]
1624 Csch,
1625 #[serde(rename = "AGNT")]
1626 Agnt,
1627 #[default]
1628 Unknown,
1629}
1630#[derive(
1631 Debug,
1632 Default,
1633 Clone,
1634 PartialEq,
1635 ::serde::Serialize,
1636 ::serde::Deserialize,
1637 ::derive_builder::Builder,
1638 ::validator::Validate,
1639)]
1640pub struct Max9999HexBinaryText {
1641 #[validate(regex = "MAX_9999_HEX_BINARY_TEXT_REGEX")]
1642 #[serde(rename = "$text")]
1643 pub value: String,
1644}
1645#[derive(
1646 Debug,
1647 Default,
1648 Clone,
1649 PartialEq,
1650 ::serde::Serialize,
1651 ::serde::Deserialize,
1652 ::derive_builder::Builder,
1653 ::validator::Validate,
1654)]
1655pub struct ClearingTotals2 {
1656 #[validate]
1657 #[serde(rename = "Cnt")]
1658 pub cnt: Number,
1659 #[validate]
1660 #[serde(rename = "AcmltdAmt")]
1661 pub acmltd_amt: Amount17,
1662}
1663#[derive(
1664 Debug,
1665 Default,
1666 Clone,
1667 PartialEq,
1668 ::serde::Serialize,
1669 ::serde::Deserialize,
1670 ::derive_builder::Builder,
1671 ::validator::Validate,
1672)]
1673pub struct SettlementServiceMode1 {
1674 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1675 pub tp: Option<Max35Text>,
1676 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1677 pub id: Option<Max35Text>,
1678 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1679 pub shrt_nm: Option<Max35Text>,
1680 #[serde(rename = "SttlmPrty", skip_serializing_if = "Option::is_none")]
1681 pub sttlm_prty: Option<Priority3Code>,
1682}
1683#[derive(
1684 Debug,
1685 Default,
1686 Clone,
1687 PartialEq,
1688 ::serde::Serialize,
1689 ::serde::Deserialize,
1690 ::derive_builder::Builder,
1691 ::validator::Validate,
1692)]
1693pub struct SettlementService4 {
1694 #[serde(rename = "SttlmSvcApld", skip_serializing_if = "Option::is_none")]
1695 pub sttlm_svc_apld: Option<SettlementServiceMode1>,
1696 #[serde(rename = "SttlmSvcDts", skip_serializing_if = "Option::is_none")]
1697 pub sttlm_svc_dts: Option<SettlementServiceDate2>,
1698 #[serde(rename = "SttlmRptgNtty", skip_serializing_if = "Option::is_none")]
1699 pub sttlm_rptg_ntty: Option<SettlementReportingEntity1>,
1700 #[validate(length(min = 0,))]
1701 #[serde(rename = "AddtlSttlmInf", default)]
1702 pub addtl_sttlm_inf: Vec<AdditionalData1>,
1703}
1704#[derive(
1705 Debug,
1706 Default,
1707 Clone,
1708 PartialEq,
1709 ::serde::Serialize,
1710 ::serde::Deserialize,
1711 ::derive_builder::Builder,
1712 ::validator::Validate,
1713)]
1714pub struct Max140Binary {
1715 #[validate(length(min = 1, max = 140,), regex = "MAX_140_BINARY_REGEX")]
1716 pub value: String,
1717}
1718#[derive(
1719 Debug,
1720 Default,
1721 Clone,
1722 PartialEq,
1723 ::serde::Serialize,
1724 ::serde::Deserialize,
1725 ::derive_builder::Builder,
1726 ::validator::Validate,
1727)]
1728pub struct TransactionIdentification12 {
1729 #[validate]
1730 #[serde(rename = "SysTracAudtNb")]
1731 pub sys_trac_audt_nb: Max12NumericText,
1732 #[validate]
1733 #[serde(rename = "TrnsmssnDtTm")]
1734 pub trnsmssn_dt_tm: IsoDateTime,
1735 #[serde(rename = "RtrvlRefNb", skip_serializing_if = "Option::is_none")]
1736 pub rtrvl_ref_nb: Option<Exact12Text>,
1737 #[serde(rename = "LifeCyclTracIdData", skip_serializing_if = "Option::is_none")]
1738 pub life_cycl_trac_id_data: Option<TransactionLifeCycleIdentification2>,
1739}
1740#[derive(
1741 Debug,
1742 Default,
1743 Clone,
1744 PartialEq,
1745 ::serde::Serialize,
1746 ::serde::Deserialize,
1747 ::derive_builder::Builder,
1748 ::validator::Validate,
1749)]
1750pub struct EncryptedContent5 {
1751 #[serde(rename = "CnttTp")]
1752 pub cntt_tp: ContentType2Code,
1753 #[validate]
1754 #[serde(rename = "CnttNcrptnAlgo")]
1755 pub cntt_ncrptn_algo: AlgorithmIdentification25,
1756 #[validate(length(min = 1,))]
1757 #[serde(rename = "NcrptdDataElmt", default)]
1758 pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
1759}
1760#[derive(
1761 Debug,
1762 Default,
1763 Clone,
1764 PartialEq,
1765 ::serde::Serialize,
1766 ::serde::Deserialize,
1767 ::derive_builder::Builder,
1768 ::validator::Validate,
1769)]
1770pub struct Originator1 {
1771 #[validate]
1772 #[serde(rename = "Id")]
1773 pub id: Max35Text,
1774 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1775 pub assgnr: Option<Max35Text>,
1776 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1777 pub ctry: Option<Iso3NumericCountryCode>,
1778 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1779 pub shrt_nm: Option<Max35Text>,
1780}
1781#[derive(
1782 Debug,
1783 Default,
1784 Clone,
1785 PartialEq,
1786 ::serde::Serialize,
1787 ::serde::Deserialize,
1788 ::derive_builder::Builder,
1789 ::validator::Validate,
1790)]
1791pub struct AdditionalInformation21 {
1792 #[serde(rename = "Rcpt", skip_serializing_if = "Option::is_none")]
1793 pub rcpt: Option<PartyType23Code>,
1794 #[validate(length(min = 0,))]
1795 #[serde(rename = "Trgt", default)]
1796 pub trgt: Vec<UserInterface7Code>,
1797 #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
1798 pub frmt: Option<OutputFormat4Code>,
1799 #[validate]
1800 #[serde(rename = "Val")]
1801 pub val: Max20KText,
1802}
1803#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1804pub enum Algorithm20Code {
1805 #[serde(rename = "HS25")]
1806 Hs25,
1807 #[serde(rename = "HS38")]
1808 Hs38,
1809 #[serde(rename = "HS51")]
1810 Hs51,
1811 #[default]
1812 Unknown,
1813}
1814#[derive(
1815 Debug,
1816 Default,
1817 Clone,
1818 PartialEq,
1819 ::serde::Serialize,
1820 ::serde::Deserialize,
1821 ::derive_builder::Builder,
1822 ::validator::Validate,
1823)]
1824pub struct Exact1HexBinaryText {
1825 #[validate(regex = "EXACT_1_HEX_BINARY_TEXT_REGEX")]
1826 #[serde(rename = "$text")]
1827 pub value: String,
1828}
1829#[derive(
1830 Debug,
1831 Default,
1832 Clone,
1833 PartialEq,
1834 ::serde::Serialize,
1835 ::serde::Deserialize,
1836 ::derive_builder::Builder,
1837 ::validator::Validate,
1838)]
1839pub struct TransactionLifeCycleIdentification2 {
1840 #[validate]
1841 #[serde(rename = "Id")]
1842 pub id: Exact15Text,
1843}
1844#[derive(
1845 Debug,
1846 Default,
1847 Clone,
1848 PartialEq,
1849 ::serde::Serialize,
1850 ::serde::Deserialize,
1851 ::derive_builder::Builder,
1852 ::validator::Validate,
1853)]
1854pub struct Exact12Text {
1855 #[serde(rename = "$text")]
1856 pub value: String,
1857}
1858#[derive(
1859 Debug,
1860 Default,
1861 Clone,
1862 PartialEq,
1863 ::serde::Serialize,
1864 ::serde::Deserialize,
1865 ::derive_builder::Builder,
1866 ::validator::Validate,
1867)]
1868pub struct MacData1 {
1869 #[validate]
1870 #[serde(rename = "Ctrl")]
1871 pub ctrl: Exact1HexBinaryText,
1872 #[validate]
1873 #[serde(rename = "KeySetIdr")]
1874 pub key_set_idr: Max8NumericText,
1875 #[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
1876 pub drvd_inf: Option<Max32HexBinaryText>,
1877 #[validate]
1878 #[serde(rename = "Algo")]
1879 pub algo: Max2NumericText,
1880 #[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
1881 pub key_lngth: Option<Max4NumericText>,
1882 #[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
1883 pub key_prtcn: Option<Max2NumericText>,
1884 #[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
1885 pub key_indx: Option<Max5NumericText>,
1886 #[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
1887 pub pddg_mtd: Option<Max2NumericText>,
1888 #[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
1889 pub initlstn_vctr: Option<Max32HexBinaryText>,
1890}
1891#[derive(
1892 Debug,
1893 Default,
1894 Clone,
1895 PartialEq,
1896 ::serde::Serialize,
1897 ::serde::Deserialize,
1898 ::derive_builder::Builder,
1899 ::validator::Validate,
1900)]
1901pub struct Max8NumericText {
1902 #[validate(regex = "MAX_8_NUMERIC_TEXT_REGEX")]
1903 #[serde(rename = "$text")]
1904 pub value: String,
1905}
1906#[derive(
1907 Debug,
1908 Default,
1909 Clone,
1910 PartialEq,
1911 ::serde::Serialize,
1912 ::serde::Deserialize,
1913 ::derive_builder::Builder,
1914 ::validator::Validate,
1915)]
1916pub struct Destination1 {
1917 #[validate]
1918 #[serde(rename = "Id")]
1919 pub id: Max35Text,
1920 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1921 pub assgnr: Option<Max35Text>,
1922 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1923 pub ctry: Option<Iso3NumericCountryCode>,
1924 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1925 pub shrt_nm: Option<Max35Text>,
1926}
1927#[derive(
1928 Debug,
1929 Default,
1930 Clone,
1931 PartialEq,
1932 ::serde::Serialize,
1933 ::serde::Deserialize,
1934 ::derive_builder::Builder,
1935 ::validator::Validate,
1936)]
1937pub struct GenericIdentification183 {
1938 #[validate]
1939 #[serde(rename = "Id")]
1940 pub id: Max35Text,
1941 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1942 pub tp: Option<PartyType17Code>,
1943 #[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
1944 pub othr_tp: Option<Max35Text>,
1945 #[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
1946 pub assgnr: Option<PartyType18Code>,
1947 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1948 pub ctry: Option<IsoMax3ACountryCode>,
1949 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1950 pub shrt_nm: Option<Max35Text>,
1951}
1952#[derive(
1953 Debug,
1954 Default,
1955 Clone,
1956 PartialEq,
1957 ::serde::Serialize,
1958 ::serde::Deserialize,
1959 ::derive_builder::Builder,
1960 ::validator::Validate,
1961)]
1962pub struct Iso8583ResponseCode {
1963 #[validate(regex = "ISO_8583_RESPONSE_CODE_REGEX")]
1964 #[serde(rename = "$text")]
1965 pub value: String,
1966}
1967#[derive(
1968 Debug,
1969 Default,
1970 Clone,
1971 PartialEq,
1972 ::serde::Serialize,
1973 ::serde::Deserialize,
1974 ::derive_builder::Builder,
1975 ::validator::Validate,
1976)]
1977pub struct Max2048Text {
1978 #[validate(length(min = 1, max = 2048,))]
1979 #[serde(rename = "$text")]
1980 pub value: String,
1981}
1982#[derive(
1983 Debug,
1984 Default,
1985 Clone,
1986 PartialEq,
1987 ::serde::Serialize,
1988 ::serde::Deserialize,
1989 ::derive_builder::Builder,
1990 ::validator::Validate,
1991)]
1992pub struct Recipient5ChoiceEnum {
1993 #[serde(rename = "IssrAndSrlNb", skip_serializing_if = "Option::is_none")]
1994 pub issr_and_srl_nb: Option<IssuerAndSerialNumber1>,
1995 #[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
1996 pub key_idr: Option<KekIdentifier2>,
1997}
1998#[derive(
1999 Debug,
2000 Default,
2001 Clone,
2002 PartialEq,
2003 ::serde::Serialize,
2004 ::serde::Deserialize,
2005 ::derive_builder::Builder,
2006 ::validator::Validate,
2007)]
2008pub struct Recipient5Choice {
2009 #[serde(flatten)]
2010 pub value: Recipient5ChoiceEnum,
2011}
2012#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2013pub enum Response6Code {
2014 #[serde(rename = "UNPR")]
2015 Unpr,
2016 #[serde(rename = "PPRC")]
2017 Pprc,
2018 #[serde(rename = "PRCS")]
2019 Prcs,
2020 #[serde(rename = "REJT")]
2021 Rejt,
2022 #[serde(rename = "OTHP")]
2023 Othp,
2024 #[serde(rename = "OTHN")]
2025 Othn,
2026 #[serde(rename = "TECH")]
2027 Tech,
2028 #[serde(rename = "UNRV")]
2029 Unrv,
2030 #[default]
2031 Unknown,
2032}
2033#[derive(
2034 Debug,
2035 Default,
2036 Clone,
2037 PartialEq,
2038 ::serde::Serialize,
2039 ::serde::Deserialize,
2040 ::derive_builder::Builder,
2041 ::validator::Validate,
2042)]
2043pub struct SupplementaryDataEnvelope1<
2044 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2045> {
2046 #[validate]
2047 #[serde(flatten)]
2048 pub value: A,
2049}
2050#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2051pub enum EncryptionFormat3Code {
2052 #[serde(rename = "TR34")]
2053 Tr34,
2054 #[serde(rename = "TR31")]
2055 Tr31,
2056 #[serde(rename = "CTCE")]
2057 Ctce,
2058 #[serde(rename = "CBCE")]
2059 Cbce,
2060 #[default]
2061 Unknown,
2062}
2063#[derive(
2064 Debug,
2065 Default,
2066 Clone,
2067 PartialEq,
2068 ::serde::Serialize,
2069 ::serde::Deserialize,
2070 ::derive_builder::Builder,
2071 ::validator::Validate,
2072)]
2073pub struct AlgorithmIdentification27 {
2074 #[serde(rename = "Algo")]
2075 pub algo: Algorithm7Code,
2076 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
2077 pub param: Option<Parameter13>,
2078}
2079#[derive(
2080 Debug,
2081 Default,
2082 Clone,
2083 PartialEq,
2084 ::serde::Serialize,
2085 ::serde::Deserialize,
2086 ::derive_builder::Builder,
2087 ::validator::Validate,
2088)]
2089pub struct OtherAmount4 {
2090 #[validate]
2091 #[serde(rename = "ClrCnt")]
2092 pub clr_cnt: Number,
2093 #[validate]
2094 #[serde(rename = "ClrAmt")]
2095 pub clr_amt: Amount17,
2096 #[serde(rename = "IntrchngFee", skip_serializing_if = "Option::is_none")]
2097 pub intrchng_fee: Option<Amount17>,
2098 #[serde(rename = "AgtFee", skip_serializing_if = "Option::is_none")]
2099 pub agt_fee: Option<Amount17>,
2100}
2101#[derive(
2102 Debug,
2103 Default,
2104 Clone,
2105 PartialEq,
2106 ::serde::Serialize,
2107 ::serde::Deserialize,
2108 ::derive_builder::Builder,
2109 ::validator::Validate,
2110)]
2111pub struct Traceability9 {
2112 #[validate]
2113 #[serde(rename = "RlayId")]
2114 pub rlay_id: GenericIdentification183,
2115 #[serde(rename = "TracDtTmIn", skip_serializing_if = "Option::is_none")]
2116 pub trac_dt_tm_in: Option<IsoDateTime>,
2117 #[serde(rename = "TracDtTmOut", skip_serializing_if = "Option::is_none")]
2118 pub trac_dt_tm_out: Option<IsoDateTime>,
2119}
2120#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2121pub enum PartyType23Code {
2122 #[serde(rename = "OTHN")]
2123 Othn,
2124 #[serde(rename = "OTHP")]
2125 Othp,
2126 #[serde(rename = "CLRA")]
2127 Clra,
2128 #[default]
2129 Unknown,
2130}
2131#[derive(
2132 Debug,
2133 Default,
2134 Clone,
2135 PartialEq,
2136 ::serde::Serialize,
2137 ::serde::Deserialize,
2138 ::derive_builder::Builder,
2139 ::validator::Validate,
2140)]
2141pub struct CardProgrammeMode3 {
2142 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
2143 pub tp: Option<Max35Text>,
2144 #[validate]
2145 #[serde(rename = "Id")]
2146 pub id: Max35Text,
2147 #[validate(length(min = 0,))]
2148 #[serde(rename = "AddtlId", default)]
2149 pub addtl_id: Vec<AdditionalData1>,
2150}
2151#[derive(
2152 Debug,
2153 Default,
2154 Clone,
2155 PartialEq,
2156 ::serde::Serialize,
2157 ::serde::Deserialize,
2158 ::derive_builder::Builder,
2159 ::validator::Validate,
2160)]
2161pub struct ClearingControlTotals2 {
2162 #[validate]
2163 #[serde(rename = "ClrCtrlCnt")]
2164 pub clr_ctrl_cnt: Number,
2165 #[validate]
2166 #[serde(rename = "ClrCtrlAmt")]
2167 pub clr_ctrl_amt: Amount17,
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 Max5000Binary {
2180 #[validate(length(min = 1, max = 5000,), regex = "MAX_5000_BINARY_REGEX")]
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 TransactionContext10 {
2194 #[serde(rename = "CardPrgrmmApld", skip_serializing_if = "Option::is_none")]
2195 pub card_prgrmm_apld: Option<CardProgrammeMode3>,
2196 #[serde(rename = "Jursdctn", skip_serializing_if = "Option::is_none")]
2197 pub jursdctn: Option<Jurisdiction2>,
2198 #[serde(rename = "SttlmSvc", skip_serializing_if = "Option::is_none")]
2199 pub sttlm_svc: Option<SettlementService4>,
2200 #[serde(rename = "Rcncltn", skip_serializing_if = "Option::is_none")]
2201 pub rcncltn: Option<Reconciliation3>,
2202 #[validate(length(min = 0,))]
2203 #[serde(rename = "AddtlData", default)]
2204 pub addtl_data: Vec<AdditionalData1>,
2205}
2206#[derive(
2207 Debug,
2208 Default,
2209 Clone,
2210 PartialEq,
2211 ::serde::Serialize,
2212 ::serde::Deserialize,
2213 ::derive_builder::Builder,
2214 ::validator::Validate,
2215)]
2216pub struct CertificateIssuer1 {
2217 #[validate(length(min = 1,))]
2218 #[serde(rename = "RltvDstngshdNm", default)]
2219 pub rltv_dstngshd_nm: Vec<RelativeDistinguishedName1>,
2220}
2221#[derive(
2222 Debug,
2223 Default,
2224 Clone,
2225 PartialEq,
2226 ::serde::Serialize,
2227 ::serde::Deserialize,
2228 ::derive_builder::Builder,
2229 ::validator::Validate,
2230)]
2231pub struct Max2MbBinary {
2232 #[validate(length(min = 1, max = 2097152,), regex = "MAX_2_MB_BINARY_REGEX")]
2233 pub value: String,
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 TrueFalseIndicator {
2246 #[serde(rename = "$text")]
2247 pub value: bool,
2248}
2249#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2250pub enum Algorithm5Code {
2251 #[serde(rename = "HS25")]
2252 Hs25,
2253 #[serde(rename = "HS38")]
2254 Hs38,
2255 #[serde(rename = "HS51")]
2256 Hs51,
2257 #[default]
2258 Unknown,
2259}
2260#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2261pub enum ContentType3Code {
2262 #[serde(rename = "EVLP")]
2263 Evlp,
2264 #[serde(rename = "IFSE")]
2265 Ifse,
2266 #[default]
2267 Unknown,
2268}
2269#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2270pub enum Algorithm23Code {
2271 #[serde(rename = "EA2C")]
2272 Ea2C,
2273 #[serde(rename = "E3DC")]
2274 E3Dc,
2275 #[serde(rename = "EA9C")]
2276 Ea9C,
2277 #[serde(rename = "EA5C")]
2278 Ea5C,
2279 #[serde(rename = "EA2R")]
2280 Ea2R,
2281 #[serde(rename = "EA9R")]
2282 Ea9R,
2283 #[serde(rename = "EA5R")]
2284 Ea5R,
2285 #[serde(rename = "E3DR")]
2286 E3Dr,
2287 #[serde(rename = "E36C")]
2288 E36C,
2289 #[serde(rename = "E36R")]
2290 E36R,
2291 #[serde(rename = "SD5C")]
2292 Sd5C,
2293 #[default]
2294 Unknown,
2295}
2296#[derive(
2297 Debug,
2298 Default,
2299 Clone,
2300 PartialEq,
2301 ::serde::Serialize,
2302 ::serde::Deserialize,
2303 ::derive_builder::Builder,
2304 ::validator::Validate,
2305)]
2306pub struct SettlementServiceDate2 {
2307 #[serde(rename = "ReqdSttlmDt", skip_serializing_if = "Option::is_none")]
2308 pub reqd_sttlm_dt: Option<IsoDate>,
2309 #[serde(rename = "DfrrdSttlmInd", skip_serializing_if = "Option::is_none")]
2310 pub dfrrd_sttlm_ind: Option<TrueFalseIndicator>,
2311 #[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
2312 pub sttlm_dt: Option<IsoDate>,
2313 #[serde(rename = "SttlmTm", skip_serializing_if = "Option::is_none")]
2314 pub sttlm_tm: Option<IsoTime>,
2315 #[serde(rename = "SttlmPrd", skip_serializing_if = "Option::is_none")]
2316 pub sttlm_prd: Option<Max35Text>,
2317 #[serde(rename = "SttlmCutOffTm", skip_serializing_if = "Option::is_none")]
2318 pub sttlm_cut_off_tm: Option<IsoDateTime>,
2319}
2320#[derive(
2321 Debug,
2322 Default,
2323 Clone,
2324 PartialEq,
2325 ::serde::Serialize,
2326 ::serde::Deserialize,
2327 ::derive_builder::Builder,
2328 ::validator::Validate,
2329)]
2330pub struct AlgorithmIdentification25 {
2331 #[serde(rename = "Algo")]
2332 pub algo: Algorithm23Code,
2333 #[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
2334 pub param: Option<Parameter7>,
2335}
2336#[derive(
2337 Debug,
2338 Default,
2339 Clone,
2340 PartialEq,
2341 ::serde::Serialize,
2342 ::serde::Deserialize,
2343 ::derive_builder::Builder,
2344 ::validator::Validate,
2345)]
2346pub struct Iso3NumericCountryCode {
2347 #[validate(regex = "ISO_3_NUMERIC_COUNTRY_CODE_REGEX")]
2348 #[serde(rename = "$text")]
2349 pub value: String,
2350}
2351#[derive(
2352 Debug,
2353 Default,
2354 Clone,
2355 PartialEq,
2356 ::serde::Serialize,
2357 ::serde::Deserialize,
2358 ::derive_builder::Builder,
2359 ::validator::Validate,
2360)]
2361pub struct BatchTransferInitiation2<
2362 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2363> {
2364 #[validate]
2365 #[serde(rename = "Envt")]
2366 pub envt: Environment4,
2367 #[serde(rename = "Cntxt", skip_serializing_if = "Option::is_none")]
2368 pub cntxt: Option<Context17>,
2369 #[validate]
2370 #[serde(rename = "Tx")]
2371 pub tx: Transaction141,
2372 #[serde(rename = "PrcgRslt", skip_serializing_if = "Option::is_none")]
2373 pub prcg_rslt: Option<ProcessingResult20>,
2374 #[validate(length(min = 0,))]
2375 #[serde(rename = "PrtctdData", default)]
2376 pub prtctd_data: Vec<ProtectedData1>,
2377 #[validate(length(min = 0,))]
2378 #[serde(rename = "SplmtryData", default)]
2379 pub splmtry_data: Vec<SupplementaryData1<A>>,
2380}