#![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 ActiveCurrencyAndAmountSimpleType (pub String);
crate::simple_type!(ActiveCurrencyAndAmountSimpleType);
impl Validate for ActiveCurrencyAndAmountSimpleType {
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, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.013.001.02")]
pub struct ActiveCurrencyAndAmount {
#[yaserde(text)]
pub value: String,
#[yaserde(attribute, rename = "Ccy")]
#[cfg_attr(feature = "serde", serde(rename = "Ccy"))]
pub ccy: ActiveCurrencyCode,
}
impl Validate for ActiveCurrencyAndAmount {}
#[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(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.013.001.02")]
pub enum BrokeredDeal1Code {
#[yaserde(rename = "BILA")]
#[cfg_attr(feature = "serde", serde(rename = "BILA"))]
Bila,
#[yaserde(rename = "BROK")]
#[cfg_attr(feature = "serde", serde(rename = "BROK"))]
Brok,
__Unknown__(String),
}
impl Default for BrokeredDeal1Code {
fn default() -> BrokeredDeal1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for BrokeredDeal1Code {}
#[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.013.001.02")]
pub struct CounterpartyIdentification3Choice {
#[yaserde(rename = "LEI")]
#[cfg_attr(feature = "serde", serde(rename = "LEI"))]
pub lei: Option<Leiidentifier>,
#[yaserde(rename = "SctrAndLctn")]
#[cfg_attr(feature = "serde", serde(rename = "SctrAndLctn"))]
pub sctr_and_lctn: Option<SectorAndLocation1>,
#[yaserde(rename = "NmAndLctn")]
#[cfg_attr(feature = "serde", serde(rename = "NmAndLctn"))]
pub nm_and_lctn: Option<NameAndLocation1>,
}
impl Validate for CounterpartyIdentification3Choice {}
#[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.013.001.02")]
pub struct DateAndDateTimeChoice {
#[yaserde(rename = "Dt")]
#[cfg_attr(feature = "serde", serde(rename = "Dt"))]
pub dt: Option<Isodate>,
#[yaserde(rename = "DtTm")]
#[cfg_attr(feature = "serde", serde(rename = "DtTm"))]
pub dt_tm: Option<IsodateTime>,
}
impl Validate for DateAndDateTimeChoice {}
#[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.013.001.02")]
pub struct DateTimePeriod1 {
#[yaserde(rename = "FrDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "FrDtTm"))]
pub fr_dt_tm: IsodateTime,
#[yaserde(rename = "ToDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "ToDtTm"))]
pub to_dt_tm: IsodateTime,
}
impl Validate for DateTimePeriod1 {}
#[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.013.001.02")]
pub struct Document {
#[yaserde(rename = "MnyMktUscrdMktSttstclRpt")]
#[cfg_attr(feature = "serde", serde(rename = "MnyMktUscrdMktSttstclRpt"))]
pub mny_mkt_uscrd_mkt_sttstcl_rpt: MoneyMarketUnsecuredMarketStatisticalReportV02,
}
impl Validate for Document {}
#[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.013.001.02")]
pub enum FinancialInstrumentProductType1Code {
#[yaserde(rename = "CEOD")]
#[cfg_attr(feature = "serde", serde(rename = "CEOD"))]
Ceod,
#[yaserde(rename = "COPR")]
#[cfg_attr(feature = "serde", serde(rename = "COPR"))]
Copr,
#[yaserde(rename = "OTHR")]
#[cfg_attr(feature = "serde", serde(rename = "OTHR"))]
Othr,
#[yaserde(rename = "ABCP")]
#[cfg_attr(feature = "serde", serde(rename = "ABCP"))]
Abcp,
#[yaserde(rename = "FRNT")]
#[cfg_attr(feature = "serde", serde(rename = "FRNT"))]
Frnt,
#[yaserde(rename = "CACM")]
#[cfg_attr(feature = "serde", serde(rename = "CACM"))]
Cacm,
#[yaserde(rename = "DPST")]
#[cfg_attr(feature = "serde", serde(rename = "DPST"))]
Dpst,
__Unknown__(String),
}
impl Default for FinancialInstrumentProductType1Code {
fn default() -> FinancialInstrumentProductType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for FinancialInstrumentProductType1Code {}
#[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.013.001.02")]
pub struct FloatingRateNote2 {
#[yaserde(rename = "RefRateIndx")]
#[cfg_attr(feature = "serde", serde(rename = "RefRateIndx"))]
pub ref_rate_indx: Isinoct2015Identifier,
#[yaserde(rename = "BsisPtSprd")]
#[cfg_attr(feature = "serde", serde(rename = "BsisPtSprd"))]
pub bsis_pt_sprd: Number,
}
impl Validate for FloatingRateNote2 {}
#[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(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.013.001.02")]
pub enum InterestRateType1Code {
#[yaserde(rename = "FIXE")]
#[cfg_attr(feature = "serde", serde(rename = "FIXE"))]
Fixe,
#[yaserde(rename = "VARI")]
#[cfg_attr(feature = "serde", serde(rename = "VARI"))]
Vari,
__Unknown__(String),
}
impl Default for InterestRateType1Code {
fn default() -> InterestRateType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for InterestRateType1Code {}
#[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 Max105Text (pub String);
crate::simple_type!(Max105Text);
impl Validate for Max105Text {
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() > 105 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 105 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[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 Max70Text (pub String);
crate::simple_type!(Max70Text);
impl Validate for Max70Text {
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() > 70 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 70 \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.013.001.02")]
pub struct MoneyMarketReportHeader1 {
#[yaserde(rename = "RptgAgt")]
#[cfg_attr(feature = "serde", serde(rename = "RptgAgt"))]
pub rptg_agt: Leiidentifier,
#[yaserde(rename = "RefPrd")]
#[cfg_attr(feature = "serde", serde(rename = "RefPrd"))]
pub ref_prd: DateTimePeriod1,
}
impl Validate for MoneyMarketReportHeader1 {}
#[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.013.001.02")]
pub enum MoneyMarketTransactionType1Code {
#[yaserde(rename = "BORR")]
#[cfg_attr(feature = "serde", serde(rename = "BORR"))]
Borr,
#[yaserde(rename = "LEND")]
#[cfg_attr(feature = "serde", serde(rename = "LEND"))]
Lend,
__Unknown__(String),
}
impl Default for MoneyMarketTransactionType1Code {
fn default() -> MoneyMarketTransactionType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for MoneyMarketTransactionType1Code {}
#[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.013.001.02")]
pub struct MoneyMarketUnsecuredMarketStatisticalReportV02 {
#[yaserde(rename = "RptHdr")]
#[cfg_attr(feature = "serde", serde(rename = "RptHdr"))]
pub rpt_hdr: MoneyMarketReportHeader1,
#[yaserde(rename = "UscrdMktRpt")]
#[cfg_attr(feature = "serde", serde(rename = "UscrdMktRpt"))]
pub uscrd_mkt_rpt: UnsecuredMarketReport4Choice,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for MoneyMarketUnsecuredMarketStatisticalReportV02 {}
#[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.013.001.02")]
pub struct NameAndLocation1 {
#[yaserde(rename = "Nm")]
#[cfg_attr(feature = "serde", serde(rename = "Nm"))]
pub nm: Max70Text,
#[yaserde(rename = "Lctn")]
#[cfg_attr(feature = "serde", serde(rename = "Lctn"))]
pub lctn: CountryCode,
}
impl Validate for NameAndLocation1 {}
#[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.013.001.02")]
pub enum NovationStatus1Code {
#[yaserde(rename = "NONO")]
#[cfg_attr(feature = "serde", serde(rename = "NONO"))]
Nono,
#[yaserde(rename = "NOVA")]
#[cfg_attr(feature = "serde", serde(rename = "NOVA"))]
Nova,
__Unknown__(String),
}
impl Default for NovationStatus1Code {
fn default() -> NovationStatus1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for NovationStatus1Code {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Number (pub String);
crate::simple_type!(Number);
impl Validate for Number {}
#[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.013.001.02")]
pub struct Option12 {
#[yaserde(rename = "Tp")]
#[cfg_attr(feature = "serde", serde(rename = "Tp"))]
pub tp: OptionType1Code,
#[yaserde(rename = "DtOrPrd")]
#[cfg_attr(feature = "serde", serde(rename = "DtOrPrd"))]
pub dt_or_prd: OptionDateOrPeriod1Choice,
}
impl Validate for Option12 {}
#[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.013.001.02")]
pub struct OptionDateOrPeriod1Choice {
#[yaserde(rename = "EarlstExrcDt")]
#[cfg_attr(feature = "serde", serde(rename = "EarlstExrcDt"))]
pub earlst_exrc_dt: Option<Isodate>,
#[yaserde(rename = "NtcePrd")]
#[cfg_attr(feature = "serde", serde(rename = "NtcePrd"))]
pub ntce_prd: Option<Number>,
}
impl Validate for OptionDateOrPeriod1Choice {}
#[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.013.001.02")]
pub enum OptionType1Code {
#[yaserde(rename = "CALL")]
#[cfg_attr(feature = "serde", serde(rename = "CALL"))]
Call,
#[yaserde(rename = "PUTO")]
#[cfg_attr(feature = "serde", serde(rename = "PUTO"))]
Puto,
__Unknown__(String),
}
impl Default for OptionType1Code {
fn default() -> OptionType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for OptionType1Code {}
#[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(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:auth.013.001.02")]
pub enum ReportPeriodActivity3Code {
#[yaserde(rename = "NOTX")]
#[cfg_attr(feature = "serde", serde(rename = "NOTX"))]
Notx,
#[yaserde(rename = "NORA")]
#[cfg_attr(feature = "serde", serde(rename = "NORA"))]
Nora,
__Unknown__(String),
}
impl Default for ReportPeriodActivity3Code {
fn default() -> ReportPeriodActivity3Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for ReportPeriodActivity3Code {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Sna2008SectorIdentifier (pub String);
crate::simple_type!(Sna2008SectorIdentifier);
impl Validate for Sna2008SectorIdentifier {}
#[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.013.001.02")]
pub struct SectorAndLocation1 {
#[yaserde(rename = "Sctr")]
#[cfg_attr(feature = "serde", serde(rename = "Sctr"))]
pub sctr: Sna2008SectorIdentifier,
#[yaserde(rename = "Lctn")]
#[cfg_attr(feature = "serde", serde(rename = "Lctn"))]
pub lctn: CountryCode,
}
impl Validate for SectorAndLocation1 {}
#[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.013.001.02")]
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.013.001.02")]
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.013.001.02")]
pub enum TransactionOperationType1Code {
#[yaserde(rename = "AMND")]
#[cfg_attr(feature = "serde", serde(rename = "AMND"))]
Amnd,
#[yaserde(rename = "CANC")]
#[cfg_attr(feature = "serde", serde(rename = "CANC"))]
Canc,
#[yaserde(rename = "CORR")]
#[cfg_attr(feature = "serde", serde(rename = "CORR"))]
Corr,
#[yaserde(rename = "NEWT")]
#[cfg_attr(feature = "serde", serde(rename = "NEWT"))]
Newt,
__Unknown__(String),
}
impl Default for TransactionOperationType1Code {
fn default() -> TransactionOperationType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for TransactionOperationType1Code {}
#[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.013.001.02")]
pub struct UnsecuredMarketReport4Choice {
#[yaserde(rename = "DataSetActn")]
#[cfg_attr(feature = "serde", serde(rename = "DataSetActn"))]
pub data_set_actn: Option<ReportPeriodActivity3Code>,
#[yaserde(rename = "Tx")]
#[cfg_attr(feature = "serde", serde(rename = "Tx"))]
pub tx: Vec<UnsecuredMarketTransaction4>,
}
impl Validate for UnsecuredMarketReport4Choice {}
#[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.013.001.02")]
pub struct UnsecuredMarketTransaction4 {
#[yaserde(rename = "RptdTxSts")]
#[cfg_attr(feature = "serde", serde(rename = "RptdTxSts"))]
pub rptd_tx_sts: TransactionOperationType1Code,
#[yaserde(rename = "NvtnSts")]
#[cfg_attr(feature = "serde", serde(rename = "NvtnSts"))]
pub nvtn_sts: NovationStatus1Code,
#[yaserde(rename = "BrnchId")]
#[cfg_attr(feature = "serde", serde(rename = "BrnchId"))]
pub brnch_id: Leiidentifier,
#[yaserde(rename = "UnqTxIdr")]
#[cfg_attr(feature = "serde", serde(rename = "UnqTxIdr"))]
pub unq_tx_idr: Max105Text,
#[yaserde(rename = "PrtryTxId")]
#[cfg_attr(feature = "serde", serde(rename = "PrtryTxId"))]
pub prtry_tx_id: Max105Text,
#[yaserde(rename = "RltdPrtryTxId")]
#[cfg_attr(feature = "serde", serde(rename = "RltdPrtryTxId"))]
pub rltd_prtry_tx_id: Max105Text,
#[yaserde(rename = "CtrPtyPrtryTxId")]
#[cfg_attr(feature = "serde", serde(rename = "CtrPtyPrtryTxId"))]
pub ctr_pty_prtry_tx_id: Max105Text,
#[yaserde(rename = "CtrPtyId")]
#[cfg_attr(feature = "serde", serde(rename = "CtrPtyId"))]
pub ctr_pty_id: CounterpartyIdentification3Choice,
#[yaserde(rename = "TradDt")]
#[cfg_attr(feature = "serde", serde(rename = "TradDt"))]
pub trad_dt: DateAndDateTimeChoice,
#[yaserde(rename = "SttlmDt")]
#[cfg_attr(feature = "serde", serde(rename = "SttlmDt"))]
pub sttlm_dt: Isodate,
#[yaserde(rename = "MtrtyDt")]
#[cfg_attr(feature = "serde", serde(rename = "MtrtyDt"))]
pub mtrty_dt: Isodate,
#[yaserde(rename = "TxTp")]
#[cfg_attr(feature = "serde", serde(rename = "TxTp"))]
pub tx_tp: MoneyMarketTransactionType1Code,
#[yaserde(rename = "InstrmTp")]
#[cfg_attr(feature = "serde", serde(rename = "InstrmTp"))]
pub instrm_tp: FinancialInstrumentProductType1Code,
#[yaserde(rename = "TxNmnlAmt")]
#[cfg_attr(feature = "serde", serde(rename = "TxNmnlAmt"))]
pub tx_nmnl_amt: ActiveCurrencyAndAmount,
#[yaserde(rename = "DealPric")]
#[cfg_attr(feature = "serde", serde(rename = "DealPric"))]
pub deal_pric: PercentageRate,
#[yaserde(rename = "RateTp")]
#[cfg_attr(feature = "serde", serde(rename = "RateTp"))]
pub rate_tp: InterestRateType1Code,
#[yaserde(rename = "DealRate")]
#[cfg_attr(feature = "serde", serde(rename = "DealRate"))]
pub deal_rate: PercentageRate,
#[yaserde(rename = "FltgRateNote")]
#[cfg_attr(feature = "serde", serde(rename = "FltgRateNote"))]
pub fltg_rate_note: FloatingRateNote2,
#[yaserde(rename = "BrkrdDeal")]
#[cfg_attr(feature = "serde", serde(rename = "BrkrdDeal"))]
pub brkrd_deal: BrokeredDeal1Code,
#[yaserde(rename = "CallPutOptn")]
#[cfg_attr(feature = "serde", serde(rename = "CallPutOptn"))]
pub call_put_optn: Vec<Option12>,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for UnsecuredMarketTransaction4 {}
impl crate::MxMessage for Document {
const BUSINESS_AREA: crate::BusinessArea = crate::BusinessArea::auth;
const FUNCTIONALITY: &'static str = "013";
const VARIANT: &'static str = "001";
const VERSION: &'static str = "02";
const MESSAGE_NAME: &'static str = "auth.013.001.02";
const NAMESPACE: &'static str = "urn:iso:std:iso:20022:tech:xsd:auth.013.001.02";
}