#![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(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:camt.007.001.10")]
pub enum AddressType2Code {
#[yaserde(rename = "ADDR")]
#[cfg_attr(feature = "serde", serde(rename = "ADDR"))]
Addr,
#[yaserde(rename = "PBOX")]
#[cfg_attr(feature = "serde", serde(rename = "PBOX"))]
Pbox,
#[yaserde(rename = "HOME")]
#[cfg_attr(feature = "serde", serde(rename = "HOME"))]
Home,
#[yaserde(rename = "BIZZ")]
#[cfg_attr(feature = "serde", serde(rename = "BIZZ"))]
Bizz,
#[yaserde(rename = "MLTO")]
#[cfg_attr(feature = "serde", serde(rename = "MLTO"))]
Mlto,
#[yaserde(rename = "DLVY")]
#[cfg_attr(feature = "serde", serde(rename = "DLVY"))]
Dlvy,
__Unknown__(String),
}
impl Default for AddressType2Code {
fn default() -> AddressType2Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for AddressType2Code {}
#[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.007.001.10")]
pub struct AddressType3Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<AddressType2Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<GenericIdentification30>,
}
impl Validate for AddressType3Choice {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Bicfidec2014Identifier (pub String);
crate::simple_type!(Bicfidec2014Identifier);
impl Validate for Bicfidec2014Identifier {}
#[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.007.001.10")]
pub struct BranchAndFinancialInstitutionIdentification8 {
#[yaserde(rename = "FinInstnId")]
#[cfg_attr(feature = "serde", serde(rename = "FinInstnId"))]
pub fin_instn_id: FinancialInstitutionIdentification23,
#[yaserde(rename = "BrnchId")]
#[cfg_attr(feature = "serde", serde(rename = "BrnchId"))]
pub brnch_id: BranchData5,
}
impl Validate for BranchAndFinancialInstitutionIdentification8 {}
#[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.007.001.10")]
pub struct BranchData5 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: Max35Text,
#[yaserde(rename = "LEI")]
#[cfg_attr(feature = "serde", serde(rename = "LEI"))]
pub lei: Leiidentifier,
#[yaserde(rename = "Nm")]
#[cfg_attr(feature = "serde", serde(rename = "Nm"))]
pub nm: Max140Text,
#[yaserde(rename = "PstlAdr")]
#[cfg_attr(feature = "serde", serde(rename = "PstlAdr"))]
pub pstl_adr: PostalAddress27,
}
impl Validate for BranchData5 {}
#[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.007.001.10")]
pub struct ClearingSystemIdentification2Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<ExternalClearingSystemIdentification1Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for ClearingSystemIdentification2Choice {}
#[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.007.001.10")]
pub struct ClearingSystemMemberIdentification2 {
#[yaserde(rename = "ClrSysId")]
#[cfg_attr(feature = "serde", serde(rename = "ClrSysId"))]
pub clr_sys_id: ClearingSystemIdentification2Choice,
#[yaserde(rename = "MmbId")]
#[cfg_attr(feature = "serde", serde(rename = "MmbId"))]
pub mmb_id: Max35Text,
}
impl Validate for ClearingSystemMemberIdentification2 {}
#[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.007.001.10")]
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.007.001.10")]
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.007.001.10")]
pub struct Document {
#[yaserde(rename = "ModfyTx")]
#[cfg_attr(feature = "serde", serde(rename = "ModfyTx"))]
pub modfy_tx: ModifyTransactionV10,
}
impl Validate for Document {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct EntryTypeIdentifier (pub String);
crate::simple_type!(EntryTypeIdentifier);
impl Validate for EntryTypeIdentifier {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Exact4AlphaNumericText (pub String);
crate::simple_type!(Exact4AlphaNumericText);
impl Validate for Exact4AlphaNumericText {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ExternalClearingSystemIdentification1Code (pub String);
crate::simple_type!(ExternalClearingSystemIdentification1Code);
impl Validate for ExternalClearingSystemIdentification1Code {
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() > 5 {
return Err(format!("MaxLength validation error. \nExpected: 0 length <= 5 \nActual: 0 length == {}", self.0.len()));
}
Ok(())
}
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct ExternalFinancialInstitutionIdentification1Code (pub String);
crate::simple_type!(ExternalFinancialInstitutionIdentification1Code);
impl Validate for ExternalFinancialInstitutionIdentification1Code {
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.007.001.10")]
pub struct FinancialIdentificationSchemeName1Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<ExternalFinancialInstitutionIdentification1Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for FinancialIdentificationSchemeName1Choice {}
#[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.007.001.10")]
pub struct FinancialInstitutionIdentification23 {
#[yaserde(rename = "BICFI")]
#[cfg_attr(feature = "serde", serde(rename = "BICFI"))]
pub bicfi: Bicfidec2014Identifier,
#[yaserde(rename = "ClrSysMmbId")]
#[cfg_attr(feature = "serde", serde(rename = "ClrSysMmbId"))]
pub clr_sys_mmb_id: ClearingSystemMemberIdentification2,
#[yaserde(rename = "LEI")]
#[cfg_attr(feature = "serde", serde(rename = "LEI"))]
pub lei: Leiidentifier,
#[yaserde(rename = "Nm")]
#[cfg_attr(feature = "serde", serde(rename = "Nm"))]
pub nm: Max140Text,
#[yaserde(rename = "PstlAdr")]
#[cfg_attr(feature = "serde", serde(rename = "PstlAdr"))]
pub pstl_adr: PostalAddress27,
#[yaserde(rename = "Othr")]
#[cfg_attr(feature = "serde", serde(rename = "Othr"))]
pub othr: GenericFinancialIdentification1,
}
impl Validate for FinancialInstitutionIdentification23 {}
#[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.007.001.10")]
pub struct GenericFinancialIdentification1 {
#[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: FinancialIdentificationSchemeName1Choice,
#[yaserde(rename = "Issr")]
#[cfg_attr(feature = "serde", serde(rename = "Issr"))]
pub issr: Max35Text,
}
impl Validate for GenericFinancialIdentification1 {}
#[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.007.001.10")]
pub struct GenericIdentification30 {
#[yaserde(rename = "Id")]
#[cfg_attr(feature = "serde", serde(rename = "Id"))]
pub id: Exact4AlphaNumericText,
#[yaserde(rename = "Issr")]
#[cfg_attr(feature = "serde", serde(rename = "Issr"))]
pub issr: Max35Text,
#[yaserde(rename = "SchmeNm")]
#[cfg_attr(feature = "serde", serde(rename = "SchmeNm"))]
pub schme_nm: Max35Text,
}
impl Validate for GenericIdentification30 {}
#[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 ImpliedCurrencyAndAmount (pub String);
crate::simple_type!(ImpliedCurrencyAndAmount);
impl Validate for ImpliedCurrencyAndAmount {
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(PartialEq, Debug, Clone, YaSerialize, YaDeserialize)]#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:camt.007.001.10")]
pub enum Instruction1Code {
#[yaserde(rename = "PBEN")]
#[cfg_attr(feature = "serde", serde(rename = "PBEN"))]
Pben,
#[yaserde(rename = "TTIL")]
#[cfg_attr(feature = "serde", serde(rename = "TTIL"))]
Ttil,
#[yaserde(rename = "TFRO")]
#[cfg_attr(feature = "serde", serde(rename = "TFRO"))]
Tfro,
__Unknown__(String),
}
impl Default for Instruction1Code {
fn default() -> Instruction1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for Instruction1Code {}
#[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, YaSerialize, YaDeserialize)]
#[yaserde(prefix = "n", default_namespace = "n", namespace = "n: urn:iso:std:iso:20022:tech:xsd:camt.007.001.10")]
pub struct LongPaymentIdentification4 {
#[yaserde(rename = "TxId")]
#[cfg_attr(feature = "serde", serde(rename = "TxId"))]
pub tx_id: Max35Text,
#[yaserde(rename = "UETR")]
#[cfg_attr(feature = "serde", serde(rename = "UETR"))]
pub uetr: Uuidv4Identifier,
#[yaserde(rename = "IntrBkSttlmAmt")]
#[cfg_attr(feature = "serde", serde(rename = "IntrBkSttlmAmt"))]
pub intr_bk_sttlm_amt: ImpliedCurrencyAndAmount,
#[yaserde(rename = "IntrBkSttlmDt")]
#[cfg_attr(feature = "serde", serde(rename = "IntrBkSttlmDt"))]
pub intr_bk_sttlm_dt: Isodate,
#[yaserde(rename = "PmtMtd")]
#[cfg_attr(feature = "serde", serde(rename = "PmtMtd"))]
pub pmt_mtd: PaymentOrigin1Choice,
#[yaserde(rename = "InstgAgt")]
#[cfg_attr(feature = "serde", serde(rename = "InstgAgt"))]
pub instg_agt: BranchAndFinancialInstitutionIdentification8,
#[yaserde(rename = "InstdAgt")]
#[cfg_attr(feature = "serde", serde(rename = "InstdAgt"))]
pub instd_agt: BranchAndFinancialInstitutionIdentification8,
#[yaserde(rename = "NtryTp")]
#[cfg_attr(feature = "serde", serde(rename = "NtryTp"))]
pub ntry_tp: EntryTypeIdentifier,
#[yaserde(rename = "EndToEndId")]
#[cfg_attr(feature = "serde", serde(rename = "EndToEndId"))]
pub end_to_end_id: Max35Text,
}
impl Validate for LongPaymentIdentification4 {}
#[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 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)]
pub struct Max3NumericText (pub String);
crate::simple_type!(Max3NumericText);
impl Validate for Max3NumericText {}
#[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:camt.007.001.10")]
pub struct MessageHeader1 {
#[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,
}
impl Validate for MessageHeader1 {}
#[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.007.001.10")]
pub struct ModifyTransactionV10 {
#[yaserde(rename = "MsgHdr")]
#[cfg_attr(feature = "serde", serde(rename = "MsgHdr"))]
pub msg_hdr: MessageHeader1,
#[yaserde(rename = "Mod")]
#[cfg_attr(feature = "serde", serde(rename = "Mod"))]
pub _mod: Vec<TransactionModification7>,
#[yaserde(rename = "SplmtryData")]
#[cfg_attr(feature = "serde", serde(rename = "SplmtryData"))]
pub splmtry_data: Vec<SupplementaryData1>,
}
impl Validate for ModifyTransactionV10 {}
#[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.007.001.10")]
pub struct PaymentIdentification8Choice {
#[yaserde(rename = "TxId")]
#[cfg_attr(feature = "serde", serde(rename = "TxId"))]
pub tx_id: Option<Max35Text>,
#[yaserde(rename = "UETR")]
#[cfg_attr(feature = "serde", serde(rename = "UETR"))]
pub uetr: Option<Uuidv4Identifier>,
#[yaserde(rename = "QId")]
#[cfg_attr(feature = "serde", serde(rename = "QId"))]
pub qid: Option<QueueTransactionIdentification1>,
#[yaserde(rename = "LngBizId")]
#[cfg_attr(feature = "serde", serde(rename = "LngBizId"))]
pub lng_biz_id: Option<LongPaymentIdentification4>,
#[yaserde(rename = "ShrtBizId")]
#[cfg_attr(feature = "serde", serde(rename = "ShrtBizId"))]
pub shrt_biz_id: Option<ShortPaymentIdentification4>,
#[yaserde(rename = "PrtryId")]
#[cfg_attr(feature = "serde", serde(rename = "PrtryId"))]
pub prtry_id: Option<Max70Text>,
}
impl Validate for PaymentIdentification8Choice {}
#[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.007.001.10")]
pub struct PaymentInstruction33 {
#[yaserde(rename = "Instr")]
#[cfg_attr(feature = "serde", serde(rename = "Instr"))]
pub instr: Instruction1Code,
#[yaserde(rename = "Tp")]
#[cfg_attr(feature = "serde", serde(rename = "Tp"))]
pub tp: PaymentType4Choice,
#[yaserde(rename = "Prty")]
#[cfg_attr(feature = "serde", serde(rename = "Prty"))]
pub prty: Priority1Choice,
#[yaserde(rename = "PrcgVldtyTm")]
#[cfg_attr(feature = "serde", serde(rename = "PrcgVldtyTm"))]
pub prcg_vldty_tm: DateTimePeriod1Choice,
}
impl Validate for PaymentInstruction33 {}
#[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.007.001.10")]
pub enum PaymentInstrument1Code {
#[yaserde(rename = "BDT")]
#[cfg_attr(feature = "serde", serde(rename = "BDT"))]
Bdt,
#[yaserde(rename = "BCT")]
#[cfg_attr(feature = "serde", serde(rename = "BCT"))]
Bct,
#[yaserde(rename = "CDT")]
#[cfg_attr(feature = "serde", serde(rename = "CDT"))]
Cdt,
#[yaserde(rename = "CCT")]
#[cfg_attr(feature = "serde", serde(rename = "CCT"))]
Cct,
#[yaserde(rename = "CHK")]
#[cfg_attr(feature = "serde", serde(rename = "CHK"))]
Chk,
#[yaserde(rename = "BKT")]
#[cfg_attr(feature = "serde", serde(rename = "BKT"))]
Bkt,
#[yaserde(rename = "DCP")]
#[cfg_attr(feature = "serde", serde(rename = "DCP"))]
Dcp,
#[yaserde(rename = "CCP")]
#[cfg_attr(feature = "serde", serde(rename = "CCP"))]
Ccp,
#[yaserde(rename = "RTI")]
#[cfg_attr(feature = "serde", serde(rename = "RTI"))]
Rti,
#[yaserde(rename = "CAN")]
#[cfg_attr(feature = "serde", serde(rename = "CAN"))]
Can,
__Unknown__(String),
}
impl Default for PaymentInstrument1Code {
fn default() -> PaymentInstrument1Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for PaymentInstrument1Code {}
#[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.007.001.10")]
pub struct PaymentOrigin1Choice {
#[yaserde(rename = "FINMT")]
#[cfg_attr(feature = "serde", serde(rename = "FINMT"))]
pub finmt: Option<Max3NumericText>,
#[yaserde(rename = "XMLMsgNm")]
#[cfg_attr(feature = "serde", serde(rename = "XMLMsgNm"))]
pub xmlmsg_nm: Option<Max35Text>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
#[yaserde(rename = "Instrm")]
#[cfg_attr(feature = "serde", serde(rename = "Instrm"))]
pub instrm: Option<PaymentInstrument1Code>,
}
impl Validate for PaymentOrigin1Choice {}
#[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.007.001.10")]
pub enum PaymentType3Code {
#[yaserde(rename = "CBS")]
#[cfg_attr(feature = "serde", serde(rename = "CBS"))]
Cbs,
#[yaserde(rename = "BCK")]
#[cfg_attr(feature = "serde", serde(rename = "BCK"))]
Bck,
#[yaserde(rename = "BAL")]
#[cfg_attr(feature = "serde", serde(rename = "BAL"))]
Bal,
#[yaserde(rename = "CLS")]
#[cfg_attr(feature = "serde", serde(rename = "CLS"))]
Cls,
#[yaserde(rename = "CTR")]
#[cfg_attr(feature = "serde", serde(rename = "CTR"))]
Ctr,
#[yaserde(rename = "CBH")]
#[cfg_attr(feature = "serde", serde(rename = "CBH"))]
Cbh,
#[yaserde(rename = "CBP")]
#[cfg_attr(feature = "serde", serde(rename = "CBP"))]
Cbp,
#[yaserde(rename = "DPG")]
#[cfg_attr(feature = "serde", serde(rename = "DPG"))]
Dpg,
#[yaserde(rename = "DPN")]
#[cfg_attr(feature = "serde", serde(rename = "DPN"))]
Dpn,
#[yaserde(rename = "EXP")]
#[cfg_attr(feature = "serde", serde(rename = "EXP"))]
Exp,
#[yaserde(rename = "TCH")]
#[cfg_attr(feature = "serde", serde(rename = "TCH"))]
Tch,
#[yaserde(rename = "LMT")]
#[cfg_attr(feature = "serde", serde(rename = "LMT"))]
Lmt,
#[yaserde(rename = "LIQ")]
#[cfg_attr(feature = "serde", serde(rename = "LIQ"))]
Liq,
#[yaserde(rename = "DPP")]
#[cfg_attr(feature = "serde", serde(rename = "DPP"))]
Dpp,
#[yaserde(rename = "DPH")]
#[cfg_attr(feature = "serde", serde(rename = "DPH"))]
Dph,
#[yaserde(rename = "DPS")]
#[cfg_attr(feature = "serde", serde(rename = "DPS"))]
Dps,
#[yaserde(rename = "STF")]
#[cfg_attr(feature = "serde", serde(rename = "STF"))]
Stf,
#[yaserde(rename = "TRP")]
#[cfg_attr(feature = "serde", serde(rename = "TRP"))]
Trp,
#[yaserde(rename = "TCS")]
#[cfg_attr(feature = "serde", serde(rename = "TCS"))]
Tcs,
#[yaserde(rename = "LOA")]
#[cfg_attr(feature = "serde", serde(rename = "LOA"))]
Loa,
#[yaserde(rename = "LOR")]
#[cfg_attr(feature = "serde", serde(rename = "LOR"))]
Lor,
#[yaserde(rename = "TCP")]
#[cfg_attr(feature = "serde", serde(rename = "TCP"))]
Tcp,
#[yaserde(rename = "OND")]
#[cfg_attr(feature = "serde", serde(rename = "OND"))]
Ond,
#[yaserde(rename = "MGL")]
#[cfg_attr(feature = "serde", serde(rename = "MGL"))]
Mgl,
__Unknown__(String),
}
impl Default for PaymentType3Code {
fn default() -> PaymentType3Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for PaymentType3Code {}
#[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.007.001.10")]
pub struct PaymentType4Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<PaymentType3Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for PaymentType4Choice {}
#[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.007.001.10")]
pub struct PostalAddress27 {
#[yaserde(rename = "AdrTp")]
#[cfg_attr(feature = "serde", serde(rename = "AdrTp"))]
pub adr_tp: AddressType3Choice,
#[yaserde(rename = "CareOf")]
#[cfg_attr(feature = "serde", serde(rename = "CareOf"))]
pub care_of: Max140Text,
#[yaserde(rename = "Dept")]
#[cfg_attr(feature = "serde", serde(rename = "Dept"))]
pub dept: Max70Text,
#[yaserde(rename = "SubDept")]
#[cfg_attr(feature = "serde", serde(rename = "SubDept"))]
pub sub_dept: Max70Text,
#[yaserde(rename = "StrtNm")]
#[cfg_attr(feature = "serde", serde(rename = "StrtNm"))]
pub strt_nm: Max140Text,
#[yaserde(rename = "BldgNb")]
#[cfg_attr(feature = "serde", serde(rename = "BldgNb"))]
pub bldg_nb: Max16Text,
#[yaserde(rename = "BldgNm")]
#[cfg_attr(feature = "serde", serde(rename = "BldgNm"))]
pub bldg_nm: Max140Text,
#[yaserde(rename = "Flr")]
#[cfg_attr(feature = "serde", serde(rename = "Flr"))]
pub flr: Max70Text,
#[yaserde(rename = "UnitNb")]
#[cfg_attr(feature = "serde", serde(rename = "UnitNb"))]
pub unit_nb: Max16Text,
#[yaserde(rename = "PstBx")]
#[cfg_attr(feature = "serde", serde(rename = "PstBx"))]
pub pst_bx: Max16Text,
#[yaserde(rename = "Room")]
#[cfg_attr(feature = "serde", serde(rename = "Room"))]
pub room: Max70Text,
#[yaserde(rename = "PstCd")]
#[cfg_attr(feature = "serde", serde(rename = "PstCd"))]
pub pst_cd: Max16Text,
#[yaserde(rename = "TwnNm")]
#[cfg_attr(feature = "serde", serde(rename = "TwnNm"))]
pub twn_nm: Max140Text,
#[yaserde(rename = "TwnLctnNm")]
#[cfg_attr(feature = "serde", serde(rename = "TwnLctnNm"))]
pub twn_lctn_nm: Max140Text,
#[yaserde(rename = "DstrctNm")]
#[cfg_attr(feature = "serde", serde(rename = "DstrctNm"))]
pub dstrct_nm: Max140Text,
#[yaserde(rename = "CtrySubDvsn")]
#[cfg_attr(feature = "serde", serde(rename = "CtrySubDvsn"))]
pub ctry_sub_dvsn: Max35Text,
#[yaserde(rename = "Ctry")]
#[cfg_attr(feature = "serde", serde(rename = "Ctry"))]
pub ctry: CountryCode,
#[yaserde(rename = "AdrLine")]
#[cfg_attr(feature = "serde", serde(rename = "AdrLine"))]
pub adr_line: Vec<Max70Text>,
}
impl Validate for PostalAddress27 {}
#[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.007.001.10")]
pub struct Priority1Choice {
#[yaserde(rename = "Cd")]
#[cfg_attr(feature = "serde", serde(rename = "Cd"))]
pub cd: Option<Priority5Code>,
#[yaserde(rename = "Prtry")]
#[cfg_attr(feature = "serde", serde(rename = "Prtry"))]
pub prtry: Option<Max35Text>,
}
impl Validate for Priority1Choice {}
#[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.007.001.10")]
pub enum Priority5Code {
#[yaserde(rename = "HIGH")]
#[cfg_attr(feature = "serde", serde(rename = "HIGH"))]
High,
#[yaserde(rename = "LOWW")]
#[cfg_attr(feature = "serde", serde(rename = "LOWW"))]
Loww,
#[yaserde(rename = "NORM")]
#[cfg_attr(feature = "serde", serde(rename = "NORM"))]
Norm,
#[yaserde(rename = "URGT")]
#[cfg_attr(feature = "serde", serde(rename = "URGT"))]
Urgt,
__Unknown__(String),
}
impl Default for Priority5Code {
fn default() -> Priority5Code {
Self::__Unknown__("No valid variants".into())
}
}
impl Validate for Priority5Code {}
#[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.007.001.10")]
pub struct QueueTransactionIdentification1 {
#[yaserde(rename = "QId")]
#[cfg_attr(feature = "serde", serde(rename = "QId"))]
pub q_id: Max16Text,
#[yaserde(rename = "PosInQ")]
#[cfg_attr(feature = "serde", serde(rename = "PosInQ"))]
pub pos_in_q: Max16Text,
}
impl Validate for QueueTransactionIdentification1 {}
#[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.007.001.10")]
pub struct ShortPaymentIdentification4 {
#[yaserde(rename = "TxId")]
#[cfg_attr(feature = "serde", serde(rename = "TxId"))]
pub tx_id: Max35Text,
#[yaserde(rename = "UETR")]
#[cfg_attr(feature = "serde", serde(rename = "UETR"))]
pub uetr: Uuidv4Identifier,
#[yaserde(rename = "IntrBkSttlmDt")]
#[cfg_attr(feature = "serde", serde(rename = "IntrBkSttlmDt"))]
pub intr_bk_sttlm_dt: Isodate,
#[yaserde(rename = "InstgAgt")]
#[cfg_attr(feature = "serde", serde(rename = "InstgAgt"))]
pub instg_agt: BranchAndFinancialInstitutionIdentification8,
}
impl Validate for ShortPaymentIdentification4 {}
#[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.007.001.10")]
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.007.001.10")]
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.007.001.10")]
pub struct TransactionModification7 {
#[yaserde(rename = "PmtId")]
#[cfg_attr(feature = "serde", serde(rename = "PmtId"))]
pub pmt_id: PaymentIdentification8Choice,
#[yaserde(rename = "NewPmtValSet")]
#[cfg_attr(feature = "serde", serde(rename = "NewPmtValSet"))]
pub new_pmt_val_set: PaymentInstruction33,
}
impl Validate for TransactionModification7 {}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Default, Clone, PartialEq, Debug)]
pub struct Uuidv4Identifier (pub String);
crate::simple_type!(Uuidv4Identifier);
impl Validate for Uuidv4Identifier {}
impl crate::MxMessage for Document {
const BUSINESS_AREA: crate::BusinessArea = crate::BusinessArea::camt;
const FUNCTIONALITY: &'static str = "007";
const VARIANT: &'static str = "001";
const VERSION: &'static str = "10";
const MESSAGE_NAME: &'static str = "camt.007.001.10";
const NAMESPACE: &'static str = "urn:iso:std:iso:20022:tech:xsd:camt.007.001.10";
}