1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 static ref SOUTH_AFRICAN_NCC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"ZA[0-9]{6,6}"#).unwrap();
25}
26
27::lazy_static::lazy_static! {
28 static ref IBAN_2007_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"#).unwrap();
29}
30
31::lazy_static::lazy_static! {
32 static ref COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36 static ref RUSSIAN_CENTRAL_BANK_IDENTIFICATION_CODE_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"RU[0-9]{9,9}"#).unwrap();
37}
38
39::lazy_static::lazy_static! {
40 static ref ACTIVE_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 static ref IRISH_NSC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"IE[0-9]{6,6}"#).unwrap();
45}
46
47::lazy_static::lazy_static! {
48 static ref CHIPS_UNIVERSAL_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"CH[0-9]{6,6}"#).unwrap();
49}
50
51::lazy_static::lazy_static! {
52 static ref LEI_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{18,18}[0-9]{2,2}"#).unwrap();
53}
54
55::lazy_static::lazy_static! {
56 static ref SWISS_BC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"SW[0-9]{3,5}"#).unwrap();
57}
58
59::lazy_static::lazy_static! {
60 static ref MIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}"#).unwrap();
61}
62
63::lazy_static::lazy_static! {
64 static ref GERMAN_BANKLEITZAHL_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"BL[0-9]{8,8}"#).unwrap();
65}
66
67::lazy_static::lazy_static! {
68 static ref NEW_ZEALAND_NCC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"NZ[0-9]{6,6}"#).unwrap();
69}
70
71::lazy_static::lazy_static! {
72 static ref ITALIAN_DOMESTIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"IT[0-9]{10,10}"#).unwrap();
73}
74
75::lazy_static::lazy_static! {
76 static ref CHIPS_PARTICIPANT_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"CP[0-9]{4,4}"#).unwrap();
77}
78
79::lazy_static::lazy_static! {
80 static ref SMALL_NETWORK_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"AU[0-9]{6,6}"#).unwrap();
81}
82
83::lazy_static::lazy_static! {
84 static ref BICFI_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();
85}
86
87::lazy_static::lazy_static! {
88 static ref ISO_YEAR_MONTH_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}-(0[1-9]|1[0-2])([+-]\d{2}:\d{2}|Z)?$"#).unwrap();
89}
90
91::lazy_static::lazy_static! {
92 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();
93}
94
95::lazy_static::lazy_static! {
96 static ref MAX_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{1,4}"#).unwrap();
97}
98
99::lazy_static::lazy_static! {
100 static ref ISIN_OCT_2015_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"#).unwrap();
101}
102
103::lazy_static::lazy_static! {
104 static ref EXTENSIVE_BRANCH_NETWORK_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"AU[0-9]{6,6}"#).unwrap();
105}
106
107::lazy_static::lazy_static! {
108 static ref SPANISH_DOMESTIC_INTERBANKING_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"ES[0-9]{8,9}"#).unwrap();
109}
110
111::lazy_static::lazy_static! {
112 static ref CANADIAN_PAYMENTS_ARN_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"CA[0-9]{9,9}"#).unwrap();
113}
114
115::lazy_static::lazy_static! {
116 static ref HONG_KONG_BANK_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"HK[0-9]{3,3}"#).unwrap();
117}
118
119::lazy_static::lazy_static! {
120 static ref BLOOMBERG_2_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"(BBG)[BCDFGHJKLMNPQRSTVWXYZ\d]{8}\d"#).unwrap();
121}
122
123::lazy_static::lazy_static! {
124 static ref ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
125}
126
127::lazy_static::lazy_static! {
128 static ref SWISS_SIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"SW[0-9]{6,6}"#).unwrap();
129}
130
131::lazy_static::lazy_static! {
132 static ref UK_DOMESTIC_SORT_CODE_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"SC[0-9]{6,6}"#).unwrap();
133}
134
135::lazy_static::lazy_static! {
136 static ref EXACT_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{4}"#).unwrap();
137}
138
139::lazy_static::lazy_static! {
140 static ref FEDWIRE_ROUTING_NUMBER_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"FW[0-9]{9,9}"#).unwrap();
141}
142
143::lazy_static::lazy_static! {
144 static ref PORTUGUESE_NCC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"PT[0-9]{8,8}"#).unwrap();
145}
146
147::lazy_static::lazy_static! {
148 static ref AUSTRIAN_BANKLEITZAHL_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"AT[0-9]{5,5}"#).unwrap();
149}
150
151pub fn namespace() -> String {
153 "urn:iso:std:iso:20022:tech:xsd:setr.007.001.04".to_string()
154}
155
156#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
157pub enum InvestmentFundRole2Code {
158 #[serde(rename = "FMCO")]
159 Fmco,
160 #[serde(rename = "REGI")]
161 Regi,
162 #[serde(rename = "TRAG")]
163 Trag,
164 #[serde(rename = "INTR")]
165 Intr,
166 #[serde(rename = "DIST")]
167 Dist,
168 #[serde(rename = "CONC")]
169 Conc,
170 #[serde(rename = "UCL1")]
171 Ucl1,
172 #[serde(rename = "UCL2")]
173 Ucl2,
174 #[serde(rename = "TRAN")]
175 Tran,
176 #[default]
177 Unknown,
178}
179#[derive(
180 Debug,
181 Default,
182 Clone,
183 PartialEq,
184 ::serde::Serialize,
185 ::serde::Deserialize,
186 ::derive_builder::Builder,
187 ::validator::Validate,
188)]
189pub struct GenericIdentification78 {
190 #[validate]
191 #[serde(rename = "Tp")]
192 pub tp: GenericIdentification30,
193 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
194 pub id: Option<Max35Text>,
195}
196#[derive(
197 Debug,
198 Default,
199 Clone,
200 PartialEq,
201 ::serde::Serialize,
202 ::serde::Deserialize,
203 ::derive_builder::Builder,
204 ::validator::Validate,
205)]
206pub struct MessageIdentification1 {
207 #[validate]
208 #[serde(rename = "Id")]
209 pub id: Max35Text,
210 #[validate]
211 #[serde(rename = "CreDtTm")]
212 pub cre_dt_tm: IsoDateTime,
213}
214#[derive(
215 Debug,
216 Default,
217 Clone,
218 PartialEq,
219 ::serde::Serialize,
220 ::serde::Deserialize,
221 ::derive_builder::Builder,
222 ::validator::Validate,
223)]
224pub struct ExternalAccountIdentification1Code {
225 #[validate(length(min = 1, max = 4,))]
226 #[serde(rename = "$text")]
227 pub value: String,
228}
229#[derive(
230 Debug,
231 Default,
232 Clone,
233 PartialEq,
234 ::serde::Serialize,
235 ::serde::Deserialize,
236 ::derive_builder::Builder,
237 ::validator::Validate,
238)]
239pub struct CopyInformation4 {
240 #[validate]
241 #[serde(rename = "CpyInd")]
242 pub cpy_ind: YesNoIndicator,
243 #[serde(rename = "OrgnlRcvr", skip_serializing_if = "Option::is_none")]
244 pub orgnl_rcvr: Option<AnyBicIdentifier>,
245}
246#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
247pub enum OrderWaiverReason1Code {
248 #[serde(rename = "LATE")]
249 Late,
250 #[serde(rename = "FEND")]
251 Fend,
252 #[serde(rename = "BMIN")]
253 Bmin,
254 #[serde(rename = "CUTO")]
255 Cuto,
256 #[serde(rename = "COMW")]
257 Comw,
258 #[default]
259 Unknown,
260}
261#[derive(
262 Debug,
263 Default,
264 Clone,
265 PartialEq,
266 ::serde::Serialize,
267 ::serde::Deserialize,
268 ::derive_builder::Builder,
269 ::validator::Validate,
270)]
271pub struct SouthAfricanNccIdentifier {
272 #[validate(regex = "SOUTH_AFRICAN_NCC_IDENTIFIER_REGEX")]
273 #[serde(rename = "$text")]
274 pub value: String,
275}
276#[derive(
277 Debug,
278 Default,
279 Clone,
280 PartialEq,
281 ::serde::Serialize,
282 ::serde::Deserialize,
283 ::derive_builder::Builder,
284 ::validator::Validate,
285)]
286pub struct TradeTransactionCondition8ChoiceEnum {
287 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
288 pub cd: Option<TradeTransactionCondition5Code>,
289 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
290 pub prtry: Option<GenericIdentification30>,
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 TradeTransactionCondition8Choice {
303 #[serde(flatten)]
304 pub value: TradeTransactionCondition8ChoiceEnum,
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 GenericIdentification1 {
317 #[validate]
318 #[serde(rename = "Id")]
319 pub id: Max35Text,
320 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
321 pub schme_nm: Option<Max35Text>,
322 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
323 pub issr: Option<Max35Text>,
324}
325#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
326pub enum ConductClassification1Code {
327 #[serde(rename = "NSTA")]
328 Nsta,
329 #[serde(rename = "RCLT")]
330 Rclt,
331 #[serde(rename = "STAN")]
332 Stan,
333 #[default]
334 Unknown,
335}
336#[derive(
337 Debug,
338 Default,
339 Clone,
340 PartialEq,
341 ::serde::Serialize,
342 ::serde::Deserialize,
343 ::derive_builder::Builder,
344 ::validator::Validate,
345)]
346pub struct Intermediary40 {
347 #[validate]
348 #[serde(rename = "Id")]
349 pub id: PartyIdentification113,
350 #[serde(rename = "Acct", skip_serializing_if = "Option::is_none")]
351 pub acct: Option<Account22>,
352 #[serde(rename = "OrdrOrgtrElgblty", skip_serializing_if = "Option::is_none")]
353 pub ordr_orgtr_elgblty: Option<OrderOriginatorEligibility1Code>,
354 #[serde(rename = "Role", skip_serializing_if = "Option::is_none")]
355 pub role: Option<InvestmentFundRole2Choice>,
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 Extension1 {
368 #[validate]
369 #[serde(rename = "PlcAndNm")]
370 pub plc_and_nm: Max350Text,
371 #[validate]
372 #[serde(rename = "Txt")]
373 pub txt: Max350Text,
374}
375#[derive(
376 Debug,
377 Default,
378 Clone,
379 PartialEq,
380 ::serde::Serialize,
381 ::serde::Deserialize,
382 ::derive_builder::Builder,
383 ::validator::Validate,
384)]
385pub struct ReceivingPartiesAndAccount16 {
386 #[serde(rename = "RcvrsCtdnDtls", skip_serializing_if = "Option::is_none")]
387 pub rcvrs_ctdn_dtls: Option<PartyIdentificationAndAccount147>,
388 #[serde(rename = "RcvrsIntrmy1Dtls", skip_serializing_if = "Option::is_none")]
389 pub rcvrs_intrmy_1_dtls: Option<PartyIdentificationAndAccount147>,
390 #[serde(rename = "RcvrsIntrmy2Dtls", skip_serializing_if = "Option::is_none")]
391 pub rcvrs_intrmy_2_dtls: Option<PartyIdentificationAndAccount147>,
392 #[validate]
393 #[serde(rename = "RcvgAgtDtls")]
394 pub rcvg_agt_dtls: PartyIdentificationAndAccount147,
395}
396#[derive(
397 Debug,
398 Default,
399 Clone,
400 PartialEq,
401 ::serde::Serialize,
402 ::serde::Deserialize,
403 ::derive_builder::Builder,
404 ::validator::Validate,
405)]
406pub struct CancellationRight1ChoiceEnum {
407 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
408 pub cd: Option<CancellationRight1Code>,
409 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
410 pub prtry: Option<GenericIdentification47>,
411}
412#[derive(
413 Debug,
414 Default,
415 Clone,
416 PartialEq,
417 ::serde::Serialize,
418 ::serde::Deserialize,
419 ::derive_builder::Builder,
420 ::validator::Validate,
421)]
422pub struct CancellationRight1Choice {
423 #[serde(flatten)]
424 pub value: CancellationRight1ChoiceEnum,
425}
426#[derive(
427 Debug,
428 Default,
429 Clone,
430 PartialEq,
431 ::serde::Serialize,
432 ::serde::Deserialize,
433 ::derive_builder::Builder,
434 ::validator::Validate,
435)]
436pub struct Max350Text {
437 #[validate(length(min = 1, max = 350,))]
438 #[serde(rename = "$text")]
439 pub value: String,
440}
441#[derive(
442 Debug,
443 Default,
444 Clone,
445 PartialEq,
446 ::serde::Serialize,
447 ::serde::Deserialize,
448 ::derive_builder::Builder,
449 ::validator::Validate,
450)]
451pub struct Max3Text {
452 #[validate(length(min = 1, max = 3,))]
453 #[serde(rename = "$text")]
454 pub value: String,
455}
456#[derive(
457 Debug,
458 Default,
459 Clone,
460 PartialEq,
461 ::serde::Serialize,
462 ::serde::Deserialize,
463 ::derive_builder::Builder,
464 ::validator::Validate,
465)]
466pub struct NameAndAddress4 {
467 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
468 pub nm: Option<Max350Text>,
469 #[validate]
470 #[serde(rename = "Adr")]
471 pub adr: PostalAddress1,
472}
473#[derive(
474 Debug,
475 Default,
476 Clone,
477 PartialEq,
478 ::serde::Serialize,
479 ::serde::Deserialize,
480 ::derive_builder::Builder,
481 ::validator::Validate,
482)]
483pub struct SicovamIdentifier {
484 #[serde(rename = "$text")]
485 pub value: String,
486}
487#[derive(
488 Debug,
489 Default,
490 Clone,
491 PartialEq,
492 ::serde::Serialize,
493 ::serde::Deserialize,
494 ::derive_builder::Builder,
495 ::validator::Validate,
496)]
497pub struct Iban2007Identifier {
498 #[validate(regex = "IBAN_2007_IDENTIFIER_REGEX")]
499 #[serde(rename = "$text")]
500 pub value: String,
501}
502#[derive(
503 Debug,
504 Default,
505 Clone,
506 PartialEq,
507 ::serde::Serialize,
508 ::serde::Deserialize,
509 ::derive_builder::Builder,
510 ::validator::Validate,
511)]
512pub struct SourceOfCash1ChoiceEnum {
513 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
514 pub cd: Option<SourceOfCash1Code>,
515 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
516 pub prtry: Option<GenericIdentification47>,
517}
518#[derive(
519 Debug,
520 Default,
521 Clone,
522 PartialEq,
523 ::serde::Serialize,
524 ::serde::Deserialize,
525 ::derive_builder::Builder,
526 ::validator::Validate,
527)]
528pub struct SourceOfCash1Choice {
529 #[serde(flatten)]
530 pub value: SourceOfCash1ChoiceEnum,
531}
532#[derive(
533 Debug,
534 Default,
535 Clone,
536 PartialEq,
537 ::serde::Serialize,
538 ::serde::Deserialize,
539 ::derive_builder::Builder,
540 ::validator::Validate,
541)]
542pub struct DateFormat42ChoiceEnum {
543 #[serde(rename = "YrMnth", skip_serializing_if = "Option::is_none")]
544 pub yr_mnth: Option<IsoYearMonth>,
545 #[serde(rename = "YrMnthDay", skip_serializing_if = "Option::is_none")]
546 pub yr_mnth_day: Option<IsoDate>,
547}
548#[derive(
549 Debug,
550 Default,
551 Clone,
552 PartialEq,
553 ::serde::Serialize,
554 ::serde::Deserialize,
555 ::derive_builder::Builder,
556 ::validator::Validate,
557)]
558pub struct DateFormat42Choice {
559 #[serde(flatten)]
560 pub value: DateFormat42ChoiceEnum,
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 SubscriptionBulkOrderV04 {
573 #[validate]
574 #[serde(rename = "MsgId")]
575 pub msg_id: MessageIdentification1,
576 #[serde(rename = "PoolRef", skip_serializing_if = "Option::is_none")]
577 pub pool_ref: Option<AdditionalReference9>,
578 #[validate(length(min = 0,))]
579 #[serde(rename = "PrvsRef", default)]
580 pub prvs_ref: Vec<AdditionalReference8>,
581 #[validate]
582 #[serde(rename = "BlkOrdrDtls")]
583 pub blk_ordr_dtls: SubscriptionBulkOrder5,
584 #[serde(rename = "CpyDtls", skip_serializing_if = "Option::is_none")]
585 pub cpy_dtls: Option<CopyInformation4>,
586 #[validate(length(min = 0,))]
587 #[serde(rename = "Xtnsn", default)]
588 pub xtnsn: Vec<Extension1>,
589}
590#[derive(
591 Debug,
592 Default,
593 Clone,
594 PartialEq,
595 ::serde::Serialize,
596 ::serde::Deserialize,
597 ::derive_builder::Builder,
598 ::validator::Validate,
599)]
600pub struct TransactionChannelType1ChoiceEnum {
601 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
602 pub cd: Option<TransactionChannel2Code>,
603 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
604 pub prtry: Option<GenericIdentification47>,
605}
606#[derive(
607 Debug,
608 Default,
609 Clone,
610 PartialEq,
611 ::serde::Serialize,
612 ::serde::Deserialize,
613 ::derive_builder::Builder,
614 ::validator::Validate,
615)]
616pub struct TransactionChannelType1Choice {
617 #[serde(flatten)]
618 pub value: TransactionChannelType1ChoiceEnum,
619}
620#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
621pub enum CancellationRight1Code {
622 #[serde(rename = "VALI")]
623 Vali,
624 #[serde(rename = "NOXO")]
625 Noxo,
626 #[serde(rename = "NOWA")]
627 Nowa,
628 #[serde(rename = "NOIN")]
629 Noin,
630 #[default]
631 Unknown,
632}
633#[derive(
634 Debug,
635 Default,
636 Clone,
637 PartialEq,
638 ::serde::Serialize,
639 ::serde::Deserialize,
640 ::derive_builder::Builder,
641 ::validator::Validate,
642)]
643pub struct CountryCode {
644 #[validate(regex = "COUNTRY_CODE_REGEX")]
645 #[serde(rename = "$text")]
646 pub value: String,
647}
648#[derive(
649 Debug,
650 Default,
651 Clone,
652 PartialEq,
653 ::serde::Serialize,
654 ::serde::Deserialize,
655 ::derive_builder::Builder,
656 ::validator::Validate,
657)]
658pub struct FinancialInstrumentQuantity27ChoiceEnum {
659 #[serde(rename = "UnitsNb", skip_serializing_if = "Option::is_none")]
660 pub units_nb: Option<DecimalNumber>,
661 #[serde(rename = "NetAmt", skip_serializing_if = "Option::is_none")]
662 pub net_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
663 #[serde(rename = "GrssAmt", skip_serializing_if = "Option::is_none")]
664 pub grss_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
665}
666#[derive(
667 Debug,
668 Default,
669 Clone,
670 PartialEq,
671 ::serde::Serialize,
672 ::serde::Deserialize,
673 ::derive_builder::Builder,
674 ::validator::Validate,
675)]
676pub struct FinancialInstrumentQuantity27Choice {
677 #[serde(flatten)]
678 pub value: FinancialInstrumentQuantity27ChoiceEnum,
679}
680#[derive(
681 Debug,
682 Default,
683 Clone,
684 PartialEq,
685 ::serde::Serialize,
686 ::serde::Deserialize,
687 ::derive_builder::Builder,
688 ::validator::Validate,
689)]
690pub struct RussianCentralBankIdentificationCodeIdentifier {
691 #[validate(regex = "RUSSIAN_CENTRAL_BANK_IDENTIFICATION_CODE_IDENTIFIER_REGEX")]
692 #[serde(rename = "$text")]
693 pub value: String,
694}
695#[derive(
696 Debug,
697 Default,
698 Clone,
699 PartialEq,
700 ::serde::Serialize,
701 ::serde::Deserialize,
702 ::derive_builder::Builder,
703 ::validator::Validate,
704)]
705pub struct SubscriptionOrder15 {
706 #[validate]
707 #[serde(rename = "OrdrRef")]
708 pub ordr_ref: Max35Text,
709 #[serde(rename = "ClntRef", skip_serializing_if = "Option::is_none")]
710 pub clnt_ref: Option<Max35Text>,
711 #[validate(length(min = 0, max = 10,))]
712 #[serde(rename = "OrdrTp", default)]
713 pub ordr_tp: Vec<FundOrderType4Choice>,
714 #[serde(rename = "AmtOrUnits")]
715 pub amt_or_units: FinancialInstrumentQuantity27Choice,
716 #[serde(rename = "Rndg", skip_serializing_if = "Option::is_none")]
717 pub rndg: Option<RoundingDirection2Code>,
718 #[serde(rename = "SttlmAmt", skip_serializing_if = "Option::is_none")]
719 pub sttlm_amt: Option<ActiveCurrencyAndAmount>,
720 #[serde(rename = "CshSttlmDt", skip_serializing_if = "Option::is_none")]
721 pub csh_sttlm_dt: Option<IsoDate>,
722 #[serde(rename = "SttlmMtd", skip_serializing_if = "Option::is_none")]
723 pub sttlm_mtd: Option<DeliveryReceiptType2Code>,
724 #[serde(rename = "IncmPref", skip_serializing_if = "Option::is_none")]
725 pub incm_pref: Option<IncomePreference1Code>,
726 #[validate]
727 #[serde(rename = "InvstmtAcctDtls")]
728 pub invstmt_acct_dtls: InvestmentAccount58,
729 #[validate(length(min = 0,))]
730 #[serde(rename = "BnfcryDtls", default)]
731 pub bnfcry_dtls: Vec<IndividualPerson31>,
732 #[serde(rename = "FXDtls", skip_serializing_if = "Option::is_none")]
733 pub fx_dtls: Option<ForeignExchangeTerms32>,
734 #[serde(rename = "LttrInttRef", skip_serializing_if = "Option::is_none")]
735 pub lttr_intt_ref: Option<Max35Text>,
736 #[serde(rename = "AcmltnRghtRef", skip_serializing_if = "Option::is_none")]
737 pub acmltn_rght_ref: Option<Max35Text>,
738 #[serde(rename = "TxOvrhd", skip_serializing_if = "Option::is_none")]
739 pub tx_ovrhd: Option<FeeAndTax1>,
740 #[serde(rename = "SttlmAndCtdyDtls", skip_serializing_if = "Option::is_none")]
741 pub sttlm_and_ctdy_dtls: Option<FundSettlementParameters11>,
742 #[validate]
743 #[serde(rename = "PhysDlvryInd")]
744 pub phys_dlvry_ind: YesNoIndicator,
745 #[serde(rename = "PhysDlvryDtls", skip_serializing_if = "Option::is_none")]
746 pub phys_dlvry_dtls: Option<NameAndAddress4>,
747 #[serde(rename = "CshSttlmDtls", skip_serializing_if = "Option::is_none")]
748 pub csh_sttlm_dtls: Option<PaymentTransaction70>,
749 #[serde(rename = "NonStdSttlmInf", skip_serializing_if = "Option::is_none")]
750 pub non_std_sttlm_inf: Option<Max350Text>,
751 #[validate(length(min = 0, max = 4,))]
752 #[serde(rename = "StffClntBrkdwn", default)]
753 pub stff_clnt_brkdwn: Vec<InvestmentFundsOrderBreakdown2>,
754 #[serde(rename = "FinAdvc", skip_serializing_if = "Option::is_none")]
755 pub fin_advc: Option<FinancialAdvice1Code>,
756 #[serde(rename = "NgtdTrad", skip_serializing_if = "Option::is_none")]
757 pub ngtd_trad: Option<NegotiatedTrade1Code>,
758 #[validate(length(min = 0, max = 10,))]
759 #[serde(rename = "RltdPtyDtls", default)]
760 pub rltd_pty_dtls: Vec<Intermediary40>,
761 #[serde(rename = "Equlstn", skip_serializing_if = "Option::is_none")]
762 pub equlstn: Option<Equalisation1>,
763 #[validate(length(min = 0,))]
764 #[serde(rename = "SrcOfCsh", default)]
765 pub src_of_csh: Vec<SourceOfCash1Choice>,
766 #[serde(rename = "CstmrCndctClssfctn", skip_serializing_if = "Option::is_none")]
767 pub cstmr_cndct_clssfctn: Option<CustomerConductClassification1Choice>,
768 #[serde(rename = "TxChanlTp", skip_serializing_if = "Option::is_none")]
769 pub tx_chanl_tp: Option<TransactionChannelType1Choice>,
770 #[serde(rename = "SgntrTp", skip_serializing_if = "Option::is_none")]
771 pub sgntr_tp: Option<SignatureType1Choice>,
772 #[serde(rename = "OrdrWvrDtls", skip_serializing_if = "Option::is_none")]
773 pub ordr_wvr_dtls: Option<OrderWaiver1>,
774}
775#[derive(
776 Debug,
777 Default,
778 Clone,
779 PartialEq,
780 ::serde::Serialize,
781 ::serde::Deserialize,
782 ::derive_builder::Builder,
783 ::validator::Validate,
784)]
785pub struct InvestmentAccount60 {
786 #[serde(rename = "AcctId", skip_serializing_if = "Option::is_none")]
787 pub acct_id: Option<Max35Text>,
788 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
789 pub tp: Option<InvestmentAccountType1Choice>,
790}
791#[derive(
792 Debug,
793 Default,
794 Clone,
795 PartialEq,
796 ::serde::Serialize,
797 ::serde::Deserialize,
798 ::derive_builder::Builder,
799 ::validator::Validate,
800)]
801pub struct ActiveCurrencyCode {
802 #[validate(regex = "ACTIVE_CURRENCY_CODE_REGEX")]
803 #[serde(rename = "$text")]
804 pub value: String,
805}
806#[derive(
807 Debug,
808 Default,
809 Clone,
810 PartialEq,
811 ::serde::Serialize,
812 ::serde::Deserialize,
813 ::derive_builder::Builder,
814 ::validator::Validate,
815)]
816pub struct Max16Text {
817 #[validate(length(min = 1, max = 16,))]
818 #[serde(rename = "$text")]
819 pub value: String,
820}
821#[derive(
822 Debug,
823 Default,
824 Clone,
825 PartialEq,
826 ::serde::Serialize,
827 ::serde::Deserialize,
828 ::derive_builder::Builder,
829 ::validator::Validate,
830)]
831pub struct BaseOneRate {
832 #[serde(rename = "$text")]
833 pub value: f64,
834}
835#[derive(
836 Debug,
837 Default,
838 Clone,
839 PartialEq,
840 ::serde::Serialize,
841 ::serde::Deserialize,
842 ::derive_builder::Builder,
843 ::validator::Validate,
844)]
845pub struct CreditTransfer8 {
846 #[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
847 pub r#ref: Option<Max35Text>,
848 #[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
849 pub dbtr: Option<PartyIdentification113>,
850 #[serde(rename = "DbtrAcct", skip_serializing_if = "Option::is_none")]
851 pub dbtr_acct: Option<AccountIdentificationAndName5>,
852 #[serde(rename = "DbtrAgt", skip_serializing_if = "Option::is_none")]
853 pub dbtr_agt: Option<FinancialInstitutionIdentification10>,
854 #[serde(rename = "DbtrAgtAcct", skip_serializing_if = "Option::is_none")]
855 pub dbtr_agt_acct: Option<AccountIdentificationAndName5>,
856 #[serde(rename = "IntrmyAgt1", skip_serializing_if = "Option::is_none")]
857 pub intrmy_agt_1: Option<FinancialInstitutionIdentification10>,
858 #[serde(rename = "IntrmyAgt1Acct", skip_serializing_if = "Option::is_none")]
859 pub intrmy_agt_1_acct: Option<AccountIdentificationAndName5>,
860 #[serde(rename = "IntrmyAgt2", skip_serializing_if = "Option::is_none")]
861 pub intrmy_agt_2: Option<FinancialInstitutionIdentification10>,
862 #[serde(rename = "IntrmyAgt2Acct", skip_serializing_if = "Option::is_none")]
863 pub intrmy_agt_2_acct: Option<AccountIdentificationAndName5>,
864 #[validate]
865 #[serde(rename = "CdtrAgt")]
866 pub cdtr_agt: FinancialInstitutionIdentification10,
867 #[serde(rename = "CdtrAgtAcct", skip_serializing_if = "Option::is_none")]
868 pub cdtr_agt_acct: Option<AccountIdentificationAndName5>,
869 #[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
870 pub cdtr: Option<PartyIdentification113>,
871 #[validate]
872 #[serde(rename = "CdtrAcct")]
873 pub cdtr_acct: AccountIdentificationAndName5,
874}
875#[derive(
876 Debug,
877 Default,
878 Clone,
879 PartialEq,
880 ::serde::Serialize,
881 ::serde::Deserialize,
882 ::derive_builder::Builder,
883 ::validator::Validate,
884)]
885pub struct ActiveCurrencyAndAmount {
886 #[serde(rename = "ActiveCurrencyAndAmount")]
887 pub value: ActiveCurrencyAndAmountSimpleType,
888 #[serde(rename = "@Ccy")]
889 pub ccy: ActiveCurrencyCode,
890}
891#[derive(
892 Debug,
893 Default,
894 Clone,
895 PartialEq,
896 ::serde::Serialize,
897 ::serde::Deserialize,
898 ::derive_builder::Builder,
899 ::validator::Validate,
900)]
901pub struct ChargeOrCommissionDiscount1 {
902 #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
903 pub amt: Option<ActiveCurrencyAndAmount>,
904 #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
905 pub rate: Option<PercentageRate>,
906 #[serde(rename = "Bsis", skip_serializing_if = "Option::is_none")]
907 pub bsis: Option<WaivingInstruction2Choice>,
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 IdentificationSource1ChoiceEnum {
920 #[serde(rename = "Dmst", skip_serializing_if = "Option::is_none")]
921 pub dmst: Option<CountryCode>,
922 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
923 pub prtry: Option<Max35Text>,
924}
925#[derive(
926 Debug,
927 Default,
928 Clone,
929 PartialEq,
930 ::serde::Serialize,
931 ::serde::Deserialize,
932 ::derive_builder::Builder,
933 ::validator::Validate,
934)]
935pub struct IdentificationSource1Choice {
936 #[serde(flatten)]
937 pub value: IdentificationSource1ChoiceEnum,
938}
939#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
940pub enum IncomePreference1Code {
941 #[serde(rename = "CASH")]
942 Cash,
943 #[serde(rename = "DRIP")]
944 Drip,
945 #[default]
946 Unknown,
947}
948#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
949pub enum FundOrderType5Code {
950 #[serde(rename = "NSPN")]
951 Nspn,
952 #[serde(rename = "NCPN")]
953 Ncpn,
954 #[serde(rename = "SWSP")]
955 Swsp,
956 #[serde(rename = "CWSP")]
957 Cwsp,
958 #[default]
959 Unknown,
960}
961#[derive(
962 Debug,
963 Default,
964 Clone,
965 PartialEq,
966 ::serde::Serialize,
967 ::serde::Deserialize,
968 ::derive_builder::Builder,
969 ::validator::Validate,
970)]
971pub struct IrishNscIdentifier {
972 #[validate(regex = "IRISH_NSC_IDENTIFIER_REGEX")]
973 #[serde(rename = "$text")]
974 pub value: String,
975}
976#[derive(
977 Debug,
978 Default,
979 Clone,
980 PartialEq,
981 ::serde::Serialize,
982 ::serde::Deserialize,
983 ::derive_builder::Builder,
984 ::validator::Validate,
985)]
986pub struct BelgianIdentifier {
987 #[serde(rename = "$text")]
988 pub value: String,
989}
990#[derive(
991 Debug,
992 Default,
993 Clone,
994 PartialEq,
995 ::serde::Serialize,
996 ::serde::Deserialize,
997 ::derive_builder::Builder,
998 ::validator::Validate,
999)]
1000pub struct QuickIdentifier {
1001 #[serde(rename = "$text")]
1002 pub value: String,
1003}
1004#[derive(
1005 Debug,
1006 Default,
1007 Clone,
1008 PartialEq,
1009 ::serde::Serialize,
1010 ::serde::Deserialize,
1011 ::derive_builder::Builder,
1012 ::validator::Validate,
1013)]
1014pub struct ActiveCurrencyAndAmountSimpleType {
1015 #[validate(range(min = 0,))]
1016 #[serde(rename = "$text")]
1017 pub value: f64,
1018}
1019#[derive(
1020 Debug,
1021 Default,
1022 Clone,
1023 PartialEq,
1024 ::serde::Serialize,
1025 ::serde::Deserialize,
1026 ::derive_builder::Builder,
1027 ::validator::Validate,
1028)]
1029pub struct SafekeepingPlaceTypeAndText6 {
1030 #[serde(rename = "SfkpgPlcTp")]
1031 pub sfkpg_plc_tp: SafekeepingPlace2Code,
1032 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1033 pub id: Option<Max35Text>,
1034}
1035#[derive(
1036 Debug,
1037 Default,
1038 Clone,
1039 PartialEq,
1040 ::serde::Serialize,
1041 ::serde::Deserialize,
1042 ::derive_builder::Builder,
1043 ::validator::Validate,
1044)]
1045pub struct FinancialInstitutionIdentification10 {
1046 #[serde(rename = "Pty")]
1047 pub pty: FinancialInstitutionIdentification8Choice,
1048 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
1049 pub lei: Option<LeiIdentifier>,
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 OtherIdentification3ChoiceEnum {
1062 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1063 pub prtry: Option<GenericIdentification47>,
1064 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1065 pub cd: Option<PartyIdentificationType7Code>,
1066}
1067#[derive(
1068 Debug,
1069 Default,
1070 Clone,
1071 PartialEq,
1072 ::serde::Serialize,
1073 ::serde::Deserialize,
1074 ::derive_builder::Builder,
1075 ::validator::Validate,
1076)]
1077pub struct OtherIdentification3Choice {
1078 #[serde(flatten)]
1079 pub value: OtherIdentification3ChoiceEnum,
1080}
1081#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1082pub enum FundCashAccount2Code {
1083 #[serde(rename = "CASH")]
1084 Cash,
1085 #[serde(rename = "CPFO")]
1086 Cpfo,
1087 #[serde(rename = "CPFS")]
1088 Cpfs,
1089 #[serde(rename = "SRSA")]
1090 Srsa,
1091 #[default]
1092 Unknown,
1093}
1094#[derive(
1095 Debug,
1096 Default,
1097 Clone,
1098 PartialEq,
1099 ::serde::Serialize,
1100 ::serde::Deserialize,
1101 ::derive_builder::Builder,
1102 ::validator::Validate,
1103)]
1104pub struct PartyIdentification113 {
1105 #[serde(rename = "Pty")]
1106 pub pty: PartyIdentification90Choice,
1107 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
1108 pub lei: Option<LeiIdentifier>,
1109}
1110#[derive(
1111 Debug,
1112 Default,
1113 Clone,
1114 PartialEq,
1115 ::serde::Serialize,
1116 ::serde::Deserialize,
1117 ::derive_builder::Builder,
1118 ::validator::Validate,
1119)]
1120pub struct ExemptionReason1ChoiceEnum {
1121 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1122 pub prtry: Option<GenericIdentification47>,
1123 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1124 pub cd: Option<TaxExemptReason1Code>,
1125}
1126#[derive(
1127 Debug,
1128 Default,
1129 Clone,
1130 PartialEq,
1131 ::serde::Serialize,
1132 ::serde::Deserialize,
1133 ::derive_builder::Builder,
1134 ::validator::Validate,
1135)]
1136pub struct ExemptionReason1Choice {
1137 #[serde(flatten)]
1138 pub value: ExemptionReason1ChoiceEnum,
1139}
1140#[derive(
1141 Debug,
1142 Default,
1143 Clone,
1144 PartialEq,
1145 ::serde::Serialize,
1146 ::serde::Deserialize,
1147 ::derive_builder::Builder,
1148 ::validator::Validate,
1149)]
1150pub struct SubAccount6 {
1151 #[validate]
1152 #[serde(rename = "Id")]
1153 pub id: Max35Text,
1154 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
1155 pub nm: Option<Max35Text>,
1156 #[serde(rename = "Chrtc", skip_serializing_if = "Option::is_none")]
1157 pub chrtc: Option<Max35Text>,
1158 #[serde(rename = "AcctDsgnt", skip_serializing_if = "Option::is_none")]
1159 pub acct_dsgnt: Option<Max35Text>,
1160}
1161#[derive(
1162 Debug,
1163 Default,
1164 Clone,
1165 PartialEq,
1166 ::serde::Serialize,
1167 ::serde::Deserialize,
1168 ::derive_builder::Builder,
1169 ::validator::Validate,
1170)]
1171pub struct PostalAddress1 {
1172 #[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
1173 pub adr_tp: Option<AddressType2Code>,
1174 #[validate(length(min = 0, max = 5,))]
1175 #[serde(rename = "AdrLine", default)]
1176 pub adr_line: Vec<Max70Text>,
1177 #[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
1178 pub strt_nm: Option<Max70Text>,
1179 #[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
1180 pub bldg_nb: Option<Max16Text>,
1181 #[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
1182 pub pst_cd: Option<Max16Text>,
1183 #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
1184 pub twn_nm: Option<Max35Text>,
1185 #[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
1186 pub ctry_sub_dvsn: Option<Max35Text>,
1187 #[serde(rename = "Ctry")]
1188 pub ctry: CountryCode,
1189}
1190#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1191pub enum ResidentialStatus1Code {
1192 #[serde(rename = "RESI")]
1193 Resi,
1194 #[serde(rename = "PRES")]
1195 Pres,
1196 #[serde(rename = "NRES")]
1197 Nres,
1198 #[default]
1199 Unknown,
1200}
1201#[derive(
1202 Debug,
1203 Default,
1204 Clone,
1205 PartialEq,
1206 ::serde::Serialize,
1207 ::serde::Deserialize,
1208 ::derive_builder::Builder,
1209 ::validator::Validate,
1210)]
1211pub struct ChipsUniversalIdentifier {
1212 #[validate(regex = "CHIPS_UNIVERSAL_IDENTIFIER_REGEX")]
1213 #[serde(rename = "$text")]
1214 pub value: String,
1215}
1216#[derive(
1217 Debug,
1218 Default,
1219 Clone,
1220 PartialEq,
1221 ::serde::Serialize,
1222 ::serde::Deserialize,
1223 ::derive_builder::Builder,
1224 ::validator::Validate,
1225)]
1226pub struct PlaceOfTradeIdentification1ChoiceEnum {
1227 #[serde(rename = "OverTheCntr", skip_serializing_if = "Option::is_none")]
1228 pub over_the_cntr: Option<Max35Text>,
1229 #[serde(rename = "Xchg", skip_serializing_if = "Option::is_none")]
1230 pub xchg: Option<MicIdentifier>,
1231 #[serde(rename = "Pty", skip_serializing_if = "Option::is_none")]
1232 pub pty: Option<AnyBicIdentifier>,
1233 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1234 pub ctry: Option<CountryCode>,
1235}
1236#[derive(
1237 Debug,
1238 Default,
1239 Clone,
1240 PartialEq,
1241 ::serde::Serialize,
1242 ::serde::Deserialize,
1243 ::derive_builder::Builder,
1244 ::validator::Validate,
1245)]
1246pub struct PlaceOfTradeIdentification1Choice {
1247 #[serde(flatten)]
1248 pub value: PlaceOfTradeIdentification1ChoiceEnum,
1249}
1250#[derive(
1251 Debug,
1252 Default,
1253 Clone,
1254 PartialEq,
1255 ::serde::Serialize,
1256 ::serde::Deserialize,
1257 ::derive_builder::Builder,
1258 ::validator::Validate,
1259)]
1260pub struct PartyIdentificationAndAccount147 {
1261 #[validate]
1262 #[serde(rename = "PtyId")]
1263 pub pty_id: PartyIdentification113,
1264 #[serde(rename = "AcctId", skip_serializing_if = "Option::is_none")]
1265 pub acct_id: Option<Max35Text>,
1266}
1267#[derive(
1268 Debug,
1269 Default,
1270 Clone,
1271 PartialEq,
1272 ::serde::Serialize,
1273 ::serde::Deserialize,
1274 ::derive_builder::Builder,
1275 ::validator::Validate,
1276)]
1277pub struct LeiIdentifier {
1278 #[validate(regex = "LEI_IDENTIFIER_REGEX")]
1279 #[serde(rename = "$text")]
1280 pub value: String,
1281}
1282#[derive(
1283 Debug,
1284 Default,
1285 Clone,
1286 PartialEq,
1287 ::serde::Serialize,
1288 ::serde::Deserialize,
1289 ::derive_builder::Builder,
1290 ::validator::Validate,
1291)]
1292pub struct InvestmentFundRole2ChoiceEnum {
1293 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1294 pub cd: Option<InvestmentFundRole2Code>,
1295 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1296 pub prtry: Option<GenericIdentification47>,
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 InvestmentFundRole2Choice {
1309 #[serde(flatten)]
1310 pub value: InvestmentFundRole2ChoiceEnum,
1311}
1312#[derive(
1313 Debug,
1314 Default,
1315 Clone,
1316 PartialEq,
1317 ::serde::Serialize,
1318 ::serde::Deserialize,
1319 ::derive_builder::Builder,
1320 ::validator::Validate,
1321)]
1322pub struct FinancialInstrument57 {
1323 #[serde(rename = "Id")]
1324 pub id: SecurityIdentification25Choice,
1325 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
1326 pub nm: Option<Max350Text>,
1327 #[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
1328 pub shrt_nm: Option<Max35Text>,
1329 #[serde(rename = "SplmtryId", skip_serializing_if = "Option::is_none")]
1330 pub splmtry_id: Option<Max35Text>,
1331 #[serde(rename = "ClssTp", skip_serializing_if = "Option::is_none")]
1332 pub clss_tp: Option<Max35Text>,
1333 #[serde(rename = "SctiesForm", skip_serializing_if = "Option::is_none")]
1334 pub scties_form: Option<FormOfSecurity1Code>,
1335 #[serde(rename = "DstrbtnPlcy", skip_serializing_if = "Option::is_none")]
1336 pub dstrbtn_plcy: Option<DistributionPolicy1Code>,
1337 #[serde(rename = "PdctGrp", skip_serializing_if = "Option::is_none")]
1338 pub pdct_grp: Option<Max140Text>,
1339 #[serde(rename = "SrsId", skip_serializing_if = "Option::is_none")]
1340 pub srs_id: Option<Series1>,
1341}
1342#[derive(
1343 Debug,
1344 Default,
1345 Clone,
1346 PartialEq,
1347 ::serde::Serialize,
1348 ::serde::Deserialize,
1349 ::derive_builder::Builder,
1350 ::validator::Validate,
1351)]
1352pub struct TaxCalculationInformation9 {
1353 #[serde(rename = "Bsis")]
1354 pub bsis: TaxBasis1Choice,
1355}
1356#[derive(
1357 Debug,
1358 Default,
1359 Clone,
1360 PartialEq,
1361 ::serde::Serialize,
1362 ::serde::Deserialize,
1363 ::derive_builder::Builder,
1364 ::validator::Validate,
1365)]
1366pub struct BranchData {
1367 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1368 pub id: Option<Max35Text>,
1369 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
1370 pub nm: Option<Max35Text>,
1371 #[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
1372 pub pstl_adr: Option<PostalAddress1>,
1373}
1374#[derive(
1375 Debug,
1376 Default,
1377 Clone,
1378 PartialEq,
1379 ::serde::Serialize,
1380 ::serde::Deserialize,
1381 ::derive_builder::Builder,
1382 ::validator::Validate,
1383)]
1384pub struct TaxType3ChoiceEnum {
1385 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1386 pub prtry: Option<GenericIdentification47>,
1387 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1388 pub cd: Option<TaxType17Code>,
1389}
1390#[derive(
1391 Debug,
1392 Default,
1393 Clone,
1394 PartialEq,
1395 ::serde::Serialize,
1396 ::serde::Deserialize,
1397 ::derive_builder::Builder,
1398 ::validator::Validate,
1399)]
1400pub struct TaxType3Choice {
1401 #[serde(flatten)]
1402 pub value: TaxType3ChoiceEnum,
1403}
1404#[derive(
1405 Debug,
1406 Default,
1407 Clone,
1408 PartialEq,
1409 ::serde::Serialize,
1410 ::serde::Deserialize,
1411 ::derive_builder::Builder,
1412 ::validator::Validate,
1413)]
1414pub struct SwissBcIdentifier {
1415 #[validate(regex = "SWISS_BC_IDENTIFIER_REGEX")]
1416 #[serde(rename = "$text")]
1417 pub value: String,
1418}
1419#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1420pub enum TradeTransactionCondition5Code {
1421 #[serde(rename = "XCPN")]
1422 Xcpn,
1423 #[serde(rename = "CCPN")]
1424 Ccpn,
1425 #[default]
1426 Unknown,
1427}
1428#[derive(
1429 Debug,
1430 Default,
1431 Clone,
1432 PartialEq,
1433 ::serde::Serialize,
1434 ::serde::Deserialize,
1435 ::derive_builder::Builder,
1436 ::validator::Validate,
1437)]
1438pub struct GenericIdentification30 {
1439 #[validate]
1440 #[serde(rename = "Id")]
1441 pub id: Exact4AlphaNumericText,
1442 #[validate]
1443 #[serde(rename = "Issr")]
1444 pub issr: Max35Text,
1445 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
1446 pub schme_nm: Option<Max35Text>,
1447}
1448#[derive(
1449 Debug,
1450 Default,
1451 Clone,
1452 PartialEq,
1453 ::serde::Serialize,
1454 ::serde::Deserialize,
1455 ::derive_builder::Builder,
1456 ::validator::Validate,
1457)]
1458pub struct ActiveOrHistoricCurrencyAndAmountSimpleType {
1459 #[validate(range(min = 0,))]
1460 #[serde(rename = "$text")]
1461 pub value: f64,
1462}
1463#[derive(
1464 Debug,
1465 Default,
1466 Clone,
1467 PartialEq,
1468 ::serde::Serialize,
1469 ::serde::Deserialize,
1470 ::derive_builder::Builder,
1471 ::validator::Validate,
1472)]
1473pub struct Max140Text {
1474 #[validate(length(min = 1, max = 140,))]
1475 #[serde(rename = "$text")]
1476 pub value: String,
1477}
1478#[derive(
1479 Debug,
1480 Default,
1481 Clone,
1482 PartialEq,
1483 ::serde::Serialize,
1484 ::serde::Deserialize,
1485 ::derive_builder::Builder,
1486 ::validator::Validate,
1487)]
1488pub struct SafekeepingPlaceFormat8ChoiceEnum {
1489 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
1490 pub id: Option<SafekeepingPlaceTypeAndText6>,
1491 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1492 pub prtry: Option<GenericIdentification78>,
1493 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
1494 pub ctry: Option<CountryCode>,
1495 #[serde(rename = "TpAndId", skip_serializing_if = "Option::is_none")]
1496 pub tp_and_id: Option<SafekeepingPlaceTypeAndAnyBicIdentifier1>,
1497}
1498#[derive(
1499 Debug,
1500 Default,
1501 Clone,
1502 PartialEq,
1503 ::serde::Serialize,
1504 ::serde::Deserialize,
1505 ::derive_builder::Builder,
1506 ::validator::Validate,
1507)]
1508pub struct SafekeepingPlaceFormat8Choice {
1509 #[serde(flatten)]
1510 pub value: SafekeepingPlaceFormat8ChoiceEnum,
1511}
1512#[derive(
1513 Debug,
1514 Default,
1515 Clone,
1516 PartialEq,
1517 ::serde::Serialize,
1518 ::serde::Deserialize,
1519 ::derive_builder::Builder,
1520 ::validator::Validate,
1521)]
1522pub struct MicIdentifier {
1523 #[validate(regex = "MIC_IDENTIFIER_REGEX")]
1524 #[serde(rename = "$text")]
1525 pub value: String,
1526}
1527#[derive(
1528 Debug,
1529 Default,
1530 Clone,
1531 PartialEq,
1532 ::serde::Serialize,
1533 ::serde::Deserialize,
1534 ::derive_builder::Builder,
1535 ::validator::Validate,
1536)]
1537pub struct GermanBankleitzahlIdentifier {
1538 #[validate(regex = "GERMAN_BANKLEITZAHL_IDENTIFIER_REGEX")]
1539 #[serde(rename = "$text")]
1540 pub value: String,
1541}
1542#[derive(
1543 Debug,
1544 Default,
1545 Clone,
1546 PartialEq,
1547 ::serde::Serialize,
1548 ::serde::Deserialize,
1549 ::derive_builder::Builder,
1550 ::validator::Validate,
1551)]
1552pub struct NewZealandNccIdentifier {
1553 #[validate(regex = "NEW_ZEALAND_NCC_IDENTIFIER_REGEX")]
1554 #[serde(rename = "$text")]
1555 pub value: String,
1556}
1557#[derive(
1558 Debug,
1559 Default,
1560 Clone,
1561 PartialEq,
1562 ::serde::Serialize,
1563 ::serde::Deserialize,
1564 ::derive_builder::Builder,
1565 ::validator::Validate,
1566)]
1567pub struct FundSettlementParameters11 {
1568 #[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
1569 pub sttlm_dt: Option<IsoDate>,
1570 #[validate]
1571 #[serde(rename = "SttlmPlc")]
1572 pub sttlm_plc: PartyIdentification113,
1573 #[serde(rename = "SfkpgPlc", skip_serializing_if = "Option::is_none")]
1574 pub sfkpg_plc: Option<SafekeepingPlaceFormat8Choice>,
1575 #[serde(rename = "SctiesSttlmSysId", skip_serializing_if = "Option::is_none")]
1576 pub scties_sttlm_sys_id: Option<Max35Text>,
1577 #[validate(length(min = 0,))]
1578 #[serde(rename = "TradTxCond", default)]
1579 pub trad_tx_cond: Vec<TradeTransactionCondition8Choice>,
1580 #[validate(length(min = 0,))]
1581 #[serde(rename = "SttlmTxCond", default)]
1582 pub sttlm_tx_cond: Vec<SettlementTransactionCondition30Choice>,
1583 #[validate]
1584 #[serde(rename = "RcvgSdDtls")]
1585 pub rcvg_sd_dtls: ReceivingPartiesAndAccount16,
1586 #[serde(rename = "DlvrgSdDtls", skip_serializing_if = "Option::is_none")]
1587 pub dlvrg_sd_dtls: Option<DeliveringPartiesAndAccount16>,
1588}
1589#[derive(
1590 Debug,
1591 Default,
1592 Clone,
1593 PartialEq,
1594 ::serde::Serialize,
1595 ::serde::Deserialize,
1596 ::derive_builder::Builder,
1597 ::validator::Validate,
1598)]
1599pub struct TaxAmountOrRate4ChoiceEnum {
1600 #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
1601 pub amt: Option<ActiveCurrencyAndAmount>,
1602 #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
1603 pub rate: Option<PercentageRate>,
1604}
1605#[derive(
1606 Debug,
1607 Default,
1608 Clone,
1609 PartialEq,
1610 ::serde::Serialize,
1611 ::serde::Deserialize,
1612 ::derive_builder::Builder,
1613 ::validator::Validate,
1614)]
1615pub struct TaxAmountOrRate4Choice {
1616 #[serde(flatten)]
1617 pub value: TaxAmountOrRate4ChoiceEnum,
1618}
1619#[derive(
1620 Debug,
1621 Default,
1622 Clone,
1623 PartialEq,
1624 ::serde::Serialize,
1625 ::serde::Deserialize,
1626 ::derive_builder::Builder,
1627 ::validator::Validate,
1628)]
1629pub struct IsoDate {
1630 #[serde(rename = "$text")]
1631 pub value: ::chrono::NaiveDate,
1632}
1633#[derive(
1634 Debug,
1635 Default,
1636 Clone,
1637 PartialEq,
1638 ::serde::Serialize,
1639 ::serde::Deserialize,
1640 ::derive_builder::Builder,
1641 ::validator::Validate,
1642)]
1643pub struct OrderWaiver1 {
1644 #[validate(length(min = 0,))]
1645 #[serde(rename = "OrdrWvrRsn", default)]
1646 pub ordr_wvr_rsn: Vec<OrderWaiverReason3Choice>,
1647 #[serde(rename = "InfVal", skip_serializing_if = "Option::is_none")]
1648 pub inf_val: Option<Max350Text>,
1649}
1650#[derive(
1651 Debug,
1652 Default,
1653 Clone,
1654 PartialEq,
1655 ::serde::Serialize,
1656 ::serde::Deserialize,
1657 ::derive_builder::Builder,
1658 ::validator::Validate,
1659)]
1660pub struct Account22 {
1661 #[validate]
1662 #[serde(rename = "Id")]
1663 pub id: Max35Text,
1664 #[serde(rename = "AcctSvcr", skip_serializing_if = "Option::is_none")]
1665 pub acct_svcr: Option<PartyIdentification113>,
1666}
1667#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1668pub enum TaxType17Code {
1669 #[serde(rename = "PROV")]
1670 Prov,
1671 #[serde(rename = "NATI")]
1672 Nati,
1673 #[serde(rename = "STAT")]
1674 Stat,
1675 #[serde(rename = "WITH")]
1676 With,
1677 #[serde(rename = "KAPA")]
1678 Kapa,
1679 #[serde(rename = "NKAP")]
1680 Nkap,
1681 #[serde(rename = "INPO")]
1682 Inpo,
1683 #[serde(rename = "STAM")]
1684 Stam,
1685 #[serde(rename = "WTAX")]
1686 Wtax,
1687 #[serde(rename = "INHT")]
1688 Inht,
1689 #[serde(rename = "SOSU")]
1690 Sosu,
1691 #[serde(rename = "CTAX")]
1692 Ctax,
1693 #[serde(rename = "GIFT")]
1694 Gift,
1695 #[serde(rename = "COAX")]
1696 Coax,
1697 #[serde(rename = "EUTR")]
1698 Eutr,
1699 #[serde(rename = "AKT1")]
1700 Akt1,
1701 #[serde(rename = "AKT2")]
1702 Akt2,
1703 #[serde(rename = "ZWIS")]
1704 Zwis,
1705 #[default]
1706 Unknown,
1707}
1708#[derive(
1709 Debug,
1710 Default,
1711 Clone,
1712 PartialEq,
1713 ::serde::Serialize,
1714 ::serde::Deserialize,
1715 ::derive_builder::Builder,
1716 ::validator::Validate,
1717)]
1718pub struct ItalianDomesticIdentifier {
1719 #[validate(regex = "ITALIAN_DOMESTIC_IDENTIFIER_REGEX")]
1720 #[serde(rename = "$text")]
1721 pub value: String,
1722}
1723#[derive(
1724 Debug,
1725 Default,
1726 Clone,
1727 PartialEq,
1728 ::serde::Serialize,
1729 ::serde::Deserialize,
1730 ::derive_builder::Builder,
1731 ::validator::Validate,
1732)]
1733pub struct OrderWaiverReason3ChoiceEnum {
1734 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1735 pub cd: Option<OrderWaiverReason1Code>,
1736 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1737 pub prtry: Option<GenericIdentification47>,
1738}
1739#[derive(
1740 Debug,
1741 Default,
1742 Clone,
1743 PartialEq,
1744 ::serde::Serialize,
1745 ::serde::Deserialize,
1746 ::derive_builder::Builder,
1747 ::validator::Validate,
1748)]
1749pub struct OrderWaiverReason3Choice {
1750 #[serde(flatten)]
1751 pub value: OrderWaiverReason3ChoiceEnum,
1752}
1753#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1754pub enum TaxationBasis5Code {
1755 #[serde(rename = "FLAT")]
1756 Flat,
1757 #[serde(rename = "GRAM")]
1758 Gram,
1759 #[serde(rename = "NEAM")]
1760 Neam,
1761 #[serde(rename = "NAVP")]
1762 Navp,
1763 #[serde(rename = "PERU")]
1764 Peru,
1765 #[default]
1766 Unknown,
1767}
1768#[derive(
1769 Debug,
1770 Default,
1771 Clone,
1772 PartialEq,
1773 ::serde::Serialize,
1774 ::serde::Deserialize,
1775 ::derive_builder::Builder,
1776 ::validator::Validate,
1777)]
1778pub struct EuroclearClearstreamIdentifier {
1779 #[validate(length(min = 1, max = 12,))]
1780 #[serde(rename = "$text")]
1781 pub value: String,
1782}
1783#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1784pub enum WaivingInstruction1Code {
1785 #[serde(rename = "WICA")]
1786 Wica,
1787 #[serde(rename = "WIUN")]
1788 Wiun,
1789 #[default]
1790 Unknown,
1791}
1792#[derive(
1793 Debug,
1794 Default,
1795 Clone,
1796 PartialEq,
1797 ::serde::Serialize,
1798 ::serde::Deserialize,
1799 ::derive_builder::Builder,
1800 ::validator::Validate,
1801)]
1802pub struct SafekeepingPlaceTypeAndAnyBicIdentifier1 {
1803 #[serde(rename = "SfkpgPlcTp")]
1804 pub sfkpg_plc_tp: SafekeepingPlace1Code,
1805 #[validate]
1806 #[serde(rename = "Id")]
1807 pub id: AnyBicIdentifier,
1808}
1809#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1810pub enum SourceOfCash1Code {
1811 #[serde(rename = "ALMY")]
1812 Almy,
1813 #[serde(rename = "CASH")]
1814 Cash,
1815 #[serde(rename = "COMP")]
1816 Comp,
1817 #[serde(rename = "EMIN")]
1818 Emin,
1819 #[serde(rename = "GIFT")]
1820 Gift,
1821 #[serde(rename = "INHE")]
1822 Inhe,
1823 #[serde(rename = "INLQ")]
1824 Inlq,
1825 #[serde(rename = "REST")]
1826 Rest,
1827 #[serde(rename = "REDM")]
1828 Redm,
1829 #[serde(rename = "REPY")]
1830 Repy,
1831 #[serde(rename = "SEAQ")]
1832 Seaq,
1833 #[serde(rename = "SALE")]
1834 Sale,
1835 #[serde(rename = "SVGS")]
1836 Svgs,
1837 #[serde(rename = "SELF")]
1838 XSelf,
1839 #[serde(rename = "WINS")]
1840 Wins,
1841 #[default]
1842 Unknown,
1843}
1844#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1845pub enum CardType1Code {
1846 #[serde(rename = "CRDT")]
1847 Crdt,
1848 #[serde(rename = "DBIT")]
1849 Dbit,
1850 #[default]
1851 Unknown,
1852}
1853#[derive(
1854 Debug,
1855 Default,
1856 Clone,
1857 PartialEq,
1858 ::serde::Serialize,
1859 ::serde::Deserialize,
1860 ::derive_builder::Builder,
1861 ::validator::Validate,
1862)]
1863pub struct ChipsParticipantIdentifier {
1864 #[validate(regex = "CHIPS_PARTICIPANT_IDENTIFIER_REGEX")]
1865 #[serde(rename = "$text")]
1866 pub value: String,
1867}
1868#[derive(
1869 Debug,
1870 Default,
1871 Clone,
1872 PartialEq,
1873 ::serde::Serialize,
1874 ::serde::Deserialize,
1875 ::derive_builder::Builder,
1876 ::validator::Validate,
1877)]
1878pub struct DirectDebitMandate6 {
1879 #[validate]
1880 #[serde(rename = "DbtrAcct")]
1881 pub dbtr_acct: AccountIdentificationAndName5,
1882 #[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
1883 pub dbtr: Option<PartyIdentification113>,
1884 #[serde(rename = "DbtrTaxIdNb", skip_serializing_if = "Option::is_none")]
1885 pub dbtr_tax_id_nb: Option<Max35Text>,
1886 #[serde(rename = "DbtrNtlRegnNb", skip_serializing_if = "Option::is_none")]
1887 pub dbtr_ntl_regn_nb: Option<Max35Text>,
1888 #[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
1889 pub cdtr: Option<PartyIdentification113>,
1890 #[validate]
1891 #[serde(rename = "DbtrAgt")]
1892 pub dbtr_agt: FinancialInstitutionIdentification10,
1893 #[serde(rename = "DbtrAgtBrnch", skip_serializing_if = "Option::is_none")]
1894 pub dbtr_agt_brnch: Option<BranchData>,
1895 #[serde(rename = "CdtrAgt", skip_serializing_if = "Option::is_none")]
1896 pub cdtr_agt: Option<FinancialInstitutionIdentification10>,
1897 #[serde(rename = "CdtrAgtBrnch", skip_serializing_if = "Option::is_none")]
1898 pub cdtr_agt_brnch: Option<BranchData>,
1899 #[serde(rename = "RegnId", skip_serializing_if = "Option::is_none")]
1900 pub regn_id: Option<Max35Text>,
1901 #[serde(rename = "MndtId", skip_serializing_if = "Option::is_none")]
1902 pub mndt_id: Option<Max35Text>,
1903}
1904#[derive(
1905 Debug,
1906 Default,
1907 Clone,
1908 PartialEq,
1909 ::serde::Serialize,
1910 ::serde::Deserialize,
1911 ::derive_builder::Builder,
1912 ::validator::Validate,
1913)]
1914pub struct ValorenIdentifier {
1915 #[serde(rename = "$text")]
1916 pub value: String,
1917}
1918#[derive(
1919 Debug,
1920 Default,
1921 Clone,
1922 PartialEq,
1923 ::serde::Serialize,
1924 ::serde::Deserialize,
1925 ::derive_builder::Builder,
1926 ::validator::Validate,
1927)]
1928pub struct SubscriptionBulkOrder5 {
1929 #[serde(rename = "MstrRef", skip_serializing_if = "Option::is_none")]
1930 pub mstr_ref: Option<Max35Text>,
1931 #[serde(rename = "PlcOfTrad", skip_serializing_if = "Option::is_none")]
1932 pub plc_of_trad: Option<PlaceOfTradeIdentification1Choice>,
1933 #[serde(rename = "OrdrDtTm", skip_serializing_if = "Option::is_none")]
1934 pub ordr_dt_tm: Option<IsoDateTime>,
1935 #[serde(rename = "XpryDtTm", skip_serializing_if = "Option::is_none")]
1936 pub xpry_dt_tm: Option<DateAndDateTimeChoice>,
1937 #[serde(rename = "ReqdFutrTradDt", skip_serializing_if = "Option::is_none")]
1938 pub reqd_futr_trad_dt: Option<IsoDate>,
1939 #[serde(rename = "CxlRght", skip_serializing_if = "Option::is_none")]
1940 pub cxl_rght: Option<CancellationRight1Choice>,
1941 #[validate]
1942 #[serde(rename = "FinInstrmDtls")]
1943 pub fin_instrm_dtls: FinancialInstrument57,
1944 #[validate(length(min = 1,))]
1945 #[serde(rename = "IndvOrdrDtls", default)]
1946 pub indv_ordr_dtls: Vec<SubscriptionOrder15>,
1947 #[serde(rename = "ReqdSttlmCcy", skip_serializing_if = "Option::is_none")]
1948 pub reqd_sttlm_ccy: Option<ActiveCurrencyCode>,
1949 #[serde(rename = "ReqdNAVCcy", skip_serializing_if = "Option::is_none")]
1950 pub reqd_nav_ccy: Option<ActiveOrHistoricCurrencyCode>,
1951 #[serde(rename = "TtlSttlmAmt", skip_serializing_if = "Option::is_none")]
1952 pub ttl_sttlm_amt: Option<ActiveCurrencyAndAmount>,
1953 #[serde(rename = "BlkCshSttlmDtls", skip_serializing_if = "Option::is_none")]
1954 pub blk_csh_sttlm_dtls: Option<PaymentTransaction70>,
1955}
1956#[derive(
1957 Debug,
1958 Default,
1959 Clone,
1960 PartialEq,
1961 ::serde::Serialize,
1962 ::serde::Deserialize,
1963 ::derive_builder::Builder,
1964 ::validator::Validate,
1965)]
1966pub struct ForeignExchangeTerms32 {
1967 #[serde(rename = "UnitCcy")]
1968 pub unit_ccy: ActiveCurrencyCode,
1969 #[serde(rename = "QtdCcy")]
1970 pub qtd_ccy: ActiveCurrencyCode,
1971 #[validate]
1972 #[serde(rename = "XchgRate")]
1973 pub xchg_rate: BaseOneRate,
1974 #[serde(rename = "QtnDt", skip_serializing_if = "Option::is_none")]
1975 pub qtn_dt: Option<IsoDateTime>,
1976 #[serde(rename = "QtgInstn", skip_serializing_if = "Option::is_none")]
1977 pub qtg_instn: Option<PartyIdentification113>,
1978}
1979#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1980pub enum TransactionChannel2Code {
1981 #[serde(rename = "FIAD")]
1982 Fiad,
1983 #[serde(rename = "HOBA")]
1984 Hoba,
1985 #[serde(rename = "BRAN")]
1986 Bran,
1987 #[default]
1988 Unknown,
1989}
1990#[derive(
1991 Debug,
1992 Default,
1993 Clone,
1994 PartialEq,
1995 ::serde::Serialize,
1996 ::serde::Deserialize,
1997 ::derive_builder::Builder,
1998 ::validator::Validate,
1999)]
2000pub struct SettlementTransactionCondition30ChoiceEnum {
2001 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2002 pub cd: Option<SettlementTransactionCondition11Code>,
2003 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2004 pub prtry: Option<GenericIdentification30>,
2005}
2006#[derive(
2007 Debug,
2008 Default,
2009 Clone,
2010 PartialEq,
2011 ::serde::Serialize,
2012 ::serde::Deserialize,
2013 ::derive_builder::Builder,
2014 ::validator::Validate,
2015)]
2016pub struct SettlementTransactionCondition30Choice {
2017 #[serde(flatten)]
2018 pub value: SettlementTransactionCondition30ChoiceEnum,
2019}
2020#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2021pub enum FormOfSecurity1Code {
2022 #[serde(rename = "BEAR")]
2023 Bear,
2024 #[serde(rename = "REGD")]
2025 Regd,
2026 #[default]
2027 Unknown,
2028}
2029#[derive(
2030 Debug,
2031 Default,
2032 Clone,
2033 PartialEq,
2034 ::serde::Serialize,
2035 ::serde::Deserialize,
2036 ::derive_builder::Builder,
2037 ::validator::Validate,
2038)]
2039pub struct IndividualPerson31 {
2040 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
2041 pub nm: Option<Max350Text>,
2042 #[serde(rename = "BirthDt", skip_serializing_if = "Option::is_none")]
2043 pub birth_dt: Option<IsoDate>,
2044 #[serde(rename = "CtryAndResdtlSts", skip_serializing_if = "Option::is_none")]
2045 pub ctry_and_resdtl_sts: Option<CountryAndResidentialStatusType2>,
2046 #[serde(
2047 rename = "BnfcryCertfctnCmpltn",
2048 skip_serializing_if = "Option::is_none"
2049 )]
2050 pub bnfcry_certfctn_cmpltn: Option<BeneficiaryCertificationCompletion1Code>,
2051 #[validate(length(min = 0,))]
2052 #[serde(rename = "OthrId", default)]
2053 pub othr_id: Vec<GenericIdentification164>,
2054}
2055#[derive(
2056 Debug,
2057 Default,
2058 Clone,
2059 PartialEq,
2060 ::serde::Serialize,
2061 ::serde::Deserialize,
2062 ::derive_builder::Builder,
2063 ::validator::Validate,
2064)]
2065pub struct InvestmentAccountType1ChoiceEnum {
2066 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2067 pub cd: Option<FundCashAccount2Code>,
2068 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2069 pub prtry: Option<GenericIdentification47>,
2070}
2071#[derive(
2072 Debug,
2073 Default,
2074 Clone,
2075 PartialEq,
2076 ::serde::Serialize,
2077 ::serde::Deserialize,
2078 ::derive_builder::Builder,
2079 ::validator::Validate,
2080)]
2081pub struct InvestmentAccountType1Choice {
2082 #[serde(flatten)]
2083 pub value: InvestmentAccountType1ChoiceEnum,
2084}
2085#[derive(
2086 Debug,
2087 Default,
2088 Clone,
2089 PartialEq,
2090 ::serde::Serialize,
2091 ::serde::Deserialize,
2092 ::derive_builder::Builder,
2093 ::validator::Validate,
2094)]
2095pub struct Max34Text {
2096 #[validate(length(min = 1, max = 34,))]
2097 #[serde(rename = "$text")]
2098 pub value: String,
2099}
2100#[derive(
2101 Debug,
2102 Default,
2103 Clone,
2104 PartialEq,
2105 ::serde::Serialize,
2106 ::serde::Deserialize,
2107 ::derive_builder::Builder,
2108 ::validator::Validate,
2109)]
2110pub struct PaymentCard25 {
2111 #[serde(rename = "Tp")]
2112 pub tp: CardType1Code,
2113 #[validate]
2114 #[serde(rename = "Nb")]
2115 pub nb: Max35Text,
2116 #[validate]
2117 #[serde(rename = "HldrNm")]
2118 pub hldr_nm: Max35Text,
2119 #[serde(rename = "StartDt", skip_serializing_if = "Option::is_none")]
2120 pub start_dt: Option<IsoYearMonth>,
2121 #[validate]
2122 #[serde(rename = "XpryDt")]
2123 pub xpry_dt: IsoYearMonth,
2124 #[serde(rename = "CardIssrNm", skip_serializing_if = "Option::is_none")]
2125 pub card_issr_nm: Option<Max35Text>,
2126 #[serde(rename = "CardIssrId", skip_serializing_if = "Option::is_none")]
2127 pub card_issr_id: Option<PartyIdentification113>,
2128 #[serde(rename = "SctyCd", skip_serializing_if = "Option::is_none")]
2129 pub scty_cd: Option<Max35Text>,
2130 #[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
2131 pub seq_nb: Option<Max3Text>,
2132}
2133#[derive(
2134 Debug,
2135 Default,
2136 Clone,
2137 PartialEq,
2138 ::serde::Serialize,
2139 ::serde::Deserialize,
2140 ::derive_builder::Builder,
2141 ::validator::Validate,
2142)]
2143pub struct SmallNetworkIdentifier {
2144 #[validate(regex = "SMALL_NETWORK_IDENTIFIER_REGEX")]
2145 #[serde(rename = "$text")]
2146 pub value: String,
2147}
2148#[derive(
2149 Debug,
2150 Default,
2151 Clone,
2152 PartialEq,
2153 ::serde::Serialize,
2154 ::serde::Deserialize,
2155 ::derive_builder::Builder,
2156 ::validator::Validate,
2157)]
2158pub struct BicfiIdentifier {
2159 #[validate(regex = "BICFI_IDENTIFIER_REGEX")]
2160 #[serde(rename = "$text")]
2161 pub value: String,
2162}
2163#[derive(
2164 Debug,
2165 Default,
2166 Clone,
2167 PartialEq,
2168 ::serde::Serialize,
2169 ::serde::Deserialize,
2170 ::derive_builder::Builder,
2171 ::validator::Validate,
2172)]
2173pub struct Max35Text {
2174 #[validate(length(min = 1, max = 35,))]
2175 #[serde(rename = "$text")]
2176 pub value: String,
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 GenericAccountIdentification1 {
2189 #[validate]
2190 #[serde(rename = "Id")]
2191 pub id: Max34Text,
2192 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
2193 pub schme_nm: Option<AccountSchemeName1Choice>,
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 PaymentInstrument20ChoiceEnum {
2208 #[serde(rename = "CdtTrfDtls", skip_serializing_if = "Option::is_none")]
2209 pub cdt_trf_dtls: Option<CreditTransfer8>,
2210 #[serde(rename = "PmtCardDtls", skip_serializing_if = "Option::is_none")]
2211 pub pmt_card_dtls: Option<PaymentCard25>,
2212 #[serde(rename = "BkrsDrftDtls", skip_serializing_if = "Option::is_none")]
2213 pub bkrs_drft_dtls: Option<Cheque9>,
2214 #[serde(rename = "CshAcctDtls", skip_serializing_if = "Option::is_none")]
2215 pub csh_acct_dtls: Option<InvestmentAccount60>,
2216 #[serde(rename = "ChqDtls", skip_serializing_if = "Option::is_none")]
2217 pub chq_dtls: Option<Cheque9>,
2218 #[serde(rename = "DrctDbtDtls", skip_serializing_if = "Option::is_none")]
2219 pub drct_dbt_dtls: Option<DirectDebitMandate6>,
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 PaymentInstrument20Choice {
2232 #[serde(flatten)]
2233 pub value: PaymentInstrument20ChoiceEnum,
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 DeliveringPartiesAndAccount16 {
2246 #[serde(rename = "DlvrrsCtdnDtls", skip_serializing_if = "Option::is_none")]
2247 pub dlvrrs_ctdn_dtls: Option<PartyIdentificationAndAccount147>,
2248 #[serde(rename = "DlvrrsIntrmy1Dtls", skip_serializing_if = "Option::is_none")]
2249 pub dlvrrs_intrmy_1_dtls: Option<PartyIdentificationAndAccount147>,
2250 #[serde(rename = "DlvrrsIntrmy2Dtls", skip_serializing_if = "Option::is_none")]
2251 pub dlvrrs_intrmy_2_dtls: Option<PartyIdentificationAndAccount147>,
2252 #[validate]
2253 #[serde(rename = "DlvrgAgtDtls")]
2254 pub dlvrg_agt_dtls: PartyIdentificationAndAccount147,
2255}
2256#[derive(
2257 Debug,
2258 Default,
2259 Clone,
2260 PartialEq,
2261 ::serde::Serialize,
2262 ::serde::Deserialize,
2263 ::derive_builder::Builder,
2264 ::validator::Validate,
2265)]
2266pub struct ChargeBasis2ChoiceEnum {
2267 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2268 pub prtry: Option<GenericIdentification47>,
2269 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2270 pub cd: Option<TaxationBasis5Code>,
2271}
2272#[derive(
2273 Debug,
2274 Default,
2275 Clone,
2276 PartialEq,
2277 ::serde::Serialize,
2278 ::serde::Deserialize,
2279 ::derive_builder::Builder,
2280 ::validator::Validate,
2281)]
2282pub struct ChargeBasis2Choice {
2283 #[serde(flatten)]
2284 pub value: ChargeBasis2ChoiceEnum,
2285}
2286#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2287pub enum TaxExemptReason1Code {
2288 #[serde(rename = "NONE")]
2289 None,
2290 #[serde(rename = "MASA")]
2291 Masa,
2292 #[serde(rename = "MISA")]
2293 Misa,
2294 #[serde(rename = "SISA")]
2295 Sisa,
2296 #[serde(rename = "IISA")]
2297 Iisa,
2298 #[serde(rename = "CUYP")]
2299 Cuyp,
2300 #[serde(rename = "PRYP")]
2301 Pryp,
2302 #[serde(rename = "ASTR")]
2303 Astr,
2304 #[serde(rename = "EMPY")]
2305 Empy,
2306 #[serde(rename = "EMCY")]
2307 Emcy,
2308 #[serde(rename = "EPRY")]
2309 Epry,
2310 #[serde(rename = "ECYE")]
2311 Ecye,
2312 #[serde(rename = "NFPI")]
2313 Nfpi,
2314 #[serde(rename = "NFQP")]
2315 Nfqp,
2316 #[serde(rename = "DECP")]
2317 Decp,
2318 #[serde(rename = "IRAC")]
2319 Irac,
2320 #[serde(rename = "IRAR")]
2321 Irar,
2322 #[serde(rename = "KEOG")]
2323 Keog,
2324 #[serde(rename = "PFSP")]
2325 Pfsp,
2326 #[serde(rename = "401K")]
2327 X401K,
2328 #[serde(rename = "SIRA")]
2329 Sira,
2330 #[serde(rename = "403B")]
2331 X403B,
2332 #[serde(rename = "457X")]
2333 X457X,
2334 #[serde(rename = "RIRA")]
2335 Rira,
2336 #[serde(rename = "RIAN")]
2337 Rian,
2338 #[serde(rename = "RCRF")]
2339 Rcrf,
2340 #[serde(rename = "RCIP")]
2341 Rcip,
2342 #[serde(rename = "EIFP")]
2343 Eifp,
2344 #[serde(rename = "EIOP")]
2345 Eiop,
2346 #[default]
2347 Unknown,
2348}
2349#[derive(
2350 Debug,
2351 Default,
2352 Clone,
2353 PartialEq,
2354 ::serde::Serialize,
2355 ::serde::Deserialize,
2356 ::derive_builder::Builder,
2357 ::validator::Validate,
2358)]
2359pub struct SecurityIdentification25ChoiceEnum {
2360 #[serde(rename = "Blmbrg", skip_serializing_if = "Option::is_none")]
2361 pub blmbrg: Option<Bloomberg2Identifier>,
2362 #[serde(rename = "OthrPrtryId", skip_serializing_if = "Option::is_none")]
2363 pub othr_prtry_id: Option<AlternateSecurityIdentification7>,
2364 #[serde(rename = "Belgn", skip_serializing_if = "Option::is_none")]
2365 pub belgn: Option<BelgianIdentifier>,
2366 #[serde(rename = "SCVM", skip_serializing_if = "Option::is_none")]
2367 pub scvm: Option<SicovamIdentifier>,
2368 #[serde(rename = "SEDOL", skip_serializing_if = "Option::is_none")]
2369 pub sedol: Option<SedolIdentifier>,
2370 #[serde(rename = "ISIN", skip_serializing_if = "Option::is_none")]
2371 pub isin: Option<IsinOct2015Identifier>,
2372 #[serde(rename = "TckrSymb", skip_serializing_if = "Option::is_none")]
2373 pub tckr_symb: Option<TickerIdentifier>,
2374 #[serde(rename = "Vlrn", skip_serializing_if = "Option::is_none")]
2375 pub vlrn: Option<ValorenIdentifier>,
2376 #[serde(rename = "Wrtppr", skip_serializing_if = "Option::is_none")]
2377 pub wrtppr: Option<WertpapierIdentifier>,
2378 #[serde(rename = "Dtch", skip_serializing_if = "Option::is_none")]
2379 pub dtch: Option<DutchIdentifier>,
2380 #[serde(rename = "Cmon", skip_serializing_if = "Option::is_none")]
2381 pub cmon: Option<EuroclearClearstreamIdentifier>,
2382 #[serde(rename = "QUICK", skip_serializing_if = "Option::is_none")]
2383 pub quick: Option<QuickIdentifier>,
2384 #[serde(rename = "CUSIP", skip_serializing_if = "Option::is_none")]
2385 pub cusip: Option<CusipIdentifier>,
2386 #[serde(rename = "RIC", skip_serializing_if = "Option::is_none")]
2387 pub ric: Option<RicIdentifier>,
2388 #[serde(rename = "CTA", skip_serializing_if = "Option::is_none")]
2389 pub cta: Option<ConsolidatedTapeAssociationIdentifier>,
2390}
2391#[derive(
2392 Debug,
2393 Default,
2394 Clone,
2395 PartialEq,
2396 ::serde::Serialize,
2397 ::serde::Deserialize,
2398 ::derive_builder::Builder,
2399 ::validator::Validate,
2400)]
2401pub struct SecurityIdentification25Choice {
2402 #[serde(flatten)]
2403 pub value: SecurityIdentification25ChoiceEnum,
2404}
2405#[derive(
2406 Debug,
2407 Default,
2408 Clone,
2409 PartialEq,
2410 ::serde::Serialize,
2411 ::serde::Deserialize,
2412 ::derive_builder::Builder,
2413 ::validator::Validate,
2414)]
2415pub struct AdditionalReference8 {
2416 #[validate]
2417 #[serde(rename = "Ref")]
2418 pub r#ref: Max35Text,
2419 #[serde(rename = "RefIssr", skip_serializing_if = "Option::is_none")]
2420 pub ref_issr: Option<PartyIdentification113>,
2421 #[serde(rename = "MsgNm", skip_serializing_if = "Option::is_none")]
2422 pub msg_nm: Option<Max35Text>,
2423}
2424#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2425pub enum BeneficiaryCertificationCompletion1Code {
2426 #[serde(rename = "NCER")]
2427 Ncer,
2428 #[serde(rename = "ELEC")]
2429 Elec,
2430 #[serde(rename = "PHYS")]
2431 Phys,
2432 #[default]
2433 Unknown,
2434}
2435#[derive(
2436 Debug,
2437 Default,
2438 Clone,
2439 PartialEq,
2440 ::serde::Serialize,
2441 ::serde::Deserialize,
2442 ::derive_builder::Builder,
2443 ::validator::Validate,
2444)]
2445pub struct FinancialInstitutionIdentification8ChoiceEnum {
2446 #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")]
2447 pub nm_and_adr: Option<NameAndAddress5>,
2448 #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")]
2449 pub prtry_id: Option<Max35Text>,
2450 #[serde(rename = "ClrSysMmbId", skip_serializing_if = "Option::is_none")]
2451 pub clr_sys_mmb_id: Option<ClearingSystemMemberIdentificationChoice>,
2452 #[serde(rename = "BICFI", skip_serializing_if = "Option::is_none")]
2453 pub bicfi: Option<BicfiIdentifier>,
2454}
2455#[derive(
2456 Debug,
2457 Default,
2458 Clone,
2459 PartialEq,
2460 ::serde::Serialize,
2461 ::serde::Deserialize,
2462 ::derive_builder::Builder,
2463 ::validator::Validate,
2464)]
2465pub struct FinancialInstitutionIdentification8Choice {
2466 #[serde(flatten)]
2467 pub value: FinancialInstitutionIdentification8ChoiceEnum,
2468}
2469#[derive(
2470 Debug,
2471 Default,
2472 Clone,
2473 PartialEq,
2474 ::serde::Serialize,
2475 ::serde::Deserialize,
2476 ::derive_builder::Builder,
2477 ::validator::Validate,
2478)]
2479pub struct IsoYearMonth {
2480 #[validate(regex = "ISO_YEAR_MONTH_REGEX")]
2481 #[serde(rename = "$text")]
2482 pub value: String,
2483}
2484#[derive(
2485 Debug,
2486 Default,
2487 Clone,
2488 PartialEq,
2489 ::serde::Serialize,
2490 ::serde::Deserialize,
2491 ::derive_builder::Builder,
2492 ::validator::Validate,
2493)]
2494pub struct FundOrderType4ChoiceEnum {
2495 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2496 pub cd: Option<FundOrderType8Code>,
2497 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2498 pub prtry: Option<GenericIdentification47>,
2499}
2500#[derive(
2501 Debug,
2502 Default,
2503 Clone,
2504 PartialEq,
2505 ::serde::Serialize,
2506 ::serde::Deserialize,
2507 ::derive_builder::Builder,
2508 ::validator::Validate,
2509)]
2510pub struct FundOrderType4Choice {
2511 #[serde(flatten)]
2512 pub value: FundOrderType4ChoiceEnum,
2513}
2514#[derive(
2515 Debug,
2516 Default,
2517 Clone,
2518 PartialEq,
2519 ::serde::Serialize,
2520 ::serde::Deserialize,
2521 ::derive_builder::Builder,
2522 ::validator::Validate,
2523)]
2524pub struct AnyBicIdentifier {
2525 #[validate(regex = "ANY_BIC_IDENTIFIER_REGEX")]
2526 #[serde(rename = "$text")]
2527 pub value: String,
2528}
2529#[derive(
2530 Debug,
2531 Default,
2532 Clone,
2533 PartialEq,
2534 ::serde::Serialize,
2535 ::serde::Deserialize,
2536 ::derive_builder::Builder,
2537 ::validator::Validate,
2538)]
2539pub struct GenericIdentification164 {
2540 #[validate]
2541 #[serde(rename = "Id")]
2542 pub id: Max35Text,
2543 #[serde(rename = "IdTp")]
2544 pub id_tp: OtherIdentification3Choice,
2545 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
2546 pub issr: Option<Max35Text>,
2547}
2548#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2549pub enum InvestmentFundFee1Code {
2550 #[serde(rename = "BEND")]
2551 Bend,
2552 #[serde(rename = "BRKF")]
2553 Brkf,
2554 #[serde(rename = "COMM")]
2555 Comm,
2556 #[serde(rename = "CDPL")]
2557 Cdpl,
2558 #[serde(rename = "CDSC")]
2559 Cdsc,
2560 #[serde(rename = "CBCH")]
2561 Cbch,
2562 #[serde(rename = "DLEV")]
2563 Dlev,
2564 #[serde(rename = "FEND")]
2565 Fend,
2566 #[serde(rename = "INIT")]
2567 Init,
2568 #[serde(rename = "ADDF")]
2569 Addf,
2570 #[serde(rename = "POST")]
2571 Post,
2572 #[serde(rename = "PREM")]
2573 Prem,
2574 #[serde(rename = "CHAR")]
2575 Char,
2576 #[serde(rename = "SHIP")]
2577 Ship,
2578 #[serde(rename = "SWIT")]
2579 Swit,
2580 #[serde(rename = "UCIC")]
2581 Ucic,
2582 #[serde(rename = "REGF")]
2583 Regf,
2584 #[serde(rename = "PENA")]
2585 Pena,
2586 #[default]
2587 Unknown,
2588}
2589#[derive(
2590 Debug,
2591 Default,
2592 Clone,
2593 PartialEq,
2594 ::serde::Serialize,
2595 ::serde::Deserialize,
2596 ::derive_builder::Builder,
2597 ::validator::Validate,
2598)]
2599pub struct NameAndAddress5 {
2600 #[validate]
2601 #[serde(rename = "Nm")]
2602 pub nm: Max350Text,
2603 #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
2604 pub adr: Option<PostalAddress1>,
2605}
2606#[derive(
2607 Debug,
2608 Default,
2609 Clone,
2610 PartialEq,
2611 ::serde::Serialize,
2612 ::serde::Deserialize,
2613 ::derive_builder::Builder,
2614 ::validator::Validate,
2615)]
2616pub struct SedolIdentifier {
2617 #[serde(rename = "$text")]
2618 pub value: String,
2619}
2620#[derive(
2621 Debug,
2622 Default,
2623 Clone,
2624 PartialEq,
2625 ::serde::Serialize,
2626 ::serde::Deserialize,
2627 ::derive_builder::Builder,
2628 ::validator::Validate,
2629)]
2630pub struct OrderBreakdownType1ChoiceEnum {
2631 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2632 pub prtry: Option<GenericIdentification47>,
2633 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2634 pub cd: Option<FundOrderType5Code>,
2635}
2636#[derive(
2637 Debug,
2638 Default,
2639 Clone,
2640 PartialEq,
2641 ::serde::Serialize,
2642 ::serde::Deserialize,
2643 ::derive_builder::Builder,
2644 ::validator::Validate,
2645)]
2646pub struct OrderBreakdownType1Choice {
2647 #[serde(flatten)]
2648 pub value: OrderBreakdownType1ChoiceEnum,
2649}
2650#[derive(
2651 Debug,
2652 Default,
2653 Clone,
2654 PartialEq,
2655 ::serde::Serialize,
2656 ::serde::Deserialize,
2657 ::derive_builder::Builder,
2658 ::validator::Validate,
2659)]
2660pub struct SignatureType1ChoiceEnum {
2661 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2662 pub cd: Option<SignatureType2Code>,
2663 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2664 pub prtry: Option<GenericIdentification47>,
2665}
2666#[derive(
2667 Debug,
2668 Default,
2669 Clone,
2670 PartialEq,
2671 ::serde::Serialize,
2672 ::serde::Deserialize,
2673 ::derive_builder::Builder,
2674 ::validator::Validate,
2675)]
2676pub struct SignatureType1Choice {
2677 #[serde(flatten)]
2678 pub value: SignatureType1ChoiceEnum,
2679}
2680#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2681pub enum SignatureType2Code {
2682 #[serde(rename = "DIGI")]
2683 Digi,
2684 #[serde(rename = "ELEC")]
2685 Elec,
2686 #[serde(rename = "NONE")]
2687 None,
2688 #[serde(rename = "ORIG")]
2689 Orig,
2690 #[default]
2691 Unknown,
2692}
2693#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2694pub enum DistributionPolicy1Code {
2695 #[serde(rename = "DIST")]
2696 Dist,
2697 #[serde(rename = "ACCU")]
2698 Accu,
2699 #[default]
2700 Unknown,
2701}
2702#[derive(
2703 Debug,
2704 Default,
2705 Clone,
2706 PartialEq,
2707 ::serde::Serialize,
2708 ::serde::Deserialize,
2709 ::derive_builder::Builder,
2710 ::validator::Validate,
2711)]
2712pub struct PaymentTransaction70 {
2713 #[serde(rename = "PmtInstrm")]
2714 pub pmt_instrm: PaymentInstrument20Choice,
2715}
2716#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2717pub enum FinancialAdvice1Code {
2718 #[serde(rename = "RECE")]
2719 Rece,
2720 #[serde(rename = "NREC")]
2721 Nrec,
2722 #[serde(rename = "UKWN")]
2723 Ukwn,
2724 #[default]
2725 Unknown,
2726}
2727#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2728pub enum SafekeepingPlace1Code {
2729 #[serde(rename = "CUST")]
2730 Cust,
2731 #[serde(rename = "ICSD")]
2732 Icsd,
2733 #[serde(rename = "NCSD")]
2734 Ncsd,
2735 #[serde(rename = "SHHE")]
2736 Shhe,
2737 #[default]
2738 Unknown,
2739}
2740#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2741pub enum PartyIdentificationType7Code {
2742 #[serde(rename = "ATIN")]
2743 Atin,
2744 #[serde(rename = "IDCD")]
2745 Idcd,
2746 #[serde(rename = "NRIN")]
2747 Nrin,
2748 #[serde(rename = "OTHR")]
2749 Othr,
2750 #[serde(rename = "PASS")]
2751 Pass,
2752 #[serde(rename = "POCD")]
2753 Pocd,
2754 #[serde(rename = "SOCS")]
2755 Socs,
2756 #[serde(rename = "SRSA")]
2757 Srsa,
2758 #[serde(rename = "GUNL")]
2759 Gunl,
2760 #[serde(rename = "GTIN")]
2761 Gtin,
2762 #[serde(rename = "ITIN")]
2763 Itin,
2764 #[serde(rename = "CPFA")]
2765 Cpfa,
2766 #[serde(rename = "AREG")]
2767 Areg,
2768 #[serde(rename = "DRLC")]
2769 Drlc,
2770 #[serde(rename = "EMID")]
2771 Emid,
2772 #[serde(rename = "NINV")]
2773 Ninv,
2774 #[serde(rename = "INCL")]
2775 Incl,
2776 #[serde(rename = "GIIN")]
2777 Giin,
2778 #[default]
2779 Unknown,
2780}
2781#[derive(
2782 Debug,
2783 Default,
2784 Clone,
2785 PartialEq,
2786 ::serde::Serialize,
2787 ::serde::Deserialize,
2788 ::derive_builder::Builder,
2789 ::validator::Validate,
2790)]
2791pub struct CustomerConductClassification1ChoiceEnum {
2792 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2793 pub prtry: Option<GenericIdentification47>,
2794 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2795 pub cd: Option<ConductClassification1Code>,
2796}
2797#[derive(
2798 Debug,
2799 Default,
2800 Clone,
2801 PartialEq,
2802 ::serde::Serialize,
2803 ::serde::Deserialize,
2804 ::derive_builder::Builder,
2805 ::validator::Validate,
2806)]
2807pub struct CustomerConductClassification1Choice {
2808 #[serde(flatten)]
2809 pub value: CustomerConductClassification1ChoiceEnum,
2810}
2811#[derive(
2812 Debug,
2813 Default,
2814 Clone,
2815 PartialEq,
2816 ::serde::Serialize,
2817 ::serde::Deserialize,
2818 ::derive_builder::Builder,
2819 ::validator::Validate,
2820)]
2821pub struct InvestmentAccount58 {
2822 #[validate]
2823 #[serde(rename = "AcctId")]
2824 pub acct_id: Max35Text,
2825 #[serde(rename = "AcctNm", skip_serializing_if = "Option::is_none")]
2826 pub acct_nm: Option<Max35Text>,
2827 #[serde(rename = "AcctDsgnt", skip_serializing_if = "Option::is_none")]
2828 pub acct_dsgnt: Option<Max35Text>,
2829 #[validate(length(min = 0,))]
2830 #[serde(rename = "OwnrId", default)]
2831 pub ownr_id: Vec<PartyIdentification113>,
2832 #[serde(rename = "AcctSvcr", skip_serializing_if = "Option::is_none")]
2833 pub acct_svcr: Option<PartyIdentification113>,
2834 #[serde(rename = "OrdrOrgtrElgblty", skip_serializing_if = "Option::is_none")]
2835 pub ordr_orgtr_elgblty: Option<OrderOriginatorEligibility1Code>,
2836 #[serde(rename = "SubAcctDtls", skip_serializing_if = "Option::is_none")]
2837 pub sub_acct_dtls: Option<SubAccount6>,
2838}
2839#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2840pub enum RoundingDirection2Code {
2841 #[serde(rename = "RDUP")]
2842 Rdup,
2843 #[serde(rename = "RDWN")]
2844 Rdwn,
2845 #[default]
2846 Unknown,
2847}
2848#[derive(
2849 Debug,
2850 Default,
2851 Clone,
2852 PartialEq,
2853 ::serde::Serialize,
2854 ::serde::Deserialize,
2855 ::derive_builder::Builder,
2856 ::validator::Validate,
2857)]
2858pub struct TaxBasis1ChoiceEnum {
2859 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2860 pub cd: Option<TaxationBasis2Code>,
2861 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2862 pub prtry: Option<GenericIdentification47>,
2863}
2864#[derive(
2865 Debug,
2866 Default,
2867 Clone,
2868 PartialEq,
2869 ::serde::Serialize,
2870 ::serde::Deserialize,
2871 ::derive_builder::Builder,
2872 ::validator::Validate,
2873)]
2874pub struct TaxBasis1Choice {
2875 #[serde(flatten)]
2876 pub value: TaxBasis1ChoiceEnum,
2877}
2878#[derive(
2879 Debug,
2880 Default,
2881 Clone,
2882 PartialEq,
2883 ::serde::Serialize,
2884 ::serde::Deserialize,
2885 ::derive_builder::Builder,
2886 ::validator::Validate,
2887)]
2888pub struct GenericIdentification47 {
2889 #[validate]
2890 #[serde(rename = "Id")]
2891 pub id: Exact4AlphaNumericText,
2892 #[validate]
2893 #[serde(rename = "Issr")]
2894 pub issr: Max4AlphaNumericText,
2895 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
2896 pub schme_nm: Option<Max4AlphaNumericText>,
2897}
2898#[derive(
2899 Debug,
2900 Default,
2901 Clone,
2902 PartialEq,
2903 ::serde::Serialize,
2904 ::serde::Deserialize,
2905 ::derive_builder::Builder,
2906 ::validator::Validate,
2907)]
2908pub struct TickerIdentifier {
2909 #[validate(length(min = 1, max = 35,))]
2910 #[serde(rename = "$text")]
2911 pub value: String,
2912}
2913#[derive(
2914 Debug,
2915 Default,
2916 Clone,
2917 PartialEq,
2918 ::serde::Serialize,
2919 ::serde::Deserialize,
2920 ::derive_builder::Builder,
2921 ::validator::Validate,
2922)]
2923pub struct YesNoIndicator {
2924 #[serde(rename = "$text")]
2925 pub value: bool,
2926}
2927#[derive(
2928 Debug,
2929 Default,
2930 Clone,
2931 PartialEq,
2932 ::serde::Serialize,
2933 ::serde::Deserialize,
2934 ::derive_builder::Builder,
2935 ::validator::Validate,
2936)]
2937pub struct DecimalNumber {
2938 #[serde(rename = "$text")]
2939 pub value: f64,
2940}
2941#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2942pub enum DeliveryReceiptType2Code {
2943 #[serde(rename = "FREE")]
2944 Free,
2945 #[serde(rename = "APMT")]
2946 Apmt,
2947 #[default]
2948 Unknown,
2949}
2950#[derive(
2951 Debug,
2952 Default,
2953 Clone,
2954 PartialEq,
2955 ::serde::Serialize,
2956 ::serde::Deserialize,
2957 ::derive_builder::Builder,
2958 ::validator::Validate,
2959)]
2960pub struct ActiveOrHistoricCurrencyAndAmount {
2961 #[serde(rename = "ActiveOrHistoricCurrencyAndAmount")]
2962 pub value: ActiveOrHistoricCurrencyAndAmountSimpleType,
2963 #[serde(rename = "@Ccy")]
2964 pub ccy: ActiveOrHistoricCurrencyCode,
2965}
2966#[derive(
2967 Debug,
2968 Default,
2969 Clone,
2970 PartialEq,
2971 ::serde::Serialize,
2972 ::serde::Deserialize,
2973 ::derive_builder::Builder,
2974 ::validator::Validate,
2975)]
2976pub struct Max4AlphaNumericText {
2977 #[validate(length(min = 1, max = 4,), regex = "MAX_4_ALPHA_NUMERIC_TEXT_REGEX")]
2978 #[serde(rename = "$text")]
2979 pub value: String,
2980}
2981#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2982pub enum OrderOriginatorEligibility1Code {
2983 #[serde(rename = "ELIG")]
2984 Elig,
2985 #[serde(rename = "RETL")]
2986 Retl,
2987 #[serde(rename = "PROF")]
2988 Prof,
2989 #[default]
2990 Unknown,
2991}
2992#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2993pub enum FundOrderType8Code {
2994 #[serde(rename = "BEDB")]
2995 Bedb,
2996 #[serde(rename = "INVP")]
2997 Invp,
2998 #[serde(rename = "PREA")]
2999 Prea,
3000 #[serde(rename = "RGSV")]
3001 Rgsv,
3002 #[serde(rename = "RGSU")]
3003 Rgsu,
3004 #[serde(rename = "RDIV")]
3005 Rdiv,
3006 #[serde(rename = "STAF")]
3007 Staf,
3008 #[serde(rename = "WIDP")]
3009 Widp,
3010 #[default]
3011 Unknown,
3012}
3013#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3014pub enum AddressType2Code {
3015 #[serde(rename = "ADDR")]
3016 Addr,
3017 #[serde(rename = "PBOX")]
3018 Pbox,
3019 #[serde(rename = "HOME")]
3020 Home,
3021 #[serde(rename = "BIZZ")]
3022 Bizz,
3023 #[serde(rename = "MLTO")]
3024 Mlto,
3025 #[serde(rename = "DLVY")]
3026 Dlvy,
3027 #[default]
3028 Unknown,
3029}
3030#[derive(
3031 Debug,
3032 Default,
3033 Clone,
3034 PartialEq,
3035 ::serde::Serialize,
3036 ::serde::Deserialize,
3037 ::derive_builder::Builder,
3038 ::validator::Validate,
3039)]
3040pub struct DutchIdentifier {
3041 #[serde(rename = "$text")]
3042 pub value: String,
3043}
3044#[derive(
3045 Debug,
3046 Default,
3047 Clone,
3048 PartialEq,
3049 ::serde::Serialize,
3050 ::serde::Deserialize,
3051 ::derive_builder::Builder,
3052 ::validator::Validate,
3053)]
3054pub struct AdditionalReference9 {
3055 #[validate]
3056 #[serde(rename = "Ref")]
3057 pub r#ref: Max35Text,
3058 #[serde(rename = "RefIssr", skip_serializing_if = "Option::is_none")]
3059 pub ref_issr: Option<PartyIdentification113>,
3060 #[serde(rename = "MsgNm", skip_serializing_if = "Option::is_none")]
3061 pub msg_nm: Option<Max35Text>,
3062}
3063#[derive(
3064 Debug,
3065 Default,
3066 Clone,
3067 PartialEq,
3068 ::serde::Serialize,
3069 ::serde::Deserialize,
3070 ::derive_builder::Builder,
3071 ::validator::Validate,
3072)]
3073pub struct IsinOct2015Identifier {
3074 #[validate(regex = "ISIN_OCT_2015_IDENTIFIER_REGEX")]
3075 #[serde(rename = "$text")]
3076 pub value: String,
3077}
3078#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3079pub enum NegotiatedTrade1Code {
3080 #[serde(rename = "NEGO")]
3081 Nego,
3082 #[serde(rename = "NNGO")]
3083 Nngo,
3084 #[serde(rename = "UNKW")]
3085 Unkw,
3086 #[default]
3087 Unknown,
3088}
3089#[derive(
3090 Debug,
3091 Default,
3092 Clone,
3093 PartialEq,
3094 ::serde::Serialize,
3095 ::serde::Deserialize,
3096 ::derive_builder::Builder,
3097 ::validator::Validate,
3098)]
3099pub struct Cheque9 {
3100 #[serde(rename = "Nb", skip_serializing_if = "Option::is_none")]
3101 pub nb: Option<Max35Text>,
3102 #[validate]
3103 #[serde(rename = "PyeeId")]
3104 pub pyee_id: PartyIdentification113,
3105 #[serde(rename = "DrweeId", skip_serializing_if = "Option::is_none")]
3106 pub drwee_id: Option<FinancialInstitutionIdentification10>,
3107 #[serde(rename = "DrwrId", skip_serializing_if = "Option::is_none")]
3108 pub drwr_id: Option<PartyIdentification113>,
3109}
3110#[derive(
3111 Debug,
3112 Default,
3113 Clone,
3114 PartialEq,
3115 ::serde::Serialize,
3116 ::serde::Deserialize,
3117 ::derive_builder::Builder,
3118 ::validator::Validate,
3119)]
3120pub struct PartyIdentification90ChoiceEnum {
3121 #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
3122 pub any_bic: Option<AnyBicIdentifier>,
3123 #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")]
3124 pub nm_and_adr: Option<NameAndAddress5>,
3125 #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")]
3126 pub prtry_id: Option<GenericIdentification1>,
3127}
3128#[derive(
3129 Debug,
3130 Default,
3131 Clone,
3132 PartialEq,
3133 ::serde::Serialize,
3134 ::serde::Deserialize,
3135 ::derive_builder::Builder,
3136 ::validator::Validate,
3137)]
3138pub struct PartyIdentification90Choice {
3139 #[serde(flatten)]
3140 pub value: PartyIdentification90ChoiceEnum,
3141}
3142#[derive(
3143 Debug,
3144 Default,
3145 Clone,
3146 PartialEq,
3147 ::serde::Serialize,
3148 ::serde::Deserialize,
3149 ::derive_builder::Builder,
3150 ::validator::Validate,
3151)]
3152pub struct Series1 {
3153 #[serde(rename = "SrsDt", skip_serializing_if = "Option::is_none")]
3154 pub srs_dt: Option<DateFormat42Choice>,
3155 #[serde(rename = "SrsNm", skip_serializing_if = "Option::is_none")]
3156 pub srs_nm: Option<Max35Text>,
3157}
3158#[derive(
3159 Debug,
3160 Default,
3161 Clone,
3162 PartialEq,
3163 ::serde::Serialize,
3164 ::serde::Deserialize,
3165 ::derive_builder::Builder,
3166 ::validator::Validate,
3167)]
3168pub struct ExtensiveBranchNetworkIdentifier {
3169 #[validate(regex = "EXTENSIVE_BRANCH_NETWORK_IDENTIFIER_REGEX")]
3170 #[serde(rename = "$text")]
3171 pub value: String,
3172}
3173#[derive(
3174 Debug,
3175 Default,
3176 Clone,
3177 PartialEq,
3178 ::serde::Serialize,
3179 ::serde::Deserialize,
3180 ::derive_builder::Builder,
3181 ::validator::Validate,
3182)]
3183pub struct Fee1 {
3184 #[serde(rename = "Tp")]
3185 pub tp: ChargeType5Choice,
3186 #[serde(rename = "Bsis", skip_serializing_if = "Option::is_none")]
3187 pub bsis: Option<ChargeBasis2Choice>,
3188 #[serde(rename = "StdAmt", skip_serializing_if = "Option::is_none")]
3189 pub std_amt: Option<ActiveCurrencyAndAmount>,
3190 #[serde(rename = "StdRate", skip_serializing_if = "Option::is_none")]
3191 pub std_rate: Option<PercentageRate>,
3192 #[serde(rename = "DscntDtls", skip_serializing_if = "Option::is_none")]
3193 pub dscnt_dtls: Option<ChargeOrCommissionDiscount1>,
3194 #[serde(rename = "ReqdAmt", skip_serializing_if = "Option::is_none")]
3195 pub reqd_amt: Option<ActiveCurrencyAndAmount>,
3196 #[serde(rename = "ReqdRate", skip_serializing_if = "Option::is_none")]
3197 pub reqd_rate: Option<PercentageRate>,
3198 #[serde(rename = "NonStdSLARef", skip_serializing_if = "Option::is_none")]
3199 pub non_std_sla_ref: Option<Max35Text>,
3200 #[serde(rename = "RcptId", skip_serializing_if = "Option::is_none")]
3201 pub rcpt_id: Option<PartyIdentification113>,
3202}
3203#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3204pub enum SettlementTransactionCondition11Code {
3205 #[serde(rename = "NOMC")]
3206 Nomc,
3207 #[default]
3208 Unknown,
3209}
3210#[derive(
3211 Debug,
3212 Default,
3213 Clone,
3214 PartialEq,
3215 ::serde::Serialize,
3216 ::serde::Deserialize,
3217 ::derive_builder::Builder,
3218 ::validator::Validate,
3219)]
3220pub struct InvestmentFundsOrderBreakdown2 {
3221 #[serde(rename = "OrdrBrkdwnTp")]
3222 pub ordr_brkdwn_tp: OrderBreakdownType1Choice,
3223 #[validate]
3224 #[serde(rename = "Amt")]
3225 pub amt: ActiveCurrencyAndAmount,
3226}
3227#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3228pub enum TaxationBasis2Code {
3229 #[serde(rename = "FLAT")]
3230 Flat,
3231 #[serde(rename = "PERU")]
3232 Peru,
3233 #[default]
3234 Unknown,
3235}
3236#[derive(
3237 Debug,
3238 Default,
3239 Clone,
3240 PartialEq,
3241 ::serde::Serialize,
3242 ::serde::Deserialize,
3243 ::derive_builder::Builder,
3244 ::validator::Validate,
3245)]
3246pub struct SpanishDomesticInterbankingIdentifier {
3247 #[validate(regex = "SPANISH_DOMESTIC_INTERBANKING_IDENTIFIER_REGEX")]
3248 #[serde(rename = "$text")]
3249 pub value: String,
3250}
3251#[derive(
3252 Debug,
3253 Default,
3254 Clone,
3255 PartialEq,
3256 ::serde::Serialize,
3257 ::serde::Deserialize,
3258 ::derive_builder::Builder,
3259 ::validator::Validate,
3260)]
3261pub struct CanadianPaymentsArnIdentifier {
3262 #[validate(regex = "CANADIAN_PAYMENTS_ARN_IDENTIFIER_REGEX")]
3263 #[serde(rename = "$text")]
3264 pub value: String,
3265}
3266#[derive(
3267 Debug,
3268 Default,
3269 Clone,
3270 PartialEq,
3271 ::serde::Serialize,
3272 ::serde::Deserialize,
3273 ::derive_builder::Builder,
3274 ::validator::Validate,
3275)]
3276pub struct CusipIdentifier {
3277 #[serde(rename = "$text")]
3278 pub value: String,
3279}
3280#[derive(
3281 Debug,
3282 Default,
3283 Clone,
3284 PartialEq,
3285 ::serde::Serialize,
3286 ::serde::Deserialize,
3287 ::derive_builder::Builder,
3288 ::validator::Validate,
3289)]
3290pub struct ClearingSystemMemberIdentificationChoiceEnum {
3291 #[serde(rename = "USFW", skip_serializing_if = "Option::is_none")]
3292 pub usfw: Option<FedwireRoutingNumberIdentifier>,
3293 #[serde(rename = "RUCB", skip_serializing_if = "Option::is_none")]
3294 pub rucb: Option<RussianCentralBankIdentificationCodeIdentifier>,
3295 #[serde(rename = "ATBLZ", skip_serializing_if = "Option::is_none")]
3296 pub atblz: Option<AustrianBankleitzahlIdentifier>,
3297 #[serde(rename = "CHBC", skip_serializing_if = "Option::is_none")]
3298 pub chbc: Option<SwissBcIdentifier>,
3299 #[serde(rename = "IENSC", skip_serializing_if = "Option::is_none")]
3300 pub iensc: Option<IrishNscIdentifier>,
3301 #[serde(rename = "PTNCC", skip_serializing_if = "Option::is_none")]
3302 pub ptncc: Option<PortugueseNccIdentifier>,
3303 #[serde(rename = "AUBSBx", skip_serializing_if = "Option::is_none")]
3304 pub aubs_bx: Option<ExtensiveBranchNetworkIdentifier>,
3305 #[serde(rename = "ITNCC", skip_serializing_if = "Option::is_none")]
3306 pub itncc: Option<ItalianDomesticIdentifier>,
3307 #[serde(rename = "ESNCC", skip_serializing_if = "Option::is_none")]
3308 pub esncc: Option<SpanishDomesticInterbankingIdentifier>,
3309 #[serde(rename = "CACPA", skip_serializing_if = "Option::is_none")]
3310 pub cacpa: Option<CanadianPaymentsArnIdentifier>,
3311 #[serde(rename = "HKNCC", skip_serializing_if = "Option::is_none")]
3312 pub hkncc: Option<HongKongBankIdentifier>,
3313 #[serde(rename = "AUBSBs", skip_serializing_if = "Option::is_none")]
3314 pub aubs_bs: Option<SmallNetworkIdentifier>,
3315 #[serde(rename = "USCH", skip_serializing_if = "Option::is_none")]
3316 pub usch: Option<ChipsParticipantIdentifier>,
3317 #[serde(rename = "DEBLZ", skip_serializing_if = "Option::is_none")]
3318 pub deblz: Option<GermanBankleitzahlIdentifier>,
3319 #[serde(rename = "ZANCC", skip_serializing_if = "Option::is_none")]
3320 pub zancc: Option<SouthAfricanNccIdentifier>,
3321 #[serde(rename = "NZNCC", skip_serializing_if = "Option::is_none")]
3322 pub nzncc: Option<NewZealandNccIdentifier>,
3323 #[serde(rename = "CHSIC", skip_serializing_if = "Option::is_none")]
3324 pub chsic: Option<SwissSicIdentifier>,
3325 #[serde(rename = "GBSC", skip_serializing_if = "Option::is_none")]
3326 pub gbsc: Option<UkDomesticSortCodeIdentifier>,
3327 #[serde(rename = "USCHU", skip_serializing_if = "Option::is_none")]
3328 pub uschu: Option<ChipsUniversalIdentifier>,
3329}
3330#[derive(
3331 Debug,
3332 Default,
3333 Clone,
3334 PartialEq,
3335 ::serde::Serialize,
3336 ::serde::Deserialize,
3337 ::derive_builder::Builder,
3338 ::validator::Validate,
3339)]
3340pub struct ClearingSystemMemberIdentificationChoice {
3341 #[serde(flatten)]
3342 pub value: ClearingSystemMemberIdentificationChoiceEnum,
3343}
3344#[derive(
3345 Debug,
3346 Default,
3347 Clone,
3348 PartialEq,
3349 ::serde::Serialize,
3350 ::serde::Deserialize,
3351 ::derive_builder::Builder,
3352 ::validator::Validate,
3353)]
3354pub struct ConsolidatedTapeAssociationIdentifier {
3355 #[validate(length(min = 1, max = 35,))]
3356 #[serde(rename = "$text")]
3357 pub value: String,
3358}
3359#[derive(
3360 Debug,
3361 Default,
3362 Clone,
3363 PartialEq,
3364 ::serde::Serialize,
3365 ::serde::Deserialize,
3366 ::derive_builder::Builder,
3367 ::validator::Validate,
3368)]
3369pub struct HongKongBankIdentifier {
3370 #[validate(regex = "HONG_KONG_BANK_IDENTIFIER_REGEX")]
3371 #[serde(rename = "$text")]
3372 pub value: String,
3373}
3374#[derive(
3375 Debug,
3376 Default,
3377 Clone,
3378 PartialEq,
3379 ::serde::Serialize,
3380 ::serde::Deserialize,
3381 ::derive_builder::Builder,
3382 ::validator::Validate,
3383)]
3384pub struct Equalisation1 {
3385 #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
3386 pub amt: Option<ActiveOrHistoricCurrencyAndAmount>,
3387 #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
3388 pub rate: Option<PercentageRate>,
3389}
3390#[derive(
3391 Debug,
3392 Default,
3393 Clone,
3394 PartialEq,
3395 ::serde::Serialize,
3396 ::serde::Deserialize,
3397 ::derive_builder::Builder,
3398 ::validator::Validate,
3399)]
3400pub struct Bloomberg2Identifier {
3401 #[validate(regex = "BLOOMBERG_2_IDENTIFIER_REGEX")]
3402 #[serde(rename = "$text")]
3403 pub value: String,
3404}
3405#[derive(
3406 Debug,
3407 Default,
3408 Clone,
3409 PartialEq,
3410 ::serde::Serialize,
3411 ::serde::Deserialize,
3412 ::derive_builder::Builder,
3413 ::validator::Validate,
3414)]
3415pub struct AccountIdentification4ChoiceEnum {
3416 #[serde(rename = "IBAN", skip_serializing_if = "Option::is_none")]
3417 pub iban: Option<Iban2007Identifier>,
3418 #[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
3419 pub othr: Option<GenericAccountIdentification1>,
3420}
3421#[derive(
3422 Debug,
3423 Default,
3424 Clone,
3425 PartialEq,
3426 ::serde::Serialize,
3427 ::serde::Deserialize,
3428 ::derive_builder::Builder,
3429 ::validator::Validate,
3430)]
3431pub struct AccountIdentification4Choice {
3432 #[serde(flatten)]
3433 pub value: AccountIdentification4ChoiceEnum,
3434}
3435#[derive(
3436 Debug,
3437 Default,
3438 Clone,
3439 PartialEq,
3440 ::serde::Serialize,
3441 ::serde::Deserialize,
3442 ::derive_builder::Builder,
3443 ::validator::Validate,
3444)]
3445pub struct Max70Text {
3446 #[validate(length(min = 1, max = 70,))]
3447 #[serde(rename = "$text")]
3448 pub value: String,
3449}
3450#[derive(
3451 Debug,
3452 Default,
3453 Clone,
3454 PartialEq,
3455 ::serde::Serialize,
3456 ::serde::Deserialize,
3457 ::derive_builder::Builder,
3458 ::validator::Validate,
3459)]
3460pub struct DateAndDateTimeChoiceEnum {
3461 #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
3462 pub dt_tm: Option<IsoDateTime>,
3463 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
3464 pub dt: Option<IsoDate>,
3465}
3466#[derive(
3467 Debug,
3468 Default,
3469 Clone,
3470 PartialEq,
3471 ::serde::Serialize,
3472 ::serde::Deserialize,
3473 ::derive_builder::Builder,
3474 ::validator::Validate,
3475)]
3476pub struct DateAndDateTimeChoice {
3477 #[serde(flatten)]
3478 pub value: DateAndDateTimeChoiceEnum,
3479}
3480#[derive(
3481 Debug,
3482 Default,
3483 Clone,
3484 PartialEq,
3485 ::serde::Serialize,
3486 ::serde::Deserialize,
3487 ::derive_builder::Builder,
3488 ::validator::Validate,
3489)]
3490pub struct ActiveOrHistoricCurrencyCode {
3491 #[validate(regex = "ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX")]
3492 #[serde(rename = "$text")]
3493 pub value: String,
3494}
3495#[derive(
3496 Debug,
3497 Default,
3498 Clone,
3499 PartialEq,
3500 ::serde::Serialize,
3501 ::serde::Deserialize,
3502 ::derive_builder::Builder,
3503 ::validator::Validate,
3504)]
3505pub struct CountryAndResidentialStatusType2 {
3506 #[serde(rename = "Ctry")]
3507 pub ctry: CountryCode,
3508 #[serde(rename = "ResdtlSts")]
3509 pub resdtl_sts: ResidentialStatus1Code,
3510}
3511#[derive(
3512 Debug,
3513 Default,
3514 Clone,
3515 PartialEq,
3516 ::serde::Serialize,
3517 ::serde::Deserialize,
3518 ::derive_builder::Builder,
3519 ::validator::Validate,
3520)]
3521pub struct PercentageRate {
3522 #[serde(rename = "$text")]
3523 pub value: f64,
3524}
3525#[derive(
3526 Debug,
3527 Default,
3528 Clone,
3529 PartialEq,
3530 ::serde::Serialize,
3531 ::serde::Deserialize,
3532 ::derive_builder::Builder,
3533 ::validator::Validate,
3534)]
3535pub struct SwissSicIdentifier {
3536 #[validate(regex = "SWISS_SIC_IDENTIFIER_REGEX")]
3537 #[serde(rename = "$text")]
3538 pub value: String,
3539}
3540#[derive(
3541 Debug,
3542 Default,
3543 Clone,
3544 PartialEq,
3545 ::serde::Serialize,
3546 ::serde::Deserialize,
3547 ::derive_builder::Builder,
3548 ::validator::Validate,
3549)]
3550pub struct ChargeType5ChoiceEnum {
3551 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
3552 pub cd: Option<InvestmentFundFee1Code>,
3553 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
3554 pub prtry: Option<GenericIdentification47>,
3555}
3556#[derive(
3557 Debug,
3558 Default,
3559 Clone,
3560 PartialEq,
3561 ::serde::Serialize,
3562 ::serde::Deserialize,
3563 ::derive_builder::Builder,
3564 ::validator::Validate,
3565)]
3566pub struct ChargeType5Choice {
3567 #[serde(flatten)]
3568 pub value: ChargeType5ChoiceEnum,
3569}
3570#[derive(
3571 Debug,
3572 Default,
3573 Clone,
3574 PartialEq,
3575 ::serde::Serialize,
3576 ::serde::Deserialize,
3577 ::derive_builder::Builder,
3578 ::validator::Validate,
3579)]
3580pub struct IsoDateTime {
3581 #[serde(rename = "$text")]
3582 pub value: ::chrono::DateTime<::chrono::Utc>,
3583}
3584#[derive(
3585 Debug,
3586 Default,
3587 Clone,
3588 PartialEq,
3589 ::serde::Serialize,
3590 ::serde::Deserialize,
3591 ::derive_builder::Builder,
3592 ::validator::Validate,
3593)]
3594pub struct AccountSchemeName1ChoiceEnum {
3595 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
3596 pub cd: Option<ExternalAccountIdentification1Code>,
3597 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
3598 pub prtry: Option<Max35Text>,
3599}
3600#[derive(
3601 Debug,
3602 Default,
3603 Clone,
3604 PartialEq,
3605 ::serde::Serialize,
3606 ::serde::Deserialize,
3607 ::derive_builder::Builder,
3608 ::validator::Validate,
3609)]
3610pub struct AccountSchemeName1Choice {
3611 #[serde(flatten)]
3612 pub value: AccountSchemeName1ChoiceEnum,
3613}
3614#[derive(
3615 Debug,
3616 Default,
3617 Clone,
3618 PartialEq,
3619 ::serde::Serialize,
3620 ::serde::Deserialize,
3621 ::derive_builder::Builder,
3622 ::validator::Validate,
3623)]
3624pub struct UkDomesticSortCodeIdentifier {
3625 #[validate(regex = "UK_DOMESTIC_SORT_CODE_IDENTIFIER_REGEX")]
3626 #[serde(rename = "$text")]
3627 pub value: String,
3628}
3629#[derive(
3630 Debug,
3631 Default,
3632 Clone,
3633 PartialEq,
3634 ::serde::Serialize,
3635 ::serde::Deserialize,
3636 ::derive_builder::Builder,
3637 ::validator::Validate,
3638)]
3639pub struct RicIdentifier {
3640 #[validate(length(min = 1, max = 35,))]
3641 #[serde(rename = "$text")]
3642 pub value: String,
3643}
3644#[derive(
3645 Debug,
3646 Default,
3647 Clone,
3648 PartialEq,
3649 ::serde::Serialize,
3650 ::serde::Deserialize,
3651 ::derive_builder::Builder,
3652 ::validator::Validate,
3653)]
3654pub struct FeeAndTax1 {
3655 #[serde(rename = "ComrclAgrmtRef", skip_serializing_if = "Option::is_none")]
3656 pub comrcl_agrmt_ref: Option<Max35Text>,
3657 #[validate(length(min = 0,))]
3658 #[serde(rename = "IndvFee", default)]
3659 pub indv_fee: Vec<Fee1>,
3660 #[validate(length(min = 0,))]
3661 #[serde(rename = "IndvTax", default)]
3662 pub indv_tax: Vec<Tax30>,
3663}
3664#[derive(
3665 Debug,
3666 Default,
3667 Clone,
3668 PartialEq,
3669 ::serde::Serialize,
3670 ::serde::Deserialize,
3671 ::derive_builder::Builder,
3672 ::validator::Validate,
3673)]
3674pub struct Exact4AlphaNumericText {
3675 #[validate(regex = "EXACT_4_ALPHA_NUMERIC_TEXT_REGEX")]
3676 #[serde(rename = "$text")]
3677 pub value: String,
3678}
3679#[derive(
3680 Debug,
3681 Default,
3682 Clone,
3683 PartialEq,
3684 ::serde::Serialize,
3685 ::serde::Deserialize,
3686 ::derive_builder::Builder,
3687 ::validator::Validate,
3688)]
3689pub struct Tax30 {
3690 #[serde(rename = "Tp")]
3691 pub tp: TaxType3Choice,
3692 #[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
3693 pub tax: Option<TaxAmountOrRate4Choice>,
3694 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
3695 pub ctry: Option<CountryCode>,
3696 #[validate]
3697 #[serde(rename = "XmptnInd")]
3698 pub xmptn_ind: YesNoIndicator,
3699 #[serde(rename = "XmptnRsn", skip_serializing_if = "Option::is_none")]
3700 pub xmptn_rsn: Option<ExemptionReason1Choice>,
3701 #[serde(rename = "RcptId", skip_serializing_if = "Option::is_none")]
3702 pub rcpt_id: Option<PartyIdentification113>,
3703 #[serde(rename = "TaxClctnDtls", skip_serializing_if = "Option::is_none")]
3704 pub tax_clctn_dtls: Option<TaxCalculationInformation9>,
3705}
3706#[derive(
3707 Debug,
3708 Default,
3709 Clone,
3710 PartialEq,
3711 ::serde::Serialize,
3712 ::serde::Deserialize,
3713 ::derive_builder::Builder,
3714 ::validator::Validate,
3715)]
3716pub struct FedwireRoutingNumberIdentifier {
3717 #[validate(regex = "FEDWIRE_ROUTING_NUMBER_IDENTIFIER_REGEX")]
3718 #[serde(rename = "$text")]
3719 pub value: String,
3720}
3721#[derive(
3722 Debug,
3723 Default,
3724 Clone,
3725 PartialEq,
3726 ::serde::Serialize,
3727 ::serde::Deserialize,
3728 ::derive_builder::Builder,
3729 ::validator::Validate,
3730)]
3731pub struct AlternateSecurityIdentification7 {
3732 #[validate]
3733 #[serde(rename = "Id")]
3734 pub id: Max35Text,
3735 #[serde(rename = "IdSrc")]
3736 pub id_src: IdentificationSource1Choice,
3737}
3738#[derive(
3739 Debug,
3740 Default,
3741 Clone,
3742 PartialEq,
3743 ::serde::Serialize,
3744 ::serde::Deserialize,
3745 ::derive_builder::Builder,
3746 ::validator::Validate,
3747)]
3748pub struct PortugueseNccIdentifier {
3749 #[validate(regex = "PORTUGUESE_NCC_IDENTIFIER_REGEX")]
3750 #[serde(rename = "$text")]
3751 pub value: String,
3752}
3753#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
3754pub enum SafekeepingPlace2Code {
3755 #[serde(rename = "SHHE")]
3756 Shhe,
3757 #[serde(rename = "ALLP")]
3758 Allp,
3759 #[default]
3760 Unknown,
3761}
3762#[derive(
3763 Debug,
3764 Default,
3765 Clone,
3766 PartialEq,
3767 ::serde::Serialize,
3768 ::serde::Deserialize,
3769 ::derive_builder::Builder,
3770 ::validator::Validate,
3771)]
3772pub struct AccountIdentificationAndName5 {
3773 #[serde(rename = "Id")]
3774 pub id: AccountIdentification4Choice,
3775 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
3776 pub nm: Option<Max35Text>,
3777}
3778#[derive(
3779 Debug,
3780 Default,
3781 Clone,
3782 PartialEq,
3783 ::serde::Serialize,
3784 ::serde::Deserialize,
3785 ::derive_builder::Builder,
3786 ::validator::Validate,
3787)]
3788#[serde(rename = "Document")]
3789pub struct Document {
3790 #[validate]
3791 #[serde(rename = "SbcptBlkOrdr")]
3792 pub sbcpt_blk_ordr: SubscriptionBulkOrderV04,
3793 #[serde(rename = "@xmlns", default = "namespace")]
3794 pub xmlns: String,
3795}
3796#[derive(
3797 Debug,
3798 Default,
3799 Clone,
3800 PartialEq,
3801 ::serde::Serialize,
3802 ::serde::Deserialize,
3803 ::derive_builder::Builder,
3804 ::validator::Validate,
3805)]
3806pub struct AustrianBankleitzahlIdentifier {
3807 #[validate(regex = "AUSTRIAN_BANKLEITZAHL_IDENTIFIER_REGEX")]
3808 #[serde(rename = "$text")]
3809 pub value: String,
3810}
3811#[derive(
3812 Debug,
3813 Default,
3814 Clone,
3815 PartialEq,
3816 ::serde::Serialize,
3817 ::serde::Deserialize,
3818 ::derive_builder::Builder,
3819 ::validator::Validate,
3820)]
3821pub struct WaivingInstruction2ChoiceEnum {
3822 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
3823 pub cd: Option<WaivingInstruction1Code>,
3824 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
3825 pub prtry: Option<GenericIdentification47>,
3826}
3827#[derive(
3828 Debug,
3829 Default,
3830 Clone,
3831 PartialEq,
3832 ::serde::Serialize,
3833 ::serde::Deserialize,
3834 ::derive_builder::Builder,
3835 ::validator::Validate,
3836)]
3837pub struct WaivingInstruction2Choice {
3838 #[serde(flatten)]
3839 pub value: WaivingInstruction2ChoiceEnum,
3840}
3841#[derive(
3842 Debug,
3843 Default,
3844 Clone,
3845 PartialEq,
3846 ::serde::Serialize,
3847 ::serde::Deserialize,
3848 ::derive_builder::Builder,
3849 ::validator::Validate,
3850)]
3851pub struct WertpapierIdentifier {
3852 #[serde(rename = "$text")]
3853 pub value: String,
3854}