1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 static ref COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}"#).unwrap();
25}
26
27::lazy_static::lazy_static! {
28 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();
29}
30
31::lazy_static::lazy_static! {
32 static ref ISO_2_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,2}"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36 static ref ANY_BIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"#).unwrap();
37}
38
39::lazy_static::lazy_static! {
40 static ref PHONE_NUMBER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"\+[0-9]{1,3}-[0-9()+\-]{1,30}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 static ref ACTIVE_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
45}
46
47pub fn namespace() -> String {
49 "urn:iso:std:iso:20022:tech:xsd:tsrv.002.001.01".to_string()
50}
51
52#[derive(
53 Debug,
54 Default,
55 Clone,
56 PartialEq,
57 ::serde::Serialize,
58 ::serde::Deserialize,
59 ::derive_builder::Builder,
60 ::validator::Validate,
61)]
62pub struct Max35Text {
63 #[validate(length(min = 1, max = 35,))]
64 #[serde(rename = "$text")]
65 pub value: String,
66}
67#[derive(
68 Debug,
69 Default,
70 Clone,
71 PartialEq,
72 ::serde::Serialize,
73 ::serde::Deserialize,
74 ::derive_builder::Builder,
75 ::validator::Validate,
76)]
77pub struct AmountOrPercentage1ChoiceEnum {
78 #[serde(rename = "DfndAmt", skip_serializing_if = "Option::is_none")]
79 pub dfnd_amt: Option<UndertakingAmount4>,
80 #[serde(rename = "PctgAmt", skip_serializing_if = "Option::is_none")]
81 pub pctg_amt: Option<Percentage1>,
82}
83#[derive(
84 Debug,
85 Default,
86 Clone,
87 PartialEq,
88 ::serde::Serialize,
89 ::serde::Deserialize,
90 ::derive_builder::Builder,
91 ::validator::Validate,
92)]
93pub struct AmountOrPercentage1Choice {
94 #[serde(flatten)]
95 pub value: AmountOrPercentage1ChoiceEnum,
96}
97#[derive(
98 Debug,
99 Default,
100 Clone,
101 PartialEq,
102 ::serde::Serialize,
103 ::serde::Deserialize,
104 ::derive_builder::Builder,
105 ::validator::Validate,
106)]
107pub struct Party11ChoiceEnum {
108 #[serde(rename = "PrvtId", skip_serializing_if = "Option::is_none")]
109 pub prvt_id: Option<PersonIdentification5>,
110 #[serde(rename = "OrgId", skip_serializing_if = "Option::is_none")]
111 pub org_id: Option<OrganisationIdentification8>,
112}
113#[derive(
114 Debug,
115 Default,
116 Clone,
117 PartialEq,
118 ::serde::Serialize,
119 ::serde::Deserialize,
120 ::derive_builder::Builder,
121 ::validator::Validate,
122)]
123pub struct Party11Choice {
124 #[serde(flatten)]
125 pub value: Party11ChoiceEnum,
126}
127#[derive(
128 Debug,
129 Default,
130 Clone,
131 PartialEq,
132 ::serde::Serialize,
133 ::serde::Deserialize,
134 ::derive_builder::Builder,
135 ::validator::Validate,
136)]
137pub struct PlaceOrUnderConfirmationChoice1Enum {
138 #[serde(rename = "PresntnUdrConf", skip_serializing_if = "Option::is_none")]
139 pub presntn_udr_conf: Option<PresentationParty1Code>,
140 #[serde(rename = "PlcOfPresntn", skip_serializing_if = "Option::is_none")]
141 pub plc_of_presntn: Option<PlaceOfPresentation1>,
142}
143#[derive(
144 Debug,
145 Default,
146 Clone,
147 PartialEq,
148 ::serde::Serialize,
149 ::serde::Deserialize,
150 ::derive_builder::Builder,
151 ::validator::Validate,
152)]
153pub struct PlaceOrUnderConfirmationChoice1 {
154 #[serde(flatten)]
155 pub value: PlaceOrUnderConfirmationChoice1Enum,
156}
157#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
158pub enum UndertakingIssuanceName1Code {
159 #[serde(rename = "STBY")]
160 Stby,
161 #[serde(rename = "DGAR")]
162 Dgar,
163 #[default]
164 Unknown,
165}
166#[derive(
167 Debug,
168 Default,
169 Clone,
170 PartialEq,
171 ::serde::Serialize,
172 ::serde::Deserialize,
173 ::derive_builder::Builder,
174 ::validator::Validate,
175)]
176pub struct Max140Text {
177 #[validate(length(min = 1, max = 140,))]
178 #[serde(rename = "$text")]
179 pub value: String,
180}
181#[derive(
182 Debug,
183 Default,
184 Clone,
185 PartialEq,
186 ::serde::Serialize,
187 ::serde::Deserialize,
188 ::derive_builder::Builder,
189 ::validator::Validate,
190)]
191pub struct DateInformation1 {
192 #[validate]
193 #[serde(rename = "StartDt")]
194 pub start_dt: IsoDate,
195 #[serde(rename = "Frqcy")]
196 pub frqcy: ExternalDateFrequency1Code,
197 #[validate]
198 #[serde(rename = "Nb")]
199 pub nb: Number,
200}
201#[derive(
202 Debug,
203 Default,
204 Clone,
205 PartialEq,
206 ::serde::Serialize,
207 ::serde::Deserialize,
208 ::derive_builder::Builder,
209 ::validator::Validate,
210)]
211pub struct Document9<
212 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
213> {
214 #[serde(rename = "Tp")]
215 pub tp: UndertakingDocumentType1Choice,
216 #[validate]
217 #[serde(rename = "Id")]
218 pub id: Max35Text,
219 #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
220 pub frmt: Option<DocumentFormat1Choice>,
221 #[validate]
222 #[serde(rename = "Nclsr")]
223 pub nclsr: Max2MbBinary,
224 #[serde(rename = "DgtlSgntr", skip_serializing_if = "Option::is_none")]
225 pub dgtl_sgntr: Option<PartyAndSignature2<A>>,
226}
227#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
228pub enum GovernanceIdentification1Code {
229 #[serde(rename = "ISPR")]
230 Ispr,
231 #[serde(rename = "NONE")]
232 None,
233 #[serde(rename = "UCPR")]
234 Ucpr,
235 #[serde(rename = "URDG")]
236 Urdg,
237 #[default]
238 Unknown,
239}
240#[derive(
241 Debug,
242 Default,
243 Clone,
244 PartialEq,
245 ::serde::Serialize,
246 ::serde::Deserialize,
247 ::derive_builder::Builder,
248 ::validator::Validate,
249)]
250pub struct ModelFormIdentification1ChoiceEnum {
251 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
252 pub cd: Option<ExternalModelFormIdentification1Code>,
253 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
254 pub prtry: Option<GenericIdentification1>,
255}
256#[derive(
257 Debug,
258 Default,
259 Clone,
260 PartialEq,
261 ::serde::Serialize,
262 ::serde::Deserialize,
263 ::derive_builder::Builder,
264 ::validator::Validate,
265)]
266pub struct ModelFormIdentification1Choice {
267 #[serde(flatten)]
268 pub value: ModelFormIdentification1ChoiceEnum,
269}
270#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
271pub enum IssuanceType1Code {
272 #[serde(rename = "CRQL")]
273 Crql,
274 #[serde(rename = "CRQC")]
275 Crqc,
276 #[serde(rename = "ISSU")]
277 Issu,
278 #[serde(rename = "ISCO")]
279 Isco,
280 #[serde(rename = "ISAD")]
281 Isad,
282 #[default]
283 Unknown,
284}
285#[derive(
286 Debug,
287 Default,
288 Clone,
289 PartialEq,
290 ::serde::Serialize,
291 ::serde::Deserialize,
292 ::derive_builder::Builder,
293 ::validator::Validate,
294)]
295pub struct NonExtension1 {
296 #[serde(rename = "NtfctnPrd", skip_serializing_if = "Option::is_none")]
297 pub ntfctn_prd: Option<Number>,
298 #[serde(rename = "NtfctnMtd", skip_serializing_if = "Option::is_none")]
299 pub ntfctn_mtd: Option<CommunicationMethod1Choice>,
300 #[serde(rename = "NtfctnRcptTp", skip_serializing_if = "Option::is_none")]
301 pub ntfctn_rcpt_tp: Option<PartyType1Choice>,
302 #[serde(rename = "NtfctnRcptNm", skip_serializing_if = "Option::is_none")]
303 pub ntfctn_rcpt_nm: Option<Max140Text>,
304 #[serde(rename = "NtfctnRcptAdr", skip_serializing_if = "Option::is_none")]
305 pub ntfctn_rcpt_adr: Option<PostalAddress6>,
306}
307#[derive(
308 Debug,
309 Default,
310 Clone,
311 PartialEq,
312 ::serde::Serialize,
313 ::serde::Deserialize,
314 ::derive_builder::Builder,
315 ::validator::Validate,
316)]
317pub struct PartyAndSignature2<
318 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
319> {
320 #[validate]
321 #[serde(rename = "Pty")]
322 pub pty: PartyIdentification43,
323 #[validate]
324 #[serde(rename = "Sgntr")]
325 pub sgntr: ProprietaryData3<A>,
326}
327#[derive(
328 Debug,
329 Default,
330 Clone,
331 PartialEq,
332 ::serde::Serialize,
333 ::serde::Deserialize,
334 ::derive_builder::Builder,
335 ::validator::Validate,
336)]
337pub struct PartyType1ChoiceEnum {
338 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
339 pub cd: Option<ExternalTypeOfParty1Code>,
340 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
341 pub prtry: Option<GenericIdentification1>,
342}
343#[derive(
344 Debug,
345 Default,
346 Clone,
347 PartialEq,
348 ::serde::Serialize,
349 ::serde::Deserialize,
350 ::derive_builder::Builder,
351 ::validator::Validate,
352)]
353pub struct PartyType1Choice {
354 #[serde(flatten)]
355 pub value: PartyType1ChoiceEnum,
356}
357#[derive(
358 Debug,
359 Default,
360 Clone,
361 PartialEq,
362 ::serde::Serialize,
363 ::serde::Deserialize,
364 ::derive_builder::Builder,
365 ::validator::Validate,
366)]
367pub struct Trigger1 {
368 #[serde(rename = "DtChc", skip_serializing_if = "Option::is_none")]
369 pub dt_chc: Option<FixedOrRecurrentDate1Choice>,
370 #[validate(length(min = 0,))]
371 #[serde(rename = "DcmntryEvt", default)]
372 pub dcmntry_evt: Vec<Document10>,
373}
374#[derive(
375 Debug,
376 Default,
377 Clone,
378 PartialEq,
379 ::serde::Serialize,
380 ::serde::Deserialize,
381 ::derive_builder::Builder,
382 ::validator::Validate,
383)]
384pub struct CountryCode {
385 #[validate(regex = "COUNTRY_CODE_REGEX")]
386 #[serde(rename = "$text")]
387 pub value: String,
388}
389#[derive(
390 Debug,
391 Default,
392 Clone,
393 PartialEq,
394 ::serde::Serialize,
395 ::serde::Deserialize,
396 ::derive_builder::Builder,
397 ::validator::Validate,
398)]
399pub struct Max2MbBinary {
400 #[validate(length(min = 1, max = 2097152,), regex = "MAX_2_MB_BINARY_REGEX")]
401 pub value: String,
402}
403#[derive(
404 Debug,
405 Default,
406 Clone,
407 PartialEq,
408 ::serde::Serialize,
409 ::serde::Deserialize,
410 ::derive_builder::Builder,
411 ::validator::Validate,
412)]
413pub struct DateAndPlaceOfBirth {
414 #[validate]
415 #[serde(rename = "BirthDt")]
416 pub birth_dt: IsoDate,
417 #[serde(rename = "PrvcOfBirth", skip_serializing_if = "Option::is_none")]
418 pub prvc_of_birth: Option<Max35Text>,
419 #[validate]
420 #[serde(rename = "CityOfBirth")]
421 pub city_of_birth: Max35Text,
422 #[serde(rename = "CtryOfBirth")]
423 pub ctry_of_birth: CountryCode,
424}
425#[derive(
426 Debug,
427 Default,
428 Clone,
429 PartialEq,
430 ::serde::Serialize,
431 ::serde::Deserialize,
432 ::derive_builder::Builder,
433 ::validator::Validate,
434)]
435pub struct GenericOrganisationIdentification1 {
436 #[validate]
437 #[serde(rename = "Id")]
438 pub id: Max35Text,
439 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
440 pub schme_nm: Option<OrganisationIdentificationSchemeName1Choice>,
441 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
442 pub issr: Option<Max35Text>,
443}
444#[derive(
445 Debug,
446 Default,
447 Clone,
448 PartialEq,
449 ::serde::Serialize,
450 ::serde::Deserialize,
451 ::derive_builder::Builder,
452 ::validator::Validate,
453)]
454pub struct GovernanceIdentification1ChoiceEnum {
455 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
456 pub prtry: Option<GenericIdentification1>,
457 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
458 pub cd: Option<GovernanceIdentification1Code>,
459}
460#[derive(
461 Debug,
462 Default,
463 Clone,
464 PartialEq,
465 ::serde::Serialize,
466 ::serde::Deserialize,
467 ::derive_builder::Builder,
468 ::validator::Validate,
469)]
470pub struct GovernanceIdentification1Choice {
471 #[serde(flatten)]
472 pub value: GovernanceIdentification1ChoiceEnum,
473}
474#[derive(
475 Debug,
476 Default,
477 Clone,
478 PartialEq,
479 ::serde::Serialize,
480 ::serde::Deserialize,
481 ::derive_builder::Builder,
482 ::validator::Validate,
483)]
484pub struct GovernanceRules1 {
485 #[serde(rename = "RuleId")]
486 pub rule_id: GovernanceIdentification1Choice,
487 #[serde(rename = "AplblLaw", skip_serializing_if = "Option::is_none")]
488 pub aplbl_law: Option<Location1>,
489 #[validate(length(min = 0,))]
490 #[serde(rename = "Jursdctn", default)]
491 pub jursdctn: Vec<Location1>,
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 PartyIdentification43 {
504 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
505 pub nm: Option<Max140Text>,
506 #[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
507 pub pstl_adr: Option<PostalAddress6>,
508 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
509 pub id: Option<Party11Choice>,
510 #[serde(rename = "CtryOfRes", skip_serializing_if = "Option::is_none")]
511 pub ctry_of_res: Option<CountryCode>,
512 #[serde(rename = "CtctDtls", skip_serializing_if = "Option::is_none")]
513 pub ctct_dtls: Option<ContactDetails2>,
514}
515#[derive(
516 Debug,
517 Default,
518 Clone,
519 PartialEq,
520 ::serde::Serialize,
521 ::serde::Deserialize,
522 ::derive_builder::Builder,
523 ::validator::Validate,
524)]
525#[serde(rename = "Document")]
526pub struct Document<
527 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
528 B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
529 C: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
530 D: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
531> {
532 #[serde(rename = "UdrtkgIssncAdvc")]
533 pub udrtkg_issnc_advc: UndertakingIssuanceAdviceV01<A, B, C, D>,
534 #[serde(rename = "@xmlns", default = "namespace")]
535 pub xmlns: String,
536}
537#[derive(
538 Debug,
539 Default,
540 Clone,
541 PartialEq,
542 ::serde::Serialize,
543 ::serde::Deserialize,
544 ::derive_builder::Builder,
545 ::validator::Validate,
546)]
547pub struct ExternalDocumentFormat1Code {
548 #[validate(length(min = 1, max = 4,))]
549 #[serde(rename = "$text")]
550 pub value: String,
551}
552#[derive(
553 Debug,
554 Default,
555 Clone,
556 PartialEq,
557 ::serde::Serialize,
558 ::serde::Deserialize,
559 ::derive_builder::Builder,
560 ::validator::Validate,
561)]
562pub struct IsoDate {
563 #[serde(rename = "$text")]
564 pub value: ::chrono::NaiveDate,
565}
566#[derive(
567 Debug,
568 Default,
569 Clone,
570 PartialEq,
571 ::serde::Serialize,
572 ::serde::Deserialize,
573 ::derive_builder::Builder,
574 ::validator::Validate,
575)]
576pub struct UndertakingAmount4 {
577 #[validate]
578 #[serde(rename = "VartnAmt")]
579 pub vartn_amt: ActiveCurrencyAndAmount,
580 #[serde(rename = "BalAmt", skip_serializing_if = "Option::is_none")]
581 pub bal_amt: Option<ActiveCurrencyAndAmount>,
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 UndertakingIssuanceAdviceV01<
594 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
595 B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
596 C: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
597 D: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
598> {
599 #[validate]
600 #[serde(rename = "AdvsgPty")]
601 pub advsg_pty: PartyIdentification43,
602 #[serde(rename = "ScndAdvsgPty", skip_serializing_if = "Option::is_none")]
603 pub scnd_advsg_pty: Option<PartyIdentification43>,
604 #[serde(rename = "DtOfAdvc")]
605 pub dt_of_advc: DateAndDateTimeChoice,
606 #[serde(rename = "UdrtkgIssncAdvcDtls")]
607 pub udrtkg_issnc_advc_dtls: UndertakingAdvice1<A, B, C>,
608 #[validate(length(min = 0, max = 5,))]
609 #[serde(rename = "BkToBkInf", default)]
610 pub bk_to_bk_inf: Vec<Max2000Text>,
611 #[serde(rename = "DgtlSgntr", skip_serializing_if = "Option::is_none")]
612 pub dgtl_sgntr: Option<PartyAndSignature2<D>>,
613}
614#[derive(
615 Debug,
616 Default,
617 Clone,
618 PartialEq,
619 ::serde::Serialize,
620 ::serde::Deserialize,
621 ::derive_builder::Builder,
622 ::validator::Validate,
623)]
624pub struct Channel1ChoiceEnum {
625 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
626 pub cd: Option<ExternalChannel1Code>,
627 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
628 pub prtry: Option<GenericIdentification1>,
629}
630#[derive(
631 Debug,
632 Default,
633 Clone,
634 PartialEq,
635 ::serde::Serialize,
636 ::serde::Deserialize,
637 ::derive_builder::Builder,
638 ::validator::Validate,
639)]
640pub struct Channel1Choice {
641 #[serde(flatten)]
642 pub value: Channel1ChoiceEnum,
643}
644#[derive(
645 Debug,
646 Default,
647 Clone,
648 PartialEq,
649 ::serde::Serialize,
650 ::serde::Deserialize,
651 ::derive_builder::Builder,
652 ::validator::Validate,
653)]
654pub struct ExternalRelativeTo1Code {
655 #[validate(length(min = 1, max = 4,))]
656 #[serde(rename = "$text")]
657 pub value: String,
658}
659#[derive(
660 Debug,
661 Default,
662 Clone,
663 PartialEq,
664 ::serde::Serialize,
665 ::serde::Deserialize,
666 ::derive_builder::Builder,
667 ::validator::Validate,
668)]
669pub struct PresentationDocumentFormat1ChoiceEnum {
670 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
671 pub cd: Option<ExternalUndertakingDocumentType1Code>,
672 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
673 pub prtry: Option<GenericIdentification1>,
674}
675#[derive(
676 Debug,
677 Default,
678 Clone,
679 PartialEq,
680 ::serde::Serialize,
681 ::serde::Deserialize,
682 ::derive_builder::Builder,
683 ::validator::Validate,
684)]
685pub struct PresentationDocumentFormat1Choice {
686 #[serde(flatten)]
687 pub value: PresentationDocumentFormat1ChoiceEnum,
688}
689#[derive(
690 Debug,
691 Default,
692 Clone,
693 PartialEq,
694 ::serde::Serialize,
695 ::serde::Deserialize,
696 ::derive_builder::Builder,
697 ::validator::Validate,
698)]
699pub struct ExternalOrganisationIdentification1Code {
700 #[validate(length(min = 1, max = 4,))]
701 #[serde(rename = "$text")]
702 pub value: String,
703}
704#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
705pub enum UndertakingName1Code {
706 #[serde(rename = "STBY")]
707 Stby,
708 #[serde(rename = "DGAR")]
709 Dgar,
710 #[default]
711 Unknown,
712}
713#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
714pub enum VariationType1Code {
715 #[serde(rename = "DECR")]
716 Decr,
717 #[serde(rename = "INCR")]
718 Incr,
719 #[default]
720 Unknown,
721}
722#[derive(
723 Debug,
724 Default,
725 Clone,
726 PartialEq,
727 ::serde::Serialize,
728 ::serde::Deserialize,
729 ::derive_builder::Builder,
730 ::validator::Validate,
731)]
732pub struct PersonIdentification5 {
733 #[serde(rename = "DtAndPlcOfBirth", skip_serializing_if = "Option::is_none")]
734 pub dt_and_plc_of_birth: Option<DateAndPlaceOfBirth>,
735 #[validate(length(min = 0,))]
736 #[serde(rename = "Othr", default)]
737 pub othr: Vec<GenericPersonIdentification1>,
738}
739#[derive(
740 Debug,
741 Default,
742 Clone,
743 PartialEq,
744 ::serde::Serialize,
745 ::serde::Deserialize,
746 ::derive_builder::Builder,
747 ::validator::Validate,
748)]
749pub struct ExternalDateFrequency1Code {
750 #[validate(length(min = 1, max = 4,))]
751 #[serde(rename = "$text")]
752 pub value: String,
753}
754#[derive(
755 Debug,
756 Default,
757 Clone,
758 PartialEq,
759 ::serde::Serialize,
760 ::serde::Deserialize,
761 ::derive_builder::Builder,
762 ::validator::Validate,
763)]
764pub struct Iso2ALanguageCode {
765 #[validate(regex = "ISO_2_A_LANGUAGE_CODE_REGEX")]
766 #[serde(rename = "$text")]
767 pub value: String,
768}
769#[derive(
770 Debug,
771 Default,
772 Clone,
773 PartialEq,
774 ::serde::Serialize,
775 ::serde::Deserialize,
776 ::derive_builder::Builder,
777 ::validator::Validate,
778)]
779pub struct Presentation1 {
780 #[serde(rename = "Mdm", skip_serializing_if = "Option::is_none")]
781 pub mdm: Option<PresentationMedium1Choice>,
782 #[serde(
783 rename = "PlcOfPresntnOrUdrConfChc",
784 skip_serializing_if = "Option::is_none"
785 )]
786 pub plc_of_presntn_or_udr_conf_chc: Option<PlaceOrUnderConfirmationChoice1>,
787 #[validate(length(min = 0,))]
788 #[serde(rename = "Doc", default)]
789 pub doc: Vec<Document8>,
790 #[validate(length(min = 0, max = 5,))]
791 #[serde(rename = "AddtlInf", default)]
792 pub addtl_inf: Vec<Max2000Text>,
793}
794#[derive(
795 Debug,
796 Default,
797 Clone,
798 PartialEq,
799 ::serde::Serialize,
800 ::serde::Deserialize,
801 ::derive_builder::Builder,
802 ::validator::Validate,
803)]
804pub struct Percentage1 {
805 #[validate]
806 #[serde(rename = "Rate")]
807 pub rate: PercentageRate,
808 #[serde(rename = "RltvTo")]
809 pub rltv_to: ExternalRelativeTo1Code,
810}
811#[derive(
812 Debug,
813 Default,
814 Clone,
815 PartialEq,
816 ::serde::Serialize,
817 ::serde::Deserialize,
818 ::derive_builder::Builder,
819 ::validator::Validate,
820)]
821pub struct GenericPersonIdentification1 {
822 #[validate]
823 #[serde(rename = "Id")]
824 pub id: Max35Text,
825 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
826 pub schme_nm: Option<PersonIdentificationSchemeName1Choice>,
827 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
828 pub issr: Option<Max35Text>,
829}
830#[derive(
831 Debug,
832 Default,
833 Clone,
834 PartialEq,
835 ::serde::Serialize,
836 ::serde::Deserialize,
837 ::derive_builder::Builder,
838 ::validator::Validate,
839)]
840pub struct ContactDetails2 {
841 #[serde(rename = "NmPrfx", skip_serializing_if = "Option::is_none")]
842 pub nm_prfx: Option<NamePrefix1Code>,
843 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
844 pub nm: Option<Max140Text>,
845 #[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
846 pub phne_nb: Option<PhoneNumber>,
847 #[serde(rename = "MobNb", skip_serializing_if = "Option::is_none")]
848 pub mob_nb: Option<PhoneNumber>,
849 #[serde(rename = "FaxNb", skip_serializing_if = "Option::is_none")]
850 pub fax_nb: Option<PhoneNumber>,
851 #[serde(rename = "EmailAdr", skip_serializing_if = "Option::is_none")]
852 pub email_adr: Option<Max2048Text>,
853 #[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
854 pub othr: Option<Max35Text>,
855}
856#[derive(
857 Debug,
858 Default,
859 Clone,
860 PartialEq,
861 ::serde::Serialize,
862 ::serde::Deserialize,
863 ::derive_builder::Builder,
864 ::validator::Validate,
865)]
866pub struct AutomaticVariation1 {
867 #[validate]
868 #[serde(rename = "Id")]
869 pub id: Max35Text,
870 #[serde(rename = "Tp")]
871 pub tp: VariationType1Code,
872 #[validate(length(min = 1,))]
873 #[serde(rename = "AmtAndTrggr", default)]
874 pub amt_and_trggr: Vec<AmountAndTrigger1>,
875 #[validate(length(min = 0, max = 5,))]
876 #[serde(rename = "AddtlInf", default)]
877 pub addtl_inf: Vec<Max2000Text>,
878}
879#[derive(
880 Debug,
881 Default,
882 Clone,
883 PartialEq,
884 ::serde::Serialize,
885 ::serde::Deserialize,
886 ::derive_builder::Builder,
887 ::validator::Validate,
888)]
889pub struct ExternalModelFormIdentification1Code {
890 #[validate(length(min = 1, max = 4,))]
891 #[serde(rename = "$text")]
892 pub value: String,
893}
894#[derive(
895 Debug,
896 Default,
897 Clone,
898 PartialEq,
899 ::serde::Serialize,
900 ::serde::Deserialize,
901 ::derive_builder::Builder,
902 ::validator::Validate,
903)]
904pub struct UndertakingConfirmation1 {
905 #[validate]
906 #[serde(rename = "Cnfrmr")]
907 pub cnfrmr: PartyIdentification43,
908 #[validate]
909 #[serde(rename = "RefNb")]
910 pub ref_nb: Max35Text,
911 #[serde(rename = "Dt")]
912 pub dt: DateAndDateTimeChoice,
913 #[validate(length(min = 0, max = 5,))]
914 #[serde(rename = "Conf", default)]
915 pub conf: Vec<Max2000Text>,
916}
917#[derive(
918 Debug,
919 Default,
920 Clone,
921 PartialEq,
922 ::serde::Serialize,
923 ::serde::Deserialize,
924 ::derive_builder::Builder,
925 ::validator::Validate,
926)]
927pub struct UndertakingDocumentType2ChoiceEnum {
928 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
929 pub cd: Option<ExternalUndertakingDocumentType2Code>,
930 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
931 pub prtry: Option<GenericIdentification1>,
932}
933#[derive(
934 Debug,
935 Default,
936 Clone,
937 PartialEq,
938 ::serde::Serialize,
939 ::serde::Deserialize,
940 ::derive_builder::Builder,
941 ::validator::Validate,
942)]
943pub struct UndertakingDocumentType2Choice {
944 #[serde(flatten)]
945 pub value: UndertakingDocumentType2ChoiceEnum,
946}
947#[derive(
948 Debug,
949 Default,
950 Clone,
951 PartialEq,
952 ::serde::Serialize,
953 ::serde::Deserialize,
954 ::derive_builder::Builder,
955 ::validator::Validate,
956)]
957pub struct Location1 {
958 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
959 pub ctry: Option<CountryCode>,
960 #[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
961 pub ctry_sub_dvsn: Option<CountrySubdivision1Choice>,
962 #[validate(length(min = 0, max = 5,))]
963 #[serde(rename = "Txt", default)]
964 pub txt: Vec<Max2000Text>,
965}
966#[derive(
967 Debug,
968 Default,
969 Clone,
970 PartialEq,
971 ::serde::Serialize,
972 ::serde::Deserialize,
973 ::derive_builder::Builder,
974 ::validator::Validate,
975)]
976pub struct Max2000Text {
977 #[validate(length(min = 1, max = 2000,))]
978 #[serde(rename = "$text")]
979 pub value: String,
980}
981#[derive(
982 Debug,
983 Default,
984 Clone,
985 PartialEq,
986 ::serde::Serialize,
987 ::serde::Deserialize,
988 ::derive_builder::Builder,
989 ::validator::Validate,
990)]
991pub struct ExternalTypeOfParty1Code {
992 #[validate(length(min = 1, max = 4,))]
993 #[serde(rename = "$text")]
994 pub value: String,
995}
996#[derive(
997 Debug,
998 Default,
999 Clone,
1000 PartialEq,
1001 ::serde::Serialize,
1002 ::serde::Deserialize,
1003 ::derive_builder::Builder,
1004 ::validator::Validate,
1005)]
1006pub struct ExpiryTerms1 {
1007 #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
1008 pub dt_tm: Option<DateAndDateTimeChoice>,
1009 #[serde(rename = "AutoXtnsn", skip_serializing_if = "Option::is_none")]
1010 pub auto_xtnsn: Option<AutoExtension1>,
1011 #[serde(rename = "Cond", skip_serializing_if = "Option::is_none")]
1012 pub cond: Option<Max2000Text>,
1013 #[serde(rename = "OpnEnddInd", skip_serializing_if = "Option::is_none")]
1014 pub opn_endd_ind: Option<YesNoIndicator>,
1015}
1016#[derive(
1017 Debug,
1018 Default,
1019 Clone,
1020 PartialEq,
1021 ::serde::Serialize,
1022 ::serde::Deserialize,
1023 ::derive_builder::Builder,
1024 ::validator::Validate,
1025)]
1026pub struct PartyAndType1 {
1027 #[serde(rename = "Tp")]
1028 pub tp: PartyType1Choice,
1029 #[serde(rename = "Pty", skip_serializing_if = "Option::is_none")]
1030 pub pty: Option<PartyIdentification43>,
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 AutoExtension1 {
1043 #[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
1044 pub prd: Option<AutoExtend1Choice>,
1045 #[serde(rename = "FnlXpryDt", skip_serializing_if = "Option::is_none")]
1046 pub fnl_xpry_dt: Option<IsoDate>,
1047 #[validate(length(min = 0,))]
1048 #[serde(rename = "NonXtnsnNtfctn", default)]
1049 pub non_xtnsn_ntfctn: Vec<NonExtension1>,
1050}
1051#[derive(
1052 Debug,
1053 Default,
1054 Clone,
1055 PartialEq,
1056 ::serde::Serialize,
1057 ::serde::Deserialize,
1058 ::derive_builder::Builder,
1059 ::validator::Validate,
1060)]
1061pub struct PercentageRate {
1062 #[serde(rename = "$text")]
1063 pub value: f64,
1064}
1065#[derive(
1066 Debug,
1067 Default,
1068 Clone,
1069 PartialEq,
1070 ::serde::Serialize,
1071 ::serde::Deserialize,
1072 ::derive_builder::Builder,
1073 ::validator::Validate,
1074)]
1075pub struct NarrativeType1ChoiceEnum {
1076 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1077 pub cd: Option<ExternalNarrativeType1Code>,
1078 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1079 pub prtry: Option<GenericIdentification1>,
1080}
1081#[derive(
1082 Debug,
1083 Default,
1084 Clone,
1085 PartialEq,
1086 ::serde::Serialize,
1087 ::serde::Deserialize,
1088 ::derive_builder::Builder,
1089 ::validator::Validate,
1090)]
1091pub struct NarrativeType1Choice {
1092 #[serde(flatten)]
1093 pub value: NarrativeType1ChoiceEnum,
1094}
1095#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1096pub enum AddressType2Code {
1097 #[serde(rename = "ADDR")]
1098 Addr,
1099 #[serde(rename = "PBOX")]
1100 Pbox,
1101 #[serde(rename = "HOME")]
1102 Home,
1103 #[serde(rename = "BIZZ")]
1104 Bizz,
1105 #[serde(rename = "MLTO")]
1106 Mlto,
1107 #[serde(rename = "DLVY")]
1108 Dlvy,
1109 #[default]
1110 Unknown,
1111}
1112#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1113pub enum NamePrefix1Code {
1114 #[serde(rename = "DOCT")]
1115 Doct,
1116 #[serde(rename = "MIST")]
1117 Mist,
1118 #[serde(rename = "MISS")]
1119 Miss,
1120 #[serde(rename = "MADM")]
1121 Madm,
1122 #[default]
1123 Unknown,
1124}
1125#[derive(
1126 Debug,
1127 Default,
1128 Clone,
1129 PartialEq,
1130 ::serde::Serialize,
1131 ::serde::Deserialize,
1132 ::derive_builder::Builder,
1133 ::validator::Validate,
1134)]
1135pub struct DateAndDateTimeChoiceEnum {
1136 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
1137 pub dt: Option<IsoDate>,
1138 #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
1139 pub dt_tm: Option<IsoDateTime>,
1140}
1141#[derive(
1142 Debug,
1143 Default,
1144 Clone,
1145 PartialEq,
1146 ::serde::Serialize,
1147 ::serde::Deserialize,
1148 ::derive_builder::Builder,
1149 ::validator::Validate,
1150)]
1151pub struct DateAndDateTimeChoice {
1152 #[serde(flatten)]
1153 pub value: DateAndDateTimeChoiceEnum,
1154}
1155#[derive(
1156 Debug,
1157 Default,
1158 Clone,
1159 PartialEq,
1160 ::serde::Serialize,
1161 ::serde::Deserialize,
1162 ::derive_builder::Builder,
1163 ::validator::Validate,
1164)]
1165pub struct AnyBicIdentifier {
1166 #[validate(regex = "ANY_BIC_IDENTIFIER_REGEX")]
1167 #[serde(rename = "$text")]
1168 pub value: String,
1169}
1170#[derive(
1171 Debug,
1172 Default,
1173 Clone,
1174 PartialEq,
1175 ::serde::Serialize,
1176 ::serde::Deserialize,
1177 ::derive_builder::Builder,
1178 ::validator::Validate,
1179)]
1180pub struct ExternalNarrativeType1Code {
1181 #[validate(length(min = 1, max = 4,))]
1182 #[serde(rename = "$text")]
1183 pub value: String,
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 Max16Text {
1196 #[validate(length(min = 1, max = 16,))]
1197 #[serde(rename = "$text")]
1198 pub value: String,
1199}
1200#[derive(
1201 Debug,
1202 Default,
1203 Clone,
1204 PartialEq,
1205 ::serde::Serialize,
1206 ::serde::Deserialize,
1207 ::derive_builder::Builder,
1208 ::validator::Validate,
1209)]
1210pub struct ExternalUndertakingType1Code {
1211 #[validate(length(min = 1, max = 4,))]
1212 #[serde(rename = "$text")]
1213 pub value: String,
1214}
1215#[derive(
1216 Debug,
1217 Default,
1218 Clone,
1219 PartialEq,
1220 ::serde::Serialize,
1221 ::serde::Deserialize,
1222 ::derive_builder::Builder,
1223 ::validator::Validate,
1224)]
1225pub struct Number {
1226 #[serde(rename = "$text")]
1227 pub value: f64,
1228}
1229#[derive(
1230 Debug,
1231 Default,
1232 Clone,
1233 PartialEq,
1234 ::serde::Serialize,
1235 ::serde::Deserialize,
1236 ::derive_builder::Builder,
1237 ::validator::Validate,
1238)]
1239pub struct ActiveCurrencyAndAmount {
1240 #[serde(rename = "ActiveCurrencyAndAmount")]
1241 pub value: ActiveCurrencyAndAmountSimpleType,
1242 #[serde(rename = "@Ccy")]
1243 pub ccy: ActiveCurrencyCode,
1244}
1245#[derive(
1246 Debug,
1247 Default,
1248 Clone,
1249 PartialEq,
1250 ::serde::Serialize,
1251 ::serde::Deserialize,
1252 ::derive_builder::Builder,
1253 ::validator::Validate,
1254)]
1255pub struct Narrative1 {
1256 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1257 pub tp: Option<NarrativeType1Choice>,
1258 #[validate(length(min = 1, max = 5,))]
1259 #[serde(rename = "Txt", default)]
1260 pub txt: Vec<Max20000Text>,
1261}
1262#[derive(
1263 Debug,
1264 Default,
1265 Clone,
1266 PartialEq,
1267 ::serde::Serialize,
1268 ::serde::Deserialize,
1269 ::derive_builder::Builder,
1270 ::validator::Validate,
1271)]
1272pub struct IsoDateTime {
1273 #[serde(rename = "$text")]
1274 pub value: ::chrono::DateTime<::chrono::Utc>,
1275}
1276#[derive(
1277 Debug,
1278 Default,
1279 Clone,
1280 PartialEq,
1281 ::serde::Serialize,
1282 ::serde::Deserialize,
1283 ::derive_builder::Builder,
1284 ::validator::Validate,
1285)]
1286pub struct Document10 {
1287 #[serde(rename = "DocTp")]
1288 pub doc_tp: UndertakingDocumentType2Choice,
1289 #[serde(rename = "PresntnChanl", skip_serializing_if = "Option::is_none")]
1290 pub presntn_chanl: Option<Channel1Choice>,
1291 #[serde(rename = "DocFrmt", skip_serializing_if = "Option::is_none")]
1292 pub doc_frmt: Option<DocumentFormat1Choice>,
1293 #[serde(rename = "CpyInd", skip_serializing_if = "Option::is_none")]
1294 pub cpy_ind: Option<YesNoIndicator>,
1295 #[serde(rename = "SgndInd", skip_serializing_if = "Option::is_none")]
1296 pub sgnd_ind: Option<YesNoIndicator>,
1297}
1298#[derive(
1299 Debug,
1300 Default,
1301 Clone,
1302 PartialEq,
1303 ::serde::Serialize,
1304 ::serde::Deserialize,
1305 ::derive_builder::Builder,
1306 ::validator::Validate,
1307)]
1308pub struct PersonIdentificationSchemeName1ChoiceEnum {
1309 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1310 pub cd: Option<ExternalPersonIdentification1Code>,
1311 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1312 pub prtry: Option<Max35Text>,
1313}
1314#[derive(
1315 Debug,
1316 Default,
1317 Clone,
1318 PartialEq,
1319 ::serde::Serialize,
1320 ::serde::Deserialize,
1321 ::derive_builder::Builder,
1322 ::validator::Validate,
1323)]
1324pub struct PersonIdentificationSchemeName1Choice {
1325 #[serde(flatten)]
1326 pub value: PersonIdentificationSchemeName1ChoiceEnum,
1327}
1328#[derive(
1329 Debug,
1330 Default,
1331 Clone,
1332 PartialEq,
1333 ::serde::Serialize,
1334 ::serde::Deserialize,
1335 ::derive_builder::Builder,
1336 ::validator::Validate,
1337)]
1338pub struct PostalAddress12 {
1339 #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
1340 pub twn_nm: Option<Max35Text>,
1341 #[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
1342 pub ctry_sub_dvsn: Option<Max35Text>,
1343 #[serde(rename = "Ctry")]
1344 pub ctry: CountryCode,
1345}
1346#[derive(
1347 Debug,
1348 Default,
1349 Clone,
1350 PartialEq,
1351 ::serde::Serialize,
1352 ::serde::Deserialize,
1353 ::derive_builder::Builder,
1354 ::validator::Validate,
1355)]
1356pub struct UnderlyingTradeTransaction1 {
1357 #[serde(rename = "Tp")]
1358 pub tp: UnderlyingTradeTransactionType1Choice,
1359 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1360 pub id: Option<Max35Text>,
1361 #[serde(rename = "TxDt", skip_serializing_if = "Option::is_none")]
1362 pub tx_dt: Option<IsoDate>,
1363 #[serde(rename = "TndrClsgDt", skip_serializing_if = "Option::is_none")]
1364 pub tndr_clsg_dt: Option<IsoDate>,
1365 #[serde(rename = "TxAmt", skip_serializing_if = "Option::is_none")]
1366 pub tx_amt: Option<ActiveCurrencyAndAmount>,
1367 #[serde(rename = "CtrctAmtPctg", skip_serializing_if = "Option::is_none")]
1368 pub ctrct_amt_pctg: Option<PercentageRate>,
1369 #[validate(length(min = 0, max = 5,))]
1370 #[serde(rename = "AddtlInf", default)]
1371 pub addtl_inf: Vec<Max2000Text>,
1372}
1373#[derive(
1374 Debug,
1375 Default,
1376 Clone,
1377 PartialEq,
1378 ::serde::Serialize,
1379 ::serde::Deserialize,
1380 ::derive_builder::Builder,
1381 ::validator::Validate,
1382)]
1383pub struct CountrySubdivision1ChoiceEnum {
1384 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1385 pub prtry: Option<GenericIdentification1>,
1386 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1387 pub cd: Option<Max35Text>,
1388}
1389#[derive(
1390 Debug,
1391 Default,
1392 Clone,
1393 PartialEq,
1394 ::serde::Serialize,
1395 ::serde::Deserialize,
1396 ::derive_builder::Builder,
1397 ::validator::Validate,
1398)]
1399pub struct CountrySubdivision1Choice {
1400 #[serde(flatten)]
1401 pub value: CountrySubdivision1ChoiceEnum,
1402}
1403#[derive(
1404 Debug,
1405 Default,
1406 Clone,
1407 PartialEq,
1408 ::serde::Serialize,
1409 ::serde::Deserialize,
1410 ::derive_builder::Builder,
1411 ::validator::Validate,
1412)]
1413pub struct UndertakingWording1 {
1414 #[serde(rename = "MdlForm", skip_serializing_if = "Option::is_none")]
1415 pub mdl_form: Option<ModelFormIdentification1>,
1416 #[serde(rename = "ReqdWrdgLang", skip_serializing_if = "Option::is_none")]
1417 pub reqd_wrdg_lang: Option<Iso2ALanguageCode>,
1418 #[validate(length(min = 0,))]
1419 #[serde(rename = "UdrtkgTermsAndConds", default)]
1420 pub udrtkg_terms_and_conds: Vec<Narrative1>,
1421}
1422#[derive(
1423 Debug,
1424 Default,
1425 Clone,
1426 PartialEq,
1427 ::serde::Serialize,
1428 ::serde::Deserialize,
1429 ::derive_builder::Builder,
1430 ::validator::Validate,
1431)]
1432pub struct ExternalUnderlyingTradeTransactionType1Code {
1433 #[validate(length(min = 1, max = 4,))]
1434 #[serde(rename = "$text")]
1435 pub value: String,
1436}
1437#[derive(
1438 Debug,
1439 Default,
1440 Clone,
1441 PartialEq,
1442 ::serde::Serialize,
1443 ::serde::Deserialize,
1444 ::derive_builder::Builder,
1445 ::validator::Validate,
1446)]
1447pub struct Max256Text {
1448 #[validate(length(min = 1, max = 256,))]
1449 #[serde(rename = "$text")]
1450 pub value: String,
1451}
1452#[derive(
1453 Debug,
1454 Default,
1455 Clone,
1456 PartialEq,
1457 ::serde::Serialize,
1458 ::serde::Deserialize,
1459 ::derive_builder::Builder,
1460 ::validator::Validate,
1461)]
1462pub struct PhoneNumber {
1463 #[validate(regex = "PHONE_NUMBER_REGEX")]
1464 #[serde(rename = "$text")]
1465 pub value: String,
1466}
1467#[derive(
1468 Debug,
1469 Default,
1470 Clone,
1471 PartialEq,
1472 ::serde::Serialize,
1473 ::serde::Deserialize,
1474 ::derive_builder::Builder,
1475 ::validator::Validate,
1476)]
1477pub struct CommunicationChannel1 {
1478 #[serde(rename = "Mtd")]
1479 pub mtd: ExternalChannel1Code,
1480 #[serde(rename = "DlvrToPtyTp")]
1481 pub dlvr_to_pty_tp: PartyType1Choice,
1482 #[serde(rename = "DlvrToNm", skip_serializing_if = "Option::is_none")]
1483 pub dlvr_to_nm: Option<Max140Text>,
1484 #[serde(rename = "DlvrToAdr", skip_serializing_if = "Option::is_none")]
1485 pub dlvr_to_adr: Option<PostalAddress6>,
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 ExternalChannel1Code {
1498 #[validate(length(min = 1, max = 4,))]
1499 #[serde(rename = "$text")]
1500 pub value: String,
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 ExternalPersonIdentification1Code {
1513 #[validate(length(min = 1, max = 4,))]
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 PresentationMedium1ChoiceEnum {
1528 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1529 pub cd: Option<PresentationMedium1Code>,
1530 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1531 pub prtry: Option<GenericIdentification1>,
1532}
1533#[derive(
1534 Debug,
1535 Default,
1536 Clone,
1537 PartialEq,
1538 ::serde::Serialize,
1539 ::serde::Deserialize,
1540 ::derive_builder::Builder,
1541 ::validator::Validate,
1542)]
1543pub struct PresentationMedium1Choice {
1544 #[serde(flatten)]
1545 pub value: PresentationMedium1ChoiceEnum,
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 ModelFormIdentification1 {
1558 #[serde(rename = "Id")]
1559 pub id: ModelFormIdentification1Choice,
1560 #[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
1561 pub vrsn: Option<Max35Text>,
1562}
1563#[derive(
1564 Debug,
1565 Default,
1566 Clone,
1567 PartialEq,
1568 ::serde::Serialize,
1569 ::serde::Deserialize,
1570 ::derive_builder::Builder,
1571 ::validator::Validate,
1572)]
1573pub struct UndertakingIssuanceMessage<
1574 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1575 B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1576> {
1577 #[validate]
1578 #[serde(rename = "UdrtkgDtls")]
1579 pub udrtkg_dtls: Undertaking3<A>,
1580 #[serde(rename = "DgtlSgntr", skip_serializing_if = "Option::is_none")]
1581 pub dgtl_sgntr: Option<PartyAndSignature2<B>>,
1582}
1583#[derive(
1584 Debug,
1585 Default,
1586 Clone,
1587 PartialEq,
1588 ::serde::Serialize,
1589 ::serde::Deserialize,
1590 ::derive_builder::Builder,
1591 ::validator::Validate,
1592)]
1593pub struct PostalAddress6 {
1594 #[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
1595 pub adr_tp: Option<AddressType2Code>,
1596 #[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
1597 pub dept: Option<Max70Text>,
1598 #[serde(rename = "SubDept", skip_serializing_if = "Option::is_none")]
1599 pub sub_dept: Option<Max70Text>,
1600 #[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
1601 pub strt_nm: Option<Max70Text>,
1602 #[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
1603 pub bldg_nb: Option<Max16Text>,
1604 #[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
1605 pub pst_cd: Option<Max16Text>,
1606 #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
1607 pub twn_nm: Option<Max35Text>,
1608 #[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
1609 pub ctry_sub_dvsn: Option<Max35Text>,
1610 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1611 pub ctry: Option<CountryCode>,
1612 #[validate(length(min = 0, max = 7,))]
1613 #[serde(rename = "AdrLine", default)]
1614 pub adr_line: Vec<Max70Text>,
1615}
1616#[derive(
1617 Debug,
1618 Default,
1619 Clone,
1620 PartialEq,
1621 ::serde::Serialize,
1622 ::serde::Deserialize,
1623 ::derive_builder::Builder,
1624 ::validator::Validate,
1625)]
1626pub struct OrganisationIdentificationSchemeName1ChoiceEnum {
1627 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1628 pub cd: Option<ExternalOrganisationIdentification1Code>,
1629 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1630 pub prtry: Option<Max35Text>,
1631}
1632#[derive(
1633 Debug,
1634 Default,
1635 Clone,
1636 PartialEq,
1637 ::serde::Serialize,
1638 ::serde::Deserialize,
1639 ::derive_builder::Builder,
1640 ::validator::Validate,
1641)]
1642pub struct OrganisationIdentificationSchemeName1Choice {
1643 #[serde(flatten)]
1644 pub value: OrganisationIdentificationSchemeName1ChoiceEnum,
1645}
1646#[derive(
1647 Debug,
1648 Default,
1649 Clone,
1650 PartialEq,
1651 ::serde::Serialize,
1652 ::serde::Deserialize,
1653 ::derive_builder::Builder,
1654 ::validator::Validate,
1655)]
1656pub struct UndertakingType1ChoiceEnum {
1657 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1658 pub cd: Option<ExternalUndertakingType1Code>,
1659 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1660 pub prtry: Option<GenericIdentification1>,
1661}
1662#[derive(
1663 Debug,
1664 Default,
1665 Clone,
1666 PartialEq,
1667 ::serde::Serialize,
1668 ::serde::Deserialize,
1669 ::derive_builder::Builder,
1670 ::validator::Validate,
1671)]
1672pub struct UndertakingType1Choice {
1673 #[serde(flatten)]
1674 pub value: UndertakingType1ChoiceEnum,
1675}
1676#[derive(
1677 Debug,
1678 Default,
1679 Clone,
1680 PartialEq,
1681 ::serde::Serialize,
1682 ::serde::Deserialize,
1683 ::derive_builder::Builder,
1684 ::validator::Validate,
1685)]
1686pub struct Max20000Text {
1687 #[validate(length(min = 1, max = 20000,))]
1688 #[serde(rename = "$text")]
1689 pub value: String,
1690}
1691#[derive(
1692 Debug,
1693 Default,
1694 Clone,
1695 PartialEq,
1696 ::serde::Serialize,
1697 ::serde::Deserialize,
1698 ::derive_builder::Builder,
1699 ::validator::Validate,
1700)]
1701pub struct FixedOrRecurrentDate1ChoiceEnum {
1702 #[serde(rename = "FxdDt", skip_serializing_if = "Option::is_none")]
1703 pub fxd_dt: Option<IsoDate>,
1704 #[serde(rename = "RcrntDt", skip_serializing_if = "Option::is_none")]
1705 pub rcrnt_dt: Option<DateInformation1>,
1706}
1707#[derive(
1708 Debug,
1709 Default,
1710 Clone,
1711 PartialEq,
1712 ::serde::Serialize,
1713 ::serde::Deserialize,
1714 ::derive_builder::Builder,
1715 ::validator::Validate,
1716)]
1717pub struct FixedOrRecurrentDate1Choice {
1718 #[serde(flatten)]
1719 pub value: FixedOrRecurrentDate1ChoiceEnum,
1720}
1721#[derive(
1722 Debug,
1723 Default,
1724 Clone,
1725 PartialEq,
1726 ::serde::Serialize,
1727 ::serde::Deserialize,
1728 ::derive_builder::Builder,
1729 ::validator::Validate,
1730)]
1731pub struct YesNoIndicator {
1732 #[serde(rename = "$text")]
1733 pub value: bool,
1734}
1735#[derive(
1736 Debug,
1737 Default,
1738 Clone,
1739 PartialEq,
1740 ::serde::Serialize,
1741 ::serde::Deserialize,
1742 ::derive_builder::Builder,
1743 ::validator::Validate,
1744)]
1745pub struct Max70Text {
1746 #[validate(length(min = 1, max = 70,))]
1747 #[serde(rename = "$text")]
1748 pub value: String,
1749}
1750#[derive(
1751 Debug,
1752 Default,
1753 Clone,
1754 PartialEq,
1755 ::serde::Serialize,
1756 ::serde::Deserialize,
1757 ::derive_builder::Builder,
1758 ::validator::Validate,
1759)]
1760pub struct Document8 {
1761 #[serde(rename = "Tp")]
1762 pub tp: PresentationDocumentFormat1Choice,
1763 #[serde(rename = "Wrdg", skip_serializing_if = "Option::is_none")]
1764 pub wrdg: Option<Max20000Text>,
1765 #[validate(length(min = 0,))]
1766 #[serde(rename = "ElctrncDtls", default)]
1767 pub elctrnc_dtls: Vec<Presentation3>,
1768}
1769#[derive(
1770 Debug,
1771 Default,
1772 Clone,
1773 PartialEq,
1774 ::serde::Serialize,
1775 ::serde::Deserialize,
1776 ::derive_builder::Builder,
1777 ::validator::Validate,
1778)]
1779pub struct AmountAndTrigger1 {
1780 #[validate]
1781 #[serde(rename = "Id")]
1782 pub id: Max35Text,
1783 #[serde(rename = "AmtDtlsChc")]
1784 pub amt_dtls_chc: AmountOrPercentage1Choice,
1785 #[validate(length(min = 1,))]
1786 #[serde(rename = "Trggr", default)]
1787 pub trggr: Vec<Trigger1>,
1788}
1789#[derive(
1790 Debug,
1791 Default,
1792 Clone,
1793 PartialEq,
1794 ::serde::Serialize,
1795 ::serde::Deserialize,
1796 ::derive_builder::Builder,
1797 ::validator::Validate,
1798)]
1799pub struct AdvisingPartyAdditionalInformation1 {
1800 #[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
1801 pub ref_nb: Option<Max35Text>,
1802 #[validate(length(min = 0, max = 5,))]
1803 #[serde(rename = "BkToBnfcryInf", default)]
1804 pub bk_to_bnfcry_inf: Vec<Max2000Text>,
1805}
1806#[derive(
1807 Debug,
1808 Default,
1809 Clone,
1810 PartialEq,
1811 ::serde::Serialize,
1812 ::serde::Deserialize,
1813 ::derive_builder::Builder,
1814 ::validator::Validate,
1815)]
1816pub struct Max2048Text {
1817 #[validate(length(min = 1, max = 2048,))]
1818 #[serde(rename = "$text")]
1819 pub value: String,
1820}
1821#[derive(
1822 Debug,
1823 Default,
1824 Clone,
1825 PartialEq,
1826 ::serde::Serialize,
1827 ::serde::Deserialize,
1828 ::derive_builder::Builder,
1829 ::validator::Validate,
1830)]
1831pub struct OrganisationIdentification8 {
1832 #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
1833 pub any_bic: Option<AnyBicIdentifier>,
1834 #[validate(length(min = 0,))]
1835 #[serde(rename = "Othr", default)]
1836 pub othr: Vec<GenericOrganisationIdentification1>,
1837}
1838#[derive(
1839 Debug,
1840 Default,
1841 Clone,
1842 PartialEq,
1843 ::serde::Serialize,
1844 ::serde::Deserialize,
1845 ::derive_builder::Builder,
1846 ::validator::Validate,
1847)]
1848pub struct AutoExtend1ChoiceEnum {
1849 #[serde(rename = "Days", skip_serializing_if = "Option::is_none")]
1850 pub days: Option<Number>,
1851 #[serde(rename = "Yrs", skip_serializing_if = "Option::is_none")]
1852 pub yrs: Option<Number>,
1853 #[serde(rename = "Mnths", skip_serializing_if = "Option::is_none")]
1854 pub mnths: Option<Number>,
1855 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
1856 pub dt: Option<IsoDate>,
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 AutoExtend1Choice {
1869 #[serde(flatten)]
1870 pub value: AutoExtend1ChoiceEnum,
1871}
1872#[derive(
1873 Debug,
1874 Default,
1875 Clone,
1876 PartialEq,
1877 ::serde::Serialize,
1878 ::serde::Deserialize,
1879 ::derive_builder::Builder,
1880 ::validator::Validate,
1881)]
1882pub struct ProprietaryData3<
1883 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1884> {
1885 #[validate]
1886 #[serde(flatten)]
1887 pub value: A,
1888}
1889#[derive(
1890 Debug,
1891 Default,
1892 Clone,
1893 PartialEq,
1894 ::serde::Serialize,
1895 ::serde::Deserialize,
1896 ::derive_builder::Builder,
1897 ::validator::Validate,
1898)]
1899pub struct CommunicationMethod1ChoiceEnum {
1900 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1901 pub cd: Option<ExternalChannel1Code>,
1902 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1903 pub prtry: Option<GenericIdentification1>,
1904}
1905#[derive(
1906 Debug,
1907 Default,
1908 Clone,
1909 PartialEq,
1910 ::serde::Serialize,
1911 ::serde::Deserialize,
1912 ::derive_builder::Builder,
1913 ::validator::Validate,
1914)]
1915pub struct CommunicationMethod1Choice {
1916 #[serde(flatten)]
1917 pub value: CommunicationMethod1ChoiceEnum,
1918}
1919#[derive(
1920 Debug,
1921 Default,
1922 Clone,
1923 PartialEq,
1924 ::serde::Serialize,
1925 ::serde::Deserialize,
1926 ::derive_builder::Builder,
1927 ::validator::Validate,
1928)]
1929pub struct Presentation3 {
1930 #[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
1931 pub frmt: Option<DocumentFormat1Choice>,
1932 #[serde(rename = "Chanl", skip_serializing_if = "Option::is_none")]
1933 pub chanl: Option<Channel1Choice>,
1934 #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
1935 pub adr: Option<Max256Text>,
1936}
1937#[derive(
1938 Debug,
1939 Default,
1940 Clone,
1941 PartialEq,
1942 ::serde::Serialize,
1943 ::serde::Deserialize,
1944 ::derive_builder::Builder,
1945 ::validator::Validate,
1946)]
1947pub struct Undertaking3<
1948 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1949> {
1950 #[validate]
1951 #[serde(rename = "Id")]
1952 pub id: Max35Text,
1953 #[serde(rename = "Nm")]
1954 pub nm: UndertakingIssuanceName1Code,
1955 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1956 pub tp: Option<UndertakingType1Choice>,
1957 #[serde(rename = "IssncTp")]
1958 pub issnc_tp: IssuanceType1Code,
1959 #[validate(length(min = 0,))]
1960 #[serde(rename = "Applcnt", default)]
1961 pub applcnt: Vec<PartyIdentification43>,
1962 #[validate]
1963 #[serde(rename = "Issr")]
1964 pub issr: PartyIdentification43,
1965 #[validate(length(min = 1,))]
1966 #[serde(rename = "Bnfcry", default)]
1967 pub bnfcry: Vec<PartyIdentification43>,
1968 #[validate]
1969 #[serde(rename = "DtOfIssnc")]
1970 pub dt_of_issnc: IsoDate,
1971 #[serde(rename = "PlcOfIsse", skip_serializing_if = "Option::is_none")]
1972 pub plc_of_isse: Option<PostalAddress12>,
1973 #[serde(rename = "AdvsgPty", skip_serializing_if = "Option::is_none")]
1974 pub advsg_pty: Option<PartyIdentification43>,
1975 #[serde(rename = "ScndAdvsgPty", skip_serializing_if = "Option::is_none")]
1976 pub scnd_advsg_pty: Option<PartyIdentification43>,
1977 #[validate]
1978 #[serde(rename = "UdrtkgAmt")]
1979 pub udrtkg_amt: UndertakingAmount1,
1980 #[validate]
1981 #[serde(rename = "XpryDtls")]
1982 pub xpry_dtls: ExpiryDetails1,
1983 #[serde(rename = "ConfInd", skip_serializing_if = "Option::is_none")]
1984 pub conf_ind: Option<YesNoIndicator>,
1985 #[serde(rename = "ConfPtyTp", skip_serializing_if = "Option::is_none")]
1986 pub conf_pty_tp: Option<ExternalTypeOfParty1Code>,
1987 #[validate(length(min = 0,))]
1988 #[serde(rename = "AddtlPty", default)]
1989 pub addtl_pty: Vec<PartyAndType1>,
1990 #[validate]
1991 #[serde(rename = "GovncRulesAndLaw")]
1992 pub govnc_rules_and_law: GovernanceRules1,
1993 #[validate(length(min = 0,))]
1994 #[serde(rename = "UndrlygTx", default)]
1995 pub undrlyg_tx: Vec<UnderlyingTradeTransaction1>,
1996 #[serde(rename = "PresntnDtls", skip_serializing_if = "Option::is_none")]
1997 pub presntn_dtls: Option<Presentation1>,
1998 #[validate(length(min = 1,))]
1999 #[serde(rename = "UdrtkgTermsAndConds", default)]
2000 pub udrtkg_terms_and_conds: Vec<Narrative1>,
2001 #[serde(rename = "MltplDmndInd", skip_serializing_if = "Option::is_none")]
2002 pub mltpl_dmnd_ind: Option<YesNoIndicator>,
2003 #[serde(rename = "PrtlDmndInd", skip_serializing_if = "Option::is_none")]
2004 pub prtl_dmnd_ind: Option<YesNoIndicator>,
2005 #[serde(rename = "ConfChrgsPyblBy", skip_serializing_if = "Option::is_none")]
2006 pub conf_chrgs_pybl_by: Option<ExternalTypeOfParty1Code>,
2007 #[serde(rename = "TrfChrgsPyblBy", skip_serializing_if = "Option::is_none")]
2008 pub trf_chrgs_pybl_by: Option<ExternalTypeOfParty1Code>,
2009 #[validate(length(min = 0,))]
2010 #[serde(rename = "AutomtcAmtVartn", default)]
2011 pub automtc_amt_vartn: Vec<AutomaticVariation1>,
2012 #[serde(rename = "DlvryChanl", skip_serializing_if = "Option::is_none")]
2013 pub dlvry_chanl: Option<CommunicationChannel1>,
2014 #[serde(rename = "TrfInd", skip_serializing_if = "Option::is_none")]
2015 pub trf_ind: Option<YesNoIndicator>,
2016 #[validate(length(min = 0,))]
2017 #[serde(rename = "NclsdFile", default)]
2018 pub nclsd_file: Vec<Document9<A>>,
2019 #[validate(length(min = 0, max = 5,))]
2020 #[serde(rename = "AddtlInf", default)]
2021 pub addtl_inf: Vec<Max2000Text>,
2022 #[serde(rename = "ReqdLclUdrtkg", skip_serializing_if = "Option::is_none")]
2023 pub reqd_lcl_udrtkg: Option<Undertaking4>,
2024}
2025#[derive(
2026 Debug,
2027 Default,
2028 Clone,
2029 PartialEq,
2030 ::serde::Serialize,
2031 ::serde::Deserialize,
2032 ::derive_builder::Builder,
2033 ::validator::Validate,
2034)]
2035pub struct ExpiryDetails1 {
2036 #[serde(rename = "XpryTerms", skip_serializing_if = "Option::is_none")]
2037 pub xpry_terms: Option<ExpiryTerms1>,
2038 #[validate(length(min = 0, max = 5,))]
2039 #[serde(rename = "AddtlXpryInf", default)]
2040 pub addtl_xpry_inf: Vec<Max2000Text>,
2041}
2042#[derive(
2043 Debug,
2044 Default,
2045 Clone,
2046 PartialEq,
2047 ::serde::Serialize,
2048 ::serde::Deserialize,
2049 ::derive_builder::Builder,
2050 ::validator::Validate,
2051)]
2052pub struct UndertakingDocumentType1ChoiceEnum {
2053 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2054 pub cd: Option<ExternalUndertakingDocumentType1Code>,
2055 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2056 pub prtry: Option<GenericIdentification1>,
2057}
2058#[derive(
2059 Debug,
2060 Default,
2061 Clone,
2062 PartialEq,
2063 ::serde::Serialize,
2064 ::serde::Deserialize,
2065 ::derive_builder::Builder,
2066 ::validator::Validate,
2067)]
2068pub struct UndertakingDocumentType1Choice {
2069 #[serde(flatten)]
2070 pub value: UndertakingDocumentType1ChoiceEnum,
2071}
2072#[derive(
2073 Debug,
2074 Default,
2075 Clone,
2076 PartialEq,
2077 ::serde::Serialize,
2078 ::serde::Deserialize,
2079 ::derive_builder::Builder,
2080 ::validator::Validate,
2081)]
2082pub struct ExternalUndertakingDocumentType2Code {
2083 #[validate(length(min = 1, max = 4,))]
2084 #[serde(rename = "$text")]
2085 pub value: String,
2086}
2087#[derive(
2088 Debug,
2089 Default,
2090 Clone,
2091 PartialEq,
2092 ::serde::Serialize,
2093 ::serde::Deserialize,
2094 ::derive_builder::Builder,
2095 ::validator::Validate,
2096)]
2097pub struct DocumentFormat1ChoiceEnum {
2098 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2099 pub prtry: Option<GenericIdentification1>,
2100 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2101 pub cd: Option<ExternalDocumentFormat1Code>,
2102}
2103#[derive(
2104 Debug,
2105 Default,
2106 Clone,
2107 PartialEq,
2108 ::serde::Serialize,
2109 ::serde::Deserialize,
2110 ::derive_builder::Builder,
2111 ::validator::Validate,
2112)]
2113pub struct DocumentFormat1Choice {
2114 #[serde(flatten)]
2115 pub value: DocumentFormat1ChoiceEnum,
2116}
2117#[derive(
2118 Debug,
2119 Default,
2120 Clone,
2121 PartialEq,
2122 ::serde::Serialize,
2123 ::serde::Deserialize,
2124 ::derive_builder::Builder,
2125 ::validator::Validate,
2126)]
2127pub struct PlaceOfPresentation1 {
2128 #[serde(rename = "Plc")]
2129 pub plc: ExternalTypeOfParty1Code,
2130 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
2131 pub ctry: Option<CountryCode>,
2132}
2133#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2134pub enum PresentationMedium1Code {
2135 #[serde(rename = "BOTH")]
2136 Both,
2137 #[serde(rename = "ELEC")]
2138 Elec,
2139 #[serde(rename = "PAPR")]
2140 Papr,
2141 #[default]
2142 Unknown,
2143}
2144#[derive(
2145 Debug,
2146 Default,
2147 Clone,
2148 PartialEq,
2149 ::serde::Serialize,
2150 ::serde::Deserialize,
2151 ::derive_builder::Builder,
2152 ::validator::Validate,
2153)]
2154pub struct UndertakingAdvice1<
2155 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2156 B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2157 C: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2158> {
2159 #[validate]
2160 #[serde(rename = "UdrtkgIssncMsg")]
2161 pub udrtkg_issnc_msg: UndertakingIssuanceMessage<A, B>,
2162 #[serde(
2163 rename = "FrstAdvsgPtyAddtlInf",
2164 skip_serializing_if = "Option::is_none"
2165 )]
2166 pub frst_advsg_pty_addtl_inf: Option<AdvisingPartyAdditionalInformation1>,
2167 #[serde(
2168 rename = "ScndAdvsgPtyAddtlInf",
2169 skip_serializing_if = "Option::is_none"
2170 )]
2171 pub scnd_advsg_pty_addtl_inf: Option<AdvisingPartyAdditionalInformation1>,
2172 #[serde(rename = "ConfDtls", skip_serializing_if = "Option::is_none")]
2173 pub conf_dtls: Option<UndertakingConfirmation1>,
2174 #[validate(length(min = 0, max = 3,))]
2175 #[serde(rename = "DgtlSgntr", default)]
2176 pub dgtl_sgntr: Vec<PartyAndSignature2<C>>,
2177}
2178#[derive(
2179 Debug,
2180 Default,
2181 Clone,
2182 PartialEq,
2183 ::serde::Serialize,
2184 ::serde::Deserialize,
2185 ::derive_builder::Builder,
2186 ::validator::Validate,
2187)]
2188pub struct GenericIdentification1 {
2189 #[validate]
2190 #[serde(rename = "Id")]
2191 pub id: Max35Text,
2192 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
2193 pub schme_nm: Option<Max35Text>,
2194 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
2195 pub issr: Option<Max35Text>,
2196}
2197#[derive(
2198 Debug,
2199 Default,
2200 Clone,
2201 PartialEq,
2202 ::serde::Serialize,
2203 ::serde::Deserialize,
2204 ::derive_builder::Builder,
2205 ::validator::Validate,
2206)]
2207pub struct ActiveCurrencyCode {
2208 #[validate(regex = "ACTIVE_CURRENCY_CODE_REGEX")]
2209 #[serde(rename = "$text")]
2210 pub value: String,
2211}
2212#[derive(
2213 Debug,
2214 Default,
2215 Clone,
2216 PartialEq,
2217 ::serde::Serialize,
2218 ::serde::Deserialize,
2219 ::derive_builder::Builder,
2220 ::validator::Validate,
2221)]
2222pub struct Undertaking4 {
2223 #[serde(rename = "Nm")]
2224 pub nm: UndertakingName1Code,
2225 #[serde(rename = "Tp")]
2226 pub tp: ExternalUndertakingType1Code,
2227 #[validate(length(min = 1,))]
2228 #[serde(rename = "Applcnt", default)]
2229 pub applcnt: Vec<PartyIdentification43>,
2230 #[validate(length(min = 1,))]
2231 #[serde(rename = "Bnfcry", default)]
2232 pub bnfcry: Vec<PartyIdentification43>,
2233 #[serde(rename = "DtOfIssnc", skip_serializing_if = "Option::is_none")]
2234 pub dt_of_issnc: Option<IsoDate>,
2235 #[serde(rename = "AdvsgPty", skip_serializing_if = "Option::is_none")]
2236 pub advsg_pty: Option<PartyIdentification43>,
2237 #[serde(rename = "ScndAdvsgPty", skip_serializing_if = "Option::is_none")]
2238 pub scnd_advsg_pty: Option<PartyIdentification43>,
2239 #[validate]
2240 #[serde(rename = "LclUdrtkgAmt")]
2241 pub lcl_udrtkg_amt: UndertakingAmount1,
2242 #[validate]
2243 #[serde(rename = "XpryDtls")]
2244 pub xpry_dtls: ExpiryDetails1,
2245 #[serde(rename = "ConfInd", skip_serializing_if = "Option::is_none")]
2246 pub conf_ind: Option<YesNoIndicator>,
2247 #[validate(length(min = 0,))]
2248 #[serde(rename = "AddtlPty", default)]
2249 pub addtl_pty: Vec<PartyAndType1>,
2250 #[validate]
2251 #[serde(rename = "GovncRulesAndLaw")]
2252 pub govnc_rules_and_law: GovernanceRules1,
2253 #[validate(length(min = 0,))]
2254 #[serde(rename = "UndrlygTx", default)]
2255 pub undrlyg_tx: Vec<UnderlyingTradeTransaction1>,
2256 #[serde(rename = "PresntnDtls", skip_serializing_if = "Option::is_none")]
2257 pub presntn_dtls: Option<Presentation1>,
2258 #[validate]
2259 #[serde(rename = "UdrtkgWrdg")]
2260 pub udrtkg_wrdg: UndertakingWording1,
2261 #[serde(rename = "MltplDmndInd", skip_serializing_if = "Option::is_none")]
2262 pub mltpl_dmnd_ind: Option<YesNoIndicator>,
2263 #[serde(rename = "PrtlDmndInd", skip_serializing_if = "Option::is_none")]
2264 pub prtl_dmnd_ind: Option<YesNoIndicator>,
2265 #[serde(rename = "ConfChrgsPyblBy", skip_serializing_if = "Option::is_none")]
2266 pub conf_chrgs_pybl_by: Option<ExternalTypeOfParty1Code>,
2267 #[serde(rename = "TrfChrgsPyblBy", skip_serializing_if = "Option::is_none")]
2268 pub trf_chrgs_pybl_by: Option<ExternalTypeOfParty1Code>,
2269 #[validate(length(min = 0,))]
2270 #[serde(rename = "AutomtcAmtVartn", default)]
2271 pub automtc_amt_vartn: Vec<AutomaticVariation1>,
2272 #[serde(rename = "DlvryChanl", skip_serializing_if = "Option::is_none")]
2273 pub dlvry_chanl: Option<CommunicationChannel1>,
2274 #[serde(rename = "TrfInd", skip_serializing_if = "Option::is_none")]
2275 pub trf_ind: Option<YesNoIndicator>,
2276 #[validate(length(min = 0, max = 5,))]
2277 #[serde(rename = "AddtlInf", default)]
2278 pub addtl_inf: Vec<Max2000Text>,
2279}
2280#[derive(
2281 Debug,
2282 Default,
2283 Clone,
2284 PartialEq,
2285 ::serde::Serialize,
2286 ::serde::Deserialize,
2287 ::derive_builder::Builder,
2288 ::validator::Validate,
2289)]
2290pub struct UndertakingAmount1 {
2291 #[validate]
2292 #[serde(rename = "Amt")]
2293 pub amt: ActiveCurrencyAndAmount,
2294 #[serde(rename = "PlusTlrnce", skip_serializing_if = "Option::is_none")]
2295 pub plus_tlrnce: Option<PercentageRate>,
2296 #[validate(length(min = 0, max = 5,))]
2297 #[serde(rename = "AddtlInf", default)]
2298 pub addtl_inf: Vec<Max2000Text>,
2299}
2300#[derive(
2301 Debug,
2302 Default,
2303 Clone,
2304 PartialEq,
2305 ::serde::Serialize,
2306 ::serde::Deserialize,
2307 ::derive_builder::Builder,
2308 ::validator::Validate,
2309)]
2310pub struct ActiveCurrencyAndAmountSimpleType {
2311 #[validate(range(min = 0,))]
2312 #[serde(rename = "$text")]
2313 pub value: f64,
2314}
2315#[derive(
2316 Debug,
2317 Default,
2318 Clone,
2319 PartialEq,
2320 ::serde::Serialize,
2321 ::serde::Deserialize,
2322 ::derive_builder::Builder,
2323 ::validator::Validate,
2324)]
2325pub struct UnderlyingTradeTransactionType1ChoiceEnum {
2326 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2327 pub cd: Option<ExternalUnderlyingTradeTransactionType1Code>,
2328 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2329 pub prtry: Option<GenericIdentification1>,
2330}
2331#[derive(
2332 Debug,
2333 Default,
2334 Clone,
2335 PartialEq,
2336 ::serde::Serialize,
2337 ::serde::Deserialize,
2338 ::derive_builder::Builder,
2339 ::validator::Validate,
2340)]
2341pub struct UnderlyingTradeTransactionType1Choice {
2342 #[serde(flatten)]
2343 pub value: UnderlyingTradeTransactionType1ChoiceEnum,
2344}
2345#[derive(
2346 Debug,
2347 Default,
2348 Clone,
2349 PartialEq,
2350 ::serde::Serialize,
2351 ::serde::Deserialize,
2352 ::derive_builder::Builder,
2353 ::validator::Validate,
2354)]
2355pub struct ExternalUndertakingDocumentType1Code {
2356 #[validate(length(min = 1, max = 4,))]
2357 #[serde(rename = "$text")]
2358 pub value: String,
2359}
2360#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2361pub enum PresentationParty1Code {
2362 #[serde(rename = "ETHR")]
2363 Ethr,
2364 #[serde(rename = "EXCN")]
2365 Excn,
2366 #[serde(rename = "EXIS")]
2367 Exis,
2368 #[default]
2369 Unknown,
2370}