1use validator::Validate;
22
23::lazy_static::lazy_static! {
24 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();
25}
26
27::lazy_static::lazy_static! {
28 static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap();
29}
30
31::lazy_static::lazy_static! {
32 static ref MIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}"#).unwrap();
33}
34
35::lazy_static::lazy_static! {
36 static ref EXACT_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{4}"#).unwrap();
37}
38
39::lazy_static::lazy_static! {
40 static ref COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}"#).unwrap();
41}
42
43::lazy_static::lazy_static! {
44 static ref ACTIVE_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
45}
46
47::lazy_static::lazy_static! {
48 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();
49}
50
51::lazy_static::lazy_static! {
52 static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
53}
54
55::lazy_static::lazy_static! {
56 static ref LEI_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{18,18}[0-9]{2,2}"#).unwrap();
57}
58
59::lazy_static::lazy_static! {
60 static ref ISO_20022_MESSAGE_IDENTIFICATION_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{4}\.[0-9]{3}\.[0-9]{3}\.[0-9]{2}"#).unwrap();
61}
62
63::lazy_static::lazy_static! {
64 static ref ANY_BIC_DEC_2014_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"#).unwrap();
65}
66
67::lazy_static::lazy_static! {
68 static ref EXACT_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3}"#).unwrap();
69}
70
71::lazy_static::lazy_static! {
72 static ref ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
73}
74
75pub fn namespace() -> String {
77 "urn:iso:std:iso:20022:tech:xsd:colr.019.001.01".to_string()
78}
79
80#[derive(
81 Debug,
82 Default,
83 Clone,
84 PartialEq,
85 ::serde::Serialize,
86 ::serde::Deserialize,
87 ::derive_builder::Builder,
88 ::validator::Validate,
89)]
90pub struct InterestComputationMethodFormat4ChoiceEnum {
91 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
92 pub cd: Option<InterestComputationMethod2Code>,
93 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
94 pub prtry: Option<GenericIdentification30>,
95}
96#[derive(
97 Debug,
98 Default,
99 Clone,
100 PartialEq,
101 ::serde::Serialize,
102 ::serde::Deserialize,
103 ::derive_builder::Builder,
104 ::validator::Validate,
105)]
106pub struct InterestComputationMethodFormat4Choice {
107 #[serde(flatten)]
108 pub value: InterestComputationMethodFormat4ChoiceEnum,
109}
110#[derive(
111 Debug,
112 Default,
113 Clone,
114 PartialEq,
115 ::serde::Serialize,
116 ::serde::Deserialize,
117 ::derive_builder::Builder,
118 ::validator::Validate,
119)]
120pub struct CollateralParameters10 {
121 #[serde(rename = "CollInstrTp")]
122 pub coll_instr_tp: CollateralTransactionType1Choice,
123 #[serde(rename = "XpsrTp")]
124 pub xpsr_tp: ExposureType23Choice,
125 #[serde(rename = "CollSd")]
126 pub coll_sd: CollateralRole1Code,
127 #[serde(rename = "ValSghtMrgnRate", skip_serializing_if = "Option::is_none")]
128 pub val_sght_mrgn_rate: Option<RateOrType1Choice>,
129 #[serde(rename = "TrfTitl", skip_serializing_if = "Option::is_none")]
130 pub trf_titl: Option<YesNoIndicator>,
131 #[serde(rename = "SttlmPrc", skip_serializing_if = "Option::is_none")]
132 pub sttlm_prc: Option<GenericIdentification30>,
133 #[serde(rename = "Prty", skip_serializing_if = "Option::is_none")]
134 pub prty: Option<GenericIdentification30>,
135 #[serde(rename = "AutomtcAllcn", skip_serializing_if = "Option::is_none")]
136 pub automtc_allcn: Option<YesNoIndicator>,
137 #[serde(rename = "FaildSttlmSlvtn", skip_serializing_if = "Option::is_none")]
138 pub faild_sttlm_slvtn: Option<YesNoIndicator>,
139 #[serde(
140 rename = "MainTradgAcctCollstn",
141 skip_serializing_if = "Option::is_none"
142 )]
143 pub main_tradg_acct_collstn: Option<YesNoIndicator>,
144 #[serde(
145 rename = "BsktIdAndElgbltySetPrfl",
146 skip_serializing_if = "Option::is_none"
147 )]
148 pub bskt_id_and_elgblty_set_prfl: Option<BasketIdentificationAndEligibilitySetProfile1>,
149 #[serde(rename = "RspnSts", skip_serializing_if = "Option::is_none")]
150 pub rspn_sts: Option<ResponseStatus9Choice>,
151 #[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
152 pub addtl_inf: Option<AdditionalInformation24>,
153}
154#[derive(
155 Debug,
156 Default,
157 Clone,
158 PartialEq,
159 ::serde::Serialize,
160 ::serde::Deserialize,
161 ::derive_builder::Builder,
162 ::validator::Validate,
163)]
164pub struct ForeignExchangeTerms23 {
165 #[serde(rename = "UnitCcy")]
166 pub unit_ccy: ActiveCurrencyCode,
167 #[serde(rename = "QtdCcy")]
168 pub qtd_ccy: ActiveCurrencyCode,
169 #[validate]
170 #[serde(rename = "XchgRate")]
171 pub xchg_rate: BaseOneRate,
172 #[validate]
173 #[serde(rename = "RsltgAmt")]
174 pub rsltg_amt: ActiveCurrencyAndAmount,
175}
176#[derive(
177 Debug,
178 Default,
179 Clone,
180 PartialEq,
181 ::serde::Serialize,
182 ::serde::Deserialize,
183 ::derive_builder::Builder,
184 ::validator::Validate,
185)]
186pub struct TransactionIdentifications45 {
187 #[validate]
188 #[serde(rename = "ClntCollInstrId")]
189 pub clnt_coll_instr_id: Max35Text,
190 #[serde(rename = "ClntCollTxId", skip_serializing_if = "Option::is_none")]
191 pub clnt_coll_tx_id: Option<Max35Text>,
192 #[serde(
193 rename = "TrptyAgtSvcPrvdrCollInstrId",
194 skip_serializing_if = "Option::is_none"
195 )]
196 pub trpty_agt_svc_prvdr_coll_instr_id: Option<Max35Text>,
197 #[serde(
198 rename = "TrptyAgtSvcPrvdrCollTxId",
199 skip_serializing_if = "Option::is_none"
200 )]
201 pub trpty_agt_svc_prvdr_coll_tx_id: Option<Max35Text>,
202 #[serde(rename = "CmonTxId", skip_serializing_if = "Option::is_none")]
203 pub cmon_tx_id: Option<Max52Text>,
204}
205#[derive(
206 Debug,
207 Default,
208 Clone,
209 PartialEq,
210 ::serde::Serialize,
211 ::serde::Deserialize,
212 ::derive_builder::Builder,
213 ::validator::Validate,
214)]
215pub struct MarketIdentification1ChoiceEnum {
216 #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
217 pub desc: Option<Max35Text>,
218 #[serde(rename = "MktIdrCd", skip_serializing_if = "Option::is_none")]
219 pub mkt_idr_cd: Option<MicIdentifier>,
220}
221#[derive(
222 Debug,
223 Default,
224 Clone,
225 PartialEq,
226 ::serde::Serialize,
227 ::serde::Deserialize,
228 ::derive_builder::Builder,
229 ::validator::Validate,
230)]
231pub struct MarketIdentification1Choice {
232 #[serde(flatten)]
233 pub value: MarketIdentification1ChoiceEnum,
234}
235#[derive(
236 Debug,
237 Default,
238 Clone,
239 PartialEq,
240 ::serde::Serialize,
241 ::serde::Deserialize,
242 ::derive_builder::Builder,
243 ::validator::Validate,
244)]
245pub struct ActiveCurrencyAndAmount {
246 #[serde(rename = "ActiveCurrencyAndAmount")]
247 pub value: ActiveCurrencyAndAmountSimpleType,
248 #[serde(rename = "@Ccy")]
249 pub ccy: ActiveCurrencyCode,
250}
251#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
252pub enum InterestComputationMethod2Code {
253 #[serde(rename = "A001")]
254 A001,
255 #[serde(rename = "A002")]
256 A002,
257 #[serde(rename = "A003")]
258 A003,
259 #[serde(rename = "A004")]
260 A004,
261 #[serde(rename = "A005")]
262 A005,
263 #[serde(rename = "A006")]
264 A006,
265 #[serde(rename = "A007")]
266 A007,
267 #[serde(rename = "A008")]
268 A008,
269 #[serde(rename = "A009")]
270 A009,
271 #[serde(rename = "A010")]
272 A010,
273 #[serde(rename = "A011")]
274 A011,
275 #[serde(rename = "A012")]
276 A012,
277 #[serde(rename = "A013")]
278 A013,
279 #[serde(rename = "A014")]
280 A014,
281 #[serde(rename = "NARR")]
282 Narr,
283 #[default]
284 Unknown,
285}
286#[derive(
287 Debug,
288 Default,
289 Clone,
290 PartialEq,
291 ::serde::Serialize,
292 ::serde::Deserialize,
293 ::derive_builder::Builder,
294 ::validator::Validate,
295)]
296pub struct AmountAndDirection49 {
297 #[validate]
298 #[serde(rename = "Amt")]
299 pub amt: ActiveCurrencyAndAmount,
300 #[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
301 pub cdt_dbt_ind: Option<CreditDebitCode>,
302 #[serde(
303 rename = "OrgnlCcyAndOrdrdAmt",
304 skip_serializing_if = "Option::is_none"
305 )]
306 pub orgnl_ccy_and_ordrd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
307 #[serde(rename = "FXDtls", skip_serializing_if = "Option::is_none")]
308 pub fx_dtls: Option<ForeignExchangeTerms23>,
309}
310#[derive(
311 Debug,
312 Default,
313 Clone,
314 PartialEq,
315 ::serde::Serialize,
316 ::serde::Deserialize,
317 ::derive_builder::Builder,
318 ::validator::Validate,
319)]
320pub struct AdditionalInformation24 {
321 #[serde(rename = "CollInstr", skip_serializing_if = "Option::is_none")]
322 pub coll_instr: Option<Max350Text>,
323 #[serde(rename = "Note", skip_serializing_if = "Option::is_none")]
324 pub note: Option<Max350Text>,
325}
326#[derive(
327 Debug,
328 Default,
329 Clone,
330 PartialEq,
331 ::serde::Serialize,
332 ::serde::Deserialize,
333 ::derive_builder::Builder,
334 ::validator::Validate,
335)]
336pub struct ActiveCurrencyAndAmountSimpleType {
337 #[validate(range(min = 0,))]
338 #[serde(rename = "$text")]
339 pub value: f64,
340}
341#[derive(
342 Debug,
343 Default,
344 Clone,
345 PartialEq,
346 ::serde::Serialize,
347 ::serde::Deserialize,
348 ::derive_builder::Builder,
349 ::validator::Validate,
350)]
351pub struct IsinOct2015Identifier {
352 #[validate(regex = "ISIN_OCT_2015_IDENTIFIER_REGEX")]
353 #[serde(rename = "$text")]
354 pub value: String,
355}
356#[derive(
357 Debug,
358 Default,
359 Clone,
360 PartialEq,
361 ::serde::Serialize,
362 ::serde::Deserialize,
363 ::derive_builder::Builder,
364 ::validator::Validate,
365)]
366pub struct ResponseStatus9ChoiceEnum {
367 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
368 pub cd: Option<ResponseStatus2Code>,
369 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
370 pub prtry: Option<GenericIdentification30>,
371}
372#[derive(
373 Debug,
374 Default,
375 Clone,
376 PartialEq,
377 ::serde::Serialize,
378 ::serde::Deserialize,
379 ::derive_builder::Builder,
380 ::validator::Validate,
381)]
382pub struct ResponseStatus9Choice {
383 #[serde(flatten)]
384 pub value: ResponseStatus9ChoiceEnum,
385}
386#[derive(
387 Debug,
388 Default,
389 Clone,
390 PartialEq,
391 ::serde::Serialize,
392 ::serde::Deserialize,
393 ::derive_builder::Builder,
394 ::validator::Validate,
395)]
396pub struct DealTransactionDetails5 {
397 #[serde(rename = "PlcOfTrad", skip_serializing_if = "Option::is_none")]
398 pub plc_of_trad: Option<PlaceOfTradeIdentification1>,
399 #[serde(rename = "CncntrtnLmt", skip_serializing_if = "Option::is_none")]
400 pub cncntrtn_lmt: Option<YesNoIndicator>,
401 #[serde(rename = "MinNtcePrd", skip_serializing_if = "Option::is_none")]
402 pub min_ntce_prd: Option<Exact3NumericText>,
403 #[serde(rename = "ClsgDt")]
404 pub clsg_dt: ClosingDate4Choice,
405 #[serde(rename = "DealDtlsAmt", skip_serializing_if = "Option::is_none")]
406 pub deal_dtls_amt: Option<CollateralAmount18>,
407 #[serde(rename = "PricgRateAndIndx", skip_serializing_if = "Option::is_none")]
408 pub pricg_rate_and_indx: Option<RateOrName4Choice>,
409 #[serde(
410 rename = "OvrnghtFrqcyRateFxg",
411 skip_serializing_if = "Option::is_none"
412 )]
413 pub ovrnght_frqcy_rate_fxg: Option<FrequencyRateFixing1Choice>,
414 #[serde(rename = "Sprd", skip_serializing_if = "Option::is_none")]
415 pub sprd: Option<PercentageRate>,
416 #[serde(rename = "DayCntBsis", skip_serializing_if = "Option::is_none")]
417 pub day_cnt_bsis: Option<InterestComputationMethodFormat4Choice>,
418 #[serde(rename = "Pmt", skip_serializing_if = "Option::is_none")]
419 pub pmt: Option<DeliveryReceiptType2Code>,
420 #[serde(rename = "OptnTp", skip_serializing_if = "Option::is_none")]
421 pub optn_tp: Option<OptionType6Choice>,
422 #[serde(rename = "TermntnOptn", skip_serializing_if = "Option::is_none")]
423 pub termntn_optn: Option<RepoTerminationOption1Code>,
424}
425#[derive(
426 Debug,
427 Default,
428 Clone,
429 PartialEq,
430 ::serde::Serialize,
431 ::serde::Deserialize,
432 ::derive_builder::Builder,
433 ::validator::Validate,
434)]
435pub struct OtherParties38 {
436 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
437 pub issr: Option<PartyIdentification136>,
438 #[validate(length(min = 0,))]
439 #[serde(rename = "Invstr", default)]
440 pub invstr: Vec<PartyIdentification149>,
441}
442#[derive(
443 Debug,
444 Default,
445 Clone,
446 PartialEq,
447 ::serde::Serialize,
448 ::serde::Deserialize,
449 ::derive_builder::Builder,
450 ::validator::Validate,
451)]
452pub struct SupplementaryDataEnvelope1<
453 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
454> {
455 #[validate]
456 #[serde(flatten)]
457 pub value: A,
458}
459#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
460pub enum FrequencyRateFixing1Code {
461 #[serde(rename = "NONE")]
462 None,
463 #[serde(rename = "OVNG")]
464 Ovng,
465 #[serde(rename = "PRDC")]
466 Prdc,
467 #[default]
468 Unknown,
469}
470#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
471pub enum CalculationMethod1Code {
472 #[serde(rename = "SIMP")]
473 Simp,
474 #[serde(rename = "COMP")]
475 Comp,
476 #[default]
477 Unknown,
478}
479#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
480pub enum ExposureType14Code {
481 #[serde(rename = "BFWD")]
482 Bfwd,
483 #[serde(rename = "PAYM")]
484 Paym,
485 #[serde(rename = "CBCO")]
486 Cbco,
487 #[serde(rename = "COMM")]
488 Comm,
489 #[serde(rename = "CRDS")]
490 Crds,
491 #[serde(rename = "CRTL")]
492 Crtl,
493 #[serde(rename = "CRSP")]
494 Crsp,
495 #[serde(rename = "CCIR")]
496 Ccir,
497 #[serde(rename = "CRPR")]
498 Crpr,
499 #[serde(rename = "EQPT")]
500 Eqpt,
501 #[serde(rename = "EQUS")]
502 Equs,
503 #[serde(rename = "EXTD")]
504 Extd,
505 #[serde(rename = "EXPT")]
506 Expt,
507 #[serde(rename = "FIXI")]
508 Fixi,
509 #[serde(rename = "FORX")]
510 Forx,
511 #[serde(rename = "FORW")]
512 Forw,
513 #[serde(rename = "FUTR")]
514 Futr,
515 #[serde(rename = "OPTN")]
516 Optn,
517 #[serde(rename = "LIQU")]
518 Liqu,
519 #[serde(rename = "OTCD")]
520 Otcd,
521 #[serde(rename = "RVPO")]
522 Rvpo,
523 #[serde(rename = "SLOA")]
524 Sloa,
525 #[serde(rename = "SBSC")]
526 Sbsc,
527 #[serde(rename = "SCRP")]
528 Scrp,
529 #[serde(rename = "SLEB")]
530 Sleb,
531 #[serde(rename = "SCIR")]
532 Scir,
533 #[serde(rename = "SCIE")]
534 Scie,
535 #[serde(rename = "SWPT")]
536 Swpt,
537 #[serde(rename = "TBAS")]
538 Tbas,
539 #[serde(rename = "TRCP")]
540 Trcp,
541 #[serde(rename = "UDMS")]
542 Udms,
543 #[serde(rename = "CCPC")]
544 Ccpc,
545 #[serde(rename = "EQUI")]
546 Equi,
547 #[serde(rename = "TRBD")]
548 Trbd,
549 #[serde(rename = "REPO")]
550 Repo,
551 #[serde(rename = "SHSL")]
552 Shsl,
553 #[serde(rename = "MGLD")]
554 Mgld,
555 #[default]
556 Unknown,
557}
558#[derive(
559 Debug,
560 Default,
561 Clone,
562 PartialEq,
563 ::serde::Serialize,
564 ::serde::Deserialize,
565 ::derive_builder::Builder,
566 ::validator::Validate,
567)]
568pub struct Max30DecimalNumber {
569 #[serde(rename = "$text")]
570 pub value: f64,
571}
572#[derive(
573 Debug,
574 Default,
575 Clone,
576 PartialEq,
577 ::serde::Serialize,
578 ::serde::Deserialize,
579 ::derive_builder::Builder,
580 ::validator::Validate,
581)]
582pub struct IsoDate {
583 #[serde(rename = "$text")]
584 pub value: ::chrono::NaiveDate,
585}
586#[derive(
587 Debug,
588 Default,
589 Clone,
590 PartialEq,
591 ::serde::Serialize,
592 ::serde::Deserialize,
593 ::derive_builder::Builder,
594 ::validator::Validate,
595)]
596pub struct MarketIdentification84 {
597 #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
598 pub id: Option<MarketIdentification1Choice>,
599 #[serde(rename = "Tp")]
600 pub tp: MarketType8Choice,
601}
602#[derive(
603 Debug,
604 Default,
605 Clone,
606 PartialEq,
607 ::serde::Serialize,
608 ::serde::Deserialize,
609 ::derive_builder::Builder,
610 ::validator::Validate,
611)]
612pub struct Max5NumericText {
613 #[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
614 #[serde(rename = "$text")]
615 pub value: String,
616}
617#[derive(
618 Debug,
619 Default,
620 Clone,
621 PartialEq,
622 ::serde::Serialize,
623 ::serde::Deserialize,
624 ::derive_builder::Builder,
625 ::validator::Validate,
626)]
627pub struct CollateralAmount18 {
628 #[serde(rename = "Tx", skip_serializing_if = "Option::is_none")]
629 pub tx: Option<AmountAndDirection49>,
630 #[serde(rename = "Termntn", skip_serializing_if = "Option::is_none")]
631 pub termntn: Option<AmountAndDirection49>,
632 #[serde(rename = "Acrd", skip_serializing_if = "Option::is_none")]
633 pub acrd: Option<AmountAndDirection49>,
634 #[serde(rename = "CmpndSmplAcrlClctn", skip_serializing_if = "Option::is_none")]
635 pub cmpnd_smpl_acrl_clctn: Option<CalculationMethod1Code>,
636 #[serde(rename = "PmtFrqcy", skip_serializing_if = "Option::is_none")]
637 pub pmt_frqcy: Option<Frequency38Choice>,
638 #[serde(rename = "IntrstPmtDely", skip_serializing_if = "Option::is_none")]
639 pub intrst_pmt_dely: Option<Max3NumericText>,
640 #[validate(length(min = 0,))]
641 #[serde(rename = "TxAmtBrkdwn", default)]
642 pub tx_amt_brkdwn: Vec<CollateralTransactionAmountBreakdown2>,
643 #[serde(rename = "ValSght", skip_serializing_if = "Option::is_none")]
644 pub val_sght: Option<AmountAndDirection49>,
645}
646#[derive(
647 Debug,
648 Default,
649 Clone,
650 PartialEq,
651 ::serde::Serialize,
652 ::serde::Deserialize,
653 ::derive_builder::Builder,
654 ::validator::Validate,
655)]
656pub struct ActiveOrHistoricCurrencyAndAmount {
657 #[serde(rename = "ActiveOrHistoricCurrencyAndAmount")]
658 pub value: ActiveOrHistoricCurrencyAndAmountSimpleType,
659 #[serde(rename = "@Ccy")]
660 pub ccy: ActiveOrHistoricCurrencyCode,
661}
662#[derive(
663 Debug,
664 Default,
665 Clone,
666 PartialEq,
667 ::serde::Serialize,
668 ::serde::Deserialize,
669 ::derive_builder::Builder,
670 ::validator::Validate,
671)]
672pub struct PartyIdentification134ChoiceEnum {
673 #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")]
674 pub prtry_id: Option<GenericIdentification36>,
675 #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
676 pub ctry: Option<CountryCode>,
677 #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")]
678 pub nm_and_adr: Option<NameAndAddress5>,
679 #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
680 pub any_bic: Option<AnyBicDec2014Identifier>,
681}
682#[derive(
683 Debug,
684 Default,
685 Clone,
686 PartialEq,
687 ::serde::Serialize,
688 ::serde::Deserialize,
689 ::derive_builder::Builder,
690 ::validator::Validate,
691)]
692pub struct PartyIdentification134Choice {
693 #[serde(flatten)]
694 pub value: PartyIdentification134ChoiceEnum,
695}
696#[derive(
697 Debug,
698 Default,
699 Clone,
700 PartialEq,
701 ::serde::Serialize,
702 ::serde::Deserialize,
703 ::derive_builder::Builder,
704 ::validator::Validate,
705)]
706pub struct DecimalNumber {
707 #[serde(rename = "$text")]
708 pub value: f64,
709}
710#[derive(
711 Debug,
712 Default,
713 Clone,
714 PartialEq,
715 ::serde::Serialize,
716 ::serde::Deserialize,
717 ::derive_builder::Builder,
718 ::validator::Validate,
719)]
720pub struct Pagination1 {
721 #[validate]
722 #[serde(rename = "PgNb")]
723 pub pg_nb: Max5NumericText,
724 #[validate]
725 #[serde(rename = "LastPgInd")]
726 pub last_pg_ind: YesNoIndicator,
727}
728#[derive(
729 Debug,
730 Default,
731 Clone,
732 PartialEq,
733 ::serde::Serialize,
734 ::serde::Deserialize,
735 ::derive_builder::Builder,
736 ::validator::Validate,
737)]
738pub struct Frequency38ChoiceEnum {
739 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
740 pub cd: Option<EventFrequency12Code>,
741 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
742 pub prtry: Option<GenericIdentification30>,
743}
744#[derive(
745 Debug,
746 Default,
747 Clone,
748 PartialEq,
749 ::serde::Serialize,
750 ::serde::Deserialize,
751 ::derive_builder::Builder,
752 ::validator::Validate,
753)]
754pub struct Frequency38Choice {
755 #[serde(flatten)]
756 pub value: Frequency38ChoiceEnum,
757}
758#[derive(
759 Debug,
760 Default,
761 Clone,
762 PartialEq,
763 ::serde::Serialize,
764 ::serde::Deserialize,
765 ::derive_builder::Builder,
766 ::validator::Validate,
767)]
768pub struct GenericIdentification30 {
769 #[validate]
770 #[serde(rename = "Id")]
771 pub id: Exact4AlphaNumericText,
772 #[validate]
773 #[serde(rename = "Issr")]
774 pub issr: Max35Text,
775 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
776 pub schme_nm: Option<Max35Text>,
777}
778#[derive(
779 Debug,
780 Default,
781 Clone,
782 PartialEq,
783 ::serde::Serialize,
784 ::serde::Deserialize,
785 ::derive_builder::Builder,
786 ::validator::Validate,
787)]
788pub struct TripartyCollateralTransactionInstructionV01<
789 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
790> {
791 #[validate]
792 #[serde(rename = "TxInstrId")]
793 pub tx_instr_id: TransactionIdentifications45,
794 #[validate(length(min = 0,))]
795 #[serde(rename = "Lnkgs", default)]
796 pub lnkgs: Vec<Linkages58>,
797 #[validate]
798 #[serde(rename = "Pgntn")]
799 pub pgntn: Pagination1,
800 #[validate]
801 #[serde(rename = "GnlParams")]
802 pub gnl_params: CollateralParameters10,
803 #[validate]
804 #[serde(rename = "CollPties")]
805 pub coll_pties: CollateralParties10,
806 #[validate]
807 #[serde(rename = "DealTxDtls")]
808 pub deal_tx_dtls: DealTransactionDetails5,
809 #[validate]
810 #[serde(rename = "DealTxDt")]
811 pub deal_tx_dt: CollateralDate2,
812 #[validate(length(min = 0,))]
813 #[serde(rename = "SctiesMvmnt", default)]
814 pub scties_mvmnt: Vec<SecuritiesMovement9>,
815 #[validate(length(min = 0,))]
816 #[serde(rename = "CshMvmnt", default)]
817 pub csh_mvmnt: Vec<CashMovement8>,
818 #[serde(rename = "OthrPties", skip_serializing_if = "Option::is_none")]
819 pub othr_pties: Option<OtherParties38>,
820 #[validate(length(min = 0,))]
821 #[serde(rename = "SplmtryData", default)]
822 pub splmtry_data: Vec<SupplementaryData1<A>>,
823}
824#[derive(
825 Debug,
826 Default,
827 Clone,
828 PartialEq,
829 ::serde::Serialize,
830 ::serde::Deserialize,
831 ::derive_builder::Builder,
832 ::validator::Validate,
833)]
834pub struct NameAndAddress5 {
835 #[validate]
836 #[serde(rename = "Nm")]
837 pub nm: Max350Text,
838 #[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
839 pub adr: Option<PostalAddress1>,
840}
841#[derive(
842 Debug,
843 Default,
844 Clone,
845 PartialEq,
846 ::serde::Serialize,
847 ::serde::Deserialize,
848 ::derive_builder::Builder,
849 ::validator::Validate,
850)]
851pub struct BlockChainAddressWallet3 {
852 #[validate]
853 #[serde(rename = "Id")]
854 pub id: Max140Text,
855 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
856 pub tp: Option<GenericIdentification30>,
857 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
858 pub nm: Option<Max70Text>,
859}
860#[derive(
861 Debug,
862 Default,
863 Clone,
864 PartialEq,
865 ::serde::Serialize,
866 ::serde::Deserialize,
867 ::derive_builder::Builder,
868 ::validator::Validate,
869)]
870pub struct RateOrType1ChoiceEnum {
871 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
872 pub tp: Option<GenericIdentification1>,
873 #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
874 pub rate: Option<PercentageRate>,
875}
876#[derive(
877 Debug,
878 Default,
879 Clone,
880 PartialEq,
881 ::serde::Serialize,
882 ::serde::Deserialize,
883 ::derive_builder::Builder,
884 ::validator::Validate,
885)]
886pub struct RateOrType1Choice {
887 #[serde(flatten)]
888 pub value: RateOrType1ChoiceEnum,
889}
890#[derive(
891 Debug,
892 Default,
893 Clone,
894 PartialEq,
895 ::serde::Serialize,
896 ::serde::Deserialize,
897 ::derive_builder::Builder,
898 ::validator::Validate,
899)]
900pub struct RateOrName4ChoiceEnum {
901 #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
902 pub rate: Option<PercentageRate>,
903 #[serde(rename = "RateIndxDtls", skip_serializing_if = "Option::is_none")]
904 pub rate_indx_dtls: Option<RateTypeAndLookback2>,
905}
906#[derive(
907 Debug,
908 Default,
909 Clone,
910 PartialEq,
911 ::serde::Serialize,
912 ::serde::Deserialize,
913 ::derive_builder::Builder,
914 ::validator::Validate,
915)]
916pub struct RateOrName4Choice {
917 #[serde(flatten)]
918 pub value: RateOrName4ChoiceEnum,
919}
920#[derive(
921 Debug,
922 Default,
923 Clone,
924 PartialEq,
925 ::serde::Serialize,
926 ::serde::Deserialize,
927 ::derive_builder::Builder,
928 ::validator::Validate,
929)]
930pub struct PartyIdentification149 {
931 #[serde(rename = "Id")]
932 pub id: PartyIdentification134Choice,
933 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
934 pub lei: Option<LeiIdentifier>,
935}
936#[derive(
937 Debug,
938 Default,
939 Clone,
940 PartialEq,
941 ::serde::Serialize,
942 ::serde::Deserialize,
943 ::derive_builder::Builder,
944 ::validator::Validate,
945)]
946pub struct BenchmarkCurveName13ChoiceEnum {
947 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
948 pub cd: Option<BenchmarkCurveName7Code>,
949 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
950 pub prtry: Option<GenericIdentification1>,
951}
952#[derive(
953 Debug,
954 Default,
955 Clone,
956 PartialEq,
957 ::serde::Serialize,
958 ::serde::Deserialize,
959 ::derive_builder::Builder,
960 ::validator::Validate,
961)]
962pub struct BenchmarkCurveName13Choice {
963 #[serde(flatten)]
964 pub value: BenchmarkCurveName13ChoiceEnum,
965}
966#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
967pub enum ResponseStatus2Code {
968 #[serde(rename = "CONF")]
969 Conf,
970 #[serde(rename = "DKNY")]
971 Dkny,
972 #[default]
973 Unknown,
974}
975#[derive(
976 Debug,
977 Default,
978 Clone,
979 PartialEq,
980 ::serde::Serialize,
981 ::serde::Deserialize,
982 ::derive_builder::Builder,
983 ::validator::Validate,
984)]
985pub struct MarketType8ChoiceEnum {
986 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
987 pub prtry: Option<GenericIdentification30>,
988 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
989 pub cd: Option<MarketType2Code>,
990}
991#[derive(
992 Debug,
993 Default,
994 Clone,
995 PartialEq,
996 ::serde::Serialize,
997 ::serde::Deserialize,
998 ::derive_builder::Builder,
999 ::validator::Validate,
1000)]
1001pub struct MarketType8Choice {
1002 #[serde(flatten)]
1003 pub value: MarketType8ChoiceEnum,
1004}
1005#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1006pub enum InterestRateIndexTenor2Code {
1007 #[serde(rename = "INDA")]
1008 Inda,
1009 #[serde(rename = "MNTH")]
1010 Mnth,
1011 #[serde(rename = "YEAR")]
1012 Year,
1013 #[serde(rename = "TOMN")]
1014 Tomn,
1015 #[serde(rename = "QUTR")]
1016 Qutr,
1017 #[serde(rename = "FOMN")]
1018 Fomn,
1019 #[serde(rename = "SEMI")]
1020 Semi,
1021 #[serde(rename = "OVNG")]
1022 Ovng,
1023 #[serde(rename = "WEEK")]
1024 Week,
1025 #[serde(rename = "TOWK")]
1026 Towk,
1027 #[default]
1028 Unknown,
1029}
1030#[derive(
1031 Debug,
1032 Default,
1033 Clone,
1034 PartialEq,
1035 ::serde::Serialize,
1036 ::serde::Deserialize,
1037 ::derive_builder::Builder,
1038 ::validator::Validate,
1039)]
1040pub struct FrequencyRateFixing1ChoiceEnum {
1041 #[serde(rename = "NbOfDays", skip_serializing_if = "Option::is_none")]
1042 pub nb_of_days: Option<Max3NumericText>,
1043 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1044 pub cd: Option<FrequencyRateFixing1Code>,
1045}
1046#[derive(
1047 Debug,
1048 Default,
1049 Clone,
1050 PartialEq,
1051 ::serde::Serialize,
1052 ::serde::Deserialize,
1053 ::derive_builder::Builder,
1054 ::validator::Validate,
1055)]
1056pub struct FrequencyRateFixing1Choice {
1057 #[serde(flatten)]
1058 pub value: FrequencyRateFixing1ChoiceEnum,
1059}
1060#[derive(
1061 Debug,
1062 Default,
1063 Clone,
1064 PartialEq,
1065 ::serde::Serialize,
1066 ::serde::Deserialize,
1067 ::derive_builder::Builder,
1068 ::validator::Validate,
1069)]
1070pub struct MicIdentifier {
1071 #[validate(regex = "MIC_IDENTIFIER_REGEX")]
1072 #[serde(rename = "$text")]
1073 pub value: String,
1074}
1075#[derive(
1076 Debug,
1077 Default,
1078 Clone,
1079 PartialEq,
1080 ::serde::Serialize,
1081 ::serde::Deserialize,
1082 ::derive_builder::Builder,
1083 ::validator::Validate,
1084)]
1085pub struct GenericIdentification178 {
1086 #[validate]
1087 #[serde(rename = "Id")]
1088 pub id: Max35Text,
1089 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
1090 pub issr: Option<Max35Text>,
1091}
1092#[derive(
1093 Debug,
1094 Default,
1095 Clone,
1096 PartialEq,
1097 ::serde::Serialize,
1098 ::serde::Deserialize,
1099 ::derive_builder::Builder,
1100 ::validator::Validate,
1101)]
1102pub struct Exact4AlphaNumericText {
1103 #[validate(regex = "EXACT_4_ALPHA_NUMERIC_TEXT_REGEX")]
1104 #[serde(rename = "$text")]
1105 pub value: String,
1106}
1107#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1108pub enum BenchmarkCurveName7Code {
1109 #[serde(rename = "BBSW")]
1110 Bbsw,
1111 #[serde(rename = "BUBO")]
1112 Bubo,
1113 #[serde(rename = "BCOL")]
1114 Bcol,
1115 #[serde(rename = "CDOR")]
1116 Cdor,
1117 #[serde(rename = "CIBO")]
1118 Cibo,
1119 #[serde(rename = "CORA")]
1120 Cora,
1121 #[serde(rename = "CZNA")]
1122 Czna,
1123 #[serde(rename = "EONA")]
1124 Eona,
1125 #[serde(rename = "EONS")]
1126 Eons,
1127 #[serde(rename = "ESTR")]
1128 Estr,
1129 #[serde(rename = "EURI")]
1130 Euri,
1131 #[serde(rename = "EUUS")]
1132 Euus,
1133 #[serde(rename = "EUCH")]
1134 Euch,
1135 #[serde(rename = "EFFR")]
1136 Effr,
1137 #[serde(rename = "FUSW")]
1138 Fusw,
1139 #[serde(rename = "GCFR")]
1140 Gcfr,
1141 #[serde(rename = "HKIO")]
1142 Hkio,
1143 #[serde(rename = "ISDA")]
1144 Isda,
1145 #[serde(rename = "ETIO")]
1146 Etio,
1147 #[serde(rename = "JIBA")]
1148 Jiba,
1149 #[serde(rename = "LIBI")]
1150 Libi,
1151 #[serde(rename = "LIBO")]
1152 Libo,
1153 #[serde(rename = "MOSP")]
1154 Mosp,
1155 #[serde(rename = "MAAA")]
1156 Maaa,
1157 #[serde(rename = "BJUO")]
1158 Bjuo,
1159 #[serde(rename = "NIBO")]
1160 Nibo,
1161 #[serde(rename = "OBFR")]
1162 Obfr,
1163 #[serde(rename = "PFAN")]
1164 Pfan,
1165 #[serde(rename = "PRBO")]
1166 Prbo,
1167 #[serde(rename = "RCTR")]
1168 Rctr,
1169 #[serde(rename = "SOFR")]
1170 Sofr,
1171 #[serde(rename = "SONA")]
1172 Sona,
1173 #[serde(rename = "STBO")]
1174 Stbo,
1175 #[serde(rename = "SWAP")]
1176 Swap,
1177 #[serde(rename = "TLBO")]
1178 Tlbo,
1179 #[serde(rename = "TIBO")]
1180 Tibo,
1181 #[serde(rename = "TOAR")]
1182 Toar,
1183 #[serde(rename = "TREA")]
1184 Trea,
1185 #[serde(rename = "WIBO")]
1186 Wibo,
1187 #[default]
1188 Unknown,
1189}
1190#[derive(
1191 Debug,
1192 Default,
1193 Clone,
1194 PartialEq,
1195 ::serde::Serialize,
1196 ::serde::Deserialize,
1197 ::derive_builder::Builder,
1198 ::validator::Validate,
1199)]
1200pub struct IsoDateTime {
1201 #[serde(rename = "$text")]
1202 pub value: ::chrono::DateTime<::chrono::Utc>,
1203}
1204#[derive(
1205 Debug,
1206 Default,
1207 Clone,
1208 PartialEq,
1209 ::serde::Serialize,
1210 ::serde::Deserialize,
1211 ::derive_builder::Builder,
1212 ::validator::Validate,
1213)]
1214pub struct Max350Text {
1215 #[validate(length(min = 1, max = 350,))]
1216 #[serde(rename = "$text")]
1217 pub value: String,
1218}
1219#[derive(
1220 Debug,
1221 Default,
1222 Clone,
1223 PartialEq,
1224 ::serde::Serialize,
1225 ::serde::Deserialize,
1226 ::derive_builder::Builder,
1227 ::validator::Validate,
1228)]
1229pub struct ExternalFinancialInstrumentIdentificationType1Code {
1230 #[validate(length(min = 1, max = 4,))]
1231 #[serde(rename = "$text")]
1232 pub value: String,
1233}
1234#[derive(
1235 Debug,
1236 Default,
1237 Clone,
1238 PartialEq,
1239 ::serde::Serialize,
1240 ::serde::Deserialize,
1241 ::derive_builder::Builder,
1242 ::validator::Validate,
1243)]
1244pub struct Max35Text {
1245 #[validate(length(min = 1, max = 35,))]
1246 #[serde(rename = "$text")]
1247 pub value: String,
1248}
1249#[derive(
1250 Debug,
1251 Default,
1252 Clone,
1253 PartialEq,
1254 ::serde::Serialize,
1255 ::serde::Deserialize,
1256 ::derive_builder::Builder,
1257 ::validator::Validate,
1258)]
1259pub struct PercentageRate {
1260 #[serde(rename = "$text")]
1261 pub value: f64,
1262}
1263#[derive(
1264 Debug,
1265 Default,
1266 Clone,
1267 PartialEq,
1268 ::serde::Serialize,
1269 ::serde::Deserialize,
1270 ::derive_builder::Builder,
1271 ::validator::Validate,
1272)]
1273pub struct Max52Text {
1274 #[validate(length(min = 1, max = 52,))]
1275 #[serde(rename = "$text")]
1276 pub value: String,
1277}
1278#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1279pub enum MarketType2Code {
1280 #[serde(rename = "PRIM")]
1281 Prim,
1282 #[serde(rename = "SECM")]
1283 Secm,
1284 #[serde(rename = "OTCO")]
1285 Otco,
1286 #[serde(rename = "VARI")]
1287 Vari,
1288 #[serde(rename = "EXCH")]
1289 Exch,
1290 #[default]
1291 Unknown,
1292}
1293#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1294pub enum OptionType1Code {
1295 #[serde(rename = "CALL")]
1296 Call,
1297 #[serde(rename = "PUTO")]
1298 Puto,
1299 #[default]
1300 Unknown,
1301}
1302#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1303pub enum CollateralTransactionType1Code {
1304 #[serde(rename = "AADJ")]
1305 Aadj,
1306 #[serde(rename = "CDTA")]
1307 Cdta,
1308 #[serde(rename = "CADJ")]
1309 Cadj,
1310 #[serde(rename = "DADJ")]
1311 Dadj,
1312 #[serde(rename = "DBVT")]
1313 Dbvt,
1314 #[serde(rename = "INIT")]
1315 Init,
1316 #[serde(rename = "MADJ")]
1317 Madj,
1318 #[serde(rename = "PADJ")]
1319 Padj,
1320 #[serde(rename = "RATA")]
1321 Rata,
1322 #[serde(rename = "TERM")]
1323 Term,
1324 #[default]
1325 Unknown,
1326}
1327#[derive(
1328 Debug,
1329 Default,
1330 Clone,
1331 PartialEq,
1332 ::serde::Serialize,
1333 ::serde::Deserialize,
1334 ::derive_builder::Builder,
1335 ::validator::Validate,
1336)]
1337pub struct ImpliedCurrencyAndAmount {
1338 #[validate(range(min = 0,))]
1339 #[serde(rename = "$text")]
1340 pub value: f64,
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 Period2 {
1353 #[validate]
1354 #[serde(rename = "FrDt")]
1355 pub fr_dt: IsoDate,
1356 #[validate]
1357 #[serde(rename = "ToDt")]
1358 pub to_dt: IsoDate,
1359}
1360#[derive(
1361 Debug,
1362 Default,
1363 Clone,
1364 PartialEq,
1365 ::serde::Serialize,
1366 ::serde::Deserialize,
1367 ::derive_builder::Builder,
1368 ::validator::Validate,
1369)]
1370pub struct Max70Text {
1371 #[validate(length(min = 1, max = 70,))]
1372 #[serde(rename = "$text")]
1373 pub value: String,
1374}
1375#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1376pub enum CollateralEntryType1Code {
1377 #[serde(rename = "DELI")]
1378 Deli,
1379 #[serde(rename = "RECE")]
1380 Rece,
1381 #[default]
1382 Unknown,
1383}
1384#[derive(
1385 Debug,
1386 Default,
1387 Clone,
1388 PartialEq,
1389 ::serde::Serialize,
1390 ::serde::Deserialize,
1391 ::derive_builder::Builder,
1392 ::validator::Validate,
1393)]
1394pub struct AlternatePartyIdentification7 {
1395 #[serde(rename = "IdTp")]
1396 pub id_tp: IdentificationType42Choice,
1397 #[serde(rename = "Ctry")]
1398 pub ctry: CountryCode,
1399 #[validate]
1400 #[serde(rename = "AltrnId")]
1401 pub altrn_id: Max35Text,
1402}
1403#[derive(
1404 Debug,
1405 Default,
1406 Clone,
1407 PartialEq,
1408 ::serde::Serialize,
1409 ::serde::Deserialize,
1410 ::derive_builder::Builder,
1411 ::validator::Validate,
1412)]
1413pub struct CollateralParties10 {
1414 #[validate]
1415 #[serde(rename = "PtyA")]
1416 pub pty_a: PartyIdentificationAndAccount202,
1417 #[serde(rename = "ClntPtyA", skip_serializing_if = "Option::is_none")]
1418 pub clnt_pty_a: Option<PartyIdentificationAndAccount202>,
1419 #[validate]
1420 #[serde(rename = "PtyB")]
1421 pub pty_b: PartyIdentificationAndAccount203,
1422 #[serde(rename = "ClntPtyB", skip_serializing_if = "Option::is_none")]
1423 pub clnt_pty_b: Option<PartyIdentificationAndAccount203>,
1424 #[serde(rename = "TrptyAgt", skip_serializing_if = "Option::is_none")]
1425 pub trpty_agt: Option<PartyIdentification136>,
1426 #[serde(rename = "CollAcct", skip_serializing_if = "Option::is_none")]
1427 pub coll_acct: Option<SecuritiesAccount19>,
1428}
1429#[derive(
1430 Debug,
1431 Default,
1432 Clone,
1433 PartialEq,
1434 ::serde::Serialize,
1435 ::serde::Deserialize,
1436 ::derive_builder::Builder,
1437 ::validator::Validate,
1438)]
1439pub struct PlaceOfTradeIdentification1 {
1440 #[serde(rename = "MktTpAndId", skip_serializing_if = "Option::is_none")]
1441 pub mkt_tp_and_id: Option<MarketIdentification84>,
1442 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
1443 pub lei: Option<LeiIdentifier>,
1444}
1445#[derive(
1446 Debug,
1447 Default,
1448 Clone,
1449 PartialEq,
1450 ::serde::Serialize,
1451 ::serde::Deserialize,
1452 ::derive_builder::Builder,
1453 ::validator::Validate,
1454)]
1455pub struct FinancialInstrumentQuantity33ChoiceEnum {
1456 #[serde(rename = "DgtlTknUnit", skip_serializing_if = "Option::is_none")]
1457 pub dgtl_tkn_unit: Option<Max30DecimalNumber>,
1458 #[serde(rename = "FaceAmt", skip_serializing_if = "Option::is_none")]
1459 pub face_amt: Option<ImpliedCurrencyAndAmount>,
1460 #[serde(rename = "AmtsdVal", skip_serializing_if = "Option::is_none")]
1461 pub amtsd_val: Option<ImpliedCurrencyAndAmount>,
1462 #[serde(rename = "Unit", skip_serializing_if = "Option::is_none")]
1463 pub unit: Option<DecimalNumber>,
1464}
1465#[derive(
1466 Debug,
1467 Default,
1468 Clone,
1469 PartialEq,
1470 ::serde::Serialize,
1471 ::serde::Deserialize,
1472 ::derive_builder::Builder,
1473 ::validator::Validate,
1474)]
1475pub struct FinancialInstrumentQuantity33Choice {
1476 #[serde(flatten)]
1477 pub value: FinancialInstrumentQuantity33ChoiceEnum,
1478}
1479#[derive(
1480 Debug,
1481 Default,
1482 Clone,
1483 PartialEq,
1484 ::serde::Serialize,
1485 ::serde::Deserialize,
1486 ::derive_builder::Builder,
1487 ::validator::Validate,
1488)]
1489pub struct CountryCode {
1490 #[validate(regex = "COUNTRY_CODE_REGEX")]
1491 #[serde(rename = "$text")]
1492 pub value: String,
1493}
1494#[derive(
1495 Debug,
1496 Default,
1497 Clone,
1498 PartialEq,
1499 ::serde::Serialize,
1500 ::serde::Deserialize,
1501 ::derive_builder::Builder,
1502 ::validator::Validate,
1503)]
1504pub struct ClosingDate4ChoiceEnum {
1505 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
1506 pub dt: Option<DateAndDateTime2Choice>,
1507 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1508 pub cd: Option<Date3Choice>,
1509}
1510#[derive(
1511 Debug,
1512 Default,
1513 Clone,
1514 PartialEq,
1515 ::serde::Serialize,
1516 ::serde::Deserialize,
1517 ::derive_builder::Builder,
1518 ::validator::Validate,
1519)]
1520pub struct ClosingDate4Choice {
1521 #[serde(flatten)]
1522 pub value: ClosingDate4ChoiceEnum,
1523}
1524#[derive(
1525 Debug,
1526 Default,
1527 Clone,
1528 PartialEq,
1529 ::serde::Serialize,
1530 ::serde::Deserialize,
1531 ::derive_builder::Builder,
1532 ::validator::Validate,
1533)]
1534pub struct CollateralTransactionAmountBreakdown2 {
1535 #[validate]
1536 #[serde(rename = "LotNb")]
1537 pub lot_nb: GenericIdentification178,
1538 #[serde(rename = "TxAmt", skip_serializing_if = "Option::is_none")]
1539 pub tx_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
1540 #[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
1541 pub prd: Option<Period4Choice>,
1542}
1543#[derive(
1544 Debug,
1545 Default,
1546 Clone,
1547 PartialEq,
1548 ::serde::Serialize,
1549 ::serde::Deserialize,
1550 ::derive_builder::Builder,
1551 ::validator::Validate,
1552)]
1553pub struct Period4ChoiceEnum {
1554 #[serde(rename = "FrDt", skip_serializing_if = "Option::is_none")]
1555 pub fr_dt: Option<IsoDate>,
1556 #[serde(rename = "ToDt", skip_serializing_if = "Option::is_none")]
1557 pub to_dt: Option<IsoDate>,
1558 #[serde(rename = "FrDtToDt", skip_serializing_if = "Option::is_none")]
1559 pub fr_dt_to_dt: Option<Period2>,
1560 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
1561 pub dt: Option<IsoDate>,
1562}
1563#[derive(
1564 Debug,
1565 Default,
1566 Clone,
1567 PartialEq,
1568 ::serde::Serialize,
1569 ::serde::Deserialize,
1570 ::derive_builder::Builder,
1571 ::validator::Validate,
1572)]
1573pub struct Period4Choice {
1574 #[serde(flatten)]
1575 pub value: Period4ChoiceEnum,
1576}
1577#[derive(
1578 Debug,
1579 Default,
1580 Clone,
1581 PartialEq,
1582 ::serde::Serialize,
1583 ::serde::Deserialize,
1584 ::derive_builder::Builder,
1585 ::validator::Validate,
1586)]
1587pub struct CollateralDate2 {
1588 #[serde(rename = "TradDt", skip_serializing_if = "Option::is_none")]
1589 pub trad_dt: Option<IsoDate>,
1590 #[serde(rename = "ReqdExctnDt", skip_serializing_if = "Option::is_none")]
1591 pub reqd_exctn_dt: Option<DateAndDateTime2Choice>,
1592 #[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
1593 pub sttlm_dt: Option<IsoDate>,
1594}
1595#[derive(
1596 Debug,
1597 Default,
1598 Clone,
1599 PartialEq,
1600 ::serde::Serialize,
1601 ::serde::Deserialize,
1602 ::derive_builder::Builder,
1603 ::validator::Validate,
1604)]
1605pub struct Max34Text {
1606 #[validate(length(min = 1, max = 34,))]
1607 #[serde(rename = "$text")]
1608 pub value: String,
1609}
1610#[derive(
1611 Debug,
1612 Default,
1613 Clone,
1614 PartialEq,
1615 ::serde::Serialize,
1616 ::serde::Deserialize,
1617 ::derive_builder::Builder,
1618 ::validator::Validate,
1619)]
1620pub struct ActiveCurrencyCode {
1621 #[validate(regex = "ACTIVE_CURRENCY_CODE_REGEX")]
1622 #[serde(rename = "$text")]
1623 pub value: String,
1624}
1625#[derive(
1626 Debug,
1627 Default,
1628 Clone,
1629 PartialEq,
1630 ::serde::Serialize,
1631 ::serde::Deserialize,
1632 ::derive_builder::Builder,
1633 ::validator::Validate,
1634)]
1635pub struct SecuritiesAccount19 {
1636 #[validate]
1637 #[serde(rename = "Id")]
1638 pub id: Max35Text,
1639 #[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
1640 pub tp: Option<GenericIdentification30>,
1641 #[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
1642 pub nm: Option<Max70Text>,
1643}
1644#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1645pub enum CreditDebitCode {
1646 #[serde(rename = "CRDT")]
1647 Crdt,
1648 #[serde(rename = "DBIT")]
1649 Dbit,
1650 #[default]
1651 Unknown,
1652}
1653#[derive(
1654 Debug,
1655 Default,
1656 Clone,
1657 PartialEq,
1658 ::serde::Serialize,
1659 ::serde::Deserialize,
1660 ::derive_builder::Builder,
1661 ::validator::Validate,
1662)]
1663pub struct Max16Text {
1664 #[validate(length(min = 1, max = 16,))]
1665 #[serde(rename = "$text")]
1666 pub value: String,
1667}
1668#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1669pub enum DateType2Code {
1670 #[serde(rename = "OPEN")]
1671 Open,
1672 #[default]
1673 Unknown,
1674}
1675#[derive(
1676 Debug,
1677 Default,
1678 Clone,
1679 PartialEq,
1680 ::serde::Serialize,
1681 ::serde::Deserialize,
1682 ::derive_builder::Builder,
1683 ::validator::Validate,
1684)]
1685pub struct Iban2007Identifier {
1686 #[validate(regex = "IBAN_2007_IDENTIFIER_REGEX")]
1687 #[serde(rename = "$text")]
1688 pub value: String,
1689}
1690#[derive(
1691 Debug,
1692 Default,
1693 Clone,
1694 PartialEq,
1695 ::serde::Serialize,
1696 ::serde::Deserialize,
1697 ::derive_builder::Builder,
1698 ::validator::Validate,
1699)]
1700pub struct IdentificationType42ChoiceEnum {
1701 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
1702 pub cd: Option<TypeOfIdentification1Code>,
1703 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1704 pub prtry: Option<GenericIdentification30>,
1705}
1706#[derive(
1707 Debug,
1708 Default,
1709 Clone,
1710 PartialEq,
1711 ::serde::Serialize,
1712 ::serde::Deserialize,
1713 ::derive_builder::Builder,
1714 ::validator::Validate,
1715)]
1716pub struct IdentificationType42Choice {
1717 #[serde(flatten)]
1718 pub value: IdentificationType42ChoiceEnum,
1719}
1720#[derive(
1721 Debug,
1722 Default,
1723 Clone,
1724 PartialEq,
1725 ::serde::Serialize,
1726 ::serde::Deserialize,
1727 ::derive_builder::Builder,
1728 ::validator::Validate,
1729)]
1730pub struct Max3NumericText {
1731 #[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
1732 #[serde(rename = "$text")]
1733 pub value: String,
1734}
1735#[derive(
1736 Debug,
1737 Default,
1738 Clone,
1739 PartialEq,
1740 ::serde::Serialize,
1741 ::serde::Deserialize,
1742 ::derive_builder::Builder,
1743 ::validator::Validate,
1744)]
1745pub struct OtherIdentification1 {
1746 #[validate]
1747 #[serde(rename = "Id")]
1748 pub id: Max35Text,
1749 #[serde(rename = "Sfx", skip_serializing_if = "Option::is_none")]
1750 pub sfx: Option<Max16Text>,
1751 #[serde(rename = "Tp")]
1752 pub tp: IdentificationSource3Choice,
1753}
1754#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1755pub enum RepoTerminationOption1Code {
1756 #[serde(rename = "EGRN")]
1757 Egrn,
1758 #[serde(rename = "ETSB")]
1759 Etsb,
1760 #[default]
1761 Unknown,
1762}
1763#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1764pub enum TradingCapacity7Code {
1765 #[serde(rename = "AGEN")]
1766 Agen,
1767 #[serde(rename = "PRIN")]
1768 Prin,
1769 #[default]
1770 Unknown,
1771}
1772#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1773pub enum CollateralRole1Code {
1774 #[serde(rename = "GIVE")]
1775 Give,
1776 #[serde(rename = "TAKE")]
1777 Take,
1778 #[default]
1779 Unknown,
1780}
1781#[derive(
1782 Debug,
1783 Default,
1784 Clone,
1785 PartialEq,
1786 ::serde::Serialize,
1787 ::serde::Deserialize,
1788 ::derive_builder::Builder,
1789 ::validator::Validate,
1790)]
1791pub struct CashAccountIdentification5ChoiceEnum {
1792 #[serde(rename = "IBAN", skip_serializing_if = "Option::is_none")]
1793 pub iban: Option<Iban2007Identifier>,
1794 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
1795 pub prtry: Option<Max34Text>,
1796}
1797#[derive(
1798 Debug,
1799 Default,
1800 Clone,
1801 PartialEq,
1802 ::serde::Serialize,
1803 ::serde::Deserialize,
1804 ::derive_builder::Builder,
1805 ::validator::Validate,
1806)]
1807pub struct CashAccountIdentification5Choice {
1808 #[serde(flatten)]
1809 pub value: CashAccountIdentification5ChoiceEnum,
1810}
1811#[derive(
1812 Debug,
1813 Default,
1814 Clone,
1815 PartialEq,
1816 ::serde::Serialize,
1817 ::serde::Deserialize,
1818 ::derive_builder::Builder,
1819 ::validator::Validate,
1820)]
1821pub struct Linkages58 {
1822 #[serde(rename = "MsgNb", skip_serializing_if = "Option::is_none")]
1823 pub msg_nb: Option<DocumentNumber5Choice>,
1824 #[serde(rename = "Refs")]
1825 pub refs: References70Choice,
1826}
1827#[derive(
1828 Debug,
1829 Default,
1830 Clone,
1831 PartialEq,
1832 ::serde::Serialize,
1833 ::serde::Deserialize,
1834 ::derive_builder::Builder,
1835 ::validator::Validate,
1836)]
1837pub struct Max140Text {
1838 #[validate(length(min = 1, max = 140,))]
1839 #[serde(rename = "$text")]
1840 pub value: String,
1841}
1842#[derive(
1843 Debug,
1844 Default,
1845 Clone,
1846 PartialEq,
1847 ::serde::Serialize,
1848 ::serde::Deserialize,
1849 ::derive_builder::Builder,
1850 ::validator::Validate,
1851)]
1852pub struct CrystallisationDay1 {
1853 #[validate]
1854 #[serde(rename = "Day")]
1855 pub day: YesNoIndicator,
1856 #[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
1857 pub prd: Option<Max3NumericText>,
1858}
1859#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1860pub enum AddressType2Code {
1861 #[serde(rename = "ADDR")]
1862 Addr,
1863 #[serde(rename = "PBOX")]
1864 Pbox,
1865 #[serde(rename = "HOME")]
1866 Home,
1867 #[serde(rename = "BIZZ")]
1868 Bizz,
1869 #[serde(rename = "MLTO")]
1870 Mlto,
1871 #[serde(rename = "DLVY")]
1872 Dlvy,
1873 #[default]
1874 Unknown,
1875}
1876#[derive(
1877 Debug,
1878 Default,
1879 Clone,
1880 PartialEq,
1881 ::serde::Serialize,
1882 ::serde::Deserialize,
1883 ::derive_builder::Builder,
1884 ::validator::Validate,
1885)]
1886pub struct GenericIdentification36 {
1887 #[validate]
1888 #[serde(rename = "Id")]
1889 pub id: Max35Text,
1890 #[validate]
1891 #[serde(rename = "Issr")]
1892 pub issr: Max35Text,
1893 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
1894 pub schme_nm: Option<Max35Text>,
1895}
1896#[derive(
1897 Debug,
1898 Default,
1899 Clone,
1900 PartialEq,
1901 ::serde::Serialize,
1902 ::serde::Deserialize,
1903 ::derive_builder::Builder,
1904 ::validator::Validate,
1905)]
1906pub struct LeiIdentifier {
1907 #[validate(regex = "LEI_IDENTIFIER_REGEX")]
1908 #[serde(rename = "$text")]
1909 pub value: String,
1910}
1911#[derive(
1912 Debug,
1913 Default,
1914 Clone,
1915 PartialEq,
1916 ::serde::Serialize,
1917 ::serde::Deserialize,
1918 ::derive_builder::Builder,
1919 ::validator::Validate,
1920)]
1921pub struct GenericIdentification1 {
1922 #[validate]
1923 #[serde(rename = "Id")]
1924 pub id: Max35Text,
1925 #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
1926 pub schme_nm: Option<Max35Text>,
1927 #[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
1928 pub issr: Option<Max35Text>,
1929}
1930#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
1931pub enum DeliveryReceiptType2Code {
1932 #[serde(rename = "FREE")]
1933 Free,
1934 #[serde(rename = "APMT")]
1935 Apmt,
1936 #[default]
1937 Unknown,
1938}
1939#[derive(
1940 Debug,
1941 Default,
1942 Clone,
1943 PartialEq,
1944 ::serde::Serialize,
1945 ::serde::Deserialize,
1946 ::derive_builder::Builder,
1947 ::validator::Validate,
1948)]
1949pub struct SupplementaryData1<
1950 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
1951> {
1952 #[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
1953 pub plc_and_nm: Option<Max350Text>,
1954 #[validate]
1955 #[serde(rename = "Envlp")]
1956 pub envlp: SupplementaryDataEnvelope1<A>,
1957}
1958#[derive(
1959 Debug,
1960 Default,
1961 Clone,
1962 PartialEq,
1963 ::serde::Serialize,
1964 ::serde::Deserialize,
1965 ::derive_builder::Builder,
1966 ::validator::Validate,
1967)]
1968pub struct ActiveOrHistoricCurrencyAndAmountSimpleType {
1969 #[validate(range(min = 0,))]
1970 #[serde(rename = "$text")]
1971 pub value: f64,
1972}
1973#[derive(
1974 Debug,
1975 Default,
1976 Clone,
1977 PartialEq,
1978 ::serde::Serialize,
1979 ::serde::Deserialize,
1980 ::derive_builder::Builder,
1981 ::validator::Validate,
1982)]
1983pub struct SecurityIdentification19 {
1984 #[serde(rename = "ISIN", skip_serializing_if = "Option::is_none")]
1985 pub isin: Option<IsinOct2015Identifier>,
1986 #[validate(length(min = 0,))]
1987 #[serde(rename = "OthrId", default)]
1988 pub othr_id: Vec<OtherIdentification1>,
1989 #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
1990 pub desc: Option<Max140Text>,
1991}
1992#[derive(
1993 Debug,
1994 Default,
1995 Clone,
1996 PartialEq,
1997 ::serde::Serialize,
1998 ::serde::Deserialize,
1999 ::derive_builder::Builder,
2000 ::validator::Validate,
2001)]
2002pub struct ExposureType23ChoiceEnum {
2003 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2004 pub prtry: Option<GenericIdentification30>,
2005 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2006 pub cd: Option<ExposureType14Code>,
2007}
2008#[derive(
2009 Debug,
2010 Default,
2011 Clone,
2012 PartialEq,
2013 ::serde::Serialize,
2014 ::serde::Deserialize,
2015 ::derive_builder::Builder,
2016 ::validator::Validate,
2017)]
2018pub struct ExposureType23Choice {
2019 #[serde(flatten)]
2020 pub value: ExposureType23ChoiceEnum,
2021}
2022#[derive(
2023 Debug,
2024 Default,
2025 Clone,
2026 PartialEq,
2027 ::serde::Serialize,
2028 ::serde::Deserialize,
2029 ::derive_builder::Builder,
2030 ::validator::Validate,
2031)]
2032pub struct YesNoIndicator {
2033 #[serde(rename = "$text")]
2034 pub value: bool,
2035}
2036#[derive(
2037 Debug,
2038 Default,
2039 Clone,
2040 PartialEq,
2041 ::serde::Serialize,
2042 ::serde::Deserialize,
2043 ::derive_builder::Builder,
2044 ::validator::Validate,
2045)]
2046pub struct DateAndDateTime2ChoiceEnum {
2047 #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
2048 pub dt: Option<IsoDate>,
2049 #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
2050 pub dt_tm: Option<IsoDateTime>,
2051}
2052#[derive(
2053 Debug,
2054 Default,
2055 Clone,
2056 PartialEq,
2057 ::serde::Serialize,
2058 ::serde::Deserialize,
2059 ::derive_builder::Builder,
2060 ::validator::Validate,
2061)]
2062pub struct DateAndDateTime2Choice {
2063 #[serde(flatten)]
2064 pub value: DateAndDateTime2ChoiceEnum,
2065}
2066#[derive(
2067 Debug,
2068 Default,
2069 Clone,
2070 PartialEq,
2071 ::serde::Serialize,
2072 ::serde::Deserialize,
2073 ::derive_builder::Builder,
2074 ::validator::Validate,
2075)]
2076pub struct Iso20022MessageIdentificationText {
2077 #[validate(regex = "ISO_20022_MESSAGE_IDENTIFICATION_TEXT_REGEX")]
2078 #[serde(rename = "$text")]
2079 pub value: String,
2080}
2081#[derive(
2082 Debug,
2083 Default,
2084 Clone,
2085 PartialEq,
2086 ::serde::Serialize,
2087 ::serde::Deserialize,
2088 ::derive_builder::Builder,
2089 ::validator::Validate,
2090)]
2091pub struct TradingPartyCapacity5ChoiceEnum {
2092 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2093 pub prtry: Option<GenericIdentification30>,
2094 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2095 pub cd: Option<TradingCapacity7Code>,
2096}
2097#[derive(
2098 Debug,
2099 Default,
2100 Clone,
2101 PartialEq,
2102 ::serde::Serialize,
2103 ::serde::Deserialize,
2104 ::derive_builder::Builder,
2105 ::validator::Validate,
2106)]
2107pub struct TradingPartyCapacity5Choice {
2108 #[serde(flatten)]
2109 pub value: TradingPartyCapacity5ChoiceEnum,
2110}
2111#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2112pub enum TypeOfIdentification1Code {
2113 #[serde(rename = "ARNU")]
2114 Arnu,
2115 #[serde(rename = "CCPT")]
2116 Ccpt,
2117 #[serde(rename = "CHTY")]
2118 Chty,
2119 #[serde(rename = "CORP")]
2120 Corp,
2121 #[serde(rename = "DRLC")]
2122 Drlc,
2123 #[serde(rename = "FIIN")]
2124 Fiin,
2125 #[serde(rename = "TXID")]
2126 Txid,
2127 #[default]
2128 Unknown,
2129}
2130#[derive(
2131 Debug,
2132 Default,
2133 Clone,
2134 PartialEq,
2135 ::serde::Serialize,
2136 ::serde::Deserialize,
2137 ::derive_builder::Builder,
2138 ::validator::Validate,
2139)]
2140pub struct PartyIdentificationAndAccount202 {
2141 #[serde(rename = "Id")]
2142 pub id: PartyIdentification120Choice,
2143 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
2144 pub lei: Option<LeiIdentifier>,
2145 #[serde(rename = "AltrnId", skip_serializing_if = "Option::is_none")]
2146 pub altrn_id: Option<AlternatePartyIdentification7>,
2147 #[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")]
2148 pub sfkpg_acct: Option<SecuritiesAccount19>,
2149 #[serde(rename = "BlckChainAdrOrWllt", skip_serializing_if = "Option::is_none")]
2150 pub blck_chain_adr_or_wllt: Option<BlockChainAddressWallet3>,
2151 #[serde(rename = "AcctOwnr", skip_serializing_if = "Option::is_none")]
2152 pub acct_ownr: Option<PartyIdentification136>,
2153 #[serde(rename = "PtyCpcty", skip_serializing_if = "Option::is_none")]
2154 pub pty_cpcty: Option<TradingPartyCapacity5Choice>,
2155}
2156#[derive(
2157 Debug,
2158 Default,
2159 Clone,
2160 PartialEq,
2161 ::serde::Serialize,
2162 ::serde::Deserialize,
2163 ::derive_builder::Builder,
2164 ::validator::Validate,
2165)]
2166pub struct DocumentNumber5ChoiceEnum {
2167 #[serde(rename = "LngNb", skip_serializing_if = "Option::is_none")]
2168 pub lng_nb: Option<Iso20022MessageIdentificationText>,
2169 #[serde(rename = "ShrtNb", skip_serializing_if = "Option::is_none")]
2170 pub shrt_nb: Option<Exact3NumericText>,
2171 #[serde(rename = "PrtryNb", skip_serializing_if = "Option::is_none")]
2172 pub prtry_nb: Option<GenericIdentification36>,
2173}
2174#[derive(
2175 Debug,
2176 Default,
2177 Clone,
2178 PartialEq,
2179 ::serde::Serialize,
2180 ::serde::Deserialize,
2181 ::derive_builder::Builder,
2182 ::validator::Validate,
2183)]
2184pub struct DocumentNumber5Choice {
2185 #[serde(flatten)]
2186 pub value: DocumentNumber5ChoiceEnum,
2187}
2188#[derive(
2189 Debug,
2190 Default,
2191 Clone,
2192 PartialEq,
2193 ::serde::Serialize,
2194 ::serde::Deserialize,
2195 ::derive_builder::Builder,
2196 ::validator::Validate,
2197)]
2198pub struct Date3ChoiceEnum {
2199 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2200 pub prtry: Option<GenericIdentification30>,
2201 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2202 pub cd: Option<DateType2Code>,
2203}
2204#[derive(
2205 Debug,
2206 Default,
2207 Clone,
2208 PartialEq,
2209 ::serde::Serialize,
2210 ::serde::Deserialize,
2211 ::derive_builder::Builder,
2212 ::validator::Validate,
2213)]
2214pub struct Date3Choice {
2215 #[serde(flatten)]
2216 pub value: Date3ChoiceEnum,
2217}
2218#[derive(
2219 Debug,
2220 Default,
2221 Clone,
2222 PartialEq,
2223 ::serde::Serialize,
2224 ::serde::Deserialize,
2225 ::derive_builder::Builder,
2226 ::validator::Validate,
2227)]
2228pub struct BaseOneRate {
2229 #[serde(rename = "$text")]
2230 pub value: f64,
2231}
2232#[derive(
2233 Debug,
2234 Default,
2235 Clone,
2236 PartialEq,
2237 ::serde::Serialize,
2238 ::serde::Deserialize,
2239 ::derive_builder::Builder,
2240 ::validator::Validate,
2241)]
2242pub struct CollateralTransactionType1ChoiceEnum {
2243 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2244 pub prtry: Option<GenericIdentification30>,
2245 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2246 pub cd: Option<CollateralTransactionType1Code>,
2247}
2248#[derive(
2249 Debug,
2250 Default,
2251 Clone,
2252 PartialEq,
2253 ::serde::Serialize,
2254 ::serde::Deserialize,
2255 ::derive_builder::Builder,
2256 ::validator::Validate,
2257)]
2258pub struct CollateralTransactionType1Choice {
2259 #[serde(flatten)]
2260 pub value: CollateralTransactionType1ChoiceEnum,
2261}
2262#[derive(
2263 Debug,
2264 Default,
2265 Clone,
2266 PartialEq,
2267 ::serde::Serialize,
2268 ::serde::Deserialize,
2269 ::derive_builder::Builder,
2270 ::validator::Validate,
2271)]
2272pub struct RateTypeAndLookback2 {
2273 #[serde(rename = "Tp")]
2274 pub tp: BenchmarkCurveName13Choice,
2275 #[serde(rename = "LookBckDays", skip_serializing_if = "Option::is_none")]
2276 pub look_bck_days: Option<Max3NumericText>,
2277 #[serde(rename = "CrstllstnDt", skip_serializing_if = "Option::is_none")]
2278 pub crstllstn_dt: Option<CrystallisationDay1>,
2279 #[serde(rename = "Tnr", skip_serializing_if = "Option::is_none")]
2280 pub tnr: Option<InterestRateIndexTenor2Code>,
2281 #[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
2282 pub ccy: Option<ActiveOrHistoricCurrencyCode>,
2283}
2284#[derive(
2285 Debug,
2286 Default,
2287 Clone,
2288 PartialEq,
2289 ::serde::Serialize,
2290 ::serde::Deserialize,
2291 ::derive_builder::Builder,
2292 ::validator::Validate,
2293)]
2294pub struct SecuritiesMovement9 {
2295 #[serde(rename = "SctiesMvmntTp")]
2296 pub scties_mvmnt_tp: CollateralEntryType1Code,
2297 #[validate]
2298 #[serde(rename = "FinInstrmId")]
2299 pub fin_instrm_id: SecurityIdentification19,
2300 #[serde(rename = "Qty")]
2301 pub qty: FinancialInstrumentQuantity33Choice,
2302 #[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")]
2303 pub sfkpg_acct: Option<SecuritiesAccount19>,
2304 #[serde(rename = "BlckChainAdrOrWllt", skip_serializing_if = "Option::is_none")]
2305 pub blck_chain_adr_or_wllt: Option<BlockChainAddressWallet3>,
2306 #[validate]
2307 #[serde(rename = "CollMvmnt")]
2308 pub coll_mvmnt: YesNoIndicator,
2309 #[serde(rename = "ClntSctiesMvmntId", skip_serializing_if = "Option::is_none")]
2310 pub clnt_scties_mvmnt_id: Option<Max35Text>,
2311 #[serde(
2312 rename = "TrptyAgtSvcPrvdrSctiesMvmntId",
2313 skip_serializing_if = "Option::is_none"
2314 )]
2315 pub trpty_agt_svc_prvdr_scties_mvmnt_id: Option<Max35Text>,
2316}
2317#[derive(
2318 Debug,
2319 Default,
2320 Clone,
2321 PartialEq,
2322 ::serde::Serialize,
2323 ::serde::Deserialize,
2324 ::derive_builder::Builder,
2325 ::validator::Validate,
2326)]
2327pub struct AnyBicDec2014Identifier {
2328 #[validate(regex = "ANY_BIC_DEC_2014_IDENTIFIER_REGEX")]
2329 #[serde(rename = "$text")]
2330 pub value: String,
2331}
2332#[derive(
2333 Debug,
2334 Default,
2335 Clone,
2336 PartialEq,
2337 ::serde::Serialize,
2338 ::serde::Deserialize,
2339 ::derive_builder::Builder,
2340 ::validator::Validate,
2341)]
2342pub struct Exact3NumericText {
2343 #[validate(regex = "EXACT_3_NUMERIC_TEXT_REGEX")]
2344 #[serde(rename = "$text")]
2345 pub value: String,
2346}
2347#[derive(
2348 Debug,
2349 Default,
2350 Clone,
2351 PartialEq,
2352 ::serde::Serialize,
2353 ::serde::Deserialize,
2354 ::derive_builder::Builder,
2355 ::validator::Validate,
2356)]
2357pub struct OptionType6ChoiceEnum {
2358 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2359 pub prtry: Option<GenericIdentification30>,
2360 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2361 pub cd: Option<OptionType1Code>,
2362}
2363#[derive(
2364 Debug,
2365 Default,
2366 Clone,
2367 PartialEq,
2368 ::serde::Serialize,
2369 ::serde::Deserialize,
2370 ::derive_builder::Builder,
2371 ::validator::Validate,
2372)]
2373pub struct OptionType6Choice {
2374 #[serde(flatten)]
2375 pub value: OptionType6ChoiceEnum,
2376}
2377#[derive(
2378 Debug,
2379 Default,
2380 Clone,
2381 PartialEq,
2382 ::serde::Serialize,
2383 ::serde::Deserialize,
2384 ::derive_builder::Builder,
2385 ::validator::Validate,
2386)]
2387#[serde(rename = "Document")]
2388pub struct Document<
2389 A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
2390> {
2391 #[validate]
2392 #[serde(rename = "TrptyCollTxInstr")]
2393 pub trpty_coll_tx_instr: TripartyCollateralTransactionInstructionV01<A>,
2394 #[serde(rename = "@xmlns", default = "namespace")]
2395 pub xmlns: String,
2396}
2397#[derive(
2398 Debug,
2399 Default,
2400 Clone,
2401 PartialEq,
2402 ::serde::Serialize,
2403 ::serde::Deserialize,
2404 ::derive_builder::Builder,
2405 ::validator::Validate,
2406)]
2407pub struct PartyIdentification120ChoiceEnum {
2408 #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")]
2409 pub prtry_id: Option<GenericIdentification36>,
2410 #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")]
2411 pub nm_and_adr: Option<NameAndAddress5>,
2412 #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
2413 pub any_bic: Option<AnyBicDec2014Identifier>,
2414}
2415#[derive(
2416 Debug,
2417 Default,
2418 Clone,
2419 PartialEq,
2420 ::serde::Serialize,
2421 ::serde::Deserialize,
2422 ::derive_builder::Builder,
2423 ::validator::Validate,
2424)]
2425pub struct PartyIdentification120Choice {
2426 #[serde(flatten)]
2427 pub value: PartyIdentification120ChoiceEnum,
2428}
2429#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
2430pub enum EventFrequency12Code {
2431 #[serde(rename = "ADHO")]
2432 Adho,
2433 #[serde(rename = "YEAR")]
2434 Year,
2435 #[serde(rename = "DAIL")]
2436 Dail,
2437 #[serde(rename = "TOMN")]
2438 Tomn,
2439 #[serde(rename = "TOWK")]
2440 Towk,
2441 #[serde(rename = "INDA")]
2442 Inda,
2443 #[serde(rename = "MNTH")]
2444 Mnth,
2445 #[serde(rename = "QUTR")]
2446 Qutr,
2447 #[serde(rename = "SEMI")]
2448 Semi,
2449 #[serde(rename = "TWMN")]
2450 Twmn,
2451 #[serde(rename = "WEEK")]
2452 Week,
2453 #[serde(rename = "ONDE")]
2454 Onde,
2455 #[default]
2456 Unknown,
2457}
2458#[derive(
2459 Debug,
2460 Default,
2461 Clone,
2462 PartialEq,
2463 ::serde::Serialize,
2464 ::serde::Deserialize,
2465 ::derive_builder::Builder,
2466 ::validator::Validate,
2467)]
2468pub struct PartyIdentification136 {
2469 #[serde(rename = "Id")]
2470 pub id: PartyIdentification120Choice,
2471 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
2472 pub lei: Option<LeiIdentifier>,
2473}
2474#[derive(
2475 Debug,
2476 Default,
2477 Clone,
2478 PartialEq,
2479 ::serde::Serialize,
2480 ::serde::Deserialize,
2481 ::derive_builder::Builder,
2482 ::validator::Validate,
2483)]
2484pub struct CashMovement8 {
2485 #[serde(rename = "CshMvmnt")]
2486 pub csh_mvmnt: CollateralEntryType1Code,
2487 #[validate]
2488 #[serde(rename = "CshAmt")]
2489 pub csh_amt: ActiveCurrencyAndAmount,
2490 #[serde(rename = "CshAcct", skip_serializing_if = "Option::is_none")]
2491 pub csh_acct: Option<CashAccountIdentification5Choice>,
2492 #[validate]
2493 #[serde(rename = "CollMvmnt")]
2494 pub coll_mvmnt: YesNoIndicator,
2495 #[serde(rename = "ClntCshMvmntId", skip_serializing_if = "Option::is_none")]
2496 pub clnt_csh_mvmnt_id: Option<Max35Text>,
2497 #[serde(
2498 rename = "TrptyAgtSvcPrvdrCshMvmntId",
2499 skip_serializing_if = "Option::is_none"
2500 )]
2501 pub trpty_agt_svc_prvdr_csh_mvmnt_id: Option<Max35Text>,
2502}
2503#[derive(
2504 Debug,
2505 Default,
2506 Clone,
2507 PartialEq,
2508 ::serde::Serialize,
2509 ::serde::Deserialize,
2510 ::derive_builder::Builder,
2511 ::validator::Validate,
2512)]
2513pub struct IdentificationSource3ChoiceEnum {
2514 #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
2515 pub cd: Option<ExternalFinancialInstrumentIdentificationType1Code>,
2516 #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
2517 pub prtry: Option<Max35Text>,
2518}
2519#[derive(
2520 Debug,
2521 Default,
2522 Clone,
2523 PartialEq,
2524 ::serde::Serialize,
2525 ::serde::Deserialize,
2526 ::derive_builder::Builder,
2527 ::validator::Validate,
2528)]
2529pub struct IdentificationSource3Choice {
2530 #[serde(flatten)]
2531 pub value: IdentificationSource3ChoiceEnum,
2532}
2533#[derive(
2534 Debug,
2535 Default,
2536 Clone,
2537 PartialEq,
2538 ::serde::Serialize,
2539 ::serde::Deserialize,
2540 ::derive_builder::Builder,
2541 ::validator::Validate,
2542)]
2543pub struct BasketIdentificationAndEligibilitySetProfile1 {
2544 #[serde(rename = "PrfrntlBsktIdNb", skip_serializing_if = "Option::is_none")]
2545 pub prfrntl_bskt_id_nb: Option<GenericIdentification1>,
2546 #[serde(rename = "FllbckStartgBsktId", skip_serializing_if = "Option::is_none")]
2547 pub fllbck_startg_bskt_id: Option<GenericIdentification1>,
2548 #[serde(rename = "ExclsnBsktId", skip_serializing_if = "Option::is_none")]
2549 pub exclsn_bskt_id: Option<GenericIdentification1>,
2550 #[serde(rename = "ElgbltySetPrfl", skip_serializing_if = "Option::is_none")]
2551 pub elgblty_set_prfl: Option<GenericIdentification1>,
2552}
2553#[derive(
2554 Debug,
2555 Default,
2556 Clone,
2557 PartialEq,
2558 ::serde::Serialize,
2559 ::serde::Deserialize,
2560 ::derive_builder::Builder,
2561 ::validator::Validate,
2562)]
2563pub struct References70ChoiceEnum {
2564 #[serde(rename = "ClntCollInstrId", skip_serializing_if = "Option::is_none")]
2565 pub clnt_coll_instr_id: Option<Max35Text>,
2566 #[serde(
2567 rename = "TrptyAgtSvcPrvdrCollInstrId",
2568 skip_serializing_if = "Option::is_none"
2569 )]
2570 pub trpty_agt_svc_prvdr_coll_instr_id: Option<Max35Text>,
2571}
2572#[derive(
2573 Debug,
2574 Default,
2575 Clone,
2576 PartialEq,
2577 ::serde::Serialize,
2578 ::serde::Deserialize,
2579 ::derive_builder::Builder,
2580 ::validator::Validate,
2581)]
2582pub struct References70Choice {
2583 #[serde(flatten)]
2584 pub value: References70ChoiceEnum,
2585}
2586#[derive(
2587 Debug,
2588 Default,
2589 Clone,
2590 PartialEq,
2591 ::serde::Serialize,
2592 ::serde::Deserialize,
2593 ::derive_builder::Builder,
2594 ::validator::Validate,
2595)]
2596pub struct PartyIdentificationAndAccount203 {
2597 #[serde(rename = "Id")]
2598 pub id: PartyIdentification120Choice,
2599 #[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
2600 pub lei: Option<LeiIdentifier>,
2601 #[serde(rename = "AltrnId", skip_serializing_if = "Option::is_none")]
2602 pub altrn_id: Option<AlternatePartyIdentification7>,
2603 #[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")]
2604 pub sfkpg_acct: Option<SecuritiesAccount19>,
2605 #[serde(rename = "BlckChainAdrOrWllt", skip_serializing_if = "Option::is_none")]
2606 pub blck_chain_adr_or_wllt: Option<BlockChainAddressWallet3>,
2607 #[serde(rename = "PtyCpcty", skip_serializing_if = "Option::is_none")]
2608 pub pty_cpcty: Option<TradingPartyCapacity5Choice>,
2609}
2610#[derive(
2611 Debug,
2612 Default,
2613 Clone,
2614 PartialEq,
2615 ::serde::Serialize,
2616 ::serde::Deserialize,
2617 ::derive_builder::Builder,
2618 ::validator::Validate,
2619)]
2620pub struct PostalAddress1 {
2621 #[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
2622 pub adr_tp: Option<AddressType2Code>,
2623 #[validate(length(min = 0, max = 5,))]
2624 #[serde(rename = "AdrLine", default)]
2625 pub adr_line: Vec<Max70Text>,
2626 #[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
2627 pub strt_nm: Option<Max70Text>,
2628 #[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
2629 pub bldg_nb: Option<Max16Text>,
2630 #[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
2631 pub pst_cd: Option<Max16Text>,
2632 #[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
2633 pub twn_nm: Option<Max35Text>,
2634 #[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
2635 pub ctry_sub_dvsn: Option<Max35Text>,
2636 #[serde(rename = "Ctry")]
2637 pub ctry: CountryCode,
2638}
2639#[derive(
2640 Debug,
2641 Default,
2642 Clone,
2643 PartialEq,
2644 ::serde::Serialize,
2645 ::serde::Deserialize,
2646 ::derive_builder::Builder,
2647 ::validator::Validate,
2648)]
2649pub struct ActiveOrHistoricCurrencyCode {
2650 #[validate(regex = "ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX")]
2651 #[serde(rename = "$text")]
2652 pub value: String,
2653}