use validator::Validate;
::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 ACTIVE_OR_HISTORIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{3,3}"#).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 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 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 EXACT_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2}"#).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 EXACT_4_ALPHA_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-zA-Z0-9]{4}"#).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 ISO_YEAR_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}([+-]\d{2}:\d{2}|Z)?$"#).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 MAX_10_K_BINARY_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Za-z0-9+/]{4}*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"#).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 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.029.001.11".to_string()
}
#[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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalInvestigationExecutionConfirmation1Code {
#[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 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)]
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 AmendmentInformationDetails14 {
#[serde(rename = "OrgnlMndtId", skip_serializing_if = "Option::is_none")]
pub orgnl_mndt_id: Option<Max35Text>,
#[serde(rename = "OrgnlCdtrSchmeId", skip_serializing_if = "Option::is_none")]
pub orgnl_cdtr_schme_id: Option<PartyIdentification135>,
#[serde(rename = "OrgnlCdtrAgt", skip_serializing_if = "Option::is_none")]
pub orgnl_cdtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "OrgnlCdtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub orgnl_cdtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "OrgnlDbtr", skip_serializing_if = "Option::is_none")]
pub orgnl_dbtr: Option<PartyIdentification135>,
#[serde(rename = "OrgnlDbtrAcct", skip_serializing_if = "Option::is_none")]
pub orgnl_dbtr_acct: Option<CashAccount40>,
#[serde(rename = "OrgnlDbtrAgt", skip_serializing_if = "Option::is_none")]
pub orgnl_dbtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "OrgnlDbtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub orgnl_dbtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "OrgnlFnlColltnDt", skip_serializing_if = "Option::is_none")]
pub orgnl_fnl_colltn_dt: Option<IsoDate>,
#[serde(rename = "OrgnlFrqcy", skip_serializing_if = "Option::is_none")]
pub orgnl_frqcy: Option<Frequency36Choice>,
#[serde(rename = "OrgnlRsn", skip_serializing_if = "Option::is_none")]
pub orgnl_rsn: Option<MandateSetupReason1Choice>,
#[serde(rename = "OrgnlTrckgDays", skip_serializing_if = "Option::is_none")]
pub orgnl_trckg_days: Option<Exact2NumericText>,
}
#[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 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 Max70Text {
#[validate(length(min = 1, max = 70,))]
#[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 = "OrgId", skip_serializing_if = "Option::is_none")]
pub org_id: Option<OrganisationIdentification29>,
#[serde(rename = "PrvtId", skip_serializing_if = "Option::is_none")]
pub prvt_id: Option<PersonIdentification13>,
}
#[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 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 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 ClaimNonReceiptRejectReason1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalClaimNonReceiptRejection1Code>,
#[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 ClaimNonReceiptRejectReason1Choice {
#[serde(flatten)]
pub value: ClaimNonReceiptRejectReason1ChoiceEnum,
}
#[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 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 OriginalPaymentInstruction43 {
#[serde(rename = "OrgnlPmtInfCxlId", skip_serializing_if = "Option::is_none")]
pub orgnl_pmt_inf_cxl_id: Option<Max35Text>,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[validate]
#[serde(rename = "OrgnlPmtInfId")]
pub orgnl_pmt_inf_id: Max35Text,
#[serde(rename = "OrgnlGrpInf", skip_serializing_if = "Option::is_none")]
pub orgnl_grp_inf: Option<OriginalGroupInformation29>,
#[serde(rename = "OrgnlNbOfTxs", skip_serializing_if = "Option::is_none")]
pub orgnl_nb_of_txs: Option<Max15NumericText>,
#[serde(rename = "OrgnlCtrlSum", skip_serializing_if = "Option::is_none")]
pub orgnl_ctrl_sum: Option<DecimalNumber>,
#[serde(rename = "PmtInfCxlSts", skip_serializing_if = "Option::is_none")]
pub pmt_inf_cxl_sts: Option<GroupCancellationStatus1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "CxlStsRsnInf", default)]
pub cxl_sts_rsn_inf: Vec<CancellationStatusReason4>,
#[validate(length(min = 0,))]
#[serde(rename = "NbOfTxsPerCxlSts", default)]
pub nb_of_txs_per_cxl_sts: Vec<NumberOfCancellationsPerStatus1>,
#[validate(length(min = 0,))]
#[serde(rename = "TxInfAndSts", default)]
pub tx_inf_and_sts: Vec<PaymentTransaction139>,
}
#[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)]
pub enum SettlementMethod1Code {
#[serde(rename = "INDA")]
Inda,
#[serde(rename = "INGA")]
Inga,
#[serde(rename = "COVE")]
Cove,
#[serde(rename = "CLRG")]
Clrg,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TransactionIndividualStatus1Code {
#[serde(rename = "ACTC")]
Actc,
#[serde(rename = "RJCT")]
Rjct,
#[serde(rename = "PDNG")]
Pdng,
#[serde(rename = "ACCP")]
Accp,
#[serde(rename = "ACSP")]
Acsp,
#[serde(rename = "ACSC")]
Acsc,
#[serde(rename = "ACCR")]
Accr,
#[serde(rename = "ACWC")]
Acwc,
#[default]
Unknown,
}
#[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 ResolutionData3 {
#[serde(rename = "EndToEndId", skip_serializing_if = "Option::is_none")]
pub end_to_end_id: Option<Max35Text>,
#[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UuiDv4Identifier>,
#[serde(rename = "IntrBkSttlmAmt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "IntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_dt: Option<IsoDate>,
#[serde(rename = "ClrChanl", skip_serializing_if = "Option::is_none")]
pub clr_chanl: Option<ClearingChannel2Code>,
#[serde(rename = "Compstn", skip_serializing_if = "Option::is_none")]
pub compstn: Option<Compensation4>,
#[validate(length(min = 0,))]
#[serde(rename = "Chrgs", default)]
pub chrgs: Vec<Charges9>,
}
#[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 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 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 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 ExternalMandateSetupReason1Code {
#[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 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 ExternalClaimNonReceiptRejection1Code {
#[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 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 InvestigationStatus5ChoiceEnum {
#[serde(rename = "RjctdMod", skip_serializing_if = "Option::is_none")]
pub rjctd_mod: Option<ModificationStatusReason1Choice>,
#[serde(rename = "DplctOf", skip_serializing_if = "Option::is_none")]
pub dplct_of: Option<Case5>,
#[serde(rename = "AssgnmtCxlConf", skip_serializing_if = "Option::is_none")]
pub assgnmt_cxl_conf: Option<YesNoIndicator>,
#[serde(rename = "Conf", skip_serializing_if = "Option::is_none")]
pub conf: Option<ExternalInvestigationExecutionConfirmation1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct InvestigationStatus5Choice {
#[serde(flatten)]
pub value: InvestigationStatus5ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ClaimNonReceipt2ChoiceEnum {
#[serde(rename = "Rjctd", skip_serializing_if = "Option::is_none")]
pub rjctd: Option<ClaimNonReceiptRejectReason1Choice>,
#[serde(rename = "Accptd", skip_serializing_if = "Option::is_none")]
pub accptd: Option<ClaimNonReceipt2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ClaimNonReceipt2Choice {
#[serde(flatten)]
pub value: ClaimNonReceipt2ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MandateClassification1ChoiceEnum {
#[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<MandateClassification1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MandateClassification1Choice {
#[serde(flatten)]
pub value: MandateClassification1ChoiceEnum,
}
#[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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Compensation4 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveCurrencyAndAmount,
#[validate]
#[serde(rename = "DbtrAgt")]
pub dbtr_agt: BranchAndFinancialInstitutionIdentification6,
#[serde(rename = "DbtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_agt_acct: Option<CashAccount40>,
#[validate]
#[serde(rename = "CdtrAgt")]
pub cdtr_agt: BranchAndFinancialInstitutionIdentification6,
#[serde(rename = "CdtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "Rsn")]
pub rsn: CompensationReason1Choice,
}
#[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 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 CreditorReferenceType1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<DocumentType3Code>,
#[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 CreditorReferenceType1Choice {
#[serde(flatten)]
pub value: CreditorReferenceType1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FrequencyPeriod1 {
#[serde(rename = "Tp")]
pub tp: Frequency6Code,
#[validate]
#[serde(rename = "CntPerPrd")]
pub cnt_per_prd: DecimalNumber,
}
#[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 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 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 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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MandateTypeInformation2 {
#[serde(rename = "SvcLvl", skip_serializing_if = "Option::is_none")]
pub svc_lvl: Option<ServiceLevel8Choice>,
#[serde(rename = "LclInstrm", skip_serializing_if = "Option::is_none")]
pub lcl_instrm: Option<LocalInstrument2Choice>,
#[serde(rename = "CtgyPurp", skip_serializing_if = "Option::is_none")]
pub ctgy_purp: Option<CategoryPurpose1Choice>,
#[serde(rename = "Clssfctn", skip_serializing_if = "Option::is_none")]
pub clssfctn: Option<MandateClassification1Choice>,
}
#[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 NumberOfCancellationsPerStatus1 {
#[validate]
#[serde(rename = "DtldNbOfTxs")]
pub dtld_nb_of_txs: Max15NumericText,
#[serde(rename = "DtldSts")]
pub dtld_sts: CancellationIndividualStatus1Code,
#[serde(rename = "DtldCtrlSum", skip_serializing_if = "Option::is_none")]
pub dtld_ctrl_sum: Option<DecimalNumber>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OriginalGroupHeader14 {
#[serde(rename = "OrgnlGrpCxlId", skip_serializing_if = "Option::is_none")]
pub orgnl_grp_cxl_id: Option<Max35Text>,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[validate]
#[serde(rename = "OrgnlMsgId")]
pub orgnl_msg_id: Max35Text,
#[validate]
#[serde(rename = "OrgnlMsgNmId")]
pub orgnl_msg_nm_id: Max35Text,
#[serde(rename = "OrgnlCreDtTm", skip_serializing_if = "Option::is_none")]
pub orgnl_cre_dt_tm: Option<IsoDateTime>,
#[serde(rename = "OrgnlNbOfTxs", skip_serializing_if = "Option::is_none")]
pub orgnl_nb_of_txs: Option<Max15NumericText>,
#[serde(rename = "OrgnlCtrlSum", skip_serializing_if = "Option::is_none")]
pub orgnl_ctrl_sum: Option<DecimalNumber>,
#[serde(rename = "GrpCxlSts", skip_serializing_if = "Option::is_none")]
pub grp_cxl_sts: Option<GroupCancellationStatus1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "CxlStsRsnInf", default)]
pub cxl_sts_rsn_inf: Vec<CancellationStatusReason4>,
#[validate(length(min = 0,))]
#[serde(rename = "NbOfTxsPerCxlSts", default)]
pub nb_of_txs_per_cxl_sts: Vec<NumberOfTransactionsPerStatus1>,
}
#[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 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)]
pub enum Frequency6Code {
#[serde(rename = "YEAR")]
Year,
#[serde(rename = "MNTH")]
Mnth,
#[serde(rename = "QURT")]
Qurt,
#[serde(rename = "MIAN")]
Mian,
#[serde(rename = "WEEK")]
Week,
#[serde(rename = "DAIL")]
Dail,
#[serde(rename = "ADHO")]
Adho,
#[serde(rename = "INDA")]
Inda,
#[serde(rename = "FRTN")]
Frtn,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CancellationIndividualStatus1Code {
#[serde(rename = "RJCR")]
Rjcr,
#[serde(rename = "ACCR")]
Accr,
#[serde(rename = "PDCR")]
Pdcr,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TaxAmountType1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalTaxAmountType1Code>,
#[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 TaxAmountType1Choice {
#[serde(flatten)]
pub value: TaxAmountType1ChoiceEnum,
}
#[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 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,
::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,
::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 CancellationStatusReason3ChoiceEnum {
#[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<ExternalPaymentCancellationRejection1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CancellationStatusReason3Choice {
#[serde(flatten)]
pub value: CancellationStatusReason3ChoiceEnum,
}
#[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 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 MandateSetupReason1ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max70Text>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalMandateSetupReason1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MandateSetupReason1Choice {
#[serde(flatten)]
pub value: MandateSetupReason1ChoiceEnum,
}
#[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,
)]
#[serde(rename = "Document")]
pub struct Document<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "RsltnOfInvstgtn")]
pub rsltn_of_invstgtn: ResolutionOfInvestigationV11<A>,
#[serde(rename = "@xmlns", default = "namespace")]
pub xmlns: String,
}
#[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 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 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 CorrectiveInterbankTransaction3 {
#[serde(rename = "GrpHdr", skip_serializing_if = "Option::is_none")]
pub grp_hdr: Option<CorrectiveGroupInformation1>,
#[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 = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UuiDv4Identifier>,
#[validate]
#[serde(rename = "IntrBkSttlmAmt")]
pub intr_bk_sttlm_amt: ActiveOrHistoricCurrencyAndAmount,
#[validate]
#[serde(rename = "IntrBkSttlmDt")]
pub intr_bk_sttlm_dt: IsoDate,
}
#[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 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 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 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 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 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 MandateRelatedData2ChoiceEnum {
#[serde(rename = "DrctDbtMndt", skip_serializing_if = "Option::is_none")]
pub drct_dbt_mndt: Option<MandateRelatedInformation15>,
#[serde(rename = "CdtTrfMndt", skip_serializing_if = "Option::is_none")]
pub cdt_trf_mndt: Option<CreditTransferMandateData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MandateRelatedData2Choice {
#[serde(flatten)]
pub value: MandateRelatedData2ChoiceEnum,
}
#[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 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 OriginalTransactionReference35 {
#[serde(rename = "IntrBkSttlmAmt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<AmountType4Choice>,
#[serde(rename = "IntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_dt: Option<IsoDate>,
#[serde(rename = "ReqdColltnDt", skip_serializing_if = "Option::is_none")]
pub reqd_colltn_dt: Option<IsoDate>,
#[serde(rename = "ReqdExctnDt", skip_serializing_if = "Option::is_none")]
pub reqd_exctn_dt: Option<DateAndDateTime2Choice>,
#[serde(rename = "CdtrSchmeId", skip_serializing_if = "Option::is_none")]
pub cdtr_schme_id: Option<PartyIdentification135>,
#[serde(rename = "SttlmInf", skip_serializing_if = "Option::is_none")]
pub sttlm_inf: Option<SettlementInstruction11>,
#[serde(rename = "PmtTpInf", skip_serializing_if = "Option::is_none")]
pub pmt_tp_inf: Option<PaymentTypeInformation27>,
#[serde(rename = "PmtMtd", skip_serializing_if = "Option::is_none")]
pub pmt_mtd: Option<PaymentMethod4Code>,
#[serde(rename = "MndtRltdInf", skip_serializing_if = "Option::is_none")]
pub mndt_rltd_inf: Option<MandateRelatedData2Choice>,
#[serde(rename = "RmtInf", skip_serializing_if = "Option::is_none")]
pub rmt_inf: Option<RemittanceInformation21>,
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: 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 = "DbtrAgt", skip_serializing_if = "Option::is_none")]
pub dbtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "DbtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "CdtrAgt", skip_serializing_if = "Option::is_none")]
pub cdtr_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "CdtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_agt_acct: Option<CashAccount40>,
#[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 = "Purp", skip_serializing_if = "Option::is_none")]
pub purp: Option<Purpose2Choice>,
}
#[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 Frequency36ChoiceEnum {
#[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
pub prd: Option<FrequencyPeriod1>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Frequency6Code>,
#[serde(rename = "PtInTm", skip_serializing_if = "Option::is_none")]
pub pt_in_tm: Option<FrequencyAndMoment1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Frequency36Choice {
#[serde(flatten)]
pub value: Frequency36ChoiceEnum,
}
#[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,
::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 ReferredDocumentType3ChoiceEnum {
#[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<DocumentType6Code>,
}
#[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 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 PaymentTransaction132 {
#[serde(rename = "ModStsId", skip_serializing_if = "Option::is_none")]
pub mod_sts_id: Option<Max35Text>,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[validate]
#[serde(rename = "OrgnlGrpInf")]
pub orgnl_grp_inf: OriginalGroupInformation29,
#[serde(rename = "OrgnlPmtInfId", skip_serializing_if = "Option::is_none")]
pub orgnl_pmt_inf_id: Option<Max35Text>,
#[serde(rename = "OrgnlInstrId", skip_serializing_if = "Option::is_none")]
pub orgnl_instr_id: Option<Max35Text>,
#[serde(rename = "OrgnlEndToEndId", skip_serializing_if = "Option::is_none")]
pub orgnl_end_to_end_id: Option<Max35Text>,
#[serde(rename = "OrgnlTxId", skip_serializing_if = "Option::is_none")]
pub orgnl_tx_id: Option<Max35Text>,
#[serde(rename = "OrgnlClrSysRef", skip_serializing_if = "Option::is_none")]
pub orgnl_clr_sys_ref: Option<Max35Text>,
#[serde(rename = "OrgnlUETR", skip_serializing_if = "Option::is_none")]
pub orgnl_uetr: Option<UuiDv4Identifier>,
#[validate(length(min = 0,))]
#[serde(rename = "ModStsRsnInf", default)]
pub mod_sts_rsn_inf: Vec<ModificationStatusReason2>,
#[serde(rename = "RsltnRltdInf", skip_serializing_if = "Option::is_none")]
pub rsltn_rltd_inf: Option<ResolutionData3>,
#[serde(
rename = "OrgnlIntrBkSttlmAmt",
skip_serializing_if = "Option::is_none"
)]
pub orgnl_intr_bk_sttlm_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "OrgnlIntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub orgnl_intr_bk_sttlm_dt: Option<IsoDate>,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Party40Choice>,
#[serde(rename = "Assgne", skip_serializing_if = "Option::is_none")]
pub assgne: Option<Party40Choice>,
#[serde(rename = "OrgnlTxRef", skip_serializing_if = "Option::is_none")]
pub orgnl_tx_ref: Option<OriginalTransactionReference35>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum GroupCancellationStatus1Code {
#[serde(rename = "PACR")]
Pacr,
#[serde(rename = "RJCR")]
Rjcr,
#[serde(rename = "ACCR")]
Accr,
#[serde(rename = "PDCR")]
Pdcr,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalCashClearingSystem1Code {
#[validate(length(min = 1, max = 3,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CaseAssignment5 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Assgnr")]
pub assgnr: Party40Choice,
#[serde(rename = "Assgne")]
pub assgne: Party40Choice,
#[validate]
#[serde(rename = "CreDtTm")]
pub cre_dt_tm: IsoDateTime,
}
#[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 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 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 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 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 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,
::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 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 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 CompensationReason1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPaymentCompensationReason1Code>,
#[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 CompensationReason1Choice {
#[serde(flatten)]
pub value: CompensationReason1ChoiceEnum,
}
#[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)]
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 Number {
#[serde(rename = "$text")]
pub value: f64,
}
#[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)]
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 IsoDate {
#[serde(rename = "$text")]
pub value: ::chrono::NaiveDate,
}
#[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 NumberOfTransactionsPerStatus1 {
#[validate]
#[serde(rename = "DtldNbOfTxs")]
pub dtld_nb_of_txs: Max15NumericText,
#[serde(rename = "DtldSts")]
pub dtld_sts: TransactionIndividualStatus1Code,
#[serde(rename = "DtldCtrlSum", skip_serializing_if = "Option::is_none")]
pub dtld_ctrl_sum: Option<DecimalNumber>,
}
#[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,
::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 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 Charges9 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[validate]
#[serde(rename = "Agt")]
pub agt: BranchAndFinancialInstitutionIdentification6,
#[serde(rename = "AgtAcct", skip_serializing_if = "Option::is_none")]
pub agt_acct: Option<CashAccount40>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Party40ChoiceEnum {
#[serde(rename = "Agt", skip_serializing_if = "Option::is_none")]
pub agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(rename = "Pty", skip_serializing_if = "Option::is_none")]
pub pty: Option<PartyIdentification135>,
}
#[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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AccountSchemeName1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalAccountIdentification1Code>,
#[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 AccountSchemeName1Choice {
#[serde(flatten)]
pub value: AccountSchemeName1ChoiceEnum,
}
#[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,
::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 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 Exact2NumericText {
#[validate(regex = "EXACT_2_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 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 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 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 ExternalPaymentCancellationRejection1Code {
#[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 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 DecimalNumber {
#[serde(rename = "$text")]
pub value: f64,
}
#[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 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 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 CashAccountType2ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCashAccountType1Code>,
#[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 CashAccountType2Choice {
#[serde(flatten)]
pub value: CashAccountType2ChoiceEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum MandateClassification1Code {
#[serde(rename = "FIXE")]
Fixe,
#[serde(rename = "USGB")]
Usgb,
#[serde(rename = "VARI")]
Vari,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CorrectiveTransaction5ChoiceEnum {
#[serde(rename = "IntrBk", skip_serializing_if = "Option::is_none")]
pub intr_bk: Option<CorrectiveInterbankTransaction3>,
#[serde(rename = "Initn", skip_serializing_if = "Option::is_none")]
pub initn: Option<CorrectivePaymentInitiation5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CorrectiveTransaction5Choice {
#[serde(flatten)]
pub value: CorrectiveTransaction5ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ModificationStatusReason2 {
#[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<ModificationStatusReason1Choice>,
#[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 CorrectivePaymentInitiation5 {
#[serde(rename = "GrpHdr", skip_serializing_if = "Option::is_none")]
pub grp_hdr: Option<CorrectiveGroupInformation1>,
#[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>,
#[validate]
#[serde(rename = "InstdAmt")]
pub instd_amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "ReqdExctnDt", skip_serializing_if = "Option::is_none")]
pub reqd_exctn_dt: Option<DateAndDateTime2Choice>,
#[serde(rename = "ReqdColltnDt", skip_serializing_if = "Option::is_none")]
pub reqd_colltn_dt: Option<IsoDate>,
}
#[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)]
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 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 PersonIdentificationSchemeName1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPersonIdentification1Code>,
#[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 PersonIdentificationSchemeName1Choice {
#[serde(flatten)]
pub value: PersonIdentificationSchemeName1ChoiceEnum,
}
#[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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalPaymentModificationRejection1Code {
#[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 ChargeIncludedIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OriginalGroupInformation29 {
#[validate]
#[serde(rename = "OrgnlMsgId")]
pub orgnl_msg_id: Max35Text,
#[validate]
#[serde(rename = "OrgnlMsgNmId")]
pub orgnl_msg_nm_id: Max35Text,
#[serde(rename = "OrgnlCreDtTm", skip_serializing_if = "Option::is_none")]
pub orgnl_cre_dt_tm: Option<IsoDateTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountType4ChoiceEnum {
#[serde(rename = "EqvtAmt", skip_serializing_if = "Option::is_none")]
pub eqvt_amt: Option<EquivalentAmount2>,
#[serde(rename = "InstdAmt", skip_serializing_if = "Option::is_none")]
pub instd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AmountType4Choice {
#[serde(flatten)]
pub value: AmountType4ChoiceEnum,
}
#[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 UnderlyingTransaction29 {
#[serde(rename = "OrgnlGrpInfAndSts", skip_serializing_if = "Option::is_none")]
pub orgnl_grp_inf_and_sts: Option<OriginalGroupHeader14>,
#[validate(length(min = 0,))]
#[serde(rename = "OrgnlPmtInfAndSts", default)]
pub orgnl_pmt_inf_and_sts: Vec<OriginalPaymentInstruction43>,
#[validate(length(min = 0,))]
#[serde(rename = "TxInfAndSts", default)]
pub tx_inf_and_sts: Vec<PaymentTransaction138>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ResolutionOfInvestigationV11<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "Assgnmt")]
pub assgnmt: CaseAssignment5,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[serde(rename = "Sts")]
pub sts: InvestigationStatus5Choice,
#[validate(length(min = 0,))]
#[serde(rename = "CxlDtls", default)]
pub cxl_dtls: Vec<UnderlyingTransaction29>,
#[serde(rename = "ModDtls", skip_serializing_if = "Option::is_none")]
pub mod_dtls: Option<PaymentTransaction132>,
#[serde(rename = "ClmNonRctDtls", skip_serializing_if = "Option::is_none")]
pub clm_non_rct_dtls: Option<ClaimNonReceipt2Choice>,
#[serde(rename = "StmtDtls", skip_serializing_if = "Option::is_none")]
pub stmt_dtls: Option<StatementResolutionEntry4>,
#[serde(rename = "CrrctnTx", skip_serializing_if = "Option::is_none")]
pub crrctn_tx: Option<CorrectiveTransaction5Choice>,
#[serde(rename = "RsltnRltdInf", skip_serializing_if = "Option::is_none")]
pub rsltn_rltd_inf: Option<ResolutionData3>,
#[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 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)]
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 TrueFalseIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[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 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 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 CreditTransferMandateData1 {
#[serde(rename = "MndtId", skip_serializing_if = "Option::is_none")]
pub mndt_id: Option<Max35Text>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<MandateTypeInformation2>,
#[serde(rename = "DtOfSgntr", skip_serializing_if = "Option::is_none")]
pub dt_of_sgntr: Option<IsoDate>,
#[serde(rename = "DtOfVrfctn", skip_serializing_if = "Option::is_none")]
pub dt_of_vrfctn: Option<IsoDateTime>,
#[serde(rename = "ElctrncSgntr", skip_serializing_if = "Option::is_none")]
pub elctrnc_sgntr: Option<Max10KBinary>,
#[serde(rename = "FrstPmtDt", skip_serializing_if = "Option::is_none")]
pub frst_pmt_dt: Option<IsoDate>,
#[serde(rename = "FnlPmtDt", skip_serializing_if = "Option::is_none")]
pub fnl_pmt_dt: Option<IsoDate>,
#[serde(rename = "Frqcy", skip_serializing_if = "Option::is_none")]
pub frqcy: Option<Frequency36Choice>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<MandateSetupReason1Choice>,
}
#[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,
::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 EquivalentAmount2 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CcyOfTrf")]
pub ccy_of_trf: ActiveOrHistoricCurrencyCode,
}
#[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 PaymentTransaction139 {
#[serde(rename = "CxlStsId", skip_serializing_if = "Option::is_none")]
pub cxl_sts_id: Option<Max35Text>,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[serde(rename = "OrgnlInstrId", skip_serializing_if = "Option::is_none")]
pub orgnl_instr_id: Option<Max35Text>,
#[serde(rename = "OrgnlEndToEndId", skip_serializing_if = "Option::is_none")]
pub orgnl_end_to_end_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UuiDv4Identifier>,
#[serde(rename = "TxCxlSts", skip_serializing_if = "Option::is_none")]
pub tx_cxl_sts: Option<CancellationIndividualStatus1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "CxlStsRsnInf", default)]
pub cxl_sts_rsn_inf: Vec<CancellationStatusReason4>,
#[serde(rename = "OrgnlInstdAmt", skip_serializing_if = "Option::is_none")]
pub orgnl_instd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "OrgnlReqdExctnDt", skip_serializing_if = "Option::is_none")]
pub orgnl_reqd_exctn_dt: Option<DateAndDateTime2Choice>,
#[serde(rename = "OrgnlReqdColltnDt", skip_serializing_if = "Option::is_none")]
pub orgnl_reqd_colltn_dt: Option<IsoDate>,
#[serde(rename = "OrgnlTxRef", skip_serializing_if = "Option::is_none")]
pub orgnl_tx_ref: Option<OriginalTransactionReference35>,
}
#[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 FrequencyAndMoment1 {
#[serde(rename = "Tp")]
pub tp: Frequency6Code,
#[validate]
#[serde(rename = "PtInTm")]
pub pt_in_tm: Exact2NumericText,
}
#[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 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 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 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 Max10KBinary {
#[validate(length(min = 1, max = 10240,), regex = "MAX_10_K_BINARY_REGEX")]
pub value: String,
}
#[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 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 FinancialIdentificationSchemeName1ChoiceEnum {
#[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<ExternalFinancialInstitutionIdentification1Code>,
}
#[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 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 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,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalPaymentCompensationReason1Code {
#[validate(length(min = 1, max = 4,))]
#[serde(rename = "$text")]
pub value: String,
}
#[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)]
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 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 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 ModificationStatusReason1ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPaymentModificationRejection1Code>,
#[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 ModificationStatusReason1Choice {
#[serde(flatten)]
pub value: ModificationStatusReason1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SettlementInstruction11 {
#[serde(rename = "SttlmMtd")]
pub sttlm_mtd: SettlementMethod1Code,
#[serde(rename = "SttlmAcct", skip_serializing_if = "Option::is_none")]
pub sttlm_acct: Option<CashAccount40>,
#[serde(rename = "ClrSys", skip_serializing_if = "Option::is_none")]
pub clr_sys: Option<ClearingSystemIdentification3Choice>,
#[serde(rename = "InstgRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub instg_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(
rename = "InstgRmbrsmntAgtAcct",
skip_serializing_if = "Option::is_none"
)]
pub instg_rmbrsmnt_agt_acct: Option<CashAccount40>,
#[serde(rename = "InstdRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub instd_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(
rename = "InstdRmbrsmntAgtAcct",
skip_serializing_if = "Option::is_none"
)]
pub instd_rmbrsmnt_agt_acct: Option<CashAccount40>,
#[serde(rename = "ThrdRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub thrd_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification6>,
#[serde(
rename = "ThrdRmbrsmntAgtAcct",
skip_serializing_if = "Option::is_none"
)]
pub thrd_rmbrsmnt_agt_acct: Option<CashAccount40>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct StatementResolutionEntry4 {
#[serde(rename = "OrgnlGrpInf", skip_serializing_if = "Option::is_none")]
pub orgnl_grp_inf: Option<OriginalGroupInformation29>,
#[serde(rename = "OrgnlStmtId", skip_serializing_if = "Option::is_none")]
pub orgnl_stmt_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UuiDv4Identifier>,
#[serde(rename = "AcctSvcrRef", skip_serializing_if = "Option::is_none")]
pub acct_svcr_ref: Option<Max35Text>,
#[serde(rename = "CrrctdAmt", skip_serializing_if = "Option::is_none")]
pub crrctd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[validate(length(min = 0,))]
#[serde(rename = "Chrgs", default)]
pub chrgs: Vec<Charges6>,
#[serde(rename = "Purp", skip_serializing_if = "Option::is_none")]
pub purp: Option<Purpose2Choice>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PaymentMethod4Code {
#[serde(rename = "CHK")]
Chk,
#[serde(rename = "TRF")]
Trf,
#[serde(rename = "DD")]
Dd,
#[serde(rename = "TRA")]
Tra,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AddressType3ChoiceEnum {
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification30>,
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<AddressType2Code>,
}
#[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 CategoryPurpose1ChoiceEnum {
#[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<ExternalCategoryPurpose1Code>,
}
#[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 ClearingSystemIdentification3ChoiceEnum {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCashClearingSystem1Code>,
#[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 ClearingSystemIdentification3Choice {
#[serde(flatten)]
pub value: ClearingSystemIdentification3ChoiceEnum,
}
#[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 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 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 CorrectiveGroupInformation1 {
#[validate]
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[validate]
#[serde(rename = "MsgNmId")]
pub msg_nm_id: 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 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 Case5 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Cretr")]
pub cretr: Party40Choice,
#[serde(rename = "ReopCaseIndctn", skip_serializing_if = "Option::is_none")]
pub reop_case_indctn: Option<YesNoIndicator>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CancellationStatusReason4 {
#[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<CancellationStatusReason3Choice>,
#[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 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 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)]
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 MandateRelatedInformation15 {
#[serde(rename = "MndtId", skip_serializing_if = "Option::is_none")]
pub mndt_id: Option<Max35Text>,
#[serde(rename = "DtOfSgntr", skip_serializing_if = "Option::is_none")]
pub dt_of_sgntr: Option<IsoDate>,
#[serde(rename = "AmdmntInd", skip_serializing_if = "Option::is_none")]
pub amdmnt_ind: Option<TrueFalseIndicator>,
#[serde(rename = "AmdmntInfDtls", skip_serializing_if = "Option::is_none")]
pub amdmnt_inf_dtls: Option<AmendmentInformationDetails14>,
#[serde(rename = "ElctrncSgntr", skip_serializing_if = "Option::is_none")]
pub elctrnc_sgntr: Option<Max1025Text>,
#[serde(rename = "FrstColltnDt", skip_serializing_if = "Option::is_none")]
pub frst_colltn_dt: Option<IsoDate>,
#[serde(rename = "FnlColltnDt", skip_serializing_if = "Option::is_none")]
pub fnl_colltn_dt: Option<IsoDate>,
#[serde(rename = "Frqcy", skip_serializing_if = "Option::is_none")]
pub frqcy: Option<Frequency36Choice>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<MandateSetupReason1Choice>,
#[serde(rename = "TrckgDays", skip_serializing_if = "Option::is_none")]
pub trckg_days: Option<Exact2NumericText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PaymentTransaction138 {
#[serde(rename = "CxlStsId", skip_serializing_if = "Option::is_none")]
pub cxl_sts_id: Option<Max35Text>,
#[serde(rename = "RslvdCase", skip_serializing_if = "Option::is_none")]
pub rslvd_case: Option<Case5>,
#[serde(rename = "OrgnlGrpInf", skip_serializing_if = "Option::is_none")]
pub orgnl_grp_inf: Option<OriginalGroupInformation29>,
#[serde(rename = "OrgnlInstrId", skip_serializing_if = "Option::is_none")]
pub orgnl_instr_id: Option<Max35Text>,
#[serde(rename = "OrgnlEndToEndId", skip_serializing_if = "Option::is_none")]
pub orgnl_end_to_end_id: Option<Max35Text>,
#[serde(rename = "OrgnlTxId", skip_serializing_if = "Option::is_none")]
pub orgnl_tx_id: Option<Max35Text>,
#[serde(rename = "OrgnlClrSysRef", skip_serializing_if = "Option::is_none")]
pub orgnl_clr_sys_ref: Option<Max35Text>,
#[serde(rename = "OrgnlUETR", skip_serializing_if = "Option::is_none")]
pub orgnl_uetr: Option<UuiDv4Identifier>,
#[serde(rename = "TxCxlSts", skip_serializing_if = "Option::is_none")]
pub tx_cxl_sts: Option<CancellationIndividualStatus1Code>,
#[validate(length(min = 0,))]
#[serde(rename = "CxlStsRsnInf", default)]
pub cxl_sts_rsn_inf: Vec<CancellationStatusReason4>,
#[serde(rename = "RsltnRltdInf", skip_serializing_if = "Option::is_none")]
pub rsltn_rltd_inf: Option<ResolutionData3>,
#[serde(
rename = "OrgnlIntrBkSttlmAmt",
skip_serializing_if = "Option::is_none"
)]
pub orgnl_intr_bk_sttlm_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "OrgnlIntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub orgnl_intr_bk_sttlm_dt: Option<IsoDate>,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Party40Choice>,
#[serde(rename = "Assgne", skip_serializing_if = "Option::is_none")]
pub assgne: Option<Party40Choice>,
#[serde(rename = "OrgnlTxRef", skip_serializing_if = "Option::is_none")]
pub orgnl_tx_ref: Option<OriginalTransactionReference35>,
}
#[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 ClaimNonReceipt2 {
#[validate]
#[serde(rename = "DtPrcd")]
pub dt_prcd: IsoDate,
#[serde(rename = "OrgnlNxtAgt", skip_serializing_if = "Option::is_none")]
pub orgnl_nxt_agt: Option<BranchAndFinancialInstitutionIdentification6>,
}
#[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 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 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 LeiIdentifier {
#[validate(regex = "LEI_IDENTIFIER_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[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,
}