// Copyright 2023 Emergent Financial, LLC - All Rights Reserved // // // This software is licensed under the Emergent Financial Limited Public License Version 1.0 // (EF-LPLv1). You may use, copy, modify, and distribute this software under the terms and // conditions of the EF-LPL. For more information, please refer to the full text of the license // at https://github.com/emergentfinancial/ef-lpl. // // // THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // See ISO-20022 Intellectual Property Rights Policy at // // for more information. use validator::Validate; ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_34_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9a-zA-Z\-\?:\(\)\.,'\+ ]([0-9a-zA-Z\-\?:\(\)\.,'\+ ]*(/[0-9a-zA-Z\-\?:\(\)\.,'\+ ])?)*)"#).unwrap(); } ::lazy_static::lazy_static! { static ref BICFI_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(); } ::lazy_static::lazy_static! { 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(); } ::lazy_static::lazy_static! { static ref MIC_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_140_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9a-zA-Z/\-\?:\(\)\.\n\r,'\+ ]{1,140}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FIN_EXACT_2_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"XX|TS"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_31_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]{1,31}"#).unwrap(); } ::lazy_static::lazy_static! { static ref MAX_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{1,4}"#).unwrap(); } ::lazy_static::lazy_static! { static ref ACTIVE_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_350_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9a-zA-Z/\-\?:\(\)\.\n\r,'\+ ]{1,350}"#).unwrap(); } ::lazy_static::lazy_static! { 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(); } ::lazy_static::lazy_static! { static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FIN_MAX_35_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([^/]+/)+([^/]+)|([^/]*)"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_16_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9a-zA-Z\-\?:\(\)\.,'\+ ]([0-9a-zA-Z\-\?:\(\)\.,'\+ ]*(/[0-9a-zA-Z\-\?:\(\)\.,'\+ ])?)*)"#).unwrap(); } ::lazy_static::lazy_static! { static ref EXACT_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{4}"#).unwrap(); } ::lazy_static::lazy_static! { static ref EXACT_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3}"#).unwrap(); } ::lazy_static::lazy_static! { 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(); } ::lazy_static::lazy_static! { static ref COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_30_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9a-zA-Z\-\?:\(\)\.,'\+ ]([0-9a-zA-Z\-\?:\(\)\.,'\+ ]*(/[0-9a-zA-Z\-\?:\(\)\.,'\+ ])?)*)"#).unwrap(); } ::lazy_static::lazy_static! { 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(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_MAX_35_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]{1,35}"#).unwrap(); } ::lazy_static::lazy_static! { static ref RESTRICTED_FINX_2_MAX_34_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]{1,34}"#).unwrap(); } /// Returns the namespace of the schema pub fn namespace() -> String { "urn:iso:std:iso:20022:tech:xsd:seev.036.002.13".to_string() } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax34Text { #[validate( length(min = 1, max = 34,), regex = "RESTRICTED_FINX_MAX_34_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IsoDateTime { #[serde(rename = "$text")] pub value: ::chrono::DateTime<::chrono::Utc>, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceDetails30 { #[serde( rename = "GncCshPricPdPerPdct", skip_serializing_if = "Option::is_none" )] pub gnc_csh_pric_pd_per_pdct: Option, #[serde( rename = "GncCshPricRcvdPerPdct", skip_serializing_if = "Option::is_none" )] pub gnc_csh_pric_rcvd_per_pdct: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinActiveCurrencyAnd13DecimalAmountSimpleType { #[validate(range(min = 0,))] #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SolicitationFeeRateFormat9ChoiceEnum { #[serde(rename = "AmtToQty", skip_serializing_if = "Option::is_none")] pub amt_to_qty: Option, #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SolicitationFeeRateFormat9Choice { #[serde(flatten)] pub value: SolicitationFeeRateFormat9ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum NetDividendRateType6Code { #[serde(rename = "CAPO")] Capo, #[serde(rename = "CDFI")] Cdfi, #[serde(rename = "FLFR")] Flfr, #[serde(rename = "INCO")] Inco, #[serde(rename = "INTR")] Intr, #[serde(rename = "REES")] Rees, #[serde(rename = "SOIC")] Soic, #[serde(rename = "TXBL")] Txbl, #[serde(rename = "TXDF")] Txdf, #[serde(rename = "TXFR")] Txfr, #[serde(rename = "UNFR")] Unfr, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IssuerOfferorTaxabilityIndicator1ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IssuerOfferorTaxabilityIndicator1Choice { #[serde(flatten)] pub value: IssuerOfferorTaxabilityIndicator1ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentificationAndAccount174 { #[serde(rename = "Id")] pub id: PartyIdentification137Choice, #[serde(rename = "CshAcct", skip_serializing_if = "Option::is_none")] pub csh_acct: Option, #[serde(rename = "PrcgId", skip_serializing_if = "Option::is_none")] pub prcg_id: Option, #[serde(rename = "AltrnId", skip_serializing_if = "Option::is_none")] pub altrn_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceTypeAndText9 { #[serde(rename = "SfkpgPlcTp")] pub sfkpg_plc_tp: SafekeepingPlace2Code, #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct InterestRateUsedForPaymentFormat9ChoiceEnum { #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct InterestRateUsedForPaymentFormat9Choice { #[serde(flatten)] pub value: InterestRateUsedForPaymentFormat9ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum ShortLong1Code { #[serde(rename = "SHOR")] Shor, #[serde(rename = "LONG")] Long, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] #[serde(rename = "Document")] pub struct Document< A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate, > { #[validate] #[serde(rename = "CorpActnMvmntConf")] pub corp_actn_mvmnt_conf: CorporateActionMovementConfirmation002V13, #[serde(rename = "@xmlns", default = "namespace")] pub xmlns: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OriginalAndCurrentQuantities7 { #[serde(rename = "ShrtLngPos")] pub shrt_lng_pos: ShortLong1Code, #[validate] #[serde(rename = "FaceAmt")] pub face_amt: RestrictedFinImpliedCurrencyAndAmount, #[validate] #[serde(rename = "AmtsdVal")] pub amtsd_val: RestrictedFinImpliedCurrencyAndAmount, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum SafekeepingPlace2Code { #[serde(rename = "SHHE")] Shhe, #[serde(rename = "ALLP")] Allp, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct YesNoIndicator { #[serde(rename = "$text")] pub value: bool, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus32 { #[serde(rename = "RateTp")] pub rate_tp: RateType45Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionRate108 { #[validate(length(min = 0,))] #[serde(rename = "GrssDvddRate", default)] pub grss_dvdd_rate: Vec, #[validate(length(min = 0,))] #[serde(rename = "NetDvddRate", default)] pub net_dvdd_rate: Vec, #[validate(length(min = 0,))] #[serde(rename = "IntrstRateUsdForPmt", default)] pub intrst_rate_usd_for_pmt: Vec, #[serde( rename = "MaxAllwdOvrsbcptRate", skip_serializing_if = "Option::is_none" )] pub max_allwd_ovrsbcpt_rate: Option, #[serde(rename = "PrratnRate", skip_serializing_if = "Option::is_none")] pub prratn_rate: Option, #[validate(length(min = 0,))] #[serde(rename = "WhldgTaxRate", default)] pub whldg_tax_rate: Vec, #[validate(length(min = 0,))] #[serde(rename = "ScndLvlTax", default)] pub scnd_lvl_tax: Vec, #[serde(rename = "AddtlTax", skip_serializing_if = "Option::is_none")] pub addtl_tax: Option, #[validate(length(min = 0,))] #[serde(rename = "TaxblIncmPerDvddShr", default)] pub taxbl_incm_per_dvdd_shr: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SettlementParties103 { #[serde(rename = "Dpstry", skip_serializing_if = "Option::is_none")] pub dpstry: Option, #[serde(rename = "Pty1", skip_serializing_if = "Option::is_none")] pub pty_1: Option, #[serde(rename = "Pty2", skip_serializing_if = "Option::is_none")] pub pty_2: Option, #[serde(rename = "Pty3", skip_serializing_if = "Option::is_none")] pub pty_3: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceTypeAndText15 { #[serde(rename = "SfkpgPlcTp")] pub sfkpg_plc_tp: SafekeepingPlace3Code, #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OptionNumber1ChoiceEnum { #[serde(rename = "Nb", skip_serializing_if = "Option::is_none")] pub nb: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OptionNumber1Choice { #[serde(flatten)] pub value: OptionNumber1ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateCode22ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateCode22Choice { #[serde(flatten)] pub value: DateCode22ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountPrice4 { #[serde(rename = "AmtPricTp")] pub amt_pric_tp: AmountPriceType2Code, #[validate] #[serde(rename = "PricVal")] pub pric_val: RestrictedFinActiveCurrencyAnd13DecimalAmount, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum FractionDispositionType11Code { #[serde(rename = "BUYU")] Buyu, #[serde(rename = "CINL")] Cinl, #[serde(rename = "DIST")] Dist, #[serde(rename = "RDDN")] Rddn, #[serde(rename = "STAN")] Stan, #[serde(rename = "RDUP")] Rdup, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IndicativeOrMarketPrice9ChoiceEnum { #[serde(rename = "IndctvPric", skip_serializing_if = "Option::is_none")] pub indctv_pric: Option, #[serde(rename = "MktPric", skip_serializing_if = "Option::is_none")] pub mkt_pric: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IndicativeOrMarketPrice9Choice { #[serde(flatten)] pub value: IndicativeOrMarketPrice9ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum CorporateActionEventStage4Code { #[serde(rename = "FULL")] Full, #[serde(rename = "PART")] Part, #[serde(rename = "RESC")] Resc, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionMovementConfirmation002V13< A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate, > { #[serde(rename = "Pgntn", skip_serializing_if = "Option::is_none")] pub pgntn: Option, #[serde(rename = "NtfctnId", skip_serializing_if = "Option::is_none")] pub ntfctn_id: Option, #[serde(rename = "MvmntPrlimryAdvcId", skip_serializing_if = "Option::is_none")] pub mvmnt_prlimry_advc_id: Option, #[serde(rename = "InstrId", skip_serializing_if = "Option::is_none")] pub instr_id: Option, #[validate(length(min = 0,))] #[serde(rename = "OthrDocId", default)] pub othr_doc_id: Vec, #[validate(length(min = 0,))] #[serde(rename = "EvtsLkg", default)] pub evts_lkg: Vec, #[serde(rename = "TxId", skip_serializing_if = "Option::is_none")] pub tx_id: Option, #[validate] #[serde(rename = "CorpActnGnlInf")] pub corp_actn_gnl_inf: CorporateActionGeneralInformation167, #[validate] #[serde(rename = "AcctDtls")] pub acct_dtls: AccountAndBalance52, #[serde(rename = "CorpActnDtls", skip_serializing_if = "Option::is_none")] pub corp_actn_dtls: Option, #[validate] #[serde(rename = "CorpActnConfDtls")] pub corp_actn_conf_dtls: CorporateActionOption205, #[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")] pub addtl_inf: Option, #[validate(length(min = 0,))] #[serde(rename = "IssrAgt", default)] pub issr_agt: Vec, #[validate(length(min = 0,))] #[serde(rename = "PngAgt", default)] pub png_agt: Vec, #[validate(length(min = 0,))] #[serde(rename = "SubPngAgt", default)] pub sub_png_agt: Vec, #[validate(length(min = 0,))] #[serde(rename = "SplmtryData", default)] pub splmtry_data: Vec>, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionAmounts57 { #[validate] #[serde(rename = "PstngAmt")] pub pstng_amt: RestrictedFinActiveCurrencyAndAmount, #[serde(rename = "GrssCshAmt", skip_serializing_if = "Option::is_none")] pub grss_csh_amt: Option, #[serde(rename = "NetCshAmt", skip_serializing_if = "Option::is_none")] pub net_csh_amt: Option, #[serde(rename = "SlctnFees", skip_serializing_if = "Option::is_none")] pub slctn_fees: Option, #[serde(rename = "CshInLieuOfShr", skip_serializing_if = "Option::is_none")] pub csh_in_lieu_of_shr: Option, #[serde(rename = "CptlGn", skip_serializing_if = "Option::is_none")] pub cptl_gn: Option, #[serde(rename = "IntrstAmt", skip_serializing_if = "Option::is_none")] pub intrst_amt: Option, #[serde(rename = "MktClmAmt", skip_serializing_if = "Option::is_none")] pub mkt_clm_amt: Option, #[serde(rename = "IndmntyAmt", skip_serializing_if = "Option::is_none")] pub indmnty_amt: Option, #[serde(rename = "ManfctrdDvddPmtAmt", skip_serializing_if = "Option::is_none")] pub manfctrd_dvdd_pmt_amt: Option, #[serde(rename = "RinvstmtAmt", skip_serializing_if = "Option::is_none")] pub rinvstmt_amt: Option, #[serde(rename = "FullyFrnkdAmt", skip_serializing_if = "Option::is_none")] pub fully_frnkd_amt: Option, #[serde(rename = "UfrnkdAmt", skip_serializing_if = "Option::is_none")] pub ufrnkd_amt: Option, #[serde(rename = "SndryOrOthrAmt", skip_serializing_if = "Option::is_none")] pub sndry_or_othr_amt: Option, #[serde(rename = "TaxFreeAmt", skip_serializing_if = "Option::is_none")] pub tax_free_amt: Option, #[serde(rename = "TaxDfrrdAmt", skip_serializing_if = "Option::is_none")] pub tax_dfrrd_amt: Option, #[serde(rename = "ValAddedTaxAmt", skip_serializing_if = "Option::is_none")] pub val_added_tax_amt: Option, #[serde(rename = "StmpDtyAmt", skip_serializing_if = "Option::is_none")] pub stmp_dty_amt: Option, #[serde(rename = "TaxRclmAmt", skip_serializing_if = "Option::is_none")] pub tax_rclm_amt: Option, #[serde(rename = "TaxCdtAmt", skip_serializing_if = "Option::is_none")] pub tax_cdt_amt: Option, #[serde(rename = "AddtlTaxAmt", skip_serializing_if = "Option::is_none")] pub addtl_tax_amt: Option, #[serde(rename = "WhldgTaxAmt", skip_serializing_if = "Option::is_none")] pub whldg_tax_amt: Option, #[serde(rename = "ScndLvlTaxAmt", skip_serializing_if = "Option::is_none")] pub scnd_lvl_tax_amt: Option, #[serde(rename = "FsclStmpAmt", skip_serializing_if = "Option::is_none")] pub fscl_stmp_amt: Option, #[serde(rename = "ExctgBrkrAmt", skip_serializing_if = "Option::is_none")] pub exctg_brkr_amt: Option, #[serde(rename = "PngAgtComssnAmt", skip_serializing_if = "Option::is_none")] pub png_agt_comssn_amt: Option, #[serde(rename = "LclBrkrComssnAmt", skip_serializing_if = "Option::is_none")] pub lcl_brkr_comssn_amt: Option, #[serde(rename = "RgltryFeesAmt", skip_serializing_if = "Option::is_none")] pub rgltry_fees_amt: Option, #[serde(rename = "ShppgFeesAmt", skip_serializing_if = "Option::is_none")] pub shppg_fees_amt: Option, #[serde(rename = "ChrgsAmt", skip_serializing_if = "Option::is_none")] pub chrgs_amt: Option, #[serde(rename = "CshAmtBrghtFwd", skip_serializing_if = "Option::is_none")] pub csh_amt_brght_fwd: Option, #[serde(rename = "CshAmtCrrdFwd", skip_serializing_if = "Option::is_none")] pub csh_amt_crrd_fwd: Option, #[serde(rename = "NtnlDvddPyblAmt", skip_serializing_if = "Option::is_none")] pub ntnl_dvdd_pybl_amt: Option, #[serde(rename = "NtnlTaxAmt", skip_serializing_if = "Option::is_none")] pub ntnl_tax_amt: Option, #[serde(rename = "TaxArrearsAmt", skip_serializing_if = "Option::is_none")] pub tax_arrears_amt: Option, #[serde(rename = "OrgnlAmt", skip_serializing_if = "Option::is_none")] pub orgnl_amt: Option, #[serde(rename = "PrncplOrCrps", skip_serializing_if = "Option::is_none")] pub prncpl_or_crps: Option, #[serde(rename = "RedPrmAmt", skip_serializing_if = "Option::is_none")] pub red_prm_amt: Option, #[serde(rename = "IncmPrtn", skip_serializing_if = "Option::is_none")] pub incm_prtn: Option, #[serde(rename = "StockXchgTax", skip_serializing_if = "Option::is_none")] pub stock_xchg_tax: Option, #[serde(rename = "EUTaxRtntnAmt", skip_serializing_if = "Option::is_none")] pub eu_tax_rtntn_amt: Option, #[serde(rename = "AcrdIntrstAmt", skip_serializing_if = "Option::is_none")] pub acrd_intrst_amt: Option, #[serde(rename = "EqulstnAmt", skip_serializing_if = "Option::is_none")] pub equlstn_amt: Option, #[serde(rename = "FATCATaxAmt", skip_serializing_if = "Option::is_none")] pub fatca_tax_amt: Option, #[serde(rename = "NRATaxAmt", skip_serializing_if = "Option::is_none")] pub nra_tax_amt: Option, #[serde(rename = "BckUpWhldgTaxAmt", skip_serializing_if = "Option::is_none")] pub bck_up_whldg_tax_amt: Option, #[serde(rename = "TaxOnIncmAmt", skip_serializing_if = "Option::is_none")] pub tax_on_incm_amt: Option, #[serde(rename = "TxTax", skip_serializing_if = "Option::is_none")] pub tx_tax: Option, #[serde(rename = "DmdAmt", skip_serializing_if = "Option::is_none")] pub dmd_amt: Option, #[serde(rename = "FrgnIncmAmt", skip_serializing_if = "Option::is_none")] pub frgn_incm_amt: Option, #[serde(rename = "DmdDvddAmt", skip_serializing_if = "Option::is_none")] pub dmd_dvdd_amt: Option, #[serde(rename = "DmdFndAmt", skip_serializing_if = "Option::is_none")] pub dmd_fnd_amt: Option, #[serde(rename = "DmdIntrstAmt", skip_serializing_if = "Option::is_none")] pub dmd_intrst_amt: Option, #[serde(rename = "DmdRyltsAmt", skip_serializing_if = "Option::is_none")] pub dmd_rylts_amt: Option, #[serde(rename = "AdjstdSbcptAmt", skip_serializing_if = "Option::is_none")] pub adjstd_sbcpt_amt: Option, #[serde(rename = "RfnddSbcptAmt", skip_serializing_if = "Option::is_none")] pub rfndd_sbcpt_amt: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum AmountPriceType1Code { #[serde(rename = "ACTU")] Actu, #[serde(rename = "DISC")] Disc, #[serde(rename = "PLOT")] Plot, #[serde(rename = "PREM")] Prem, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountToAmountRatio3 { #[validate] #[serde(rename = "Amt1")] pub amt_1: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[validate] #[serde(rename = "Amt2")] pub amt_2: RestrictedFinActiveCurrencyAnd13DecimalAmount, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AccountAndBalance52 { #[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")] pub sfkpg_acct: Option, #[serde(rename = "BlckChainAdrOrWllt", skip_serializing_if = "Option::is_none")] pub blck_chain_adr_or_wllt: Option, #[serde(rename = "AcctOwnr", skip_serializing_if = "Option::is_none")] pub acct_ownr: Option, #[serde(rename = "SfkpgPlc", skip_serializing_if = "Option::is_none")] pub sfkpg_plc: Option, #[validate] #[serde(rename = "Bal")] pub bal: CorporateActionBalanceDetails45, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountAndQuantityRatio5 { #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[validate] #[serde(rename = "Qty")] pub qty: RestrictedFinDecimalNumber, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BicfiDec2014Identifier { #[validate(regex = "BICFI_DEC_2014_IDENTIFIER_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AnyBicDec2014Identifier { #[validate(regex = "ANY_BIC_DEC_2014_IDENTIFIER_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionNarrative35 { #[validate(length(min = 0,))] #[serde(rename = "AddtlTxt", default)] pub addtl_txt: Vec, #[validate(length(min = 0,))] #[serde(rename = "NrrtvVrsn", default)] pub nrrtv_vrsn: Vec, #[validate(length(min = 0,))] #[serde(rename = "PtyCtctNrrtv", default)] pub pty_ctct_nrrtv: Vec, #[validate(length(min = 0,))] #[serde(rename = "TaxtnConds", default)] pub taxtn_conds: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionPrice78 { #[serde(rename = "CshInLieuOfShrPric", skip_serializing_if = "Option::is_none")] pub csh_in_lieu_of_shr_pric: Option, #[serde(rename = "IndctvOrMktPric", skip_serializing_if = "Option::is_none")] pub indctv_or_mkt_pric: Option, #[serde(rename = "CshValForTax", skip_serializing_if = "Option::is_none")] pub csh_val_for_tax: Option, #[serde( rename = "GncCshPricPdPerPdct", skip_serializing_if = "Option::is_none" )] pub gnc_csh_pric_pd_per_pdct: Option, #[serde( rename = "GncCshPricRcvdPerPdct", skip_serializing_if = "Option::is_none" )] pub gnc_csh_pric_rcvd_per_pdct: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum CorporateActionEventType30Code { #[serde(rename = "ACTV")] Actv, #[serde(rename = "ATTI")] Atti, #[serde(rename = "BRUP")] Brup, #[serde(rename = "DFLT")] Dflt, #[serde(rename = "BONU")] Bonu, #[serde(rename = "EXRI")] Exri, #[serde(rename = "CAPD")] Capd, #[serde(rename = "CAPG")] Capg, #[serde(rename = "CAPI")] Capi, #[serde(rename = "DRCA")] Drca, #[serde(rename = "DVCA")] Dvca, #[serde(rename = "CHAN")] Chan, #[serde(rename = "COOP")] Coop, #[serde(rename = "CLSA")] Clsa, #[serde(rename = "CONS")] Cons, #[serde(rename = "CONV")] Conv, #[serde(rename = "CREV")] Crev, #[serde(rename = "DECR")] Decr, #[serde(rename = "DETI")] Deti, #[serde(rename = "DSCL")] Dscl, #[serde(rename = "DVOP")] Dvop, #[serde(rename = "DRIP")] Drip, #[serde(rename = "DRAW")] Draw, #[serde(rename = "DTCH")] Dtch, #[serde(rename = "EXOF")] Exof, #[serde(rename = "REDM")] Redm, #[serde(rename = "MCAL")] Mcal, #[serde(rename = "INCR")] Incr, #[serde(rename = "PPMT")] Ppmt, #[serde(rename = "INTR")] Intr, #[serde(rename = "RHDI")] Rhdi, #[serde(rename = "LIQU")] Liqu, #[serde(rename = "EXTM")] Extm, #[serde(rename = "MRGR")] Mrgr, #[serde(rename = "NOOF")] Noof, #[serde(rename = "CERT")] Cert, #[serde(rename = "ODLT")] Odlt, #[serde(rename = "OTHR")] Othr, #[serde(rename = "PARI")] Pari, #[serde(rename = "PCAL")] Pcal, #[serde(rename = "PRED")] Pred, #[serde(rename = "PINK")] Pink, #[serde(rename = "PLAC")] Plac, #[serde(rename = "PDEF")] Pdef, #[serde(rename = "PRIO")] Prio, #[serde(rename = "BPUT")] Bput, #[serde(rename = "REDO")] Redo, #[serde(rename = "REMK")] Remk, #[serde(rename = "BIDS")] Bids, #[serde(rename = "SPLR")] Splr, #[serde(rename = "RHTS")] Rhts, #[serde(rename = "DVSC")] Dvsc, #[serde(rename = "SHPR")] Shpr, #[serde(rename = "SMAL")] Smal, #[serde(rename = "SOFF")] Soff, #[serde(rename = "DVSE")] Dvse, #[serde(rename = "SPLF")] Splf, #[serde(rename = "TREC")] Trec, #[serde(rename = "TEND")] Tend, #[serde(rename = "DLST")] Dlst, #[serde(rename = "SUSP")] Susp, #[serde(rename = "EXWA")] Exwa, #[serde(rename = "WTRC")] Wtrc, #[serde(rename = "WRTH")] Wrth, #[serde(rename = "ACCU")] Accu, #[serde(rename = "MTNG")] Mtng, #[serde(rename = "TNDP")] Tndp, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MicIdentifier { #[validate(regex = "MIC_IDENTIFIER_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentIdentification4ChoiceEnum { #[serde(rename = "AcctOwnrDocId", skip_serializing_if = "Option::is_none")] pub acct_ownr_doc_id: Option, #[serde(rename = "AcctSvcrDocId", skip_serializing_if = "Option::is_none")] pub acct_svcr_doc_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentIdentification4Choice { #[serde(flatten)] pub value: DocumentIdentification4ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max35Text { #[validate(length(min = 1, max = 35,))] #[serde(rename = "$text")] pub value: String, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum ProcessingPosition3Code { #[serde(rename = "AFTE")] Afte, #[serde(rename = "WITH")] With, #[serde(rename = "BEFO")] Befo, #[serde(rename = "INFO")] Info, #[default] Unknown, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum RateStatus1Code { #[serde(rename = "ACTU")] Actu, #[serde(rename = "INDI")] Indi, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType45ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType45Choice { #[serde(flatten)] pub value: RateType45ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IdentificationSource4ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IdentificationSource4Choice { #[serde(flatten)] pub value: IdentificationSource4ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus59 { #[serde(rename = "RateTp")] pub rate_tp: RateType80Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax140Text { #[validate( length(min = 1, max = 140,), regex = "RESTRICTED_FINX_MAX_140_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GrossDividendRateFormat40ChoiceEnum { #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, #[serde(rename = "AmtAndRateSts", skip_serializing_if = "Option::is_none")] pub amt_and_rate_sts: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GrossDividendRateFormat40Choice { #[serde(flatten)] pub value: GrossDividendRateFormat40ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinExact2Text { #[validate(regex = "RESTRICTED_FIN_EXACT_2_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax31Text { #[validate( length(min = 1, max = 31,), regex = "RESTRICTED_FINX_MAX_31_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat68ChoiceEnum { #[serde(rename = "IndxPts", skip_serializing_if = "Option::is_none")] pub indx_pts: Option, #[serde(rename = "AmtPric", skip_serializing_if = "Option::is_none")] pub amt_pric: Option, #[serde(rename = "AmtPricPerAmt", skip_serializing_if = "Option::is_none")] pub amt_pric_per_amt: Option, #[serde( rename = "AmtPricPerFinInstrmQty", skip_serializing_if = "Option::is_none" )] pub amt_pric_per_fin_instrm_qty: Option, #[serde(rename = "PctgPric", skip_serializing_if = "Option::is_none")] pub pctg_pric: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat68Choice { #[serde(flatten)] pub value: PriceFormat68ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus60 { #[serde(rename = "RateTp")] pub rate_tp: RateType81Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventStageFormat15ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventStageFormat15Choice { #[serde(flatten)] pub value: CorporateActionEventStageFormat15ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionPrice63 { #[serde(rename = "CshInLieuOfShrPric", skip_serializing_if = "Option::is_none")] pub csh_in_lieu_of_shr_pric: Option, #[serde(rename = "OverSbcptDpstPric", skip_serializing_if = "Option::is_none")] pub over_sbcpt_dpst_pric: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndPercentageRate11 { #[serde(rename = "RateTp")] pub rate_tp: DeemedRateType2Choice, #[validate] #[serde(rename = "Rate")] pub rate: PercentageRate, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SecuritiesOption87 { #[validate] #[serde(rename = "FinInstrmId")] pub fin_instrm_id: SecurityIdentification20, #[serde(rename = "CdtDbtInd")] pub cdt_dbt_ind: CreditDebitCode, #[serde(rename = "TempFinInstrmInd", skip_serializing_if = "Option::is_none")] pub temp_fin_instrm_ind: Option, #[serde(rename = "NewSctiesIssncInd", skip_serializing_if = "Option::is_none")] pub new_scties_issnc_ind: Option, #[serde( rename = "IssrOfferrTaxbltyInd", skip_serializing_if = "Option::is_none" )] pub issr_offerr_taxblty_ind: Option, #[serde(rename = "IncmTp", skip_serializing_if = "Option::is_none")] pub incm_tp: Option, #[validate(length(min = 0,))] #[serde(rename = "OthrIncmTp", default)] pub othr_incm_tp: Vec, #[validate(length(min = 0,))] #[serde(rename = "XmptnTp", default)] pub xmptn_tp: Vec, #[serde(rename = "CtryOfIncmSrc", skip_serializing_if = "Option::is_none")] pub ctry_of_incm_src: Option, #[serde(rename = "PstngQty")] pub pstng_qty: Quantity54Choice, #[serde(rename = "SfkpgPlc", skip_serializing_if = "Option::is_none")] pub sfkpg_plc: Option, #[serde(rename = "FrctnDspstn", skip_serializing_if = "Option::is_none")] pub frctn_dspstn: Option, #[serde(rename = "CcyOptn", skip_serializing_if = "Option::is_none")] pub ccy_optn: Option, #[validate] #[serde(rename = "DtDtls")] pub dt_dtls: SecurityDate17, #[serde(rename = "RateDtls", skip_serializing_if = "Option::is_none")] pub rate_dtls: Option, #[serde(rename = "PricDtls", skip_serializing_if = "Option::is_none")] pub pric_dtls: Option, #[serde(rename = "RcvgSttlmPties", skip_serializing_if = "Option::is_none")] pub rcvg_sttlm_pties: Option, #[serde(rename = "DlvrgSttlmPties", skip_serializing_if = "Option::is_none")] pub dlvrg_sttlm_pties: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum GrossDividendRateType6Code { #[serde(rename = "CAPO")] Capo, #[serde(rename = "FLFR")] Flfr, #[serde(rename = "INCO")] Inco, #[serde(rename = "INTR")] Intr, #[serde(rename = "LTCG")] Ltcg, #[serde(rename = "REES")] Rees, #[serde(rename = "STCG")] Stcg, #[serde(rename = "SOIC")] Soic, #[serde(rename = "TXBL")] Txbl, #[serde(rename = "TXDF")] Txdf, #[serde(rename = "TXFR")] Txfr, #[serde(rename = "UNFR")] Unfr, #[serde(rename = "CDFI")] Cdfi, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountAndRateStatus2 { #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts")] pub rate_sts: RateStatus1Code, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionDate80 { #[serde(rename = "RspnDdln", skip_serializing_if = "Option::is_none")] pub rspn_ddln: Option, #[serde(rename = "SbcptCostDbtDt", skip_serializing_if = "Option::is_none")] pub sbcpt_cost_dbt_dt: Option, #[serde(rename = "MktDdln", skip_serializing_if = "Option::is_none")] pub mkt_ddln: Option, #[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")] pub xpry_dt: Option, #[serde(rename = "CoverXprtnDdln", skip_serializing_if = "Option::is_none")] pub cover_xprtn_ddln: Option, #[serde(rename = "PrtctDdln", skip_serializing_if = "Option::is_none")] pub prtct_ddln: Option, #[serde(rename = "TradgDt", skip_serializing_if = "Option::is_none")] pub tradg_dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max4AlphaNumericText { #[validate(length(min = 1, max = 4,), regex = "MAX_4_ALPHA_NUMERIC_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GenericIdentification30 { #[validate] #[serde(rename = "Id")] pub id: Exact4AlphaNumericText, #[validate] #[serde(rename = "Issr")] pub issr: Max35Text, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus62 { #[serde(rename = "RateTp")] pub rate_tp: RateType83Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum WithholdingTaxRateType1Code { #[serde(rename = "BWIT")] Bwit, #[serde(rename = "FTCA")] Ftca, #[serde(rename = "NRAT")] Nrat, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType81ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType81Choice { #[serde(flatten)] pub value: RateType81ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct FractionDispositionType30ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct FractionDispositionType30Choice { #[serde(flatten)] pub value: FractionDispositionType30ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateCode19ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateCode19Choice { #[serde(flatten)] pub value: DateCode19ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat45ChoiceEnum { #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, #[serde(rename = "RateTpAndRate", skip_serializing_if = "Option::is_none")] pub rate_tp_and_rate: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat45Choice { #[serde(flatten)] pub value: RateAndAmountFormat45ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum DividendRateType1Code { #[serde(rename = "TXBL")] Txbl, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat54ChoiceEnum { #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, #[serde(rename = "RateTpAndRate", skip_serializing_if = "Option::is_none")] pub rate_tp_and_rate: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat54Choice { #[serde(flatten)] pub value: RateAndAmountFormat54ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ActiveCurrencyCode { #[validate(regex = "ACTIVE_CURRENCY_CODE_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GrossDividendRateFormat39ChoiceEnum { #[serde(rename = "AmtAndRateSts", skip_serializing_if = "Option::is_none")] pub amt_and_rate_sts: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GrossDividendRateFormat39Choice { #[serde(flatten)] pub value: GrossDividendRateFormat39ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct TaxVoucher5 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax16Text, #[serde(rename = "BrgnDt", skip_serializing_if = "Option::is_none")] pub brgn_dt: Option, #[serde(rename = "BrgnSttlmDt", skip_serializing_if = "Option::is_none")] pub brgn_sttlm_dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct TemporaryFinancialInstrumentIndicator4ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "TempInd", skip_serializing_if = "Option::is_none")] pub temp_ind: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct TemporaryFinancialInstrumentIndicator4Choice { #[serde(flatten)] pub value: TemporaryFinancialInstrumentIndicator4ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum SafekeepingPlace1Code { #[serde(rename = "CUST")] Cust, #[serde(rename = "ICSD")] Icsd, #[serde(rename = "NCSD")] Ncsd, #[serde(rename = "SHHE")] Shhe, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventType96ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventType96Choice { #[serde(flatten)] pub value: CorporateActionEventType96ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CashOption80 { #[serde(rename = "CdtDbtInd")] pub cdt_dbt_ind: CreditDebitCode, #[serde(rename = "CtrctlPmtInd", skip_serializing_if = "Option::is_none")] pub ctrctl_pmt_ind: Option, #[serde( rename = "IssrOfferrTaxbltyInd", skip_serializing_if = "Option::is_none" )] pub issr_offerr_taxblty_ind: Option, #[serde(rename = "IncmTp", skip_serializing_if = "Option::is_none")] pub incm_tp: Option, #[validate(length(min = 0,))] #[serde(rename = "OthrIncmTp", default)] pub othr_incm_tp: Vec, #[validate(length(min = 0,))] #[serde(rename = "XmptnTp", default)] pub xmptn_tp: Vec, #[serde(rename = "CtryOfIncmSrc", skip_serializing_if = "Option::is_none")] pub ctry_of_incm_src: Option, #[serde(rename = "Acct", skip_serializing_if = "Option::is_none")] pub acct: Option, #[serde(rename = "CshPties", skip_serializing_if = "Option::is_none")] pub csh_pties: Option, #[validate] #[serde(rename = "AmtDtls")] pub amt_dtls: CorporateActionAmounts57, #[validate] #[serde(rename = "DtDtls")] pub dt_dtls: CorporateActionDate65, #[validate(length(min = 0,))] #[serde(rename = "FXDtls", default)] pub fx_dtls: Vec, #[serde(rename = "TaxVchrDtls", skip_serializing_if = "Option::is_none")] pub tax_vchr_dtls: Option, #[serde(rename = "RateAndAmtDtls", skip_serializing_if = "Option::is_none")] pub rate_and_amt_dtls: Option, #[serde(rename = "PricDtls", skip_serializing_if = "Option::is_none")] pub pric_dtls: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat45ChoiceEnum { #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")] pub dt: Option, #[serde(rename = "NotSpcfdDt", skip_serializing_if = "Option::is_none")] pub not_spcfd_dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat45Choice { #[serde(flatten)] pub value: DateFormat45ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventReference4 { #[serde(rename = "EvtId")] pub evt_id: CorporateActionEventReference4Choice, #[serde(rename = "LkgTp", skip_serializing_if = "Option::is_none")] pub lkg_tp: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct NetDividendRateFormat42ChoiceEnum { #[serde(rename = "AmtAndRateSts", skip_serializing_if = "Option::is_none")] pub amt_and_rate_sts: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct NetDividendRateFormat42Choice { #[serde(flatten)] pub value: NetDividendRateFormat42ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionOption205 { #[serde(rename = "OptnNb")] pub optn_nb: OptionNumber1Choice, #[serde(rename = "OptnTp")] pub optn_tp: CorporateActionOption39Choice, #[validate(length(min = 0,))] #[serde(rename = "OptnFeatrs", default)] pub optn_featrs: Vec, #[serde(rename = "FrctnDspstn", skip_serializing_if = "Option::is_none")] pub frctn_dspstn: Option, #[serde(rename = "CcyOptn", skip_serializing_if = "Option::is_none")] pub ccy_optn: Option, #[serde(rename = "DtDtls", skip_serializing_if = "Option::is_none")] pub dt_dtls: Option, #[serde(rename = "PrdDtls", skip_serializing_if = "Option::is_none")] pub prd_dtls: Option, #[serde(rename = "RateAndAmtDtls", skip_serializing_if = "Option::is_none")] pub rate_and_amt_dtls: Option, #[serde(rename = "PricDtls", skip_serializing_if = "Option::is_none")] pub pric_dtls: Option, #[serde(rename = "PlcOfTrad", skip_serializing_if = "Option::is_none")] pub plc_of_trad: Option, #[validate(length(min = 0,))] #[serde(rename = "SctiesMvmntDtls", default)] pub scties_mvmnt_dtls: Vec, #[validate(length(min = 0,))] #[serde(rename = "CshMvmntDtls", default)] pub csh_mvmnt_dtls: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentIdentification17 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax16Text, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventReference4ChoiceEnum { #[serde(rename = "LkdCorpActnId", skip_serializing_if = "Option::is_none")] pub lkd_corp_actn_id: Option, #[serde( rename = "LkdOffclCorpActnEvtId", skip_serializing_if = "Option::is_none" )] pub lkd_offcl_corp_actn_evt_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionEventReference4Choice { #[serde(flatten)] pub value: CorporateActionEventReference4ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum LotteryType1Code { #[serde(rename = "ORIG")] Orig, #[serde(rename = "SUPP")] Supp, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MarketIdentification2ChoiceEnum { #[serde(rename = "MktIdrCd", skip_serializing_if = "Option::is_none")] pub mkt_idr_cd: Option, #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")] pub desc: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MarketIdentification2Choice { #[serde(flatten)] pub value: MarketIdentification2ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification147ChoiceEnum { #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")] pub nm_and_adr: Option, #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")] pub prtry_id: Option, #[serde(rename = "BICFI", skip_serializing_if = "Option::is_none")] pub bicfi: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification147Choice { #[serde(flatten)] pub value: PartyIdentification147ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum RateType7Code { #[serde(rename = "SCHD")] Schd, #[serde(rename = "USCD")] Uscd, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AlternatePartyIdentification9 { #[serde(rename = "IdTp")] pub id_tp: IdentificationType44Choice, #[serde(rename = "Ctry")] pub ctry: CountryCode, #[validate] #[serde(rename = "AltrnId")] pub altrn_id: RestrictedFinxMax30Text, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max16Text { #[validate(length(min = 1, max = 16,))] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SignedQuantityFormat12 { #[serde(rename = "ShrtLngPos")] pub shrt_lng_pos: ShortLong1Code, #[serde(rename = "QtyChc")] pub qty_chc: Quantity53Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionGeneralInformation167 { #[validate] #[serde(rename = "CorpActnEvtId")] pub corp_actn_evt_id: RestrictedFinxMax16Text, #[serde(rename = "OffclCorpActnEvtId", skip_serializing_if = "Option::is_none")] pub offcl_corp_actn_evt_id: Option, #[serde(rename = "ClssActnNb", skip_serializing_if = "Option::is_none")] pub clss_actn_nb: Option, #[serde(rename = "EvtTp")] pub evt_tp: CorporateActionEventType96Choice, #[validate] #[serde(rename = "FinInstrmId")] pub fin_instrm_id: SecurityIdentification20, #[serde(rename = "FrctnlQty", skip_serializing_if = "Option::is_none")] pub frctnl_qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionBalanceDetails45 { #[serde(rename = "ConfdBal")] pub confd_bal: BalanceFormat14Choice, #[serde(rename = "TtlElgblBal", skip_serializing_if = "Option::is_none")] pub ttl_elgbl_bal: Option, #[serde(rename = "BlckdBal", skip_serializing_if = "Option::is_none")] pub blckd_bal: Option, #[serde(rename = "BrrwdBal", skip_serializing_if = "Option::is_none")] pub brrwd_bal: Option, #[serde(rename = "CollInBal", skip_serializing_if = "Option::is_none")] pub coll_in_bal: Option, #[serde(rename = "CollOutBal", skip_serializing_if = "Option::is_none")] pub coll_out_bal: Option, #[serde(rename = "OnLnBal", skip_serializing_if = "Option::is_none")] pub on_ln_bal: Option, #[validate(length(min = 0,))] #[serde(rename = "PdgDlvryBal", default)] pub pdg_dlvry_bal: Vec, #[validate(length(min = 0,))] #[serde(rename = "PdgRctBal", default)] pub pdg_rct_bal: Vec, #[serde(rename = "OutForRegnBal", skip_serializing_if = "Option::is_none")] pub out_for_regn_bal: Option, #[validate(length(min = 0,))] #[serde(rename = "SttlmPosBal", default)] pub sttlm_pos_bal: Vec, #[serde(rename = "StrtPosBal", skip_serializing_if = "Option::is_none")] pub strt_pos_bal: Option, #[serde(rename = "TradDtPosBal", skip_serializing_if = "Option::is_none")] pub trad_dt_pos_bal: Option, #[serde(rename = "InTrnsShipmntBal", skip_serializing_if = "Option::is_none")] pub in_trns_shipmnt_bal: Option, #[serde(rename = "RegdBal", skip_serializing_if = "Option::is_none")] pub regd_bal: Option, #[serde(rename = "AfctdBal", skip_serializing_if = "Option::is_none")] pub afctd_bal: Option, #[serde(rename = "UafctdBal", skip_serializing_if = "Option::is_none")] pub uafctd_bal: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BalanceFormat16ChoiceEnum { #[serde(rename = "Bal", skip_serializing_if = "Option::is_none")] pub bal: Option, #[serde(rename = "FullPrdUnits", skip_serializing_if = "Option::is_none")] pub full_prd_units: Option, #[serde(rename = "NotElgblBal", skip_serializing_if = "Option::is_none")] pub not_elgbl_bal: Option, #[serde(rename = "ElgblBal", skip_serializing_if = "Option::is_none")] pub elgbl_bal: Option, #[serde(rename = "PartWayPrdUnits", skip_serializing_if = "Option::is_none")] pub part_way_prd_units: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BalanceFormat16Choice { #[serde(flatten)] pub value: BalanceFormat16ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat52ChoiceEnum { #[serde(rename = "AmtPric", skip_serializing_if = "Option::is_none")] pub amt_pric: Option, #[serde(rename = "PctgPric", skip_serializing_if = "Option::is_none")] pub pctg_pric: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat52Choice { #[serde(flatten)] pub value: PriceFormat52ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity80ChoiceEnum { #[serde(rename = "QtyChc", skip_serializing_if = "Option::is_none")] pub qty_chc: Option, #[serde(rename = "PrtryQty", skip_serializing_if = "Option::is_none")] pub prtry_qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity80Choice { #[serde(flatten)] pub value: Quantity80ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateStatus4ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateStatus4Choice { #[serde(flatten)] pub value: RateStatus4ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SignedQuantityFormat13 { #[serde(rename = "ShrtLngPos")] pub shrt_lng_pos: ShortLong1Code, #[serde(rename = "Qty")] pub qty: FinancialInstrumentQuantity36Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DeemedRateType2ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DeemedRateType2Choice { #[serde(flatten)] pub value: DeemedRateType2ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum DateType8Code { #[serde(rename = "UKWN")] Ukwn, #[serde(rename = "ONGO")] Ongo, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max350Text { #[validate(length(min = 1, max = 350,))] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification145ChoiceEnum { #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")] pub nm_and_adr: Option, #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")] pub any_bic: Option, #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")] pub ctry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification145Choice { #[serde(flatten)] pub value: PartyIdentification145ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity54ChoiceEnum { #[serde(rename = "OrgnlAndCurFace", skip_serializing_if = "Option::is_none")] pub orgnl_and_cur_face: Option, #[serde(rename = "Qty", skip_serializing_if = "Option::is_none")] pub qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity54Choice { #[serde(flatten)] pub value: Quantity54ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionOption39ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionOption39Choice { #[serde(flatten)] pub value: CorporateActionOption39ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateAction64 { #[serde(rename = "DtDtls", skip_serializing_if = "Option::is_none")] pub dt_dtls: Option, #[serde(rename = "EvtStag", skip_serializing_if = "Option::is_none")] pub evt_stag: Option, #[validate(length(min = 0,))] #[serde(rename = "AddtlBizPrcInd", default)] pub addtl_biz_prc_ind: Vec, #[serde( rename = "IntrmdtSctiesDstrbtnTp", skip_serializing_if = "Option::is_none" )] pub intrmdt_scties_dstrbtn_tp: Option, #[serde(rename = "LtryTp", skip_serializing_if = "Option::is_none")] pub ltry_tp: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax350Text { #[validate( length(min = 1, max = 350,), regex = "RESTRICTED_FINX_MAX_350_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct FinancialInstrumentQuantity36ChoiceEnum { #[serde(rename = "FaceAmt", skip_serializing_if = "Option::is_none")] pub face_amt: Option, #[serde(rename = "Unit", skip_serializing_if = "Option::is_none")] pub unit: Option, #[serde(rename = "AmtsdVal", skip_serializing_if = "Option::is_none")] pub amtsd_val: Option, #[serde(rename = "DgtlTknUnit", skip_serializing_if = "Option::is_none")] pub dgtl_tkn_unit: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct FinancialInstrumentQuantity36Choice { #[serde(flatten)] pub value: FinancialInstrumentQuantity36ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct LotteryTypeFormat5ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct LotteryTypeFormat5Choice { #[serde(flatten)] pub value: LotteryTypeFormat5ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification136ChoiceEnum { #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")] pub prtry_id: Option, #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")] pub any_bic: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification136Choice { #[serde(flatten)] pub value: PartyIdentification136ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum AdditionalBusinessProcess11Code { #[serde(rename = "CLAI")] Clai, #[serde(rename = "TAXR")] Taxr, #[serde(rename = "ACLA")] Acla, #[serde(rename = "ATXF")] Atxf, #[serde(rename = "CNTR")] Cntr, #[serde(rename = "CONS")] Cons, #[serde(rename = "NAMC")] Namc, #[serde(rename = "NPLE")] Nple, #[serde(rename = "SCHM")] Schm, #[serde(rename = "PPUT")] Pput, #[serde(rename = "PPRE")] Ppre, #[serde(rename = "FPRE")] Fpre, #[serde(rename = "INCP")] Incp, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IsoDate { #[serde(rename = "$text")] pub value: ::chrono::NaiveDate, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum GrossDividendRateType7Code { #[serde(rename = "CAPO")] Capo, #[serde(rename = "CDFI")] Cdfi, #[serde(rename = "FUPU")] Fupu, #[serde(rename = "FLFR")] Flfr, #[serde(rename = "INCO")] Inco, #[serde(rename = "INTR")] Intr, #[serde(rename = "LTCG")] Ltcg, #[serde(rename = "PAPU")] Papu, #[serde(rename = "REES")] Rees, #[serde(rename = "STCG")] Stcg, #[serde(rename = "SOIC")] Soic, #[serde(rename = "TXBL")] Txbl, #[serde(rename = "TXDF")] Txdf, #[serde(rename = "TXFR")] Txfr, #[serde(rename = "UNFR")] Unfr, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GenericIdentification85 { #[validate] #[serde(rename = "Tp")] pub tp: GenericIdentification47, #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Period11 { #[serde(rename = "StartDt")] pub start_dt: DateFormat45Choice, #[serde(rename = "EndDt")] pub end_dt: DateFormat45Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Iban2007Identifier { #[validate(regex = "IBAN_2007_IDENTIFIER_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct TotalEligibleBalanceFormat11 { #[serde(rename = "Bal", skip_serializing_if = "Option::is_none")] pub bal: Option, #[serde(rename = "FullPrdUnits", skip_serializing_if = "Option::is_none")] pub full_prd_units: Option, #[serde(rename = "PartWayPrdUnits", skip_serializing_if = "Option::is_none")] pub part_way_prd_units: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct NameAndAddress12 { #[validate] #[serde(rename = "Nm")] pub nm: RestrictedFinxMax140Text, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AdditionalBusinessProcessFormat20ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AdditionalBusinessProcessFormat20Choice { #[serde(flatten)] pub value: AdditionalBusinessProcessFormat20ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ForeignExchangeTerms27 { #[serde(rename = "UnitCcy")] pub unit_ccy: ActiveCurrencyCode, #[serde(rename = "QtdCcy")] pub qtd_ccy: ActiveCurrencyCode, #[validate] #[serde(rename = "XchgRate")] pub xchg_rate: BaseOneRate, #[validate] #[serde(rename = "RsltgAmt")] pub rsltg_amt: RestrictedFinActiveCurrencyAndAmount, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification137ChoiceEnum { #[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")] pub prtry_id: Option, #[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")] pub nm_and_adr: Option, #[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")] pub any_bic: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification137Choice { #[serde(flatten)] pub value: PartyIdentification137ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum PriceRateType3Code { #[serde(rename = "DISC")] Disc, #[serde(rename = "PREM")] Prem, #[serde(rename = "PRCT")] Prct, #[serde(rename = "YIEL")] Yiel, #[default] Unknown, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum CreditDebitCode { #[serde(rename = "CRDT")] Crdt, #[serde(rename = "DBIT")] Dbit, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max5NumericText { #[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PercentageRate { #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType46ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType46Choice { #[serde(flatten)] pub value: RateType46ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinImpliedCurrencyAndAmount { #[validate(range(min = 0,))] #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Account9ChoiceEnum { #[serde(rename = "TaxAcct", skip_serializing_if = "Option::is_none")] pub tax_acct: Option, #[serde(rename = "CshAcct", skip_serializing_if = "Option::is_none")] pub csh_acct: Option, #[serde(rename = "ChrgsAcct", skip_serializing_if = "Option::is_none")] pub chrgs_acct: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Account9Choice { #[serde(flatten)] pub value: Account9ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum NewSecuritiesIssuanceType6Code { #[serde(rename = "DEFE")] Defe, #[serde(rename = "NDEF")] Ndef, #[serde(rename = "REFU")] Refu, #[serde(rename = "NREF")] Nref, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentificationAndAccount205 { #[serde(rename = "Id")] pub id: PartyIdentification137Choice, #[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")] pub sfkpg_acct: Option, #[serde(rename = "BlckChainAdrOrWllt", skip_serializing_if = "Option::is_none")] pub blck_chain_adr_or_wllt: Option, #[serde(rename = "PrcgId", skip_serializing_if = "Option::is_none")] pub prcg_id: Option, #[validate(length(min = 0,))] #[serde(rename = "AltrnId", default)] pub altrn_id: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct QuantityToQuantityRatio2 { #[validate] #[serde(rename = "Qty1")] pub qty_1: RestrictedFinDecimalNumber, #[validate] #[serde(rename = "Qty2")] pub qty_2: RestrictedFinDecimalNumber, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType47ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType47Choice { #[serde(flatten)] pub value: RateType47ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ExternalFinancialInstrumentIdentificationType1Code { #[validate(length(min = 1, max = 4,))] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinDecimalNumber { #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinMax35Text { #[validate(length(min = 1, max = 35,), regex = "RESTRICTED_FIN_MAX_35_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionRate93 { #[serde( rename = "AddtlQtyForSbcbdRsltntScties", skip_serializing_if = "Option::is_none" )] pub addtl_qty_for_sbcbd_rsltnt_scties: Option, #[serde( rename = "AddtlQtyForExstgScties", skip_serializing_if = "Option::is_none" )] pub addtl_qty_for_exstg_scties: Option, #[serde(rename = "NewToOd", skip_serializing_if = "Option::is_none")] pub new_to_od: Option, #[serde(rename = "ChrgsFees", skip_serializing_if = "Option::is_none")] pub chrgs_fees: Option, #[serde(rename = "FsclStmp", skip_serializing_if = "Option::is_none")] pub fscl_stmp: Option, #[serde(rename = "AplblRate", skip_serializing_if = "Option::is_none")] pub aplbl_rate: Option, #[serde(rename = "TaxCdtRate", skip_serializing_if = "Option::is_none")] pub tax_cdt_rate: Option, #[serde(rename = "FinTxTaxRate", skip_serializing_if = "Option::is_none")] pub fin_tx_tax_rate: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateAndDateTime2ChoiceEnum { #[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")] pub dt_tm: Option, #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")] pub dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateAndDateTime2Choice { #[serde(flatten)] pub value: DateAndDateTime2ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CashParties37 { #[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")] pub cdtr: Option, #[serde(rename = "CdtrAgt", skip_serializing_if = "Option::is_none")] pub cdtr_agt: Option, #[serde(rename = "MktClmCtrPty", skip_serializing_if = "Option::is_none")] pub mkt_clm_ctr_pty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BalanceFormat14ChoiceEnum { #[serde(rename = "Bal", skip_serializing_if = "Option::is_none")] pub bal: Option, #[serde(rename = "ElgblBal", skip_serializing_if = "Option::is_none")] pub elgbl_bal: Option, #[serde(rename = "NotElgblBal", skip_serializing_if = "Option::is_none")] pub not_elgbl_bal: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BalanceFormat14Choice { #[serde(flatten)] pub value: BalanceFormat14ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionDate65 { #[serde(rename = "PstngDt")] pub pstng_dt: DateAndDateTime2Choice, #[serde(rename = "ValDt", skip_serializing_if = "Option::is_none")] pub val_dt: Option, #[serde(rename = "FXRateFxgDt", skip_serializing_if = "Option::is_none")] pub fx_rate_fxg_dt: Option, #[serde(rename = "EarlstPmtDt", skip_serializing_if = "Option::is_none")] pub earlst_pmt_dt: Option, #[serde(rename = "PmtDt", skip_serializing_if = "Option::is_none")] pub pmt_dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OptionFeaturesFormat19ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OptionFeaturesFormat19Choice { #[serde(flatten)] pub value: OptionFeaturesFormat19ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PercentagePrice1 { #[serde(rename = "PctgPricTp")] pub pctg_pric_tp: PriceRateType3Code, #[validate] #[serde(rename = "PricVal")] pub pric_val: PercentageRate, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ProprietaryQuantity10 { #[serde(rename = "ShrtLngPos", skip_serializing_if = "Option::is_none")] pub shrt_lng_pos: Option, #[validate] #[serde(rename = "Qty")] pub qty: RestrictedFinDecimalNumber, #[validate] #[serde(rename = "QtyTp")] pub qty_tp: Exact4AlphaNumericText, #[validate] #[serde(rename = "Issr")] pub issr: Max4AlphaNumericText, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateFormat23ChoiceEnum { #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateFormat23Choice { #[serde(flatten)] pub value: RateFormat23ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType82ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType82Choice { #[serde(flatten)] pub value: RateType82ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndPercentageRate9 { #[serde(rename = "RateTp")] pub rate_tp: RateType46Choice, #[validate] #[serde(rename = "Rate")] pub rate: PercentageRate, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentIdentification37 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax16Text, #[serde(rename = "LkgTp", skip_serializing_if = "Option::is_none")] pub lkg_tp: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType83ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType83Choice { #[serde(flatten)] pub value: RateType83ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax16Text { #[validate( length(min = 1, max = 16,), regex = "RESTRICTED_FINX_MAX_16_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Exact4AlphaNumericText { #[validate(regex = "EXACT_4_ALPHA_NUMERIC_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity57ChoiceEnum { #[serde(rename = "OrgnlAndCurFaceAmt", skip_serializing_if = "Option::is_none")] pub orgnl_and_cur_face_amt: Option, #[serde(rename = "SgndQty", skip_serializing_if = "Option::is_none")] pub sgnd_qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity57Choice { #[serde(flatten)] pub value: Quantity57ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat43ChoiceEnum { #[serde(rename = "DtCd", skip_serializing_if = "Option::is_none")] pub dt_cd: Option, #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")] pub dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat43Choice { #[serde(flatten)] pub value: DateFormat43ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum DeemedRateType1Code { #[serde(rename = "DEDI")] Dedi, #[serde(rename = "DEFP")] Defp, #[serde(rename = "DEIT")] Deit, #[serde(rename = "DERY")] Dery, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Exact3NumericText { #[validate(regex = "EXACT_3_NUMERIC_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MarketIdentification90 { #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(rename = "Tp")] pub tp: MarketType16Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionPeriod13 { #[serde(rename = "PricClctnPrd", skip_serializing_if = "Option::is_none")] pub pric_clctn_prd: Option, #[serde(rename = "ActnPrd", skip_serializing_if = "Option::is_none")] pub actn_prd: Option, #[serde(rename = "ParllTradgPrd", skip_serializing_if = "Option::is_none")] pub parll_tradg_prd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountPricePerFinancialInstrumentQuantity11 { #[serde(rename = "AmtPricTp")] pub amt_pric_tp: AmountPriceType1Code, #[validate] #[serde(rename = "PricVal")] pub pric_val: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "FinInstrmQty")] pub fin_instrm_qty: FinancialInstrumentQuantity36Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentNumber6ChoiceEnum { #[serde(rename = "LngNb", skip_serializing_if = "Option::is_none")] pub lng_nb: Option, #[serde(rename = "PrtryNb", skip_serializing_if = "Option::is_none")] pub prtry_nb: Option, #[serde(rename = "ShrtNb", skip_serializing_if = "Option::is_none")] pub shrt_nb: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentNumber6Choice { #[serde(flatten)] pub value: DocumentNumber6ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum IntermediateSecurityDistributionType5Code { #[serde(rename = "BIDS")] Bids, #[serde(rename = "DRIP")] Drip, #[serde(rename = "DVCA")] Dvca, #[serde(rename = "DVOP")] Dvop, #[serde(rename = "EXRI")] Exri, #[serde(rename = "PRIO")] Prio, #[serde(rename = "DVSC")] Dvsc, #[serde(rename = "DVSE")] Dvse, #[serde(rename = "INTR")] Intr, #[serde(rename = "LIQU")] Liqu, #[serde(rename = "SOFF")] Soff, #[serde(rename = "SPLF")] Splf, #[serde(rename = "BONU")] Bonu, #[serde(rename = "EXOF")] Exof, #[serde(rename = "MRGR")] Mrgr, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OtherIdentification2 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax31Text, #[serde(rename = "Sfx", skip_serializing_if = "Option::is_none")] pub sfx: Option, #[serde(rename = "Tp")] pub tp: IdentificationSource4Choice, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat43ChoiceEnum { #[serde(rename = "Rate", skip_serializing_if = "Option::is_none")] pub rate: Option, #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateAndAmountFormat43Choice { #[serde(flatten)] pub value: RateAndAmountFormat43ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct OriginalAndCurrentQuantities4 { #[validate] #[serde(rename = "FaceAmt")] pub face_amt: RestrictedFinImpliedCurrencyAndAmount, #[validate] #[serde(rename = "AmtsdVal")] pub amtsd_val: RestrictedFinImpliedCurrencyAndAmount, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType80ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateType80Choice { #[serde(flatten)] pub value: RateType80ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinActiveCurrencyAnd13DecimalAmount { #[serde(rename = "RestrictedFinActiveCurrencyAnd13DecimalAmount")] pub value: RestrictedFinActiveCurrencyAnd13DecimalAmountSimpleType, #[serde(rename = "@Ccy")] pub ccy: ActiveCurrencyCode, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceTypeAndIdentification1 { #[serde(rename = "SfkpgPlcTp")] pub sfkpg_plc_tp: SafekeepingPlace1Code, #[validate] #[serde(rename = "Id")] pub id: AnyBicDec2014Identifier, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CashAccountIdentification6ChoiceEnum { #[serde(rename = "IBAN", skip_serializing_if = "Option::is_none")] pub iban: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CashAccountIdentification6Choice { #[serde(flatten)] pub value: CashAccountIdentification6ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GenericIdentification84 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax34Text, #[validate] #[serde(rename = "Issr")] pub issr: Max4AlphaNumericText, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SupplementaryDataEnvelope1< A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate, > { #[validate] #[serde(flatten)] pub value: A, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct TransactionIdentification1 { #[validate] #[serde(rename = "MktInfrstrctrTxId")] pub mkt_infrstrctr_tx_id: RestrictedFinMax35Text, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GenericIdentification47 { #[validate] #[serde(rename = "Id")] pub id: Exact4AlphaNumericText, #[validate] #[serde(rename = "Issr")] pub issr: Max4AlphaNumericText, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum OptionNumber1Code { #[serde(rename = "UNSO")] Unso, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CorporateActionDate66 { #[serde(rename = "RcrdDt", skip_serializing_if = "Option::is_none")] pub rcrd_dt: Option, #[serde(rename = "ExDvddDt", skip_serializing_if = "Option::is_none")] pub ex_dvdd_dt: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum OptionFeatures6Code { #[serde(rename = "COND")] Cond, #[serde(rename = "MAXC")] Maxc, #[serde(rename = "MAXS")] Maxs, #[serde(rename = "OPLF")] Oplf, #[serde(rename = "PROR")] Pror, #[serde(rename = "VVPR")] Vvpr, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IsinOct2015Identifier { #[validate(regex = "ISIN_OCT_2015_IDENTIFIER_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IdentificationType44ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IdentificationType44Choice { #[serde(flatten)] pub value: IdentificationType44ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct CountryCode { #[validate(regex = "COUNTRY_CODE_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Max30DecimalNumber { #[serde(rename = "$text")] pub value: f64, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum TypeOfIdentification1Code { #[serde(rename = "ARNU")] Arnu, #[serde(rename = "CCPT")] Ccpt, #[serde(rename = "CHTY")] Chty, #[serde(rename = "CORP")] Corp, #[serde(rename = "DRLC")] Drlc, #[serde(rename = "FIIN")] Fiin, #[serde(rename = "TXID")] Txid, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax30Text { #[validate( length(min = 1, max = 30,), regex = "RESTRICTED_FINX_MAX_30_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SupplementaryData1< A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate, > { #[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")] pub plc_and_nm: Option, #[validate] #[serde(rename = "Envlp")] pub envlp: SupplementaryDataEnvelope1, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ProprietaryQuantity9 { #[validate] #[serde(rename = "Qty")] pub qty: RestrictedFinDecimalNumber, #[validate] #[serde(rename = "QtyTp")] pub qty_tp: Exact4AlphaNumericText, #[validate] #[serde(rename = "Issr")] pub issr: Max4AlphaNumericText, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Rate37 { #[serde(rename = "AddtlTax", skip_serializing_if = "Option::is_none")] pub addtl_tax: Option, #[serde(rename = "ChrgsFees", skip_serializing_if = "Option::is_none")] pub chrgs_fees: Option, #[serde(rename = "FsclStmp", skip_serializing_if = "Option::is_none")] pub fscl_stmp: Option, #[validate(length(min = 0,))] #[serde(rename = "GrssDvddRate", default)] pub grss_dvdd_rate: Vec, #[serde(rename = "EarlySlctnFeeRate", skip_serializing_if = "Option::is_none")] pub early_slctn_fee_rate: Option, #[serde(rename = "ThrdPtyIncntivRate", skip_serializing_if = "Option::is_none")] pub thrd_pty_incntiv_rate: Option, #[validate(length(min = 0,))] #[serde(rename = "IntrstRateUsdForPmt", default)] pub intrst_rate_usd_for_pmt: Vec, #[validate(length(min = 0,))] #[serde(rename = "NetDvddRate", default)] pub net_dvdd_rate: Vec, #[serde(rename = "AplblRate", skip_serializing_if = "Option::is_none")] pub aplbl_rate: Option, #[serde(rename = "SlctnFeeRate", skip_serializing_if = "Option::is_none")] pub slctn_fee_rate: Option, #[serde(rename = "TaxCdtRate", skip_serializing_if = "Option::is_none")] pub tax_cdt_rate: Option, #[validate(length(min = 0,))] #[serde(rename = "WhldgTaxRate", default)] pub whldg_tax_rate: Vec, #[validate(length(min = 0,))] #[serde(rename = "ScndLvlTax", default)] pub scnd_lvl_tax: Vec, #[serde(rename = "TaxOnIncm", skip_serializing_if = "Option::is_none")] pub tax_on_incm: Option, #[serde(rename = "TaxOnPrfts", skip_serializing_if = "Option::is_none")] pub tax_on_prfts: Option, #[serde(rename = "TaxRclmRate", skip_serializing_if = "Option::is_none")] pub tax_rclm_rate: Option, #[serde(rename = "EqulstnRate", skip_serializing_if = "Option::is_none")] pub equlstn_rate: Option, #[validate(length(min = 0,))] #[serde(rename = "DmdRate", default)] pub dmd_rate: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus54 { #[serde(rename = "RateTp")] pub rate_tp: DeemedRateType2Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DocumentIdentification38 { #[serde(rename = "Id")] pub id: DocumentIdentification4Choice, #[serde(rename = "DocNb", skip_serializing_if = "Option::is_none")] pub doc_nb: Option, #[serde(rename = "LkgTp", skip_serializing_if = "Option::is_none")] pub lkg_tp: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ProcessingPosition10ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct ProcessingPosition10Choice { #[serde(flatten)] pub value: ProcessingPosition10ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity53ChoiceEnum { #[serde(rename = "Qty", skip_serializing_if = "Option::is_none")] pub qty: Option, #[serde(rename = "PrtryQty", skip_serializing_if = "Option::is_none")] pub prtry_qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Quantity53Choice { #[serde(flatten)] pub value: Quantity53ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct NetDividendRateFormat41ChoiceEnum { #[serde(rename = "Amt", skip_serializing_if = "Option::is_none")] pub amt: Option, #[serde(rename = "AmtAndRateSts", skip_serializing_if = "Option::is_none")] pub amt_and_rate_sts: Option, #[serde( rename = "RateTpAndAmtAndRateSts", skip_serializing_if = "Option::is_none" )] pub rate_tp_and_amt_and_rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct NetDividendRateFormat41Choice { #[serde(flatten)] pub value: NetDividendRateFormat41ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum SafekeepingPlace3Code { #[serde(rename = "SHHE")] Shhe, #[default] Unknown, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum NetDividendRateType7Code { #[serde(rename = "CAPO")] Capo, #[serde(rename = "CDFI")] Cdfi, #[serde(rename = "FUPU")] Fupu, #[serde(rename = "FLFR")] Flfr, #[serde(rename = "INCO")] Inco, #[serde(rename = "INTR")] Intr, #[serde(rename = "SOIC")] Soic, #[serde(rename = "TXBL")] Txbl, #[serde(rename = "TXDF")] Txdf, #[serde(rename = "TXFR")] Txfr, #[serde(rename = "UNFR")] Unfr, #[serde(rename = "PAPU")] Papu, #[serde(rename = "REES")] Rees, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MarketType16ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct MarketType16Choice { #[serde(flatten)] pub value: MarketType16ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentificationAndAccount175 { #[serde(rename = "Id")] pub id: PartyIdentification147Choice, #[serde(rename = "CshAcct", skip_serializing_if = "Option::is_none")] pub csh_acct: Option, #[serde(rename = "PrcgId", skip_serializing_if = "Option::is_none")] pub prcg_id: Option, #[serde(rename = "AltrnId", skip_serializing_if = "Option::is_none")] pub altrn_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PartyIdentification155 { #[serde(rename = "Id")] pub id: PartyIdentification145Choice, #[serde(rename = "PrcgId", skip_serializing_if = "Option::is_none")] pub prcg_id: Option, #[validate(length(min = 0,))] #[serde(rename = "AltrnId", default)] pub altrn_id: Vec, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat49ChoiceEnum { #[serde(rename = "DtCd", skip_serializing_if = "Option::is_none")] pub dt_cd: Option, #[serde(rename = "Dt", skip_serializing_if = "Option::is_none")] pub dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct DateFormat49Choice { #[serde(flatten)] pub value: DateFormat49ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum MarketType2Code { #[serde(rename = "PRIM")] Prim, #[serde(rename = "SECM")] Secm, #[serde(rename = "OTCO")] Otco, #[serde(rename = "VARI")] Vari, #[serde(rename = "EXCH")] Exch, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Pagination1 { #[validate] #[serde(rename = "PgNb")] pub pg_nb: Max5NumericText, #[validate] #[serde(rename = "LastPgInd")] pub last_pg_ind: YesNoIndicator, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum Payment1Code { #[serde(rename = "ACTU")] Actu, #[serde(rename = "CONT")] Cont, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat55ChoiceEnum { #[serde(rename = "PctgPric", skip_serializing_if = "Option::is_none")] pub pctg_pric: Option, #[serde(rename = "AmtPric", skip_serializing_if = "Option::is_none")] pub amt_pric: Option, #[serde(rename = "IndxPts", skip_serializing_if = "Option::is_none")] pub indx_pts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct PriceFormat55Choice { #[serde(flatten)] pub value: PriceFormat55ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinActiveCurrencyAndAmountSimpleType { #[validate(range(min = 0,))] #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountPrice5 { #[serde(rename = "AmtPricTp")] pub amt_pric_tp: AmountPriceType1Code, #[validate] #[serde(rename = "PricVal")] pub pric_val: RestrictedFinActiveCurrencyAnd13DecimalAmount, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct Iso20022MessageIdentificationText { #[validate(regex = "ISO_20022_MESSAGE_IDENTIFICATION_TEXT_REGEX")] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RatioFormat21ChoiceEnum { #[serde(rename = "QtyToQty", skip_serializing_if = "Option::is_none")] pub qty_to_qty: Option, #[serde(rename = "AmtToAmt", skip_serializing_if = "Option::is_none")] pub amt_to_amt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RatioFormat21Choice { #[serde(flatten)] pub value: RatioFormat21ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinActiveCurrencyAndAmount { #[serde(rename = "RestrictedFinActiveCurrencyAndAmount")] pub value: RestrictedFinActiveCurrencyAndAmountSimpleType, #[serde(rename = "@Ccy")] pub ccy: ActiveCurrencyCode, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinxMax35Text { #[validate( length(min = 1, max = 35,), regex = "RESTRICTED_FINX_MAX_35_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceFormat32ChoiceEnum { #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")] pub ctry: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(rename = "TpAndId", skip_serializing_if = "Option::is_none")] pub tp_and_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceFormat32Choice { #[serde(flatten)] pub value: SafekeepingPlaceFormat32ChoiceEnum, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum AmountPriceType2Code { #[serde(rename = "ACTU")] Actu, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct AmountPricePerAmount3 { #[serde(rename = "AmtPricTp")] pub amt_pric_tp: AmountPriceType1Code, #[validate] #[serde(rename = "PricVal")] pub pric_val: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IntermediateSecuritiesDistributionTypeFormat18ChoiceEnum { #[serde(rename = "Cd", skip_serializing_if = "Option::is_none")] pub cd: Option, #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct IntermediateSecuritiesDistributionTypeFormat18Choice { #[serde(flatten)] pub value: IntermediateSecuritiesDistributionTypeFormat18ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus33 { #[serde(rename = "RateTp")] pub rate_tp: RateType47Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RateTypeAndAmountAndStatus61 { #[serde(rename = "RateTp")] pub rate_tp: RateType82Choice, #[validate] #[serde(rename = "Amt")] pub amt: RestrictedFinActiveCurrencyAnd13DecimalAmount, #[serde(rename = "RateSts", skip_serializing_if = "Option::is_none")] pub rate_sts: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct GenericIdentification86 { #[validate] #[serde(rename = "Id")] pub id: RestrictedFinxMax30Text, #[validate] #[serde(rename = "Issr")] pub issr: Max4AlphaNumericText, #[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")] pub schme_nm: Option, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum IssuerTaxability2Code { #[serde(rename = "TXBL")] Txbl, #[default] Unknown, } #[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)] pub enum CorporateActionOption12Code { #[serde(rename = "ABST")] Abst, #[serde(rename = "BSPL")] Bspl, #[serde(rename = "BUYA")] Buya, #[serde(rename = "CASE")] Case, #[serde(rename = "CASH")] Cash, #[serde(rename = "CEXC")] Cexc, #[serde(rename = "CONN")] Conn, #[serde(rename = "CONY")] Cony, #[serde(rename = "CTEN")] Cten, #[serde(rename = "EXER")] Exer, #[serde(rename = "LAPS")] Laps, #[serde(rename = "MKDW")] Mkdw, #[serde(rename = "MKUP")] Mkup, #[serde(rename = "MPUT")] Mput, #[serde(rename = "NOAC")] Noac, #[serde(rename = "NOQU")] Noqu, #[serde(rename = "OFFR")] Offr, #[serde(rename = "OTHR")] Othr, #[serde(rename = "OVER")] Over, #[serde(rename = "QINV")] Qinv, #[serde(rename = "SECU")] Secu, #[serde(rename = "SLLE")] Slle, #[serde(rename = "PRUN")] Prun, #[default] Unknown, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RestrictedFinx2Max34Text { #[validate( length(min = 1, max = 34,), regex = "RESTRICTED_FINX_2_MAX_34_TEXT_REGEX" )] #[serde(rename = "$text")] pub value: String, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct BaseOneRate { #[serde(rename = "$text")] pub value: f64, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceFormat39ChoiceEnum { #[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")] pub prtry: Option, #[serde(rename = "Id", skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")] pub ctry: Option, #[serde(rename = "TpAndId", skip_serializing_if = "Option::is_none")] pub tp_and_id: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SafekeepingPlaceFormat39Choice { #[serde(flatten)] pub value: SafekeepingPlaceFormat39ChoiceEnum, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SecurityIdentification20 { #[serde(rename = "ISIN", skip_serializing_if = "Option::is_none")] pub isin: Option, #[validate(length(min = 0,))] #[serde(rename = "OthrId", default)] pub othr_id: Vec, #[serde(rename = "Desc", skip_serializing_if = "Option::is_none")] pub desc: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct SecurityDate17 { #[serde(rename = "PstngDt")] pub pstng_dt: DateAndDateTime2Choice, #[serde(rename = "AvlblDt", skip_serializing_if = "Option::is_none")] pub avlbl_dt: Option, #[serde(rename = "PrpssDt", skip_serializing_if = "Option::is_none")] pub prpss_dt: Option, #[serde(rename = "DvddRnkgDt", skip_serializing_if = "Option::is_none")] pub dvdd_rnkg_dt: Option, #[serde(rename = "EarlstPmtDt", skip_serializing_if = "Option::is_none")] pub earlst_pmt_dt: Option, #[serde(rename = "PmtDt", skip_serializing_if = "Option::is_none")] pub pmt_dt: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RatioFormat22ChoiceEnum { #[serde(rename = "QtyToQty", skip_serializing_if = "Option::is_none")] pub qty_to_qty: Option, #[serde(rename = "AmtToAmt", skip_serializing_if = "Option::is_none")] pub amt_to_amt: Option, #[serde(rename = "QtyToAmt", skip_serializing_if = "Option::is_none")] pub qty_to_amt: Option, #[serde(rename = "AmtToQty", skip_serializing_if = "Option::is_none")] pub amt_to_qty: Option, } #[derive( Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, ::derive_builder::Builder, ::validator::Validate, )] pub struct RatioFormat22Choice { #[serde(flatten)] pub value: RatioFormat22ChoiceEnum, }