#![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:camt.018.001.05")]
pub struct BusinessDayCriteria2 {
#[yaserde(rename = "NewQryNm")]
#[cfg_attr(feature = "serde", serde(rename = "NewQryNm"))]
pub new_qry_nm: Max35Text,
#[yaserde(rename = "SchCrit")]
#[cfg_attr(feature = "serde", serde(rename = "SchCrit"))]
pub sch_crit: Vec<BusinessDaySearchCriteria2>,
#[yaserde(rename = "RtrCrit")]
#[cfg_attr(feature = "serde", serde(rename = "RtrCrit"))]
pub rtr_crit: BusinessDayReturnCriteria2,
}
impl Validate for BusinessDayCriteria2 {}
#[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:camt.018.001.05")]
pub struct BusinessDayCriteria3Choice {
#[yaserde(rename = "QryNm")]
#[cfg_attr(feature = "serde", serde(rename = "QryNm"))]
pub qry_nm: Option<Max35Text>,
#[yaserde(rename = "NewCrit")]
#[cfg_attr(feature = "serde", serde(rename = "NewCrit"))]
pub new_crit: Option<BusinessDayCriteria2>,
}
impl Validate for BusinessDayCriteria3Choice {}
#[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:camt.018.001.05")]
pub struct BusinessDayQuery2 {
#[yaserde(rename = "QryTp")]
#[cfg_attr(feature = "serde", serde(rename = "QryTp"))]
pub qry_tp: QueryType2Code,
#[yaserde(rename = "Crit")]
#[cfg_attr(feature = "serde", serde(rename = "Crit"))]
pub crit: BusinessDayCriteria3Choice,
}
impl Validate for BusinessDayQuery2 {}
#[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:camt.018.001.05")]
pub struct BusinessDayReturnCriteria2 {
#[yaserde(rename = "SysDtInd")]
#[cfg_attr(feature = "serde", serde(rename = "SysDtInd"))]
pub sys_dt_ind: RequestedIndicator,
#[yaserde(rename = "SysStsInd")]
#[cfg_attr(feature = "serde", serde(rename = "SysStsInd"))]
pub sys_sts_ind: RequestedIndicator,
#[yaserde(rename = "SysCcyInd")]
#[cfg_attr(feature = "serde", serde(rename = "SysCcyInd"))]
pub sys_ccy_ind: RequestedIndicator,
#[yaserde(rename = "ClsrPrdInd")]
#[cfg_attr(feature = "serde", serde(rename = "ClsrPrdInd"))]
pub clsr_prd_ind: RequestedIndicator,
#[yaserde(rename = "EvtInd")]
#[cfg_attr(feature = "serde", serde(rename = "EvtInd"))]
pub evt_ind: RequestedIndicator,
#[yaserde(rename = "SsnPrdInd")]
#[cfg_attr(feature = "serde", serde(rename = "SsnPrdInd"))]
pub ssn_prd_ind: RequestedIndicator,
#[yaserde(rename = "EvtTpInd")]
#[cfg_attr(feature = "serde", serde(rename = "EvtTpInd"))]
pub evt_tp_ind: RequestedIndicator,
}
impl Validate for BusinessDayReturnCriteria2 {}
#[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:camt.018.001.05")]
pub struct BusinessDaySearchCriteria2 {
#[yaserde(rename = "SysDt")]
#[cfg_attr(feature = "serde", serde(rename = "SysDt"))]
pub sys_dt: Isodate,
#[yaserde(rename = "SysId")]
#[cfg_attr(feature = "serde", serde(rename = "SysId"))]
pub sys_id: Vec<SystemIdentification2Choice>,
#[yaserde(rename = "SysCcy")]
#[cfg_attr(feature = "serde", serde(rename = "SysCcy"))]
pub sys_ccy: Vec<ActiveCurrencyCode>,
#[yaserde(rename = "EvtTp")]
#[cfg_attr(feature = "serde", serde(rename = "EvtTp"))]
pub evt_tp: SystemEventType2Choice,
#[yaserde(rename = "ClsrPrd")]
#[cfg_attr(feature = "serde", serde(rename = "ClsrPrd"))]
pub clsr_prd: DateTimePeriod1Choice,
}
impl Validate for BusinessDaySearchCriteria2 {}
#[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:camt.018.001.05")]
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:camt.018.001.05")]
pub struct DateTimePeriod1Choice {
#[yaserde(rename = "FrDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "FrDtTm"))]
pub fr_dt_tm: Option<IsodateTime>,
#[yaserde(rename = "ToDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "ToDtTm"))]
pub to_dt_tm: Option<IsodateTime>,
#[yaserde(rename = "DtTmRg")]
#[cfg_attr(feature = "serde", serde(rename = "DtTmRg"))]
pub dt_tm_rg: Option<DateTimePeriod1>,
}
impl Validate for DateTimePeriod1Choice {}
#[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:camt.018.001.05")]
pub struct Document {
#[yaserde(rename = "GetBizDayInf")]
#[cfg_attr(feature = "serde", serde(rename = "GetBizDayInf"))]
pub get_biz_day_inf: GetBusinessDayInformationV05,
}
impl Validate for Document {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ExternalEnquiryRequestType1Code (pub String);
crate::simple_type!(ExternalEnquiryRequestType1Code);
impl Validate for ExternalEnquiryRequestType1Code {
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 ExternalMarketInfrastructure1Code (pub String);
crate::simple_type!(ExternalMarketInfrastructure1Code);
impl Validate for ExternalMarketInfrastructure1Code {
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() > 3 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 3 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ExternalPaymentControlRequestType1Code (pub String);
crate::simple_type!(ExternalPaymentControlRequestType1Code);
impl Validate for ExternalPaymentControlRequestType1Code {
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, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:camt.018.001.05")]
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, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:camt.018.001.05")]
pub struct GetBusinessDayInformationV05 {
#[yaserde(rename = "MsgHdr")]
#[cfg_attr(feature = "serde", serde(rename = "MsgHdr"))]
pub msg_hdr: MessageHeader9,
#[yaserde(rename = "BizDayInfQryDef")]
#[cfg_attr(feature = "serde", serde(rename = "BizDayInfQryDef"))]
pub biz_day_inf_qry_def: BusinessDayQuery2,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for GetBusinessDayInformationV05 {}
#[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:camt.018.001.05")]
pub struct MarketInfrastructureIdentification1Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<ExternalMarketInfrastructure1Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for MarketInfrastructureIdentification1Choice {}
#[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:camt.018.001.05")]
pub struct MessageHeader9 {
#[yaserde(rename = "MsgId")]
#[cfg_attr(feature = "serde", serde(rename = "MsgId"))]
pub msg_id: Max35Text,
#[yaserde(rename = "CreDtTm")]
#[cfg_attr(feature = "serde", serde(rename = "CreDtTm"))]
pub cre_dt_tm: IsodateTime,
#[yaserde(rename = "ReqTp")]
#[cfg_attr(feature = "serde", serde(rename = "ReqTp"))]
pub req_tp: RequestType4Choice,
}
impl Validate for MessageHeader9 {}
#[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:camt.018.001.05")]
pub enum QueryType2Code {
#[yaserde(rename = "ALLL")]
#[cfg_attr(feature = "serde", serde(rename = "ALLL"))]
Alll,
#[yaserde(rename = "CHNG")]
#[cfg_attr(feature = "serde", serde(rename = "CHNG"))]
Chng,
#[yaserde(rename = "MODF")]
#[cfg_attr(feature = "serde", serde(rename = "MODF"))]
Modf,
#[yaserde(rename = "DELD")]
#[cfg_attr(feature = "serde", serde(rename = "DELD"))]
Deld,
__Unknown__(String),
}
impl Default for QueryType2Code {
fn default() -> QueryType2Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for QueryType2Code {}
#[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:camt.018.001.05")]
pub struct RequestType4Choice {
#[yaserde(rename = "PmtCtrl")]
#[cfg_attr(feature = "serde", serde(rename = "PmtCtrl"))]
pub pmt_ctrl: Option<ExternalPaymentControlRequestType1Code>,
#[yaserde(rename = "Enqry")]
#[cfg_attr(feature = "serde", serde(rename = "Enqry"))]
pub enqry: Option<ExternalEnquiryRequestType1Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<GenericIdentification1>,
}
impl Validate for RequestType4Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct RequestedIndicator (pub bool);
crate::simple_type!(RequestedIndicator);
impl Validate for RequestedIndicator {}
#[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:camt.018.001.05")]
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:camt.018.001.05")]
pub struct SupplementaryDataEnvelope1 {}
impl Validate for SupplementaryDataEnvelope1 {}
#[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:camt.018.001.05")]
pub struct SystemEventType2Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<SystemEventType2Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<GenericIdentification1>,
}
impl Validate for SystemEventType2Choice {}
#[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:camt.018.001.05")]
pub enum SystemEventType2Code {
#[yaserde(rename = "LVCO")]
#[cfg_attr(feature = "serde", serde(rename = "LVCO"))]
Lvco,
#[yaserde(rename = "LVCC")]
#[cfg_attr(feature = "serde", serde(rename = "LVCC"))]
Lvcc,
#[yaserde(rename = "LVRT")]
#[cfg_attr(feature = "serde", serde(rename = "LVRT"))]
Lvrt,
#[yaserde(rename = "EUSU")]
#[cfg_attr(feature = "serde", serde(rename = "EUSU"))]
Eusu,
#[yaserde(rename = "STSU")]
#[cfg_attr(feature = "serde", serde(rename = "STSU"))]
Stsu,
#[yaserde(rename = "LWSU")]
#[cfg_attr(feature = "serde", serde(rename = "LWSU"))]
Lwsu,
#[yaserde(rename = "EUCO")]
#[cfg_attr(feature = "serde", serde(rename = "EUCO"))]
Euco,
#[yaserde(rename = "FIRE")]
#[cfg_attr(feature = "serde", serde(rename = "FIRE"))]
Fire,
#[yaserde(rename = "STDY")]
#[cfg_attr(feature = "serde", serde(rename = "STDY"))]
Stdy,
#[yaserde(rename = "LTNC")]
#[cfg_attr(feature = "serde", serde(rename = "LTNC"))]
Ltnc,
#[yaserde(rename = "CRCO")]
#[cfg_attr(feature = "serde", serde(rename = "CRCO"))]
Crco,
#[yaserde(rename = "RECC")]
#[cfg_attr(feature = "serde", serde(rename = "RECC"))]
Recc,
#[yaserde(rename = "LTGC")]
#[cfg_attr(feature = "serde", serde(rename = "LTGC"))]
Ltgc,
#[yaserde(rename = "LTDC")]
#[cfg_attr(feature = "serde", serde(rename = "LTDC"))]
Ltdc,
#[yaserde(rename = "CUSC")]
#[cfg_attr(feature = "serde", serde(rename = "CUSC"))]
Cusc,
#[yaserde(rename = "IBKC")]
#[cfg_attr(feature = "serde", serde(rename = "IBKC"))]
Ibkc,
#[yaserde(rename = "SYSC")]
#[cfg_attr(feature = "serde", serde(rename = "SYSC"))]
Sysc,
#[yaserde(rename = "SSSC")]
#[cfg_attr(feature = "serde", serde(rename = "SSSC"))]
Sssc,
#[yaserde(rename = "REOP")]
#[cfg_attr(feature = "serde", serde(rename = "REOP"))]
Reop,
#[yaserde(rename = "PCOT")]
#[cfg_attr(feature = "serde", serde(rename = "PCOT"))]
Pcot,
#[yaserde(rename = "NPCT")]
#[cfg_attr(feature = "serde", serde(rename = "NPCT"))]
Npct,
#[yaserde(rename = "ESTF")]
#[cfg_attr(feature = "serde", serde(rename = "ESTF"))]
Estf,
__Unknown__(String),
}
impl Default for SystemEventType2Code {
fn default() -> SystemEventType2Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for SystemEventType2Code {}
#[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:camt.018.001.05")]
pub struct SystemIdentification2Choice {
#[yaserde(rename = "MktInfrstrctrId")]
#[cfg_attr(feature = "serde", serde(rename = "MktInfrstrctrId"))]
pub mkt_infrstrctr_id: Option<MarketInfrastructureIdentification1Choice>,
#[yaserde(rename = "Ctry")]
#[cfg_attr(feature = "serde", serde(rename = "Ctry"))]
pub ctry: Option<CountryCode>,
}
impl Validate for SystemIdentification2Choice {}
impl crate::MxMessage for Document {
const BUSINESS_AREA: crate::BusinessArea = crate::BusinessArea::camt;
const FUNCTIONALITY: &'static str = "018";
const VARIANT: &'static str = "001";
const VERSION: &'static str = "05";
const MESSAGE_NAME: &'static str = "camt.018.001.05";
const NAMESPACE: &'static str = "urn:iso:std:iso:20022:tech:xsd:camt.018.001.05";
}