#![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, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:fxtr.038.001.02")]
pub struct AdditionalInformation5 {
#[yaserde(rename = "Inf")]
#[cfg_attr(feature = "serde", serde(rename = "Inf"))]
pub inf: Vec<Max256Text>,
}
impl Validate for AdditionalInformation5 {}
#[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:fxtr.038.001.02")]
pub enum AffirmStatus1Code {
#[yaserde(rename = "ATCN")]
#[cfg_attr(feature = "serde", serde(rename = "ATCN"))]
Atcn,
#[yaserde(rename = "ATSC")]
#[cfg_attr(feature = "serde", serde(rename = "ATSC"))]
Atsc,
#[yaserde(rename = "COMP")]
#[cfg_attr(feature = "serde", serde(rename = "COMP"))]
Comp,
#[yaserde(rename = "MISM")]
#[cfg_attr(feature = "serde", serde(rename = "MISM"))]
Mism,
#[yaserde(rename = "MISE")]
#[cfg_attr(feature = "serde", serde(rename = "MISE"))]
Mise,
#[yaserde(rename = "NOTP")]
#[cfg_attr(feature = "serde", serde(rename = "NOTP"))]
Notp,
#[yaserde(rename = "OUOR")]
#[cfg_attr(feature = "serde", serde(rename = "OUOR"))]
Ouor,
#[yaserde(rename = "OUOS")]
#[cfg_attr(feature = "serde", serde(rename = "OUOS"))]
Ouos,
#[yaserde(rename = "RECE")]
#[cfg_attr(feature = "serde", serde(rename = "RECE"))]
Rece,
#[yaserde(rename = "UNRE")]
#[cfg_attr(feature = "serde", serde(rename = "UNRE"))]
Unre,
__Unknown__(String),
}
impl Default for AffirmStatus1Code {
fn default() -> AffirmStatus1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for AffirmStatus1Code {}
#[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:fxtr.038.001.02")]
pub struct Document {
#[yaserde(rename = "FXTradConfStsAdvcAck")]
#[cfg_attr(feature = "serde", serde(rename = "FXTradConfStsAdvcAck"))]
pub fx_trad_conf_sts_advc_ack: ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV02,
}
impl Validate for Document {}
#[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:fxtr.038.001.02")]
pub struct ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV02 {
#[yaserde(rename = "AdvcAckId")]
#[cfg_attr(feature = "serde", serde(rename = "AdvcAckId"))]
pub advc_ack_id: MessageIdentification1,
#[yaserde(rename = "ReqId")]
#[cfg_attr(feature = "serde", serde(rename = "ReqId"))]
pub req_id: MessageIdentification1,
#[yaserde(rename = "TradDt")]
#[cfg_attr(feature = "serde", serde(rename = "TradDt"))]
pub trad_dt: Isodate,
#[yaserde(rename = "TradId")]
#[cfg_attr(feature = "serde", serde(rename = "TradId"))]
pub trad_id: Max35Text,
#[yaserde(rename = "TradgMd")]
#[cfg_attr(feature = "serde", serde(rename = "TradgMd"))]
pub tradg_md: TradingModeType1Code,
#[yaserde(rename = "AffirmSts")]
#[cfg_attr(feature = "serde", serde(rename = "AffirmSts"))]
pub affirm_sts: AffirmStatus1Code,
#[yaserde(rename = "ConfSts")]
#[cfg_attr(feature = "serde", serde(rename = "ConfSts"))]
pub conf_sts: TradeConfirmationStatus1Code,
#[yaserde(rename = "MktId")]
#[cfg_attr(feature = "serde", serde(rename = "MktId"))]
pub mkt_id: MarketIdentification88,
#[yaserde(rename = "AddtlInf")]
#[cfg_attr(feature = "serde", serde(rename = "AddtlInf"))]
pub addtl_inf: AdditionalInformation5,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV02 {}
#[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:fxtr.038.001.02")]
pub struct GenericIdentification1 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: Max35Text,
#[yaserde(rename = "SchmeNm")]
#[cfg_attr(feature = "serde", serde(rename = "SchmeNm"))]
pub schme_nm: Max35Text,
#[yaserde(rename = "Issr")]
#[cfg_attr(feature = "serde", serde(rename = "Issr"))]
pub issr: Max35Text,
}
impl Validate for GenericIdentification1 {}
#[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)]
pub struct Micidentifier (pub String);
crate::simple_type!(Micidentifier);
impl Validate for Micidentifier {}
#[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:fxtr.038.001.02")]
pub struct MarketIdentification1Choice {
#[yaserde(rename = "MktIdrCd")]
#[cfg_attr(feature = "serde", serde(rename = "MktIdrCd"))]
pub mkt_idr_cd: Option<Micidentifier>,
#[yaserde(rename = "Desc")]
#[cfg_attr(feature = "serde", serde(rename = "Desc"))]
pub desc: Option<Max35Text>,
}
impl Validate for MarketIdentification1Choice {}
#[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:fxtr.038.001.02")]
pub struct MarketIdentification88 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: MarketIdentification1Choice,
#[yaserde(rename = "Tp")]
#[cfg_attr(feature = "serde", serde(rename = "Tp"))]
pub tp: MarketType13Choice,
}
impl Validate for MarketIdentification88 {}
#[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:fxtr.038.001.02")]
pub struct MarketType13Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<MarketType8Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<GenericIdentification1>,
}
impl Validate for MarketType13Choice {}
#[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:fxtr.038.001.02")]
pub enum MarketType8Code {
#[yaserde(rename = "COUN")]
#[cfg_attr(feature = "serde", serde(rename = "COUN"))]
Coun,
#[yaserde(rename = "INBA")]
#[cfg_attr(feature = "serde", serde(rename = "INBA"))]
Inba,
#[yaserde(rename = "OTCO")]
#[cfg_attr(feature = "serde", serde(rename = "OTCO"))]
Otco,
#[yaserde(rename = "PRIM")]
#[cfg_attr(feature = "serde", serde(rename = "PRIM"))]
Prim,
#[yaserde(rename = "SECM")]
#[cfg_attr(feature = "serde", serde(rename = "SECM"))]
Secm,
#[yaserde(rename = "EXCH")]
#[cfg_attr(feature = "serde", serde(rename = "EXCH"))]
Exch,
#[yaserde(rename = "VARI")]
#[cfg_attr(feature = "serde", serde(rename = "VARI"))]
Vari,
__Unknown__(String),
}
impl Default for MarketType8Code {
fn default() -> MarketType8Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for MarketType8Code {}
#[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 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:fxtr.038.001.02")]
pub struct MessageIdentification1 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: Max35Text,
#[yaserde(rename = "CreDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "CreDtTm"))]
pub cre_dt_tm: IsodateTime,
}
impl Validate for MessageIdentification1 {}
#[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:fxtr.038.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:fxtr.038.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:fxtr.038.001.02")]
pub enum TradeConfirmationStatus1Code {
#[yaserde(rename = "ALST")]
#[cfg_attr(feature = "serde", serde(rename = "ALST"))]
Alst,
#[yaserde(rename = "CONF")]
#[cfg_attr(feature = "serde", serde(rename = "CONF"))]
Conf,
#[yaserde(rename = "DISA")]
#[cfg_attr(feature = "serde", serde(rename = "DISA"))]
Disa,
#[yaserde(rename = "EMCN")]
#[cfg_attr(feature = "serde", serde(rename = "EMCN"))]
Emcn,
#[yaserde(rename = "MISM")]
#[cfg_attr(feature = "serde", serde(rename = "MISM"))]
Mism,
#[yaserde(rename = "SCCN")]
#[cfg_attr(feature = "serde", serde(rename = "SCCN"))]
Sccn,
#[yaserde(rename = "SNCC")]
#[cfg_attr(feature = "serde", serde(rename = "SNCC"))]
Sncc,
#[yaserde(rename = "SNCN")]
#[cfg_attr(feature = "serde", serde(rename = "SNCN"))]
Sncn,
#[yaserde(rename = "UNCN")]
#[cfg_attr(feature = "serde", serde(rename = "UNCN"))]
Uncn,
__Unknown__(String),
}
impl Default for TradeConfirmationStatus1Code {
fn default() -> TradeConfirmationStatus1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for TradeConfirmationStatus1Code {}
#[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:fxtr.038.001.02")]
pub enum TradingModeType1Code {
#[yaserde(rename = "QUDR")]
#[cfg_attr(feature = "serde", serde(rename = "QUDR"))]
Qudr,
#[yaserde(rename = "ORDR")]
#[cfg_attr(feature = "serde", serde(rename = "ORDR"))]
Ordr,
#[yaserde(rename = "NETR")]
#[cfg_attr(feature = "serde", serde(rename = "NETR"))]
Netr,
#[yaserde(rename = "AUCT")]
#[cfg_attr(feature = "serde", serde(rename = "AUCT"))]
Auct,
#[yaserde(rename = "MARC")]
#[cfg_attr(feature = "serde", serde(rename = "MARC"))]
Marc,
#[yaserde(rename = "BILA")]
#[cfg_attr(feature = "serde", serde(rename = "BILA"))]
Bila,
#[yaserde(rename = "ANON")]
#[cfg_attr(feature = "serde", serde(rename = "ANON"))]
Anon,
__Unknown__(String),
}
impl Default for TradingModeType1Code {
fn default() -> TradingModeType1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for TradingModeType1Code {}
impl crate::MxMessage for Document {
const BUSINESS_AREA: crate::BusinessArea = crate::BusinessArea::fxtr;
const FUNCTIONALITY: &'static str = "038";
const VARIANT: &'static str = "001";
const VERSION: &'static str = "02";
const MESSAGE_NAME: &'static str = "fxtr.038.001.02";
const NAMESPACE: &'static str = "urn:iso:std:iso:20022:tech:xsd:fxtr.038.001.02";
}