use validator::Validate;
::lazy_static::lazy_static! {
static ref ISO_YEAR_MONTH_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}-(0[1-9]|1[0-2])([+-]\d{2}:\d{2}|Z)?$"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISIN_OCT_2015_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref UUI_DV_4_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ACTIVE_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_15_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,15}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref BICFI_DEC_2014_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref EXACT_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_YEAR_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}([+-]\d{2}:\d{2}|Z)?$"#).unwrap();
}
::lazy_static::lazy_static! {
static ref EXACT_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{4}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_15_PLUS_SIGNED_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[\+]{0,1}[0-9]{1,15}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref PHONE_NUMBER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"\+[0-9]{1,3}-[0-9()+\-]{1,30}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref EXACT_1_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MIN_2_MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_2_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,2}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MIN_8_MAX_28_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{8,28}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ANY_BIC_DEC_2014_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref IBAN_2007_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MIN_3_MAX_4_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,4}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref LEI_IDENTIFIER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z0-9]{18,18}[0-9]{2,2}"#).unwrap();
}
pub fn namespace() -> String {
"urn:iso:std:iso:20022:tech:xsd:camt.054.001.10".to_string()
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max35Text {
#[validate(length(min = 1, max = 35,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountIdentification4ChoiceEnum {
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<GenericAccountIdentification1>,
#[serde(rename = "IBAN", skip_serializing_if = "Option::is_none")]
pub iban: Option<Iban2007Identifier>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountIdentification4Choice {
#[serde(flatten)]
pub value: AccountIdentification4ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProxyAccountIdentification1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<ProxyAccountType1Choice>,
#[validate]
#[serde(rename = "Id")]
pub id: Max2048Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification3 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveCurrencyAndAmountSimpleType {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max70Text {
#[validate(length(min = 1, max = 70,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PartyType4Code {
#[serde(rename = "MERC")]
Merc,
#[serde(rename = "ACCP")]
Accp,
#[serde(rename = "ITAG")]
Itag,
#[serde(rename = "ACQR")]
Acqr,
#[serde(rename = "CISS")]
Ciss,
#[serde(rename = "TAXH")]
Taxh,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification30 {
#[validate]
#[serde(rename = "Id")]
pub id: Exact4AlphaNumericText,
#[validate]
#[serde(rename = "Issr")]
pub issr: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SequenceRange1 {
#[validate]
#[serde(rename = "FrSeq")]
pub fr_seq: Max35Text,
#[validate]
#[serde(rename = "ToSeq")]
pub to_seq: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxRecordDetails3 {
#[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
pub prd: Option<TaxPeriod3>,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TotalTransactions6 {
#[serde(rename = "TtlNtries", skip_serializing_if = "Option::is_none")]
pub ttl_ntries: Option<NumberAndSumOfTransactions4>,
#[serde(rename = "TtlCdtNtries", skip_serializing_if = "Option::is_none")]
pub ttl_cdt_ntries: Option<NumberAndSumOfTransactions1>,
#[serde(rename = "TtlDbtNtries", skip_serializing_if = "Option::is_none")]
pub ttl_dbt_ntries: Option<NumberAndSumOfTransactions1>,
#[validate(length(min = 0,))]
#[serde(rename = "TtlNtriesPerBkTxCd", default)]
pub ttl_ntries_per_bk_tx_cd: Vec<TotalsPerBankTransactionCode5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct YieldedOrValueType1ChoiceEnum {
#[serde(rename = "Yldd", skip_serializing_if = "Option::is_none")]
pub yldd: Option<YesNoIndicator>,
#[serde(rename = "ValTp", skip_serializing_if = "Option::is_none")]
pub val_tp: Option<PriceValueType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct YieldedOrValueType1Choice {
#[serde(flatten)]
pub value: YieldedOrValueType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReferredDocumentType3ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<DocumentType6Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReferredDocumentType3Choice {
#[serde(flatten)]
pub value: ReferredDocumentType3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReferredDocumentInformation7 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<ReferredDocumentType4>,
#[serde(rename = "Nb", skip_serializing_if = "Option::is_none")]
pub nb: Option<Max35Text>,
#[serde(rename = "RltdDt", skip_serializing_if = "Option::is_none")]
pub rltd_dt: Option<IsoDate>,
#[validate(length(min = 0,))]
#[serde(rename = "LineDtls", default)]
pub line_dtls: Vec<DocumentLineInformation1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum RemittanceLocationMethod2Code {
#[serde(rename = "FAXI")]
Faxi,
#[serde(rename = "EDIC")]
Edic,
#[serde(rename = "URID")]
Urid,
#[serde(rename = "EMAL")]
Emal,
#[serde(rename = "POST")]
Post,
#[serde(rename = "SMSM")]
Smsm,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountAndCurrencyExchangeDetails3 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CcyXchg", skip_serializing_if = "Option::is_none")]
pub ccy_xchg: Option<CurrencyExchange5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardIndividualTransaction2 {
#[serde(rename = "ICCRltdData", skip_serializing_if = "Option::is_none")]
pub icc_rltd_data: Option<Max1025Text>,
#[serde(rename = "PmtCntxt", skip_serializing_if = "Option::is_none")]
pub pmt_cntxt: Option<PaymentContext3>,
#[serde(rename = "AddtlSvc", skip_serializing_if = "Option::is_none")]
pub addtl_svc: Option<CardPaymentServiceType2Code>,
#[serde(rename = "TxCtgy", skip_serializing_if = "Option::is_none")]
pub tx_ctgy: Option<ExternalCardTransactionCategory1Code>,
#[serde(rename = "SaleRcncltnId", skip_serializing_if = "Option::is_none")]
pub sale_rcncltn_id: Option<Max35Text>,
#[serde(rename = "SaleRefNb", skip_serializing_if = "Option::is_none")]
pub sale_ref_nb: Option<Max35Text>,
#[serde(rename = "RePresntmntRsn", skip_serializing_if = "Option::is_none")]
pub re_presntmnt_rsn: Option<ExternalRePresentmentReason1Code>,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<Max35Text>,
#[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<TransactionIdentifier1>,
#[serde(rename = "Pdct", skip_serializing_if = "Option::is_none")]
pub pdct: Option<Product2>,
#[serde(rename = "VldtnDt", skip_serializing_if = "Option::is_none")]
pub vldtn_dt: Option<IsoDate>,
#[serde(rename = "VldtnSeqNb", skip_serializing_if = "Option::is_none")]
pub vldtn_seq_nb: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Price7 {
#[serde(rename = "Tp")]
pub tp: YieldedOrValueType1Choice,
#[serde(rename = "Val")]
pub val: PriceRateOrAmount3Choice,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalCardTransactionCategory1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RemittanceAmount2 {
#[serde(rename = "DuePyblAmt", skip_serializing_if = "Option::is_none")]
pub due_pybl_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "DscntApldAmt", default)]
pub dscnt_apld_amt: Vec<DiscountAmountAndType1>,
#[serde(rename = "CdtNoteAmt", skip_serializing_if = "Option::is_none")]
pub cdt_note_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "TaxAmt", default)]
pub tax_amt: Vec<TaxAmountAndType1>,
#[validate(length(min = 0,))]
#[serde(rename = "AdjstmntAmtAndRsn", default)]
pub adjstmnt_amt_and_rsn: Vec<DocumentAdjustment1>,
#[serde(rename = "RmtdAmt", skip_serializing_if = "Option::is_none")]
pub rmtd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoYearMonth {
#[validate(regex = "ISO_YEAR_MONTH_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PaymentContext3 {
#[serde(rename = "CardPres", skip_serializing_if = "Option::is_none")]
pub card_pres: Option<TrueFalseIndicator>,
#[serde(rename = "CrdhldrPres", skip_serializing_if = "Option::is_none")]
pub crdhldr_pres: Option<TrueFalseIndicator>,
#[serde(rename = "OnLineCntxt", skip_serializing_if = "Option::is_none")]
pub on_line_cntxt: Option<TrueFalseIndicator>,
#[serde(rename = "AttndncCntxt", skip_serializing_if = "Option::is_none")]
pub attndnc_cntxt: Option<AttendanceContext1Code>,
#[serde(rename = "TxEnvt", skip_serializing_if = "Option::is_none")]
pub tx_envt: Option<TransactionEnvironment1Code>,
#[serde(rename = "TxChanl", skip_serializing_if = "Option::is_none")]
pub tx_chanl: Option<TransactionChannel1Code>,
#[serde(rename = "AttndntMsgCpbl", skip_serializing_if = "Option::is_none")]
pub attndnt_msg_cpbl: Option<TrueFalseIndicator>,
#[serde(rename = "AttndntLang", skip_serializing_if = "Option::is_none")]
pub attndnt_lang: Option<Iso2ALanguageCode>,
#[serde(rename = "CardDataNtryMd")]
pub card_data_ntry_md: CardDataReading1Code,
#[serde(rename = "FllbckInd", skip_serializing_if = "Option::is_none")]
pub fllbck_ind: Option<TrueFalseIndicator>,
#[serde(rename = "AuthntcnMtd", skip_serializing_if = "Option::is_none")]
pub authntcn_mtd: Option<CardholderAuthentication2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max5NumericText {
#[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Purpose2ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPurpose1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Purpose2Choice {
#[serde(flatten)]
pub value: Purpose2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAvailability1 {
#[serde(rename = "Dt")]
pub dt: CashAvailabilityDate1Choice,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd")]
pub cdt_dbt_ind: CreditDebitCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsinOct2015Identifier {
#[validate(regex = "ISIN_OCT_2015_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max1025Text {
#[validate(length(min = 1, max = 1025,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PreferredContactMethod1Code {
#[serde(rename = "LETT")]
Lett,
#[serde(rename = "MAIL")]
Mail,
#[serde(rename = "PHON")]
Phon,
#[serde(rename = "FAXX")]
Faxx,
#[serde(rename = "CELL")]
Cell,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxParty1 {
#[serde(rename = "TaxId", skip_serializing_if = "Option::is_none")]
pub tax_id: Option<Max35Text>,
#[serde(rename = "RegnId", skip_serializing_if = "Option::is_none")]
pub regn_id: Option<Max35Text>,
#[serde(rename = "TaxTp", skip_serializing_if = "Option::is_none")]
pub tax_tp: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BankTransactionCodeStructure4 {
#[serde(rename = "Domn", skip_serializing_if = "Option::is_none")]
pub domn: Option<BankTransactionCodeStructure5>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<ProprietaryBankTransactionCodeStructure1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SupplementaryDataEnvelope1<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(flatten)]
pub value: A,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct UuiDv4Identifier {
#[validate(regex = "UUI_DV_4_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountInterest4 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<InterestType1Choice>,
#[validate(length(min = 0,))]
#[serde(rename = "Rate", default)]
pub rate: Vec<Rate4>,
#[serde(rename = "FrToDt", skip_serializing_if = "Option::is_none")]
pub fr_to_dt: Option<DateTimePeriod1>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<Max35Text>,
#[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<TaxCharges2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BankTransactionCodeStructure5 {
#[serde(rename = "Cd")]
pub cd: ExternalBankTransactionDomain1Code,
#[serde(rename = "Fmly")]
pub fmly: BankTransactionCodeStructure6,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CategoryPurpose1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCategoryPurpose1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CategoryPurpose1Choice {
#[serde(flatten)]
pub value: CategoryPurpose1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyAnd13DecimalAmount {
#[serde(rename = "ActiveOrHistoricCurrencyAnd13DecimalAmount")]
pub value: ActiveOrHistoricCurrencyAnd13DecimalAmountSimpleType,
#[serde(rename = "@Ccy")]
pub ccy: ActiveOrHistoricCurrencyCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ClearingSystemIdentification2ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalClearingSystemIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ClearingSystemIdentification2Choice {
#[serde(flatten)]
pub value: ClearingSystemIdentification2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxParty2 {
#[serde(rename = "TaxId", skip_serializing_if = "Option::is_none")]
pub tax_id: Option<Max35Text>,
#[serde(rename = "RegnId", skip_serializing_if = "Option::is_none")]
pub regn_id: Option<Max35Text>,
#[serde(rename = "TaxTp", skip_serializing_if = "Option::is_none")]
pub tax_tp: Option<Max35Text>,
#[serde(rename = "Authstn", skip_serializing_if = "Option::is_none")]
pub authstn: Option<TaxAuthorisation1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashDeposit1 {
#[validate]
#[serde(rename = "NoteDnmtn")]
pub note_dnmtn: ActiveCurrencyAndAmount,
#[validate]
#[serde(rename = "NbOfNotes")]
pub nb_of_notes: Max15NumericText,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialInstitutionIdentification18 {
#[serde(rename = "BICFI", skip_serializing_if = "Option::is_none")]
pub bicfi: Option<BicfiDec2014Identifier>,
#[serde(rename = "ClrSysMmbId", skip_serializing_if = "Option::is_none")]
pub clr_sys_mmb_id: Option<ClearingSystemMemberIdentification2>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LeiIdentifier>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress24>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<GenericFinancialIdentification1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SupplementaryData1<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
pub plc_and_nm: Option<Max350Text>,
#[validate]
#[serde(rename = "Envlp")]
pub envlp: SupplementaryDataEnvelope1<A>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CreditorReferenceType1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<DocumentType3Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CreditorReferenceType1Choice {
#[serde(flatten)]
pub value: CreditorReferenceType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalPurpose1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalInstrument2ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalLocalInstrument1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalInstrument2Choice {
#[serde(flatten)]
pub value: LocalInstrument2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentLineIdentification1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DocumentLineType1>,
#[serde(rename = "Nb", skip_serializing_if = "Option::is_none")]
pub nb: Option<Max35Text>,
#[serde(rename = "RltdDt", skip_serializing_if = "Option::is_none")]
pub rltd_dt: Option<IsoDate>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountAndDirection35 {
#[validate]
#[serde(rename = "Amt")]
pub amt: NonNegativeDecimalNumber,
#[serde(rename = "CdtDbtInd")]
pub cdt_dbt_ind: CreditDebitCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionAgents5 {
#[serde(rename = "InstgAgt", skip_serializing_if = "Option::is_none")]
pub instg_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "InstdAgt", skip_serializing_if = "Option::is_none")]
pub instd_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "DbtrAgt", skip_serializing_if = "Option::is_none")]
pub dbtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "CdtrAgt", skip_serializing_if = "Option::is_none")]
pub cdtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "IntrmyAgt1", skip_serializing_if = "Option::is_none")]
pub intrmy_agt_1: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "IntrmyAgt2", skip_serializing_if = "Option::is_none")]
pub intrmy_agt_2: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "IntrmyAgt3", skip_serializing_if = "Option::is_none")]
pub intrmy_agt_3: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "RcvgAgt", skip_serializing_if = "Option::is_none")]
pub rcvg_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "DlvrgAgt", skip_serializing_if = "Option::is_none")]
pub dlvrg_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "IssgAgt", skip_serializing_if = "Option::is_none")]
pub issg_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "SttlmPlc", skip_serializing_if = "Option::is_none")]
pub sttlm_plc: Option<BranchAndFinancialInstitutionIdentification6>,
#[validate(length(min = 0,))]
#[serde(rename = "Prtry", default)]
pub prtry: Vec<ProprietaryAgent4>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalFinancialInstitutionIdentification1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max128Text {
#[validate(length(min = 1, max = 128,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryBankTransactionCodeStructure1 {
#[validate]
#[serde(rename = "Cd")]
pub cd: Max35Text,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OtherContact1 {
#[validate]
#[serde(rename = "ChanlTp")]
pub chanl_tp: Max4Text,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max128Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveCurrencyCode {
#[validate(regex = "ACTIVE_CURRENCY_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum NamePrefix2Code {
#[serde(rename = "DOCT")]
Doct,
#[serde(rename = "MADM")]
Madm,
#[serde(rename = "MISS")]
Miss,
#[serde(rename = "MIST")]
Mist,
#[serde(rename = "MIKS")]
Miks,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EntryDetails11<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[serde(rename = "Btch", skip_serializing_if = "Option::is_none")]
pub btch: Option<BatchInformation2>,
#[validate(length(min = 0,))]
#[serde(rename = "TxDtls", default)]
pub tx_dtls: Vec<EntryTransaction12<A>>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max2048Text {
#[validate(length(min = 1, max = 2048,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReferredDocumentType4 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: ReferredDocumentType3Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BatchInformation2 {
#[serde(rename = "MsgId", skip_serializing_if = "Option::is_none")]
pub msg_id: Option<Max35Text>,
#[serde(rename = "PmtInfId", skip_serializing_if = "Option::is_none")]
pub pmt_inf_id: Option<Max35Text>,
#[serde(rename = "NbOfTxs", skip_serializing_if = "Option::is_none")]
pub nb_of_txs: Option<Max15NumericText>,
#[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
pub ttl_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GarnishmentType1 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: GarnishmentType1Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveCurrencyAndAmount {
#[serde(rename = "ActiveCurrencyAndAmount")]
pub value: ActiveCurrencyAndAmountSimpleType,
#[serde(rename = "@Ccy")]
pub ccy: ActiveCurrencyCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PostalAddress24 {
#[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
pub adr_tp: Option<AddressType3Choice>,
#[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
pub dept: Option<Max70Text>,
#[serde(rename = "SubDept", skip_serializing_if = "Option::is_none")]
pub sub_dept: Option<Max70Text>,
#[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
pub strt_nm: Option<Max70Text>,
#[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
pub bldg_nb: Option<Max16Text>,
#[serde(rename = "BldgNm", skip_serializing_if = "Option::is_none")]
pub bldg_nm: Option<Max35Text>,
#[serde(rename = "Flr", skip_serializing_if = "Option::is_none")]
pub flr: Option<Max70Text>,
#[serde(rename = "PstBx", skip_serializing_if = "Option::is_none")]
pub pst_bx: Option<Max16Text>,
#[serde(rename = "Room", skip_serializing_if = "Option::is_none")]
pub room: Option<Max70Text>,
#[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
pub pst_cd: Option<Max16Text>,
#[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
pub twn_nm: Option<Max35Text>,
#[serde(rename = "TwnLctnNm", skip_serializing_if = "Option::is_none")]
pub twn_lctn_nm: Option<Max35Text>,
#[serde(rename = "DstrctNm", skip_serializing_if = "Option::is_none")]
pub dstrct_nm: Option<Max35Text>,
#[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<CountryCode>,
#[validate(length(min = 0, max = 7,))]
#[serde(rename = "AdrLine", default)]
pub adr_line: Vec<Max70Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max15NumericText {
#[validate(regex = "MAX_15_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardAggregated2 {
#[serde(rename = "AddtlSvc", skip_serializing_if = "Option::is_none")]
pub addtl_svc: Option<CardPaymentServiceType2Code>,
#[serde(rename = "TxCtgy", skip_serializing_if = "Option::is_none")]
pub tx_ctgy: Option<ExternalCardTransactionCategory1Code>,
#[serde(rename = "SaleRcncltnId", skip_serializing_if = "Option::is_none")]
pub sale_rcncltn_id: Option<Max35Text>,
#[serde(rename = "SeqNbRg", skip_serializing_if = "Option::is_none")]
pub seq_nb_rg: Option<CardSequenceNumberRange1>,
#[serde(rename = "TxDtRg", skip_serializing_if = "Option::is_none")]
pub tx_dt_rg: Option<DateOrDateTimePeriod1Choice>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct YesNoIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BicfiDec2014Identifier {
#[validate(regex = "BICFI_DEC_2014_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact3NumericText {
#[validate(regex = "EXACT_3_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Priority2Code {
#[serde(rename = "HIGH")]
High,
#[serde(rename = "NORM")]
Norm,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAmountType1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalTaxAmountType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAmountType1Choice {
#[serde(flatten)]
pub value: TaxAmountType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionCapabilities1 {
#[validate(length(min = 0,))]
#[serde(rename = "CardRdngCpblties", default)]
pub card_rdng_cpblties: Vec<CardDataReading1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "CrdhldrVrfctnCpblties", default)]
pub crdhldr_vrfctn_cpblties: Vec<CardholderVerificationCapability1Code>,
#[serde(rename = "OnLineCpblties", skip_serializing_if = "Option::is_none")]
pub on_line_cpblties: Option<OnLineCapability1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "DispCpblties", default)]
pub disp_cpblties: Vec<DisplayCapabilities1>,
#[serde(rename = "PrtLineWidth", skip_serializing_if = "Option::is_none")]
pub prt_line_width: Option<Max3NumericText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoDateTime {
#[serde(rename = "$text")]
pub value: ::chrono::DateTime<::chrono::Utc>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CorporateAction9 {
#[validate]
#[serde(rename = "EvtTp")]
pub evt_tp: Max35Text,
#[validate]
#[serde(rename = "EvtId")]
pub evt_id: Max35Text,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardholderVerificationCapability1Code {
#[serde(rename = "MNSG")]
Mnsg,
#[serde(rename = "NPIN")]
Npin,
#[serde(rename = "FCPN")]
Fcpn,
#[serde(rename = "FEPN")]
Fepn,
#[serde(rename = "FDSG")]
Fdsg,
#[serde(rename = "FBIO")]
Fbio,
#[serde(rename = "MNVR")]
Mnvr,
#[serde(rename = "FBIG")]
Fbig,
#[serde(rename = "APKI")]
Apki,
#[serde(rename = "PKIS")]
Pkis,
#[serde(rename = "CHDT")]
Chdt,
#[serde(rename = "SCEC")]
Scec,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialIdentificationSchemeName1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalFinancialInstitutionIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialIdentificationSchemeName1Choice {
#[serde(flatten)]
pub value: FinancialIdentificationSchemeName1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardSequenceNumberRange1 {
#[serde(rename = "FrstTx", skip_serializing_if = "Option::is_none")]
pub frst_tx: Option<Max35Text>,
#[serde(rename = "LastTx", skip_serializing_if = "Option::is_none")]
pub last_tx: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxRecord3 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[serde(rename = "Ctgy", skip_serializing_if = "Option::is_none")]
pub ctgy: Option<Max35Text>,
#[serde(rename = "CtgyDtls", skip_serializing_if = "Option::is_none")]
pub ctgy_dtls: Option<Max35Text>,
#[serde(rename = "DbtrSts", skip_serializing_if = "Option::is_none")]
pub dbtr_sts: Option<Max35Text>,
#[serde(rename = "CertId", skip_serializing_if = "Option::is_none")]
pub cert_id: Option<Max35Text>,
#[serde(rename = "FrmsCd", skip_serializing_if = "Option::is_none")]
pub frms_cd: Option<Max35Text>,
#[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
pub prd: Option<TaxPeriod3>,
#[serde(rename = "TaxAmt", skip_serializing_if = "Option::is_none")]
pub tax_amt: Option<TaxAmount3>,
#[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
pub addtl_inf: Option<Max140Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PartyType3Code {
#[serde(rename = "OPOI")]
Opoi,
#[serde(rename = "MERC")]
Merc,
#[serde(rename = "ACCP")]
Accp,
#[serde(rename = "ITAG")]
Itag,
#[serde(rename = "ACQR")]
Acqr,
#[serde(rename = "CISS")]
Ciss,
#[serde(rename = "DLIS")]
Dlis,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericPersonIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<PersonIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardPaymentServiceType2Code {
#[serde(rename = "AGGR")]
Aggr,
#[serde(rename = "DCCV")]
Dccv,
#[serde(rename = "GRTT")]
Grtt,
#[serde(rename = "INSP")]
Insp,
#[serde(rename = "LOYT")]
Loyt,
#[serde(rename = "NRES")]
Nres,
#[serde(rename = "PUCO")]
Puco,
#[serde(rename = "RECP")]
Recp,
#[serde(rename = "SOAF")]
Soaf,
#[serde(rename = "UNAF")]
Unaf,
#[serde(rename = "VCAU")]
Vcau,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoYear {
#[validate(regex = "ISO_YEAR_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct NonNegativeDecimalNumber {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxInformation10 {
#[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
pub cdtr: Option<TaxParty1>,
#[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
pub dbtr: Option<TaxParty2>,
#[serde(rename = "AdmstnZone", skip_serializing_if = "Option::is_none")]
pub admstn_zone: Option<Max35Text>,
#[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
pub ref_nb: Option<Max140Text>,
#[serde(rename = "Mtd", skip_serializing_if = "Option::is_none")]
pub mtd: Option<Max35Text>,
#[serde(rename = "TtlTaxblBaseAmt", skip_serializing_if = "Option::is_none")]
pub ttl_taxbl_base_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "TtlTaxAmt", skip_serializing_if = "Option::is_none")]
pub ttl_tax_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<Number>,
#[validate(length(min = 0,))]
#[serde(rename = "Rcrd", default)]
pub rcrd: Vec<TaxRecord3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionQuantities3ChoiceEnum {
#[serde(rename = "Qty", skip_serializing_if = "Option::is_none")]
pub qty: Option<FinancialInstrumentQuantity1Choice>,
#[serde(rename = "OrgnlAndCurFaceAmt", skip_serializing_if = "Option::is_none")]
pub orgnl_and_cur_face_amt: Option<OriginalAndCurrentQuantities1>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<ProprietaryQuantity1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionQuantities3Choice {
#[serde(flatten)]
pub value: TransactionQuantities3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
#[serde(rename = "Document")]
pub struct Document<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "BkToCstmrDbtCdtNtfctn")]
pub bk_to_cstmr_dbt_cdt_ntfctn: BankToCustomerDebitCreditNotificationV10<A, B>,
#[serde(rename = "@xmlns", default = "namespace")]
pub xmlns: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct InterestRecord2 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd")]
pub cdt_dbt_ind: CreditDebitCode,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<InterestType1Choice>,
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<Rate4>,
#[serde(rename = "FrToDt", skip_serializing_if = "Option::is_none")]
pub fr_to_dt: Option<DateTimePeriod1>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<Max35Text>,
#[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<TaxCharges2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalAccountIdentification1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentLineType1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDocumentLineType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentLineType1Choice {
#[serde(flatten)]
pub value: DocumentLineType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GarnishmentType1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalGarnishmentType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GarnishmentType1Choice {
#[serde(flatten)]
pub value: GarnishmentType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DiscountAmountType1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDiscountAmountType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DiscountAmountType1Choice {
#[serde(flatten)]
pub value: DiscountAmountType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ChargeIncludedIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyAndAmountRange2 {
#[serde(rename = "Amt")]
pub amt: ImpliedCurrencyAmountRange1Choice,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
#[serde(rename = "Ccy")]
pub ccy: ActiveOrHistoricCurrencyCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericOrganisationIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<OrganisationIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyAndAmountSimpleType {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ImpliedCurrencyAndAmount {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RemittanceLocation7 {
#[serde(rename = "RmtId", skip_serializing_if = "Option::is_none")]
pub rmt_id: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "RmtLctnDtls", default)]
pub rmt_lctn_dtls: Vec<RemittanceLocationData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct StructuredRemittanceInformation17 {
#[validate(length(min = 0,))]
#[serde(rename = "RfrdDocInf", default)]
pub rfrd_doc_inf: Vec<ReferredDocumentInformation7>,
#[serde(rename = "RfrdDocAmt", skip_serializing_if = "Option::is_none")]
pub rfrd_doc_amt: Option<RemittanceAmount2>,
#[serde(rename = "CdtrRefInf", skip_serializing_if = "Option::is_none")]
pub cdtr_ref_inf: Option<CreditorReferenceInformation2>,
#[serde(rename = "Invcr", skip_serializing_if = "Option::is_none")]
pub invcr: Option<PartyIdentification135>,
#[serde(rename = "Invcee", skip_serializing_if = "Option::is_none")]
pub invcee: Option<PartyIdentification135>,
#[serde(rename = "TaxRmt", skip_serializing_if = "Option::is_none")]
pub tax_rmt: Option<TaxData1>,
#[serde(rename = "GrnshmtRmt", skip_serializing_if = "Option::is_none")]
pub grnshmt_rmt: Option<Garnishment3>,
#[validate(length(min = 0, max = 3,))]
#[serde(rename = "AddtlRmtInf", default)]
pub addtl_rmt_inf: Vec<Max140Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxCharges2 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<PercentageRate>,
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<ActiveOrHistoricCurrencyAndAmount>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum DocumentType3Code {
#[serde(rename = "RADM")]
Radm,
#[serde(rename = "RPIN")]
Rpin,
#[serde(rename = "FXDR")]
Fxdr,
#[serde(rename = "DISP")]
Disp,
#[serde(rename = "PUOR")]
Puor,
#[serde(rename = "SCOR")]
Scor,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max105Text {
#[validate(length(min = 1, max = 105,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalTechnicalInputChannel1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalReportingSource1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact4AlphaNumericText {
#[validate(regex = "EXACT_4_ALPHA_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PaymentCard4 {
#[serde(rename = "PlainCardData", skip_serializing_if = "Option::is_none")]
pub plain_card_data: Option<PlainCardData1>,
#[serde(rename = "CardCtryCd", skip_serializing_if = "Option::is_none")]
pub card_ctry_cd: Option<Exact3NumericText>,
#[serde(rename = "CardBrnd", skip_serializing_if = "Option::is_none")]
pub card_brnd: Option<GenericIdentification1>,
#[serde(rename = "AddtlCardData", skip_serializing_if = "Option::is_none")]
pub addtl_card_data: Option<Max70Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TaxRecordPeriod1Code {
#[serde(rename = "MM01")]
Mm01,
#[serde(rename = "MM02")]
Mm02,
#[serde(rename = "MM03")]
Mm03,
#[serde(rename = "MM04")]
Mm04,
#[serde(rename = "MM05")]
Mm05,
#[serde(rename = "MM06")]
Mm06,
#[serde(rename = "MM07")]
Mm07,
#[serde(rename = "MM08")]
Mm08,
#[serde(rename = "MM09")]
Mm09,
#[serde(rename = "MM10")]
Mm10,
#[serde(rename = "MM11")]
Mm11,
#[serde(rename = "MM12")]
Mm12,
#[serde(rename = "QTR1")]
Qtr1,
#[serde(rename = "QTR2")]
Qtr2,
#[serde(rename = "QTR3")]
Qtr3,
#[serde(rename = "QTR4")]
Qtr4,
#[serde(rename = "HLF1")]
Hlf1,
#[serde(rename = "HLF2")]
Hlf2,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PlainCardData1 {
#[validate]
#[serde(rename = "PAN")]
pub pan: Min8Max28NumericText,
#[serde(rename = "CardSeqNb", skip_serializing_if = "Option::is_none")]
pub card_seq_nb: Option<Min2Max3NumericText>,
#[serde(rename = "FctvDt", skip_serializing_if = "Option::is_none")]
pub fctv_dt: Option<IsoYearMonth>,
#[validate]
#[serde(rename = "XpryDt")]
pub xpry_dt: IsoYearMonth,
#[serde(rename = "SvcCd", skip_serializing_if = "Option::is_none")]
pub svc_cd: Option<Exact3NumericText>,
#[validate(length(min = 0,))]
#[serde(rename = "TrckData", default)]
pub trck_data: Vec<TrackData1>,
#[serde(rename = "CardSctyCd", skip_serializing_if = "Option::is_none")]
pub card_scty_cd: Option<CardSecurityInformation1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TransactionEnvironment1Code {
#[serde(rename = "MERC")]
Merc,
#[serde(rename = "PRIV")]
Priv,
#[serde(rename = "PUBL")]
Publ,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max15PlusSignedNumericText {
#[validate(regex = "MAX_15_PLUS_SIGNED_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyCode {
#[validate(regex = "ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAvailabilityDate1ChoiceEnum {
#[serde(rename = "ActlDt", skip_serializing_if = "Option::is_none")]
pub actl_dt: Option<IsoDate>,
#[serde(rename = "NbOfDays", skip_serializing_if = "Option::is_none")]
pub nb_of_days: Option<Max15PlusSignedNumericText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAvailabilityDate1Choice {
#[serde(flatten)]
pub value: CashAvailabilityDate1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DecimalNumber {
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PhoneNumber {
#[validate(regex = "PHONE_NUMBER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAmount3 {
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<PercentageRate>,
#[serde(rename = "TaxblBaseAmt", skip_serializing_if = "Option::is_none")]
pub taxbl_base_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
pub ttl_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "Dtls", default)]
pub dtls: Vec<TaxRecordDetails3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountSchemeName1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalAccountIdentification1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountSchemeName1Choice {
#[serde(flatten)]
pub value: AccountSchemeName1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalProxyAccountType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max140Text {
#[validate(length(min = 1, max = 140,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalServiceLevel1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OtherIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Sfx", skip_serializing_if = "Option::is_none")]
pub sfx: Option<Max16Text>,
#[serde(rename = "Tp")]
pub tp: IdentificationSource3Choice,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryQuantity1 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[validate]
#[serde(rename = "Qty")]
pub qty: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalCategoryPurpose1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalLocalInstrument1Code {
#[validate(length(min = 1, max = 35,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CountryCode {
#[validate(regex = "COUNTRY_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionComponent1 {
#[serde(rename = "POICmpntTp")]
pub poi_cmpnt_tp: PoiComponentType1Code,
#[serde(rename = "ManfctrId", skip_serializing_if = "Option::is_none")]
pub manfctr_id: Option<Max35Text>,
#[serde(rename = "Mdl", skip_serializing_if = "Option::is_none")]
pub mdl: Option<Max35Text>,
#[serde(rename = "VrsnNb", skip_serializing_if = "Option::is_none")]
pub vrsn_nb: Option<Max16Text>,
#[serde(rename = "SrlNb", skip_serializing_if = "Option::is_none")]
pub srl_nb: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "ApprvlNb", default)]
pub apprvl_nb: Vec<Max70Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact1NumericText {
#[validate(regex = "EXACT_1_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalBankTransactionSubFamily1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TransactionChannel1Code {
#[serde(rename = "MAIL")]
Mail,
#[serde(rename = "TLPH")]
Tlph,
#[serde(rename = "ECOM")]
Ecom,
#[serde(rename = "TVPY")]
Tvpy,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ChargesRecord3 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
#[serde(rename = "ChrgInclInd", skip_serializing_if = "Option::is_none")]
pub chrg_incl_ind: Option<ChargeIncludedIndicator>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<ChargeType3Choice>,
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<PercentageRate>,
#[serde(rename = "Br", skip_serializing_if = "Option::is_none")]
pub br: Option<ChargeBearerType1Code>,
#[serde(rename = "Agt", skip_serializing_if = "Option::is_none")]
pub agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<TaxCharges2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryAgent4 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[validate]
#[serde(rename = "Agt")]
pub agt: BranchAndFinancialInstitutionIdentification6,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum OnLineCapability1Code {
#[serde(rename = "OFLN")]
Ofln,
#[serde(rename = "ONLN")]
Onln,
#[serde(rename = "SMON")]
Smon,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalTaxAmountType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardTransaction3ChoiceEnum {
#[serde(rename = "Aggtd", skip_serializing_if = "Option::is_none")]
pub aggtd: Option<CardAggregated2>,
#[serde(rename = "Indv", skip_serializing_if = "Option::is_none")]
pub indv: Option<CardIndividualTransaction2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardTransaction3Choice {
#[serde(flatten)]
pub value: CardTransaction3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardEntry5 {
#[serde(rename = "Card", skip_serializing_if = "Option::is_none")]
pub card: Option<PaymentCard4>,
#[serde(rename = "POI", skip_serializing_if = "Option::is_none")]
pub poi: Option<PointOfInteraction1>,
#[serde(rename = "AggtdNtry", skip_serializing_if = "Option::is_none")]
pub aggtd_ntry: Option<CardAggregated2>,
#[serde(rename = "PrePdAcct", skip_serializing_if = "Option::is_none")]
pub pre_pd_acct: Option<CashAccount40>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DatePeriod2 {
#[validate]
#[serde(rename = "FrDt")]
pub fr_dt: IsoDate,
#[validate]
#[serde(rename = "ToDt")]
pub to_dt: IsoDate,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateTimePeriod1 {
#[validate]
#[serde(rename = "FrDtTm")]
pub fr_dt_tm: IsoDateTime,
#[validate]
#[serde(rename = "ToDtTm")]
pub to_dt_tm: IsoDateTime,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardDataReading1Code {
#[serde(rename = "TAGC")]
Tagc,
#[serde(rename = "PHYS")]
Phys,
#[serde(rename = "BRCD")]
Brcd,
#[serde(rename = "MGST")]
Mgst,
#[serde(rename = "CICC")]
Cicc,
#[serde(rename = "DFLE")]
Dfle,
#[serde(rename = "CTLS")]
Ctls,
#[serde(rename = "ECTL")]
Ectl,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BankTransactionCodeStructure6 {
#[serde(rename = "Cd")]
pub cd: ExternalBankTransactionFamily1Code,
#[serde(rename = "SubFmlyCd")]
pub sub_fmly_cd: ExternalBankTransactionSubFamily1Code,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalRePresentmentReason1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalBankTransactionFamily1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAuthorisation1 {
#[serde(rename = "Titl", skip_serializing_if = "Option::is_none")]
pub titl: Option<Max35Text>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum UserInterface2Code {
#[serde(rename = "MDSP")]
Mdsp,
#[serde(rename = "CDSP")]
Cdsp,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAccount40 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<AccountIdentification4Choice>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CashAccountType2Choice>,
#[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
pub ccy: Option<ActiveOrHistoricCurrencyCode>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "Prxy", skip_serializing_if = "Option::is_none")]
pub prxy: Option<ProxyAccountIdentification1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GroupHeader81 {
#[validate]
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[validate]
#[serde(rename = "CreDtTm")]
pub cre_dt_tm: IsoDateTime,
#[serde(rename = "MsgRcpt", skip_serializing_if = "Option::is_none")]
pub msg_rcpt: Option<PartyIdentification135>,
#[serde(rename = "MsgPgntn", skip_serializing_if = "Option::is_none")]
pub msg_pgntn: Option<Pagination1>,
#[serde(rename = "OrgnlBizQry", skip_serializing_if = "Option::is_none")]
pub orgnl_biz_qry: Option<OriginalBusinessQuery1>,
#[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
pub addtl_inf: Option<Max500Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateOrDateTimePeriod1ChoiceEnum {
#[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
pub dt_tm: Option<DateTimePeriod1>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<DatePeriod2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateOrDateTimePeriod1Choice {
#[serde(flatten)]
pub value: DateOrDateTimePeriod1ChoiceEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum ClearingChannel2Code {
#[serde(rename = "RTGS")]
Rtgs,
#[serde(rename = "RTNS")]
Rtns,
#[serde(rename = "MPNS")]
Mpns,
#[serde(rename = "BOOK")]
Book,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAccount41 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<AccountIdentification4Choice>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CashAccountType2Choice>,
#[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
pub ccy: Option<ActiveOrHistoricCurrencyCode>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "Prxy", skip_serializing_if = "Option::is_none")]
pub prxy: Option<ProxyAccountIdentification1>,
#[serde(rename = "Ownr", skip_serializing_if = "Option::is_none")]
pub ownr: Option<PartyIdentification135>,
#[serde(rename = "Svcr", skip_serializing_if = "Option::is_none")]
pub svcr: Option<BranchAndFinancialInstitutionIdentification6>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CreditorReferenceType2 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: CreditorReferenceType1Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum UnitOfMeasure1Code {
#[serde(rename = "PIEC")]
Piec,
#[serde(rename = "TONS")]
Tons,
#[serde(rename = "FOOT")]
Foot,
#[serde(rename = "GBGA")]
Gbga,
#[serde(rename = "USGA")]
Usga,
#[serde(rename = "GRAM")]
Gram,
#[serde(rename = "INCH")]
Inch,
#[serde(rename = "KILO")]
Kilo,
#[serde(rename = "PUND")]
Pund,
#[serde(rename = "METR")]
Metr,
#[serde(rename = "CMET")]
Cmet,
#[serde(rename = "MMET")]
Mmet,
#[serde(rename = "LITR")]
Litr,
#[serde(rename = "CELI")]
Celi,
#[serde(rename = "MILI")]
Mili,
#[serde(rename = "GBOU")]
Gbou,
#[serde(rename = "USOU")]
Usou,
#[serde(rename = "GBQA")]
Gbqa,
#[serde(rename = "USQA")]
Usqa,
#[serde(rename = "GBPI")]
Gbpi,
#[serde(rename = "USPI")]
Uspi,
#[serde(rename = "MILE")]
Mile,
#[serde(rename = "KMET")]
Kmet,
#[serde(rename = "YARD")]
Yard,
#[serde(rename = "SQKI")]
Sqki,
#[serde(rename = "HECT")]
Hect,
#[serde(rename = "ARES")]
Ares,
#[serde(rename = "SMET")]
Smet,
#[serde(rename = "SCMT")]
Scmt,
#[serde(rename = "SMIL")]
Smil,
#[serde(rename = "SQMI")]
Sqmi,
#[serde(rename = "SQYA")]
Sqya,
#[serde(rename = "SQFO")]
Sqfo,
#[serde(rename = "SQIN")]
Sqin,
#[serde(rename = "ACRE")]
Acre,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PersonIdentification13 {
#[serde(rename = "DtAndPlcOfBirth", skip_serializing_if = "Option::is_none")]
pub dt_and_plc_of_birth: Option<DateAndPlaceOfBirth1>,
#[validate(length(min = 0,))]
#[serde(rename = "Othr", default)]
pub othr: Vec<GenericPersonIdentification1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification135 {
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress24>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Party38Choice>,
#[serde(rename = "CtryOfRes", skip_serializing_if = "Option::is_none")]
pub ctry_of_res: Option<CountryCode>,
#[serde(rename = "CtctDtls", skip_serializing_if = "Option::is_none")]
pub ctct_dtls: Option<Contact4>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalChargeType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalPersonIdentification1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ChargeType3ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalChargeType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ChargeType3Choice {
#[serde(flatten)]
pub value: ChargeType3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EntryStatus1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalEntryStatus1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EntryStatus1Choice {
#[serde(flatten)]
pub value: EntryStatus1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalReturnReason1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RemittanceAmount3 {
#[serde(rename = "DuePyblAmt", skip_serializing_if = "Option::is_none")]
pub due_pybl_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "DscntApldAmt", default)]
pub dscnt_apld_amt: Vec<DiscountAmountAndType1>,
#[serde(rename = "CdtNoteAmt", skip_serializing_if = "Option::is_none")]
pub cdt_note_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "TaxAmt", default)]
pub tax_amt: Vec<TaxAmountAndType1>,
#[validate(length(min = 0,))]
#[serde(rename = "AdjstmntAmtAndRsn", default)]
pub adjstmnt_amt_and_rsn: Vec<DocumentAdjustment1>,
#[serde(rename = "RmtdAmt", skip_serializing_if = "Option::is_none")]
pub rmtd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Min2Max3NumericText {
#[validate(regex = "MIN_2_MAX_3_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialInstrumentQuantity1ChoiceEnum {
#[serde(rename = "Unit", skip_serializing_if = "Option::is_none")]
pub unit: Option<DecimalNumber>,
#[serde(rename = "FaceAmt", skip_serializing_if = "Option::is_none")]
pub face_amt: Option<ImpliedCurrencyAndAmount>,
#[serde(rename = "AmtsdVal", skip_serializing_if = "Option::is_none")]
pub amtsd_val: Option<ImpliedCurrencyAndAmount>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialInstrumentQuantity1Choice {
#[serde(flatten)]
pub value: FinancialInstrumentQuantity1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyAndAmount {
#[serde(rename = "ActiveOrHistoricCurrencyAndAmount")]
pub value: ActiveOrHistoricCurrencyAndAmountSimpleType,
#[serde(rename = "@Ccy")]
pub ccy: ActiveOrHistoricCurrencyCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CreditorReferenceInformation2 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CreditorReferenceType2>,
#[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
pub r#ref: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IdentificationSource3ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalFinancialInstrumentIdentificationType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IdentificationSource3Choice {
#[serde(flatten)]
pub value: IdentificationSource3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryReference1 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[validate]
#[serde(rename = "Ref")]
pub r#ref: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxPeriod3 {
#[serde(rename = "Yr", skip_serializing_if = "Option::is_none")]
pub yr: Option<IsoYear>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<TaxRecordPeriod1Code>,
#[serde(rename = "FrToDt", skip_serializing_if = "Option::is_none")]
pub fr_to_dt: Option<DatePeriod2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Contact4 {
#[serde(rename = "NmPrfx", skip_serializing_if = "Option::is_none")]
pub nm_prfx: Option<NamePrefix2Code>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
pub phne_nb: Option<PhoneNumber>,
#[serde(rename = "MobNb", skip_serializing_if = "Option::is_none")]
pub mob_nb: Option<PhoneNumber>,
#[serde(rename = "FaxNb", skip_serializing_if = "Option::is_none")]
pub fax_nb: Option<PhoneNumber>,
#[serde(rename = "EmailAdr", skip_serializing_if = "Option::is_none")]
pub email_adr: Option<Max2048Text>,
#[serde(rename = "EmailPurp", skip_serializing_if = "Option::is_none")]
pub email_purp: Option<Max35Text>,
#[serde(rename = "JobTitl", skip_serializing_if = "Option::is_none")]
pub job_titl: Option<Max35Text>,
#[serde(rename = "Rspnsblty", skip_serializing_if = "Option::is_none")]
pub rspnsblty: Option<Max35Text>,
#[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
pub dept: Option<Max70Text>,
#[validate(length(min = 0,))]
#[serde(rename = "Othr", default)]
pub othr: Vec<OtherContact1>,
#[serde(rename = "PrefrdMtd", skip_serializing_if = "Option::is_none")]
pub prefrd_mtd: Option<PreferredContactMethod1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardholderAuthentication2 {
#[serde(rename = "AuthntcnMtd")]
pub authntcn_mtd: AuthenticationMethod1Code,
#[serde(rename = "AuthntcnNtty")]
pub authntcn_ntty: AuthenticationEntity1Code,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BaseOneRate {
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionInterest4 {
#[serde(rename = "TtlIntrstAndTaxAmt", skip_serializing_if = "Option::is_none")]
pub ttl_intrst_and_tax_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "Rcrd", default)]
pub rcrd: Vec<InterestRecord2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso2ALanguageCode {
#[validate(regex = "ISO_2_A_LANGUAGE_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Min8Max28NumericText {
#[validate(regex = "MIN_8_MAX_28_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RateType4ChoiceEnum {
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<Max35Text>,
#[serde(rename = "Pctg", skip_serializing_if = "Option::is_none")]
pub pctg: Option<PercentageRate>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RateType4Choice {
#[serde(flatten)]
pub value: RateType4ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoDate {
#[serde(rename = "$text")]
pub value: ::chrono::NaiveDate,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CreditDebitCode {
#[serde(rename = "CRDT")]
Crdt,
#[serde(rename = "DBIT")]
Dbit,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryDate3 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[serde(rename = "Dt")]
pub dt: DateAndDateTime2Choice,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PriceRateOrAmount3ChoiceEnum {
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<ActiveOrHistoricCurrencyAnd13DecimalAmount>,
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<PercentageRate>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PriceRateOrAmount3Choice {
#[serde(flatten)]
pub value: PriceRateOrAmount3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryParty5 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[serde(rename = "Pty")]
pub pty: Party40Choice,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RemittanceLocationData1 {
#[serde(rename = "Mtd")]
pub mtd: RemittanceLocationMethod2Code,
#[serde(rename = "ElctrncAdr", skip_serializing_if = "Option::is_none")]
pub elctrnc_adr: Option<Max2048Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<NameAndAddress16>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalOrganisationIdentification1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Party38ChoiceEnum {
#[serde(rename = "PrvtId", skip_serializing_if = "Option::is_none")]
pub prvt_id: Option<PersonIdentification13>,
#[serde(rename = "OrgId", skip_serializing_if = "Option::is_none")]
pub org_id: Option<OrganisationIdentification29>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Party38Choice {
#[serde(flatten)]
pub value: Party38ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RemittanceInformation21 {
#[validate(length(min = 0,))]
#[serde(rename = "Ustrd", default)]
pub ustrd: Vec<Max140Text>,
#[validate(length(min = 0,))]
#[serde(rename = "Strd", default)]
pub strd: Vec<StructuredRemittanceInformation17>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DiscountAmountAndType1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DiscountAmountType1Choice>,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReportingSource1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalReportingSource1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReportingSource1Choice {
#[serde(flatten)]
pub value: ReportingSource1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AnyBicDec2014Identifier {
#[validate(regex = "ANY_BIC_DEC_2014_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalEntryStatus1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SecurityIdentification19 {
#[serde(rename = "ISIN", skip_serializing_if = "Option::is_none")]
pub isin: Option<IsinOct2015Identifier>,
#[validate(length(min = 0,))]
#[serde(rename = "OthrId", default)]
pub othr_id: Vec<OtherIdentification1>,
#[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
pub desc: Option<Max140Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionPrice4ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<ProprietaryPrice2>,
#[serde(rename = "DealPric", skip_serializing_if = "Option::is_none")]
pub deal_pric: Option<Price7>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionPrice4Choice {
#[serde(flatten)]
pub value: TransactionPrice4ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProprietaryPrice2 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[validate]
#[serde(rename = "Pric")]
pub pric: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OrganisationIdentification29 {
#[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
pub any_bic: Option<AnyBicDec2014Identifier>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LeiIdentifier>,
#[validate(length(min = 0,))]
#[serde(rename = "Othr", default)]
pub othr: Vec<GenericOrganisationIdentification1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum AuthenticationMethod1Code {
#[serde(rename = "UKNW")]
Uknw,
#[serde(rename = "BYPS")]
Byps,
#[serde(rename = "NPIN")]
Npin,
#[serde(rename = "FPIN")]
Fpin,
#[serde(rename = "CPSG")]
Cpsg,
#[serde(rename = "PPSG")]
Ppsg,
#[serde(rename = "MANU")]
Manu,
#[serde(rename = "MERC")]
Merc,
#[serde(rename = "SCRT")]
Scrt,
#[serde(rename = "SNCT")]
Snct,
#[serde(rename = "SCNL")]
Scnl,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct NumberAndSumOfTransactions4 {
#[serde(rename = "NbOfNtries", skip_serializing_if = "Option::is_none")]
pub nb_of_ntries: Option<Max15NumericText>,
#[serde(rename = "Sum", skip_serializing_if = "Option::is_none")]
pub sum: Option<DecimalNumber>,
#[serde(rename = "TtlNetNtry", skip_serializing_if = "Option::is_none")]
pub ttl_net_ntry: Option<AmountAndDirection35>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalFinancialInstrumentIdentificationType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AddressType3ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<AddressType2Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification30>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AddressType3Choice {
#[serde(flatten)]
pub value: AddressType3ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ClearingSystemMemberIdentification2 {
#[serde(rename = "ClrSysId", skip_serializing_if = "Option::is_none")]
pub clr_sys_id: Option<ClearingSystemIdentification2Choice>,
#[validate]
#[serde(rename = "MmbId")]
pub mmb_id: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalGarnishmentType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalBankTransactionDomain1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PercentageRate {
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Charges6 {
#[serde(rename = "TtlChrgsAndTaxAmt", skip_serializing_if = "Option::is_none")]
pub ttl_chrgs_and_tax_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "Rcrd", default)]
pub rcrd: Vec<ChargesRecord3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionIdentifier1 {
#[validate]
#[serde(rename = "TxDtTm")]
pub tx_dt_tm: IsoDateTime,
#[validate]
#[serde(rename = "TxRef")]
pub tx_ref: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericAccountIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max34Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<AccountSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentLineType1 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: DocumentLineType1Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentAdjustment1 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<Max4Text>,
#[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
pub addtl_inf: Option<Max140Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MessageIdentification2 {
#[serde(rename = "MsgNmId", skip_serializing_if = "Option::is_none")]
pub msg_nm_id: Option<Max35Text>,
#[serde(rename = "MsgId", skip_serializing_if = "Option::is_none")]
pub msg_id: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TotalsPerBankTransactionCode5 {
#[serde(rename = "NbOfNtries", skip_serializing_if = "Option::is_none")]
pub nb_of_ntries: Option<Max15NumericText>,
#[serde(rename = "Sum", skip_serializing_if = "Option::is_none")]
pub sum: Option<DecimalNumber>,
#[serde(rename = "TtlNetNtry", skip_serializing_if = "Option::is_none")]
pub ttl_net_ntry: Option<AmountAndDirection35>,
#[serde(rename = "CdtNtries", skip_serializing_if = "Option::is_none")]
pub cdt_ntries: Option<NumberAndSumOfTransactions1>,
#[serde(rename = "DbtNtries", skip_serializing_if = "Option::is_none")]
pub dbt_ntries: Option<NumberAndSumOfTransactions1>,
#[serde(rename = "FcstInd", skip_serializing_if = "Option::is_none")]
pub fcst_ind: Option<TrueFalseIndicator>,
#[serde(rename = "BkTxCd")]
pub bk_tx_cd: BankTransactionCodeStructure4,
#[validate(length(min = 0,))]
#[serde(rename = "Avlbty", default)]
pub avlbty: Vec<CashAvailability1>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<DateAndDateTime2Choice>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountAndCurrencyExchangeDetails4 {
#[validate]
#[serde(rename = "Tp")]
pub tp: Max35Text,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CcyXchg", skip_serializing_if = "Option::is_none")]
pub ccy_xchg: Option<CurrencyExchange5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max16Text {
#[validate(length(min = 1, max = 16,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Rate4 {
#[serde(rename = "Tp")]
pub tp: RateType4Choice,
#[serde(rename = "VldtyRg", skip_serializing_if = "Option::is_none")]
pub vldty_rg: Option<ActiveOrHistoricCurrencyAndAmountRange2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionReferences6 {
#[serde(rename = "MsgId", skip_serializing_if = "Option::is_none")]
pub msg_id: Option<Max35Text>,
#[serde(rename = "AcctSvcrRef", skip_serializing_if = "Option::is_none")]
pub acct_svcr_ref: Option<Max35Text>,
#[serde(rename = "PmtInfId", skip_serializing_if = "Option::is_none")]
pub pmt_inf_id: Option<Max35Text>,
#[serde(rename = "InstrId", skip_serializing_if = "Option::is_none")]
pub instr_id: Option<Max35Text>,
#[serde(rename = "EndToEndId", skip_serializing_if = "Option::is_none")]
pub end_to_end_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UuiDv4Identifier>,
#[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<Max35Text>,
#[serde(rename = "MndtId", skip_serializing_if = "Option::is_none")]
pub mndt_id: Option<Max35Text>,
#[serde(rename = "ChqNb", skip_serializing_if = "Option::is_none")]
pub chq_nb: Option<Max35Text>,
#[serde(rename = "ClrSysRef", skip_serializing_if = "Option::is_none")]
pub clr_sys_ref: Option<Max35Text>,
#[serde(rename = "AcctOwnrTxId", skip_serializing_if = "Option::is_none")]
pub acct_ownr_tx_id: Option<Max35Text>,
#[serde(rename = "AcctSvcrTxId", skip_serializing_if = "Option::is_none")]
pub acct_svcr_tx_id: Option<Max35Text>,
#[serde(rename = "MktInfrstrctrTxId", skip_serializing_if = "Option::is_none")]
pub mkt_infrstrctr_tx_id: Option<Max35Text>,
#[serde(rename = "PrcgId", skip_serializing_if = "Option::is_none")]
pub prcg_id: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "Prtry", default)]
pub prtry: Vec<ProprietaryReference1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BankToCustomerDebitCreditNotificationV10<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
B: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "GrpHdr")]
pub grp_hdr: GroupHeader81,
#[validate(length(min = 1,))]
#[serde(rename = "Ntfctn", default)]
pub ntfctn: Vec<AccountNotification20<A>>,
#[validate(length(min = 0,))]
#[serde(rename = "SplmtryData", default)]
pub splmtry_data: Vec<SupplementaryData1<B>>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardTransaction18 {
#[serde(rename = "Card", skip_serializing_if = "Option::is_none")]
pub card: Option<PaymentCard4>,
#[serde(rename = "POI", skip_serializing_if = "Option::is_none")]
pub poi: Option<PointOfInteraction1>,
#[serde(rename = "Tx", skip_serializing_if = "Option::is_none")]
pub tx: Option<CardTransaction3Choice>,
#[serde(rename = "PrePdAcct", skip_serializing_if = "Option::is_none")]
pub pre_pd_acct: Option<CashAccount40>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ServiceLevel8ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalServiceLevel1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ServiceLevel8Choice {
#[serde(flatten)]
pub value: ServiceLevel8ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max4Text {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OriginalBusinessQuery1 {
#[validate]
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[serde(rename = "MsgNmId", skip_serializing_if = "Option::is_none")]
pub msg_nm_id: Option<Max35Text>,
#[serde(rename = "CreDtTm", skip_serializing_if = "Option::is_none")]
pub cre_dt_tm: Option<IsoDateTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountRangeBoundary1 {
#[validate]
#[serde(rename = "BdryAmt")]
pub bdry_amt: ImpliedCurrencyAndAmount,
#[validate]
#[serde(rename = "Incl")]
pub incl: YesNoIndicator,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum AuthenticationEntity1Code {
#[serde(rename = "ICCD")]
Iccd,
#[serde(rename = "AGNT")]
Agnt,
#[serde(rename = "MERC")]
Merc,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAmountAndType1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<TaxAmountType1Choice>,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Number {
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max500Text {
#[validate(length(min = 1, max = 500,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum AddressType2Code {
#[serde(rename = "ADDR")]
Addr,
#[serde(rename = "PBOX")]
Pbox,
#[serde(rename = "HOME")]
Home,
#[serde(rename = "BIZZ")]
Bizz,
#[serde(rename = "MLTO")]
Mlto,
#[serde(rename = "DLVY")]
Dlvy,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalDiscountAmountType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PaymentTypeInformation27 {
#[serde(rename = "InstrPrty", skip_serializing_if = "Option::is_none")]
pub instr_prty: Option<Priority2Code>,
#[serde(rename = "ClrChanl", skip_serializing_if = "Option::is_none")]
pub clr_chanl: Option<ClearingChannel2Code>,
#[validate(length(min = 0,))]
#[serde(rename = "SvcLvl", default)]
pub svc_lvl: Vec<ServiceLevel8Choice>,
#[serde(rename = "LclInstrm", skip_serializing_if = "Option::is_none")]
pub lcl_instrm: Option<LocalInstrument2Choice>,
#[serde(rename = "SeqTp", skip_serializing_if = "Option::is_none")]
pub seq_tp: Option<SequenceType3Code>,
#[serde(rename = "CtgyPurp", skip_serializing_if = "Option::is_none")]
pub ctgy_purp: Option<CategoryPurpose1Choice>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum DocumentType6Code {
#[serde(rename = "MSIN")]
Msin,
#[serde(rename = "CNFA")]
Cnfa,
#[serde(rename = "DNFA")]
Dnfa,
#[serde(rename = "CINV")]
Cinv,
#[serde(rename = "CREN")]
Cren,
#[serde(rename = "DEBN")]
Debn,
#[serde(rename = "HIRI")]
Hiri,
#[serde(rename = "SBIN")]
Sbin,
#[serde(rename = "CMCN")]
Cmcn,
#[serde(rename = "SOAC")]
Soac,
#[serde(rename = "DISP")]
Disp,
#[serde(rename = "BOLD")]
Bold,
#[serde(rename = "VCHR")]
Vchr,
#[serde(rename = "AROI")]
Aroi,
#[serde(rename = "TSUT")]
Tsut,
#[serde(rename = "PUOR")]
Puor,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DocumentLineInformation1 {
#[validate(length(min = 1,))]
#[serde(rename = "Id", default)]
pub id: Vec<DocumentLineIdentification1>,
#[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
pub desc: Option<Max2048Text>,
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<RemittanceAmount3>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PoiComponentType1Code {
#[serde(rename = "SOFT")]
Soft,
#[serde(rename = "EMVK")]
Emvk,
#[serde(rename = "EMVO")]
Emvo,
#[serde(rename = "MRIT")]
Mrit,
#[serde(rename = "CHIT")]
Chit,
#[serde(rename = "SECM")]
Secm,
#[serde(rename = "PEDV")]
Pedv,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iban2007Identifier {
#[validate(regex = "IBAN_2007_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SecuritiesAccount19 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<GenericIdentification30>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountNotification20<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "NtfctnPgntn", skip_serializing_if = "Option::is_none")]
pub ntfctn_pgntn: Option<Pagination1>,
#[serde(rename = "ElctrncSeqNb", skip_serializing_if = "Option::is_none")]
pub elctrnc_seq_nb: Option<Number>,
#[serde(rename = "RptgSeq", skip_serializing_if = "Option::is_none")]
pub rptg_seq: Option<SequenceRange1Choice>,
#[serde(rename = "LglSeqNb", skip_serializing_if = "Option::is_none")]
pub lgl_seq_nb: Option<Number>,
#[serde(rename = "CreDtTm", skip_serializing_if = "Option::is_none")]
pub cre_dt_tm: Option<IsoDateTime>,
#[serde(rename = "FrToDt", skip_serializing_if = "Option::is_none")]
pub fr_to_dt: Option<DateTimePeriod1>,
#[serde(rename = "CpyDplctInd", skip_serializing_if = "Option::is_none")]
pub cpy_dplct_ind: Option<CopyDuplicate1Code>,
#[serde(rename = "RptgSrc", skip_serializing_if = "Option::is_none")]
pub rptg_src: Option<ReportingSource1Choice>,
#[validate]
#[serde(rename = "Acct")]
pub acct: CashAccount41,
#[serde(rename = "RltdAcct", skip_serializing_if = "Option::is_none")]
pub rltd_acct: Option<CashAccount40>,
#[validate(length(min = 0,))]
#[serde(rename = "Intrst", default)]
pub intrst: Vec<AccountInterest4>,
#[serde(rename = "TxsSummry", skip_serializing_if = "Option::is_none")]
pub txs_summry: Option<TotalTransactions6>,
#[validate(length(min = 0,))]
#[serde(rename = "Ntry", default)]
pub ntry: Vec<ReportEntry12<A>>,
#[serde(rename = "AddtlNtfctnInf", skip_serializing_if = "Option::is_none")]
pub addtl_ntfctn_inf: Option<Max500Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateAndDateTime2ChoiceEnum {
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "DtTm", skip_serializing_if = "Option::is_none")]
pub dt_tm: Option<IsoDateTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateAndDateTime2Choice {
#[serde(flatten)]
pub value: DateAndDateTime2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalClearingSystemIdentification1Code {
#[validate(length(min = 1, max = 5,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAccountType2ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCashAccountType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CashAccountType2Choice {
#[serde(flatten)]
pub value: CashAccountType2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PaymentReturnReason5 {
#[serde(rename = "OrgnlBkTxCd", skip_serializing_if = "Option::is_none")]
pub orgnl_bk_tx_cd: Option<BankTransactionCodeStructure4>,
#[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
pub orgtr: Option<PartyIdentification135>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<ReturnReason5Choice>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlInf", default)]
pub addtl_inf: Vec<Max105Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionDates3 {
#[serde(rename = "AccptncDtTm", skip_serializing_if = "Option::is_none")]
pub accptnc_dt_tm: Option<IsoDateTime>,
#[serde(
rename = "TradActvtyCtrctlSttlmDt",
skip_serializing_if = "Option::is_none"
)]
pub trad_actvty_ctrctl_sttlm_dt: Option<IsoDate>,
#[serde(rename = "TradDt", skip_serializing_if = "Option::is_none")]
pub trad_dt: Option<IsoDate>,
#[serde(rename = "IntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_dt: Option<IsoDate>,
#[serde(rename = "StartDt", skip_serializing_if = "Option::is_none")]
pub start_dt: Option<IsoDate>,
#[serde(rename = "EndDt", skip_serializing_if = "Option::is_none")]
pub end_dt: Option<IsoDate>,
#[serde(rename = "TxDtTm", skip_serializing_if = "Option::is_none")]
pub tx_dt_tm: Option<IsoDateTime>,
#[validate(length(min = 0,))]
#[serde(rename = "Prtry", default)]
pub prtry: Vec<ProprietaryDate3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CurrencyExchange5 {
#[serde(rename = "SrcCcy")]
pub src_ccy: ActiveOrHistoricCurrencyCode,
#[serde(rename = "TrgtCcy", skip_serializing_if = "Option::is_none")]
pub trgt_ccy: Option<ActiveOrHistoricCurrencyCode>,
#[serde(rename = "UnitCcy", skip_serializing_if = "Option::is_none")]
pub unit_ccy: Option<ActiveOrHistoricCurrencyCode>,
#[validate]
#[serde(rename = "XchgRate")]
pub xchg_rate: BaseOneRate,
#[serde(rename = "CtrctId", skip_serializing_if = "Option::is_none")]
pub ctrct_id: Option<Max35Text>,
#[serde(rename = "QtnDt", skip_serializing_if = "Option::is_none")]
pub qtn_dt: Option<IsoDateTime>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CscManagement1Code {
#[serde(rename = "PRST")]
Prst,
#[serde(rename = "BYPS")]
Byps,
#[serde(rename = "UNRD")]
Unrd,
#[serde(rename = "NCSC")]
Ncsc,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TrueFalseIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FromToAmountRange1 {
#[validate]
#[serde(rename = "FrAmt")]
pub fr_amt: AmountRangeBoundary1,
#[validate]
#[serde(rename = "ToAmt")]
pub to_amt: AmountRangeBoundary1,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BranchAndFinancialInstitutionIdentification6 {
#[validate]
#[serde(rename = "FinInstnId")]
pub fin_instn_id: FinancialInstitutionIdentification18,
#[serde(rename = "BrnchId", skip_serializing_if = "Option::is_none")]
pub brnch_id: Option<BranchData3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SequenceRange1ChoiceEnum {
#[serde(rename = "EQSeq", skip_serializing_if = "Option::is_none")]
pub eq_seq: Option<Max35Text>,
#[serde(rename = "ToSeq", skip_serializing_if = "Option::is_none")]
pub to_seq: Option<Max35Text>,
#[serde(rename = "FrToSeq", skip_serializing_if = "Option::is_none")]
pub fr_to_seq: Option<SequenceRange1>,
#[serde(rename = "NEQSeq", skip_serializing_if = "Option::is_none")]
pub neq_seq: Option<Max35Text>,
#[serde(rename = "FrSeq", skip_serializing_if = "Option::is_none")]
pub fr_seq: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SequenceRange1Choice {
#[serde(flatten)]
pub value: SequenceRange1ChoiceEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum InterestType1Code {
#[serde(rename = "INDY")]
Indy,
#[serde(rename = "OVRN")]
Ovrn,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DateAndPlaceOfBirth1 {
#[validate]
#[serde(rename = "BirthDt")]
pub birth_dt: IsoDate,
#[serde(rename = "PrvcOfBirth", skip_serializing_if = "Option::is_none")]
pub prvc_of_birth: Option<Max35Text>,
#[validate]
#[serde(rename = "CityOfBirth")]
pub city_of_birth: Max35Text,
#[serde(rename = "CtryOfBirth")]
pub ctry_of_birth: CountryCode,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ImpliedCurrencyAmountRange1ChoiceEnum {
#[serde(rename = "ToAmt", skip_serializing_if = "Option::is_none")]
pub to_amt: Option<AmountRangeBoundary1>,
#[serde(rename = "FrAmt", skip_serializing_if = "Option::is_none")]
pub fr_amt: Option<AmountRangeBoundary1>,
#[serde(rename = "FrToAmt", skip_serializing_if = "Option::is_none")]
pub fr_to_amt: Option<FromToAmountRange1>,
#[serde(rename = "EQAmt", skip_serializing_if = "Option::is_none")]
pub eq_amt: Option<ImpliedCurrencyAndAmount>,
#[serde(rename = "NEQAmt", skip_serializing_if = "Option::is_none")]
pub neq_amt: Option<ImpliedCurrencyAndAmount>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ImpliedCurrencyAmountRange1Choice {
#[serde(flatten)]
pub value: ImpliedCurrencyAmountRange1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct NumberAndSumOfTransactions1 {
#[serde(rename = "NbOfNtries", skip_serializing_if = "Option::is_none")]
pub nb_of_ntries: Option<Max15NumericText>,
#[serde(rename = "Sum", skip_serializing_if = "Option::is_none")]
pub sum: Option<DecimalNumber>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BranchData3 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LeiIdentifier>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress24>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionParties9 {
#[serde(rename = "InitgPty", skip_serializing_if = "Option::is_none")]
pub initg_pty: Option<Party40Choice>,
#[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
pub dbtr: Option<Party40Choice>,
#[serde(rename = "DbtrAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_acct: Option<CashAccount40>,
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: Option<Party40Choice>,
#[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
pub cdtr: Option<Party40Choice>,
#[serde(rename = "CdtrAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_acct: Option<CashAccount40>,
#[serde(rename = "UltmtCdtr", skip_serializing_if = "Option::is_none")]
pub ultmt_cdtr: Option<Party40Choice>,
#[serde(rename = "TradgPty", skip_serializing_if = "Option::is_none")]
pub tradg_pty: Option<Party40Choice>,
#[validate(length(min = 0,))]
#[serde(rename = "Prtry", default)]
pub prtry: Vec<ProprietaryParty5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Product2 {
#[validate]
#[serde(rename = "PdctCd")]
pub pdct_cd: Max70Text,
#[serde(rename = "UnitOfMeasr", skip_serializing_if = "Option::is_none")]
pub unit_of_measr: Option<UnitOfMeasure1Code>,
#[serde(rename = "PdctQty", skip_serializing_if = "Option::is_none")]
pub pdct_qty: Option<DecimalNumber>,
#[serde(rename = "UnitPric", skip_serializing_if = "Option::is_none")]
pub unit_pric: Option<ImpliedCurrencyAndAmount>,
#[serde(rename = "PdctAmt", skip_serializing_if = "Option::is_none")]
pub pdct_amt: Option<ImpliedCurrencyAndAmount>,
#[serde(rename = "TaxTp", skip_serializing_if = "Option::is_none")]
pub tax_tp: Option<Max35Text>,
#[serde(rename = "AddtlPdctInf", skip_serializing_if = "Option::is_none")]
pub addtl_pdct_inf: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Garnishment3 {
#[validate]
#[serde(rename = "Tp")]
pub tp: GarnishmentType1,
#[serde(rename = "Grnshee", skip_serializing_if = "Option::is_none")]
pub grnshee: Option<PartyIdentification135>,
#[serde(rename = "GrnshmtAdmstr", skip_serializing_if = "Option::is_none")]
pub grnshmt_admstr: Option<PartyIdentification135>,
#[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
pub ref_nb: Option<Max140Text>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "RmtdAmt", skip_serializing_if = "Option::is_none")]
pub rmtd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "FmlyMdclInsrncInd", skip_serializing_if = "Option::is_none")]
pub fmly_mdcl_insrnc_ind: Option<TrueFalseIndicator>,
#[serde(rename = "MplyeeTermntnInd", skip_serializing_if = "Option::is_none")]
pub mplyee_termntn_ind: Option<TrueFalseIndicator>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalDocumentLineType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProxyAccountType1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalProxyAccountType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProxyAccountType1Choice {
#[serde(flatten)]
pub value: ProxyAccountType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct InterestType1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<InterestType1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct InterestType1Choice {
#[serde(flatten)]
pub value: InterestType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TechnicalInputChannel1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalTechnicalInputChannel1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TechnicalInputChannel1Choice {
#[serde(flatten)]
pub value: TechnicalInputChannel1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Min3Max4NumericText {
#[validate(regex = "MIN_3_MAX_4_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountAndCurrencyExchange3 {
#[serde(rename = "InstdAmt", skip_serializing_if = "Option::is_none")]
pub instd_amt: Option<AmountAndCurrencyExchangeDetails3>,
#[serde(rename = "TxAmt", skip_serializing_if = "Option::is_none")]
pub tx_amt: Option<AmountAndCurrencyExchangeDetails3>,
#[serde(rename = "CntrValAmt", skip_serializing_if = "Option::is_none")]
pub cntr_val_amt: Option<AmountAndCurrencyExchangeDetails3>,
#[serde(rename = "AnncdPstngAmt", skip_serializing_if = "Option::is_none")]
pub anncd_pstng_amt: Option<AmountAndCurrencyExchangeDetails3>,
#[validate(length(min = 0,))]
#[serde(rename = "PrtryAmt", default)]
pub prtry_amt: Vec<AmountAndCurrencyExchangeDetails4>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max34Text {
#[validate(length(min = 1, max = 34,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PersonIdentificationSchemeName1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPersonIdentification1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PersonIdentificationSchemeName1Choice {
#[serde(flatten)]
pub value: PersonIdentificationSchemeName1ChoiceEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PriceValueType1Code {
#[serde(rename = "DISC")]
Disc,
#[serde(rename = "PREM")]
Prem,
#[serde(rename = "PARV")]
Parv,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReturnReason5ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalReturnReason1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReturnReason5Choice {
#[serde(flatten)]
pub value: ReturnReason5ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxData1 {
#[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
pub cdtr: Option<TaxParty1>,
#[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
pub dbtr: Option<TaxParty2>,
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: Option<TaxParty2>,
#[serde(rename = "AdmstnZone", skip_serializing_if = "Option::is_none")]
pub admstn_zone: Option<Max35Text>,
#[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
pub ref_nb: Option<Max140Text>,
#[serde(rename = "Mtd", skip_serializing_if = "Option::is_none")]
pub mtd: Option<Max35Text>,
#[serde(rename = "TtlTaxblBaseAmt", skip_serializing_if = "Option::is_none")]
pub ttl_taxbl_base_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "TtlTaxAmt", skip_serializing_if = "Option::is_none")]
pub ttl_tax_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<Number>,
#[validate(length(min = 0,))]
#[serde(rename = "Rcrd", default)]
pub rcrd: Vec<TaxRecord3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardSecurityInformation1 {
#[serde(rename = "CSCMgmt")]
pub csc_mgmt: CscManagement1Code,
#[serde(rename = "CSCVal", skip_serializing_if = "Option::is_none")]
pub csc_val: Option<Min3Max4NumericText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification32 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<PartyType3Code>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<PartyType4Code>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TrackData1 {
#[serde(rename = "TrckNb", skip_serializing_if = "Option::is_none")]
pub trck_nb: Option<Exact1NumericText>,
#[validate]
#[serde(rename = "TrckVal")]
pub trck_val: Max140Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EntryTransaction12<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[serde(rename = "Refs", skip_serializing_if = "Option::is_none")]
pub refs: Option<TransactionReferences6>,
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
#[serde(rename = "AmtDtls", skip_serializing_if = "Option::is_none")]
pub amt_dtls: Option<AmountAndCurrencyExchange3>,
#[validate(length(min = 0,))]
#[serde(rename = "Avlbty", default)]
pub avlbty: Vec<CashAvailability1>,
#[serde(rename = "BkTxCd", skip_serializing_if = "Option::is_none")]
pub bk_tx_cd: Option<BankTransactionCodeStructure4>,
#[serde(rename = "Chrgs", skip_serializing_if = "Option::is_none")]
pub chrgs: Option<Charges6>,
#[serde(rename = "Intrst", skip_serializing_if = "Option::is_none")]
pub intrst: Option<TransactionInterest4>,
#[serde(rename = "RltdPties", skip_serializing_if = "Option::is_none")]
pub rltd_pties: Option<TransactionParties9>,
#[serde(rename = "RltdAgts", skip_serializing_if = "Option::is_none")]
pub rltd_agts: Option<TransactionAgents5>,
#[serde(rename = "LclInstrm", skip_serializing_if = "Option::is_none")]
pub lcl_instrm: Option<LocalInstrument2Choice>,
#[serde(rename = "PmtTpInf", skip_serializing_if = "Option::is_none")]
pub pmt_tp_inf: Option<PaymentTypeInformation27>,
#[serde(rename = "Purp", skip_serializing_if = "Option::is_none")]
pub purp: Option<Purpose2Choice>,
#[validate(length(min = 0, max = 10,))]
#[serde(rename = "RltdRmtInf", default)]
pub rltd_rmt_inf: Vec<RemittanceLocation7>,
#[serde(rename = "RmtInf", skip_serializing_if = "Option::is_none")]
pub rmt_inf: Option<RemittanceInformation21>,
#[serde(rename = "RltdDts", skip_serializing_if = "Option::is_none")]
pub rltd_dts: Option<TransactionDates3>,
#[serde(rename = "RltdPric", skip_serializing_if = "Option::is_none")]
pub rltd_pric: Option<TransactionPrice4Choice>,
#[validate(length(min = 0,))]
#[serde(rename = "RltdQties", default)]
pub rltd_qties: Vec<TransactionQuantities3Choice>,
#[serde(rename = "FinInstrmId", skip_serializing_if = "Option::is_none")]
pub fin_instrm_id: Option<SecurityIdentification19>,
#[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<TaxInformation10>,
#[serde(rename = "RtrInf", skip_serializing_if = "Option::is_none")]
pub rtr_inf: Option<PaymentReturnReason5>,
#[serde(rename = "CorpActn", skip_serializing_if = "Option::is_none")]
pub corp_actn: Option<CorporateAction9>,
#[serde(rename = "SfkpgAcct", skip_serializing_if = "Option::is_none")]
pub sfkpg_acct: Option<SecuritiesAccount19>,
#[validate(length(min = 0,))]
#[serde(rename = "CshDpst", default)]
pub csh_dpst: Vec<CashDeposit1>,
#[serde(rename = "CardTx", skip_serializing_if = "Option::is_none")]
pub card_tx: Option<CardTransaction18>,
#[serde(rename = "AddtlTxInf", skip_serializing_if = "Option::is_none")]
pub addtl_tx_inf: Option<Max500Text>,
#[validate(length(min = 0,))]
#[serde(rename = "SplmtryData", default)]
pub splmtry_data: Vec<SupplementaryData1<A>>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DisplayCapabilities1 {
#[serde(rename = "DispTp")]
pub disp_tp: UserInterface2Code,
#[validate]
#[serde(rename = "NbOfLines")]
pub nb_of_lines: Max3NumericText,
#[validate]
#[serde(rename = "LineWidth")]
pub line_width: Max3NumericText,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max3NumericText {
#[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LeiIdentifier {
#[validate(regex = "LEI_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct NameAndAddress16 {
#[validate]
#[serde(rename = "Nm")]
pub nm: Max140Text,
#[validate]
#[serde(rename = "Adr")]
pub adr: PostalAddress24,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericFinancialIdentification1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<FinancialIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max350Text {
#[validate(length(min = 1, max = 350,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OrganisationIdentificationSchemeName1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalOrganisationIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OrganisationIdentificationSchemeName1Choice {
#[serde(flatten)]
pub value: OrganisationIdentificationSchemeName1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ReportEntry12<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[serde(rename = "NtryRef", skip_serializing_if = "Option::is_none")]
pub ntry_ref: Option<Max35Text>,
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd")]
pub cdt_dbt_ind: CreditDebitCode,
#[serde(rename = "RvslInd", skip_serializing_if = "Option::is_none")]
pub rvsl_ind: Option<TrueFalseIndicator>,
#[serde(rename = "Sts")]
pub sts: EntryStatus1Choice,
#[serde(rename = "BookgDt", skip_serializing_if = "Option::is_none")]
pub bookg_dt: Option<DateAndDateTime2Choice>,
#[serde(rename = "ValDt", skip_serializing_if = "Option::is_none")]
pub val_dt: Option<DateAndDateTime2Choice>,
#[serde(rename = "AcctSvcrRef", skip_serializing_if = "Option::is_none")]
pub acct_svcr_ref: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "Avlbty", default)]
pub avlbty: Vec<CashAvailability1>,
#[serde(rename = "BkTxCd")]
pub bk_tx_cd: BankTransactionCodeStructure4,
#[serde(rename = "ComssnWvrInd", skip_serializing_if = "Option::is_none")]
pub comssn_wvr_ind: Option<YesNoIndicator>,
#[serde(rename = "AddtlInfInd", skip_serializing_if = "Option::is_none")]
pub addtl_inf_ind: Option<MessageIdentification2>,
#[serde(rename = "AmtDtls", skip_serializing_if = "Option::is_none")]
pub amt_dtls: Option<AmountAndCurrencyExchange3>,
#[serde(rename = "Chrgs", skip_serializing_if = "Option::is_none")]
pub chrgs: Option<Charges6>,
#[serde(rename = "TechInptChanl", skip_serializing_if = "Option::is_none")]
pub tech_inpt_chanl: Option<TechnicalInputChannel1Choice>,
#[serde(rename = "Intrst", skip_serializing_if = "Option::is_none")]
pub intrst: Option<TransactionInterest4>,
#[serde(rename = "CardTx", skip_serializing_if = "Option::is_none")]
pub card_tx: Option<CardEntry5>,
#[validate(length(min = 0,))]
#[serde(rename = "NtryDtls", default)]
pub ntry_dtls: Vec<EntryDetails11<A>>,
#[serde(rename = "AddtlNtryInf", skip_serializing_if = "Option::is_none")]
pub addtl_ntry_inf: Option<Max500Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OriginalAndCurrentQuantities1 {
#[validate]
#[serde(rename = "FaceAmt")]
pub face_amt: ImpliedCurrencyAndAmount,
#[validate]
#[serde(rename = "AmtsdVal")]
pub amtsd_val: ImpliedCurrencyAndAmount,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Pagination1 {
#[validate]
#[serde(rename = "PgNb")]
pub pg_nb: Max5NumericText,
#[validate]
#[serde(rename = "LastPgInd")]
pub last_pg_ind: YesNoIndicator,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum SequenceType3Code {
#[serde(rename = "FRST")]
Frst,
#[serde(rename = "RCUR")]
Rcur,
#[serde(rename = "FNAL")]
Fnal,
#[serde(rename = "OOFF")]
Ooff,
#[serde(rename = "RPRE")]
Rpre,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Party40ChoiceEnum {
#[serde(rename = "Pty", skip_serializing_if = "Option::is_none")]
pub pty: Option<PartyIdentification135>,
#[serde(rename = "Agt", skip_serializing_if = "Option::is_none")]
pub agt: Option<BranchAndFinancialInstitutionIdentification6>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Party40Choice {
#[serde(flatten)]
pub value: Party40ChoiceEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum AttendanceContext1Code {
#[serde(rename = "ATTD")]
Attd,
#[serde(rename = "SATT")]
Satt,
#[serde(rename = "UATT")]
Uatt,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum ChargeBearerType1Code {
#[serde(rename = "DEBT")]
Debt,
#[serde(rename = "CRED")]
Cred,
#[serde(rename = "SHAR")]
Shar,
#[serde(rename = "SLEV")]
Slev,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CopyDuplicate1Code {
#[serde(rename = "CODU")]
Codu,
#[serde(rename = "COPY")]
Copy,
#[serde(rename = "DUPL")]
Dupl,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalCashAccountType1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteraction1 {
#[validate]
#[serde(rename = "Id")]
pub id: GenericIdentification32,
#[serde(rename = "SysNm", skip_serializing_if = "Option::is_none")]
pub sys_nm: Option<Max70Text>,
#[serde(rename = "GrpId", skip_serializing_if = "Option::is_none")]
pub grp_id: Option<Max35Text>,
#[serde(rename = "Cpblties", skip_serializing_if = "Option::is_none")]
pub cpblties: Option<PointOfInteractionCapabilities1>,
#[validate(length(min = 0,))]
#[serde(rename = "Cmpnt", default)]
pub cmpnt: Vec<PointOfInteractionComponent1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ActiveOrHistoricCurrencyAnd13DecimalAmountSimpleType {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}