#![allow(clippy::all)]
#![allow(non_snake_case, non_camel_case_types, dead_code, unused_imports)]
#![allow(non_local_definitions)]
use std::str::FromStr;
use crate::validate::Validate;
use yaserde_derive::{YaDeserialize, YaSerialize};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ActiveCurrencyCode (pub String);
crate::simple_type!(ActiveCurrencyCode);
impl Validate for ActiveCurrencyCode {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct Contact9 {
#[yaserde(rename = "Nm")]
#[cfg_attr(feature = "serde", serde(rename = "Nm"))]
pub nm: Max140Text,
#[yaserde(rename = "PhneNb")]
#[cfg_attr(feature = "serde", serde(rename = "PhneNb"))]
pub phne_nb: PhoneNumber,
#[yaserde(rename = "EmailAdr")]
#[cfg_attr(feature = "serde", serde(rename = "EmailAdr"))]
pub email_adr: Max256Text,
#[yaserde(rename = "Fctn")]
#[cfg_attr(feature = "serde", serde(rename = "Fctn"))]
pub fctn: Max140Text,
}
impl Validate for Contact9 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct CountryCode (pub String);
crate::simple_type!(CountryCode);
impl Validate for CountryCode {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct DatePeriod2 {
#[yaserde(rename = "FrDt")]
#[cfg_attr(feature = "serde", serde(rename = "FrDt"))]
pub fr_dt: Isodate,
#[yaserde(rename = "ToDt")]
#[cfg_attr(feature = "serde", serde(rename = "ToDt"))]
pub to_dt: Isodate,
}
impl Validate for DatePeriod2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct Document {
#[yaserde(rename = "SttlmFlsMnthlyRpt")]
#[cfg_attr(feature = "serde", serde(rename = "SttlmFlsMnthlyRpt"))]
pub sttlm_fls_mnthly_rpt: SettlementFailsMonthlyReportV01,
}
impl Validate for Document {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ExternalFinancialInstrumentIdentificationType1Code (pub String);
crate::simple_type!(ExternalFinancialInstrumentIdentificationType1Code);
impl Validate for ExternalFinancialInstrumentIdentificationType1Code {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 4 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 4 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Isinoct2015Identifier (pub String);
crate::simple_type!(Isinoct2015Identifier);
impl Validate for Isinoct2015Identifier {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Isodate (pub String);
crate::simple_type!(Isodate);
impl Validate for Isodate {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct IsodateTime (pub String);
crate::simple_type!(IsodateTime);
impl Validate for IsodateTime {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct IdentificationSource3Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<ExternalFinancialInstrumentIdentificationType1Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for IdentificationSource3Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Leiidentifier (pub String);
crate::simple_type!(Leiidentifier);
impl Validate for Leiidentifier {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max140Text (pub String);
crate::simple_type!(Max140Text);
impl Validate for Max140Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 140 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 140 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max16Text (pub String);
crate::simple_type!(Max16Text);
impl Validate for Max16Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 16 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 16 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max2048Text (pub String);
crate::simple_type!(Max2048Text);
impl Validate for Max2048Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 2048 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 2048 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max20PositiveDecimalNumber (pub String);
crate::simple_type!(Max20PositiveDecimalNumber);
impl Validate for Max20PositiveDecimalNumber {
fn validate(&self) -> Result<(), String> {
if self.0 < "0".parse::<String>().unwrap() {
return Err(format!("MinInclusive validation error: invalid value of 0! \nExpected: 0 >= 0.\nActual: 0 == {}", self.0));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max20PositiveNumber (pub String);
crate::simple_type!(Max20PositiveNumber);
impl Validate for Max20PositiveNumber {
fn validate(&self) -> Result<(), String> {
if self.0 < "0".parse::<String>().unwrap() {
return Err(format!("MinInclusive validation error: invalid value of 0! \nExpected: 0 >= 0.\nActual: 0 == {}", self.0));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max256Text (pub String);
crate::simple_type!(Max256Text);
impl Validate for Max256Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 256 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 256 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max2Fraction1NonNegativeNumber (pub String);
crate::simple_type!(Max2Fraction1NonNegativeNumber);
impl Validate for Max2Fraction1NonNegativeNumber {
fn validate(&self) -> Result<(), String> {
if self.0 < "0".parse::<String>().unwrap() {
return Err(format!("MinInclusive validation error: invalid value of 0! \nExpected: 0 >= 0.\nActual: 0 == {}", self.0));
}
if self.0 > "9.9".parse::<String>().unwrap() {
return Err(format!("MaxInclusive validation error: invalid value of 0! \nExpected: 0 <= 9.9.\nActual: 0 == {}", self.0));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max2NumericText (pub String);
crate::simple_type!(Max2NumericText);
impl Validate for Max2NumericText {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max350Text (pub String);
crate::simple_type!(Max350Text);
impl Validate for Max350Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 350 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 350 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Max35Text (pub String);
crate::simple_type!(Max35Text);
impl Validate for Max35Text {
fn validate(&self) -> Result<(), String> {
#[allow(clippy::len_zero)]
if self.0.len() < 1 {
return Err(format!("MinLength validation error. \nExpected: 0 length >= 1 \nActual: 0 length == {}", self.0.len()));
}
if self.0.len() > 35 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 35 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct OtherIdentification1 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: Max35Text,
#[yaserde(rename = "Sfx")]
#[cfg_attr(feature = "serde", serde(rename = "Sfx"))]
pub sfx: Max16Text,
#[yaserde(rename = "Tp")]
#[cfg_attr(feature = "serde", serde(rename = "Tp"))]
pub tp: IdentificationSource3Choice,
}
impl Validate for OtherIdentification1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct PercentageRate (pub String);
crate::simple_type!(PercentageRate);
impl Validate for PercentageRate {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct PhoneNumber (pub String);
crate::simple_type!(PhoneNumber);
impl Validate for PhoneNumber {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub enum ReportPeriodActivity1Code {
#[yaserde(rename = "NOTX")]
#[cfg_attr(feature = "serde", serde(rename = "NOTX"))]
Notx,
__Unknown__(String),
}
impl Default for ReportPeriodActivity1Code {
fn default() -> ReportPeriodActivity1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for ReportPeriodActivity1Code {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SecuritiesSettlementSystemIdentification2 {
#[yaserde(rename = "SysId")]
#[cfg_attr(feature = "serde", serde(rename = "SysId"))]
pub sys_id: Max35Text,
#[yaserde(rename = "SysNm")]
#[cfg_attr(feature = "serde", serde(rename = "SysNm"))]
pub sys_nm: Max140Text,
#[yaserde(rename = "CtryOfJursdctn")]
#[cfg_attr(feature = "serde", serde(rename = "CtryOfJursdctn"))]
pub ctry_of_jursdctn: CountryCode,
#[yaserde(rename = "CSDLglNm")]
#[cfg_attr(feature = "serde", serde(rename = "CSDLglNm"))]
pub csd_lgl_nm: Max140Text,
#[yaserde(rename = "LEI")]
#[cfg_attr(feature = "serde", serde(rename = "LEI"))]
pub lei: Leiidentifier,
#[yaserde(rename = "RspnsblPty")]
#[cfg_attr(feature = "serde", serde(rename = "RspnsblPty"))]
pub rspnsbl_pty: Vec<Contact9>,
}
impl Validate for SecuritiesSettlementSystemIdentification2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SecurityIdentification19 {
#[yaserde(rename = "ISIN")]
#[cfg_attr(feature = "serde", serde(rename = "ISIN"))]
pub isin: Isinoct2015Identifier,
#[yaserde(rename = "OthrId")]
#[cfg_attr(feature = "serde", serde(rename = "OthrId"))]
pub othr_id: Vec<OtherIdentification1>,
#[yaserde(rename = "Desc")]
#[cfg_attr(feature = "serde", serde(rename = "Desc"))]
pub desc: Max140Text,
}
impl Validate for SecurityIdentification19 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementDailyFailureReason1Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity1Code>,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: Option<SettlementDailyFailureReason3>,
}
impl Validate for SettlementDailyFailureReason1Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementDailyFailureReason3 {
#[yaserde(rename = "FaildScties")]
#[cfg_attr(feature = "serde", serde(rename = "FaildScties"))]
pub faild_scties: SettlementTotalData1Choice,
#[yaserde(rename = "FaildCsh")]
#[cfg_attr(feature = "serde", serde(rename = "FaildCsh"))]
pub faild_csh: SettlementTotalData1Choice,
}
impl Validate for SettlementDailyFailureReason3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementDataRate2 {
#[yaserde(rename = "Vol")]
#[cfg_attr(feature = "serde", serde(rename = "Vol"))]
pub vol: PercentageRate,
#[yaserde(rename = "Val")]
#[cfg_attr(feature = "serde", serde(rename = "Val"))]
pub val: PercentageRate,
}
impl Validate for SettlementDataRate2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementDataVolume2 {
#[yaserde(rename = "Vol")]
#[cfg_attr(feature = "serde", serde(rename = "Vol"))]
pub vol: Max20PositiveNumber,
#[yaserde(rename = "Val")]
#[cfg_attr(feature = "serde", serde(rename = "Val"))]
pub val: Max20PositiveDecimalNumber,
}
impl Validate for SettlementDataVolume2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsCurrency2 {
#[yaserde(rename = "Ccy")]
#[cfg_attr(feature = "serde", serde(rename = "Ccy"))]
pub ccy: ActiveCurrencyCode,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: SettlementTotalData1,
}
impl Validate for SettlementFailsCurrency2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyCSD1Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity1Code>,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: Option<SettlementFailsDailyCSD3>,
}
impl Validate for SettlementFailsDailyCSD1Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyCSD3 {
#[yaserde(rename = "IntraCSD")]
#[cfg_attr(feature = "serde", serde(rename = "IntraCSD"))]
pub intra_csd: SettlementFailsDailyInstructionType1Choice,
#[yaserde(rename = "CrossCSD")]
#[cfg_attr(feature = "serde", serde(rename = "CrossCSD"))]
pub cross_csd: SettlementFailsDailyInstructionType1Choice,
}
impl Validate for SettlementFailsDailyCSD3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyData3 {
#[yaserde(rename = "RptgDt")]
#[cfg_attr(feature = "serde", serde(rename = "RptgDt"))]
pub rptg_dt: Isodate,
#[yaserde(rename = "DalyRcrd")]
#[cfg_attr(feature = "serde", serde(rename = "DalyRcrd"))]
pub daly_rcrd: SettlementFailsDailyInstrument3,
}
impl Validate for SettlementFailsDailyData3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyInstructionType1Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity1Code>,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: Option<SettlementFailsDailyInstructionType3>,
}
impl Validate for SettlementFailsDailyInstructionType1Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyInstructionType3 {
#[yaserde(rename = "DlvryVrssPmt")]
#[cfg_attr(feature = "serde", serde(rename = "DlvryVrssPmt"))]
pub dlvry_vrss_pmt: SettlementDailyFailureReason1Choice,
#[yaserde(rename = "DlvryWthPmt")]
#[cfg_attr(feature = "serde", serde(rename = "DlvryWthPmt"))]
pub dlvry_wth_pmt: SettlementDailyFailureReason1Choice,
#[yaserde(rename = "PmtFreeOfDlvry")]
#[cfg_attr(feature = "serde", serde(rename = "PmtFreeOfDlvry"))]
pub pmt_free_of_dlvry: SettlementDailyFailureReason1Choice,
#[yaserde(rename = "FreeOfPmt")]
#[cfg_attr(feature = "serde", serde(rename = "FreeOfPmt"))]
pub free_of_pmt: SettlementDailyFailureReason1Choice,
}
impl Validate for SettlementFailsDailyInstructionType3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyInstrument3 {
#[yaserde(rename = "Eqty")]
#[cfg_attr(feature = "serde", serde(rename = "Eqty"))]
pub eqty: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "SvrgnDebt")]
#[cfg_attr(feature = "serde", serde(rename = "SvrgnDebt"))]
pub svrgn_debt: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "Bd")]
#[cfg_attr(feature = "serde", serde(rename = "Bd"))]
pub bd: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "OthrTrfblScties")]
#[cfg_attr(feature = "serde", serde(rename = "OthrTrfblScties"))]
pub othr_trfbl_scties: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "XchgTraddFnds")]
#[cfg_attr(feature = "serde", serde(rename = "XchgTraddFnds"))]
pub xchg_tradd_fnds: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "CllctvInvstmtUdrtkgs")]
#[cfg_attr(feature = "serde", serde(rename = "CllctvInvstmtUdrtkgs"))]
pub cllctv_invstmt_udrtkgs: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "MnyMktInstrm")]
#[cfg_attr(feature = "serde", serde(rename = "MnyMktInstrm"))]
pub mny_mkt_instrm: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "EmssnAllwnc")]
#[cfg_attr(feature = "serde", serde(rename = "EmssnAllwnc"))]
pub emssn_allwnc: SettlementFailsDailyTransactionType1Choice,
#[yaserde(rename = "Othr")]
#[cfg_attr(feature = "serde", serde(rename = "Othr"))]
pub othr: SettlementFailsDailyTransactionType1Choice,
}
impl Validate for SettlementFailsDailyInstrument3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyTransactionType1Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity1Code>,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: Option<SettlementFailsDailyTransactionType3>,
}
impl Validate for SettlementFailsDailyTransactionType1Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsDailyTransactionType3 {
#[yaserde(rename = "SctiesBuyOrSell")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesBuyOrSell"))]
pub scties_buy_or_sell: SettlementFailsDailyCSD1Choice,
#[yaserde(rename = "CollMgmtOpr")]
#[cfg_attr(feature = "serde", serde(rename = "CollMgmtOpr"))]
pub coll_mgmt_opr: SettlementFailsDailyCSD1Choice,
#[yaserde(rename = "SctiesLndgOrBrrwg")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesLndgOrBrrwg"))]
pub scties_lndg_or_brrwg: SettlementFailsDailyCSD1Choice,
#[yaserde(rename = "RpAgrmt")]
#[cfg_attr(feature = "serde", serde(rename = "RpAgrmt"))]
pub rp_agrmt: SettlementFailsDailyCSD1Choice,
#[yaserde(rename = "Othr")]
#[cfg_attr(feature = "serde", serde(rename = "Othr"))]
pub othr: SettlementFailsDailyCSD1Choice,
}
impl Validate for SettlementFailsDailyTransactionType3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsData3 {
#[yaserde(rename = "Ttl")]
#[cfg_attr(feature = "serde", serde(rename = "Ttl"))]
pub ttl: SettlementTotalData1,
#[yaserde(rename = "PtcptInFail")]
#[cfg_attr(feature = "serde", serde(rename = "PtcptInFail"))]
pub ptcpt_in_fail: SettlementFailsParticipantRange1,
#[yaserde(rename = "FlsPerCcy")]
#[cfg_attr(feature = "serde", serde(rename = "FlsPerCcy"))]
pub fls_per_ccy: Vec<SettlementFailsCurrency2>,
#[yaserde(rename = "FlsPerFinInstrmTp")]
#[cfg_attr(feature = "serde", serde(rename = "FlsPerFinInstrmTp"))]
pub fls_per_fin_instrm_tp: SettlementFailsInstrument2,
#[yaserde(rename = "SctiesInFail")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesInFail"))]
pub scties_in_fail: SettlementFailsSecuritiesRange1,
#[yaserde(rename = "FlsPerTxTp")]
#[cfg_attr(feature = "serde", serde(rename = "FlsPerTxTp"))]
pub fls_per_tx_tp: SettlementFailsTransactionType2,
#[yaserde(rename = "TtlSttlmPnlties")]
#[cfg_attr(feature = "serde", serde(rename = "TtlSttlmPnlties"))]
pub ttl_sttlm_pnlties: SettlementDataVolume2,
#[yaserde(rename = "FailrRsn")]
#[cfg_attr(feature = "serde", serde(rename = "FailrRsn"))]
pub failr_rsn: SettlementFailureReason3,
}
impl Validate for SettlementFailsData3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsInstrument2 {
#[yaserde(rename = "Eqty")]
#[cfg_attr(feature = "serde", serde(rename = "Eqty"))]
pub eqty: SettlementTotalData1Choice,
#[yaserde(rename = "SvrgnDebt")]
#[cfg_attr(feature = "serde", serde(rename = "SvrgnDebt"))]
pub svrgn_debt: SettlementTotalData1Choice,
#[yaserde(rename = "Bd")]
#[cfg_attr(feature = "serde", serde(rename = "Bd"))]
pub bd: SettlementTotalData1Choice,
#[yaserde(rename = "OthrTrfblScties")]
#[cfg_attr(feature = "serde", serde(rename = "OthrTrfblScties"))]
pub othr_trfbl_scties: SettlementTotalData1Choice,
#[yaserde(rename = "XchgTraddFnds")]
#[cfg_attr(feature = "serde", serde(rename = "XchgTraddFnds"))]
pub xchg_tradd_fnds: SettlementTotalData1Choice,
#[yaserde(rename = "CllctvInvstmtUdrtkgs")]
#[cfg_attr(feature = "serde", serde(rename = "CllctvInvstmtUdrtkgs"))]
pub cllctv_invstmt_udrtkgs: SettlementTotalData1Choice,
#[yaserde(rename = "MnyMktInstrm")]
#[cfg_attr(feature = "serde", serde(rename = "MnyMktInstrm"))]
pub mny_mkt_instrm: SettlementTotalData1Choice,
#[yaserde(rename = "EmssnAllwnc")]
#[cfg_attr(feature = "serde", serde(rename = "EmssnAllwnc"))]
pub emssn_allwnc: SettlementTotalData1Choice,
#[yaserde(rename = "Othr")]
#[cfg_attr(feature = "serde", serde(rename = "Othr"))]
pub othr: SettlementTotalData1Choice,
}
impl Validate for SettlementFailsInstrument2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsMonthlyReportV01 {
#[yaserde(rename = "RptHdr")]
#[cfg_attr(feature = "serde", serde(rename = "RptHdr"))]
pub rpt_hdr: SettlementFailsReportHeader2,
#[yaserde(rename = "MnthlyAggt")]
#[cfg_attr(feature = "serde", serde(rename = "MnthlyAggt"))]
pub mnthly_aggt: SettlementFailsData3,
#[yaserde(rename = "DalyData")]
#[cfg_attr(feature = "serde", serde(rename = "DalyData"))]
pub daly_data: Vec<SettlementFailsDailyData3>,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for SettlementFailsMonthlyReportV01 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsParticipant1 {
#[yaserde(rename = "LEI")]
#[cfg_attr(feature = "serde", serde(rename = "LEI"))]
pub lei: Leiidentifier,
#[yaserde(rename = "Rank")]
#[cfg_attr(feature = "serde", serde(rename = "Rank"))]
pub rank: Max2NumericText,
#[yaserde(rename = "Aggt")]
#[cfg_attr(feature = "serde", serde(rename = "Aggt"))]
pub aggt: SettlementTotalData1,
}
impl Validate for SettlementFailsParticipant1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsParticipantRange1 {
#[yaserde(rename = "HghstInVol")]
#[cfg_attr(feature = "serde", serde(rename = "HghstInVol"))]
pub hghst_in_vol: Vec<SettlementFailsParticipant1>,
#[yaserde(rename = "HghstInVal")]
#[cfg_attr(feature = "serde", serde(rename = "HghstInVal"))]
pub hghst_in_val: Vec<SettlementFailsParticipant1>,
}
impl Validate for SettlementFailsParticipantRange1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsReportHeader2 {
#[yaserde(rename = "CreDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "CreDtTm"))]
pub cre_dt_tm: IsodateTime,
#[yaserde(rename = "RptgPrd")]
#[cfg_attr(feature = "serde", serde(rename = "RptgPrd"))]
pub rptg_prd: DatePeriod2,
#[yaserde(rename = "Ccy")]
#[cfg_attr(feature = "serde", serde(rename = "Ccy"))]
pub ccy: ActiveCurrencyCode,
#[yaserde(rename = "RptSts")]
#[cfg_attr(feature = "serde", serde(rename = "RptSts"))]
pub rpt_sts: TransactionOperationType4Code,
#[yaserde(rename = "SctiesSttlmSys")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesSttlmSys"))]
pub scties_sttlm_sys: SecuritiesSettlementSystemIdentification2,
}
impl Validate for SettlementFailsReportHeader2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsSecurities1 {
#[yaserde(rename = "FinInstrmId")]
#[cfg_attr(feature = "serde", serde(rename = "FinInstrmId"))]
pub fin_instrm_id: SecurityIdentification19,
#[yaserde(rename = "Rank")]
#[cfg_attr(feature = "serde", serde(rename = "Rank"))]
pub rank: Max2NumericText,
}
impl Validate for SettlementFailsSecurities1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsSecuritiesRange1 {
#[yaserde(rename = "HghstInVol")]
#[cfg_attr(feature = "serde", serde(rename = "HghstInVol"))]
pub hghst_in_vol: Vec<SettlementFailsSecurities1>,
#[yaserde(rename = "HghstInVal")]
#[cfg_attr(feature = "serde", serde(rename = "HghstInVal"))]
pub hghst_in_val: Vec<SettlementFailsSecurities1>,
}
impl Validate for SettlementFailsSecuritiesRange1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailsTransactionType2 {
#[yaserde(rename = "SctiesBuyOrSell")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesBuyOrSell"))]
pub scties_buy_or_sell: SettlementTotalData1Choice,
#[yaserde(rename = "CollMgmtOpr")]
#[cfg_attr(feature = "serde", serde(rename = "CollMgmtOpr"))]
pub coll_mgmt_opr: SettlementTotalData1Choice,
#[yaserde(rename = "SctiesLndgOrBrrwg")]
#[cfg_attr(feature = "serde", serde(rename = "SctiesLndgOrBrrwg"))]
pub scties_lndg_or_brrwg: SettlementTotalData1Choice,
#[yaserde(rename = "RpAgrmt")]
#[cfg_attr(feature = "serde", serde(rename = "RpAgrmt"))]
pub rp_agrmt: SettlementTotalData1Choice,
#[yaserde(rename = "Othr")]
#[cfg_attr(feature = "serde", serde(rename = "Othr"))]
pub othr: SettlementTotalData1Choice,
}
impl Validate for SettlementFailsTransactionType2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailureReason2 {
#[yaserde(rename = "MainRsns")]
#[cfg_attr(feature = "serde", serde(rename = "MainRsns"))]
pub main_rsns: Max2048Text,
#[yaserde(rename = "EffcncyImprvmt")]
#[cfg_attr(feature = "serde", serde(rename = "EffcncyImprvmt"))]
pub effcncy_imprvmt: Max2048Text,
}
impl Validate for SettlementFailureReason2 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementFailureReason3 {
#[yaserde(rename = "AvrgDrtn")]
#[cfg_attr(feature = "serde", serde(rename = "AvrgDrtn"))]
pub avrg_drtn: Max2Fraction1NonNegativeNumber,
#[yaserde(rename = "Desc")]
#[cfg_attr(feature = "serde", serde(rename = "Desc"))]
pub desc: Vec<SettlementFailureReason2>,
}
impl Validate for SettlementFailureReason3 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementTotalData1 {
#[yaserde(rename = "Sttld")]
#[cfg_attr(feature = "serde", serde(rename = "Sttld"))]
pub sttld: SettlementDataVolume2,
#[yaserde(rename = "Faild")]
#[cfg_attr(feature = "serde", serde(rename = "Faild"))]
pub faild: SettlementDataVolume2,
#[yaserde(rename = "Ttl")]
#[cfg_attr(feature = "serde", serde(rename = "Ttl"))]
pub ttl: SettlementDataVolume2,
#[yaserde(rename = "FaildRate")]
#[cfg_attr(feature = "serde", serde(rename = "FaildRate"))]
pub faild_rate: SettlementDataRate2,
}
impl Validate for SettlementTotalData1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SettlementTotalData1Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity1Code>,
#[yaserde(rename = "Data")]
#[cfg_attr(feature = "serde", serde(rename = "Data"))]
pub data: Option<SettlementTotalData1>,
}
impl Validate for SettlementTotalData1Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SupplementaryData1 {
#[yaserde(rename = "PlcAndNm")]
#[cfg_attr(feature = "serde", serde(rename = "PlcAndNm"))]
pub plc_and_nm: Max350Text,
#[yaserde(rename = "Envlp")]
#[cfg_attr(feature = "serde", serde(rename = "Envlp"))]
pub envlp: SupplementaryDataEnvelope1,
}
impl Validate for SupplementaryData1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub struct SupplementaryDataEnvelope1 {}
impl Validate for SupplementaryDataEnvelope1 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.100.001.01")]
pub enum TransactionOperationType4Code {
#[yaserde(rename = "NEWT")]
#[cfg_attr(feature = "serde", serde(rename = "NEWT"))]
Newt,
#[yaserde(rename = "AMND")]
#[cfg_attr(feature = "serde", serde(rename = "AMND"))]
Amnd,
#[yaserde(rename = "CANC")]
#[cfg_attr(feature = "serde", serde(rename = "CANC"))]
Canc,
__Unknown__(String),
}
impl Default for TransactionOperationType4Code {
fn default() -> TransactionOperationType4Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for TransactionOperationType4Code {}
impl crate::MxMessage for Document {
const BUSINESS_AREA: crate::BusinessArea = crate::BusinessArea::auth;
const FUNCTIONALITY: &'static str = "100";
const VARIANT: &'static str = "001";
const VERSION: &'static str = "01";
const MESSAGE_NAME: &'static str = "auth.100.001.01";
const NAMESPACE: &'static str = "urn:iso:std:iso:20022:tech:xsd:auth.100.001.01";
}