use validator::Validate;
::lazy_static::lazy_static! {
static ref MAX_3000_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 MAX_9999_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,9999}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_8_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,8}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_100_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 MAX_20_MB_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 MAX_15_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,15}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_35_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 GEOGRAPHIC_POINT_IN_DECIMAL_DEGREES_REGEX: ::regex::Regex = ::regex::Regex::new(r#"(\+|-)?[\d]{1,3}(\.[\d]{1,8})?/(\+|-)?[\d]{1,3}(\.[\d]{1,8})?"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_500_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 ISO_2_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,2}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_3_NUMERIC_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_12_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,12}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_32_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,32}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_5_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,5}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref EXACT_1_HEX_BINARY_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_8_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,8}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_3_NUMERIC_CURRENCY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{3,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_8583_RESPONSE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9A-Z]{2,2}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_8583_MESSAGE_REASON_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{4,4}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_MAX_3_A_LANGUAGE_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[a-z]{2,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MIN_2_MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{2,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref PHONE_NUMBER_REGEX: ::regex::Regex = ::regex::Regex::new(r#"\+[0-9]{1,3}-[0-9()+\-]{1,30}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_YEAR_MONTH_REGEX: ::regex::Regex = ::regex::Regex::new(r#"^-?\d{4}-(0[1-9]|1[0-2])([+-]\d{2}:\d{2}|Z)?$"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_140_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 MAX_19_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,19}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_3_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MIN_5_MAX_16_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 MAX_4_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,4}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"([0-9A-F][0-9A-F]){1,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref ISO_COUNTRY_SUB_DIVISION_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_2_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,2}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_11_NUMERIC_TEXT_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[0-9]{1,11}"#).unwrap();
}
::lazy_static::lazy_static! {
static ref MAX_5000_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 ISO_MAX_3_A_COUNTRY_CODE_REGEX: ::regex::Regex = ::regex::Regex::new(r#"[A-Z]{2,3}"#).unwrap();
}
pub fn namespace() -> String {
"urn:iso:std:iso:20022:tech:xsd:cafm.001.001.02".to_string()
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum RiskAssessment1Code {
#[serde(rename = "APPC")]
Appc,
#[serde(rename = "APPH")]
Apph,
#[serde(rename = "APPU")]
Appu,
#[serde(rename = "DONT")]
Dont,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum DeviceIdentificationType1Code {
#[serde(rename = "IMEI")]
Imei,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "SEID")]
Seid,
#[serde(rename = "SENU")]
Senu,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Identification3Code {
#[serde(rename = "DRID")]
Drid,
#[serde(rename = "NTID")]
Ntid,
#[serde(rename = "PASS")]
Pass,
#[serde(rename = "SSYN")]
Ssyn,
#[serde(rename = "ARNB")]
Arnb,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "EMAL")]
Emal,
#[serde(rename = "PHNB")]
Phnb,
#[serde(rename = "CUID")]
Cuid,
#[serde(rename = "TXID")]
Txid,
#[serde(rename = "PRXY")]
Prxy,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum ContentType3Code {
#[serde(rename = "EVLP")]
Evlp,
#[serde(rename = "IFSE")]
Ifse,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max3000Binary {
#[validate(length(min = 1, max = 3000,), regex = "MAX_3000_BINARY_REGEX")]
pub value: String,
}
#[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 SettlementReportingEntity1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm7Code {
#[serde(rename = "ERSA")]
Ersa,
#[serde(rename = "RSAO")]
Rsao,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Jurisdiction2 {
#[serde(rename = "DmstInd", skip_serializing_if = "Option::is_none")]
pub dmst_ind: Option<TrueFalseIndicator>,
#[serde(rename = "DmstQlfctn", skip_serializing_if = "Option::is_none")]
pub dmst_qlfctn: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PartyType17Code {
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "ACQR")]
Acqr,
#[serde(rename = "ACQP")]
Acqp,
#[serde(rename = "CISS")]
Ciss,
#[serde(rename = "CISP")]
Cisp,
#[serde(rename = "AGNT")]
Agnt,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedContent4 {
#[serde(rename = "CnttTp")]
pub cntt_tp: ContentType2Code,
#[serde(rename = "CnttNcrptnAlgo", skip_serializing_if = "Option::is_none")]
pub cntt_ncrptn_algo: Option<AlgorithmIdentification24>,
#[validate]
#[serde(rename = "NcrptdData")]
pub ncrptd_data: Max100KBinary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification28 {
#[serde(rename = "Algo")]
pub algo: Algorithm13Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter14>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm17Code {
#[serde(rename = "MACC")]
Macc,
#[serde(rename = "MCCS")]
Mccs,
#[serde(rename = "CMA1")]
Cma1,
#[serde(rename = "MCC1")]
Mcc1,
#[serde(rename = "CMA9")]
Cma9,
#[serde(rename = "CMA5")]
Cma5,
#[serde(rename = "CMA2")]
Cma2,
#[serde(rename = "CM31")]
Cm31,
#[serde(rename = "CM32")]
Cm32,
#[serde(rename = "CM33")]
Cm33,
#[serde(rename = "MCS3")]
Mcs3,
#[serde(rename = "CCA1")]
Cca1,
#[serde(rename = "CCA2")]
Cca2,
#[serde(rename = "CCA3")]
Cca3,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardData8 {
#[serde(rename = "PAN", skip_serializing_if = "Option::is_none")]
pub pan: Option<Max19NumericText>,
#[serde(rename = "PrtctdPANInd", skip_serializing_if = "Option::is_none")]
pub prtctd_pan_ind: Option<TrueFalseIndicator>,
#[serde(rename = "CardSeqNb", skip_serializing_if = "Option::is_none")]
pub card_seq_nb: Option<Min2Max3NumericText>,
#[serde(rename = "FctvDt", skip_serializing_if = "Option::is_none")]
pub fctv_dt: Option<IsoYearMonth>,
#[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")]
pub xpry_dt: Option<IsoYearMonth>,
#[serde(rename = "PmtAcctRef", skip_serializing_if = "Option::is_none")]
pub pmt_acct_ref: Option<Max35Text>,
#[serde(rename = "PANRefIdr", skip_serializing_if = "Option::is_none")]
pub pan_ref_idr: Option<Max35Text>,
#[serde(rename = "PANAcctRg", skip_serializing_if = "Option::is_none")]
pub pan_acct_rg: Option<Max19NumericText>,
#[serde(rename = "CardCtryCd", skip_serializing_if = "Option::is_none")]
pub card_ctry_cd: Option<Iso3NumericCountryCode>,
#[serde(rename = "CardPdctTp", skip_serializing_if = "Option::is_none")]
pub card_pdct_tp: Option<Max35Text>,
#[serde(rename = "CardPdctSubTp", skip_serializing_if = "Option::is_none")]
pub card_pdct_sub_tp: Option<Max35Text>,
#[serde(rename = "CardPrtflIdr", skip_serializing_if = "Option::is_none")]
pub card_prtfl_idr: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlCardData", default)]
pub addtl_card_data: Vec<AdditionalData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm13Code {
#[serde(rename = "EA2C")]
Ea2C,
#[serde(rename = "E3DC")]
E3Dc,
#[serde(rename = "DKP9")]
Dkp9,
#[serde(rename = "UKPT")]
Ukpt,
#[serde(rename = "UKA1")]
Uka1,
#[serde(rename = "EA9C")]
Ea9C,
#[serde(rename = "EA5C")]
Ea5C,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EnvelopedData6 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate(length(min = 1,))]
#[serde(rename = "Rcpt", default)]
pub rcpt: Vec<Recipient7Choice>,
#[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
pub ncrptd_cntt: Option<EncryptedContent5>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PoiComponentType5Code {
#[serde(rename = "AQPP")]
Aqpp,
#[serde(rename = "APPR")]
Appr,
#[serde(rename = "TLPR")]
Tlpr,
#[serde(rename = "SCPR")]
Scpr,
#[serde(rename = "SERV")]
Serv,
#[serde(rename = "TERM")]
Term,
#[serde(rename = "DVCE")]
Dvce,
#[serde(rename = "SECM")]
Secm,
#[serde(rename = "APLI")]
Apli,
#[serde(rename = "EMVK")]
Emvk,
#[serde(rename = "EMVO")]
Emvo,
#[serde(rename = "MDWR")]
Mdwr,
#[serde(rename = "DRVR")]
Drvr,
#[serde(rename = "OPST")]
Opst,
#[serde(rename = "MRPR")]
Mrpr,
#[serde(rename = "CRTF")]
Crtf,
#[serde(rename = "TMSP")]
Tmsp,
#[serde(rename = "SACP")]
Sacp,
#[serde(rename = "SAPR")]
Sapr,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ContentInformationType19 {
#[serde(rename = "CnttTp")]
pub cntt_tp: ContentType2Code,
#[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
pub envlpd_data: Option<EnvelopedData5>,
#[serde(rename = "AuthntcdData", skip_serializing_if = "Option::is_none")]
pub authntcd_data: Option<AuthenticatedData5>,
#[serde(rename = "SgndData", skip_serializing_if = "Option::is_none")]
pub sgnd_data: Option<SignedData5>,
#[serde(rename = "DgstdData", skip_serializing_if = "Option::is_none")]
pub dgstd_data: Option<DigestedData5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DeviceIdentification1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DeviceIdentificationType1Code>,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max70Text>,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max70Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SettlementService4 {
#[serde(rename = "SttlmSvcApld", skip_serializing_if = "Option::is_none")]
pub sttlm_svc_apld: Option<SettlementServiceMode1>,
#[serde(rename = "SttlmSvcDts", skip_serializing_if = "Option::is_none")]
pub sttlm_svc_dts: Option<SettlementServiceDate2>,
#[serde(rename = "SttlmRptgNtty", skip_serializing_if = "Option::is_none")]
pub sttlm_rptg_ntty: Option<SettlementReportingEntity1>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlSttlmInf", default)]
pub addtl_sttlm_inf: Vec<AdditionalData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum EncryptedDataFormat1Code {
#[serde(rename = "ASCI")]
Asci,
#[serde(rename = "BINF")]
Binf,
#[serde(rename = "EBCD")]
Ebcd,
#[serde(rename = "HEXF")]
Hexf,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm8Code {
#[serde(rename = "MGF1")]
Mgf1,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max50Text {
#[validate(length(min = 1, max = 50,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SettlementServiceMode1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
#[serde(rename = "SttlmPrty", skip_serializing_if = "Option::is_none")]
pub sttlm_prty: Option<Priority3Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ContentInformationType20 {
#[validate]
#[serde(rename = "MACData")]
pub mac_data: MacData1,
#[validate]
#[serde(rename = "MAC")]
pub mac: Max8HexBinaryText,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalData1 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max70Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max210Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Address2 {
#[serde(rename = "AdrLine1", skip_serializing_if = "Option::is_none")]
pub adr_line_1: Option<Max99Text>,
#[serde(rename = "AdrLine2", skip_serializing_if = "Option::is_none")]
pub adr_line_2: Option<Max99Text>,
#[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
pub strt_nm: Option<Max99Text>,
#[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
pub bldg_nb: Option<Max16Text>,
#[serde(rename = "PstlCd", skip_serializing_if = "Option::is_none")]
pub pstl_cd: Option<Max16Text>,
#[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
pub twn_nm: Option<Max50Text>,
#[serde(rename = "CtrySubDvsnMnr", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mnr: Option<IsoCountrySubDivisionCode>,
#[serde(rename = "CtrySubDvsnMjr", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mjr: Option<IsoCountrySubDivisionCode>,
#[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mjr_nm: Option<Max50Text>,
#[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mnr_nm: Option<Max50Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<IsoMax3ACountryCode>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalData7 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "CrdhldrNm", skip_serializing_if = "Option::is_none")]
pub crdhldr_nm: Option<CardholderName2>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address3>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max100Text {
#[validate(length(min = 1, max = 100,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct KeyTransport6 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[serde(rename = "RcptId")]
pub rcpt_id: Recipient5Choice,
#[validate]
#[serde(rename = "KeyNcrptnAlgo")]
pub key_ncrptn_algo: AlgorithmIdentification27,
#[validate]
#[serde(rename = "NcrptdKey")]
pub ncrptd_key: Max5000Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max9999HexBinaryText {
#[validate(regex = "MAX_9999_HEX_BINARY_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max8HexBinaryText {
#[validate(regex = "MAX_8_HEX_BINARY_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max100KBinary {
#[validate(length(min = 1, max = 102400,), regex = "MAX_100_K_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max280Text {
#[validate(length(min = 1, max = 280,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PartyType18Code {
#[serde(rename = "ACQR")]
Acqr,
#[serde(rename = "CISS")]
Ciss,
#[serde(rename = "CSCH")]
Csch,
#[serde(rename = "AGNT")]
Agnt,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum KeyUsage1Code {
#[serde(rename = "ENCR")]
Encr,
#[serde(rename = "DCPT")]
Dcpt,
#[serde(rename = "DENC")]
Denc,
#[serde(rename = "DDEC")]
Ddec,
#[serde(rename = "TRNI")]
Trni,
#[serde(rename = "TRNX")]
Trnx,
#[serde(rename = "MACG")]
Macg,
#[serde(rename = "MACV")]
Macv,
#[serde(rename = "SIGG")]
Sigg,
#[serde(rename = "SUGV")]
Sugv,
#[serde(rename = "PINE")]
Pine,
#[serde(rename = "PIND")]
Pind,
#[serde(rename = "PINV")]
Pinv,
#[serde(rename = "KEYG")]
Keyg,
#[serde(rename = "KEYI")]
Keyi,
#[serde(rename = "KEYX")]
Keyx,
#[serde(rename = "KEYD")]
Keyd,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum AttributeType1Code {
#[serde(rename = "CNAT")]
Cnat,
#[serde(rename = "LATT")]
Latt,
#[serde(rename = "OATT")]
Oatt,
#[serde(rename = "OUAT")]
Ouat,
#[serde(rename = "CATT")]
Catt,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AdditionalFee2 {
#[serde(rename = "Tp")]
pub tp: TypeOfAmount21Code,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "FeePrgm", skip_serializing_if = "Option::is_none")]
pub fee_prgm: Option<Max35Text>,
#[serde(rename = "FeeDscrptr", skip_serializing_if = "Option::is_none")]
pub fee_dscrptr: Option<Max35Text>,
#[validate]
#[serde(rename = "FeeAmt")]
pub fee_amt: FeeAmount3,
#[serde(rename = "FeeRcncltnAmt", skip_serializing_if = "Option::is_none")]
pub fee_rcncltn_amt: Option<FeeAmount3>,
#[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
pub desc: Option<Max140Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum BytePadding1Code {
#[serde(rename = "LNGT")]
Lngt,
#[serde(rename = "NUL8")]
Nul8,
#[serde(rename = "NULG")]
Nulg,
#[serde(rename = "NULL")]
Null,
#[serde(rename = "RAND")]
Rand,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max20MbBinary {
#[validate(length(min = 1, max = 20971520,), regex = "MAX_20_MB_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Credentials2 {
#[serde(rename = "IdCd")]
pub id_cd: Identification3Code,
#[serde(rename = "OthrIdCd", skip_serializing_if = "Option::is_none")]
pub othr_id_cd: Option<Max35Text>,
#[validate]
#[serde(rename = "IdVal")]
pub id_val: Max70Text,
#[serde(rename = "IdXpryDt", skip_serializing_if = "Option::is_none")]
pub id_xpry_dt: Option<IsoYearMonth>,
#[serde(rename = "AssgnrAuthrty", skip_serializing_if = "Option::is_none")]
pub assgnr_authrty: Option<Authority1>,
}
#[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 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 AlgorithmIdentification26 {
#[serde(rename = "Algo")]
pub algo: Algorithm8Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Algorithm5Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Context17 {
#[serde(rename = "TxCntxt", skip_serializing_if = "Option::is_none")]
pub tx_cntxt: Option<TransactionContext10>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum OnLineCapability2Code {
#[serde(rename = "OFLN")]
Ofln,
#[serde(rename = "ONLN")]
Onln,
#[serde(rename = "BOTH")]
Both,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm20Code {
#[serde(rename = "HS25")]
Hs25,
#[serde(rename = "HS38")]
Hs38,
#[serde(rename = "HS51")]
Hs51,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PoiComponentStatus1Code {
#[serde(rename = "WAIT")]
Wait,
#[serde(rename = "OUTD")]
Outd,
#[serde(rename = "OPER")]
Oper,
#[serde(rename = "DACT")]
Dact,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max5PositiveNumber {
#[validate(range(min = 1,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedData1ChoiceEnum {
#[serde(rename = "BinryData", skip_serializing_if = "Option::is_none")]
pub binry_data: Option<Max100KBinary>,
#[serde(rename = "HexBinryVal", skip_serializing_if = "Option::is_none")]
pub hex_binry_val: Option<Max9999HexBinaryText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedData1Choice {
#[serde(flatten)]
pub value: EncryptedData1ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Device2 {
#[serde(rename = "Manfctr", skip_serializing_if = "Option::is_none")]
pub manfctr: Option<Max70Text>,
#[serde(rename = "ManfctrMdlId", skip_serializing_if = "Option::is_none")]
pub manfctr_mdl_id: Option<Max70Text>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CustomerDeviceType2Code>,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
pub lang: Option<LanguageCode>,
#[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
pub phne_nb: Option<PhoneNumber>,
#[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
#[serde(rename = "LctnCtryCd", skip_serializing_if = "Option::is_none")]
pub lctn_ctry_cd: Option<Iso3NumericCountryCode>,
#[serde(rename = "IPAdr", skip_serializing_if = "Option::is_none")]
pub ip_adr: Option<Max70Text>,
#[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
pub email: Option<Max256Text>,
#[serde(rename = "DvcNm", skip_serializing_if = "Option::is_none")]
pub dvc_nm: Option<Max100Text>,
#[serde(rename = "DvcNmNrmlzd", skip_serializing_if = "Option::is_none")]
pub dvc_nm_nrmlzd: Option<Max100Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum ContentType2Code {
#[serde(rename = "DATA")]
Data,
#[serde(rename = "SIGN")]
Sign,
#[serde(rename = "EVLP")]
Evlp,
#[serde(rename = "DGST")]
Dgst,
#[serde(rename = "AUTH")]
Auth,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct MemoryCharacteristics1 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[validate]
#[serde(rename = "TtlSz")]
pub ttl_sz: DecimalNumber,
#[validate]
#[serde(rename = "FreeSz")]
pub free_sz: DecimalNumber,
#[serde(rename = "Unit")]
pub unit: MemoryUnit1Code,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PartyType7Code {
#[serde(rename = "ACQR")]
Acqr,
#[serde(rename = "ITAG")]
Itag,
#[serde(rename = "PCPT")]
Pcpt,
#[serde(rename = "TMGT")]
Tmgt,
#[serde(rename = "SALE")]
Sale,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TerminalType1Code {
#[serde(rename = "ATMT")]
Atmt,
#[serde(rename = "MPOS")]
Mpos,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "POST")]
Post,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification263 {
#[validate]
#[serde(rename = "Id")]
pub id: Max11NumericText,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<Iso3NumericCountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max99Text>,
#[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
pub addtl_id: Option<AdditionalData1>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Cardholder19 {
#[serde(rename = "CrdhldrNm", skip_serializing_if = "Option::is_none")]
pub crdhldr_nm: Option<CardholderName3>,
#[validate(length(min = 0,))]
#[serde(rename = "Id", default)]
pub id: Vec<Credentials2>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address2>,
#[serde(rename = "CtctInf", skip_serializing_if = "Option::is_none")]
pub ctct_inf: Option<Contact1>,
#[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
pub dt_of_birth: Option<IsoDate>,
#[serde(rename = "HghValCstmrInd", skip_serializing_if = "Option::is_none")]
pub hgh_val_cstmr_ind: Option<TrueFalseIndicator>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData7>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardDataReading9Code {
#[serde(rename = "UNKW")]
Unkw,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "CAMR")]
Camr,
#[serde(rename = "KEEN")]
Keen,
#[serde(rename = "ICPY")]
Icpy,
#[serde(rename = "OPTC")]
Optc,
#[serde(rename = "CDFL")]
Cdfl,
#[serde(rename = "MBNK")]
Mbnk,
#[serde(rename = "TOKN")]
Tokn,
#[serde(rename = "ICCY")]
Iccy,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CustomerDeviceType2Code {
#[serde(rename = "MOBL")]
Mobl,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "PECR")]
Pecr,
#[serde(rename = "TBLT")]
Tblt,
#[serde(rename = "NSCR")]
Nscr,
#[serde(rename = "SECR")]
Secr,
#[serde(rename = "EMBD")]
Embd,
#[serde(rename = "VHCL")]
Vhcl,
#[serde(rename = "WRBL")]
Wrbl,
#[serde(rename = "WATC")]
Watc,
#[serde(rename = "GAMB")]
Gamb,
#[serde(rename = "JEWL")]
Jewl,
#[serde(rename = "KFOB")]
Kfob,
#[serde(rename = "STIC")]
Stic,
#[serde(rename = "UNKW")]
Unkw,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter11 {
#[serde(rename = "DgstAlgo")]
pub dgst_algo: Algorithm16Code,
#[validate]
#[serde(rename = "MskGnrtrAlgo")]
pub msk_gnrtr_algo: AlgorithmIdentification12,
#[validate]
#[serde(rename = "SaltLngth")]
pub salt_lngth: Number,
#[serde(rename = "TrlrFld", skip_serializing_if = "Option::is_none")]
pub trlr_fld: Option<Number>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter13 {
#[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
pub dgst_algo: Option<Algorithm20Code>,
#[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
pub msk_gnrtr_algo: Option<AlgorithmIdentification26>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Token3 {
#[serde(rename = "PmtTkn", skip_serializing_if = "Option::is_none")]
pub pmt_tkn: Option<Max19NumericText>,
#[serde(rename = "TknXpryDt", skip_serializing_if = "Option::is_none")]
pub tkn_xpry_dt: Option<IsoYearMonth>,
#[serde(rename = "TknRqstrId", skip_serializing_if = "Option::is_none")]
pub tkn_rqstr_id: Option<Max11NumericText>,
#[serde(rename = "TknAssrncData", skip_serializing_if = "Option::is_none")]
pub tkn_assrnc_data: Option<Max140Text>,
#[serde(rename = "TknAssrncMtd", skip_serializing_if = "Option::is_none")]
pub tkn_assrnc_mtd: Option<Max2NumericText>,
#[serde(rename = "TknRefId", skip_serializing_if = "Option::is_none")]
pub tkn_ref_id: Option<Max35Text>,
#[serde(rename = "TknInittdInd", skip_serializing_if = "Option::is_none")]
pub tkn_inittd_ind: Option<TrueFalseIndicator>,
#[serde(rename = "StorgLctn", skip_serializing_if = "Option::is_none")]
pub storg_lctn: Option<StorageLocation1Code>,
#[serde(rename = "OthrStorgLctn", skip_serializing_if = "Option::is_none")]
pub othr_storg_lctn: Option<Max35Text>,
#[serde(rename = "PrtcnMtd", skip_serializing_if = "Option::is_none")]
pub prtcn_mtd: Option<ProtectionMethod1Code>,
#[serde(rename = "OthrPrtcnMtd", skip_serializing_if = "Option::is_none")]
pub othr_prtcn_mtd: Option<Max35Text>,
#[serde(rename = "OrgnlTkn", skip_serializing_if = "Option::is_none")]
pub orgnl_tkn: Option<Token4>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification48 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[validate]
#[serde(rename = "Vrsn")]
pub vrsn: Max35Text,
#[validate]
#[serde(rename = "Issr")]
pub issr: Max35Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Customer7 {
#[serde(rename = "CstmrId", skip_serializing_if = "Option::is_none")]
pub cstmr_id: Option<Max35Text>,
#[serde(rename = "CstmrDsgnt", skip_serializing_if = "Option::is_none")]
pub cstmr_dsgnt: Option<Max2NumericText>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<CardholderName3>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address2>,
#[serde(rename = "CtctInf", skip_serializing_if = "Option::is_none")]
pub ctct_inf: Option<Contact6>,
#[validate(length(min = 0,))]
#[serde(rename = "Crdntls", default)]
pub crdntls: Vec<Credentials2>,
#[serde(rename = "Ntlty", skip_serializing_if = "Option::is_none")]
pub ntlty: Option<IsoMax3ACountryCode>,
#[serde(rename = "CtryOfBirth", skip_serializing_if = "Option::is_none")]
pub ctry_of_birth: Option<IsoMax3ACountryCode>,
#[serde(rename = "DtOfBirth", skip_serializing_if = "Option::is_none")]
pub dt_of_birth: Option<IsoDate>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData3>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SponsoredMerchant2 {
#[validate]
#[serde(rename = "Id")]
pub id: PartyIdentification262,
#[serde(rename = "CmonNm", skip_serializing_if = "Option::is_none")]
pub cmon_nm: Option<Max140Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max99Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address2>,
#[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
pub addtl_adr_inf: Option<Max256Text>,
#[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Kek5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate]
#[serde(rename = "KEKId")]
pub kek_id: KekIdentifier2,
#[validate]
#[serde(rename = "KeyNcrptnAlgo")]
pub key_ncrptn_algo: AlgorithmIdentification23,
#[validate]
#[serde(rename = "NcrptdKey")]
pub ncrptd_key: Max500Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification22 {
#[serde(rename = "Algo")]
pub algo: Algorithm17Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter7>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardholderVerificationCapability5Code {
#[serde(rename = "APKI")]
Apki,
#[serde(rename = "NOVF")]
Novf,
#[serde(rename = "FBIG")]
Fbig,
#[serde(rename = "FBIO")]
Fbio,
#[serde(rename = "FDSG")]
Fdsg,
#[serde(rename = "FCPN")]
Fcpn,
#[serde(rename = "FEPN")]
Fepn,
#[serde(rename = "NBIO")]
Nbio,
#[serde(rename = "NPIN")]
Npin,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "SIGN")]
Sign,
#[serde(rename = "UNSP")]
Unsp,
#[serde(rename = "VORN")]
Vorn,
#[serde(rename = "PKIS")]
Pkis,
#[serde(rename = "NOPN")]
Nopn,
#[serde(rename = "NOOP")]
Noop,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncapsulatedContent3 {
#[serde(rename = "CnttTp")]
pub cntt_tp: ContentType2Code,
#[serde(rename = "Cntt", skip_serializing_if = "Option::is_none")]
pub cntt: Option<Max100KBinary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Token4 {
#[serde(rename = "PmtTkn", skip_serializing_if = "Option::is_none")]
pub pmt_tkn: Option<Max19NumericText>,
#[serde(rename = "TknXpryDt", skip_serializing_if = "Option::is_none")]
pub tkn_xpry_dt: Option<IsoYearMonth>,
#[serde(rename = "TknRqstrId", skip_serializing_if = "Option::is_none")]
pub tkn_rqstr_id: Option<Max11NumericText>,
#[serde(rename = "TknAssrncData", skip_serializing_if = "Option::is_none")]
pub tkn_assrnc_data: Option<Max140Text>,
#[serde(rename = "TknAssrncMtd", skip_serializing_if = "Option::is_none")]
pub tkn_assrnc_mtd: Option<Max2NumericText>,
#[serde(rename = "TknRefId", skip_serializing_if = "Option::is_none")]
pub tkn_ref_id: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification24 {
#[serde(rename = "Algo")]
pub algo: Algorithm18Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter12>,
}
#[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 Capabilities2 {
#[validate(length(min = 0,))]
#[serde(rename = "CardRdngCpblty", default)]
pub card_rdng_cpblty: Vec<CardReadingCapabilities1>,
#[validate(length(min = 0,))]
#[serde(rename = "CardWrtgCpblty", default)]
pub card_wrtg_cpblty: Vec<CardWritingCapabilities1>,
#[serde(rename = "PINLngthCpblty", skip_serializing_if = "Option::is_none")]
pub pin_lngth_cpblty: Option<Number>,
#[serde(rename = "PINNtrySctyChrtc", skip_serializing_if = "Option::is_none")]
pub pin_ntry_scty_chrtc: Option<PinEntrySecurityCharacteristic1Code>,
#[serde(
rename = "OthrPINNtrySctyChrtc",
skip_serializing_if = "Option::is_none"
)]
pub othr_pin_ntry_scty_chrtc: Option<Max35Text>,
#[serde(rename = "ApprvlCdLngth", skip_serializing_if = "Option::is_none")]
pub apprvl_cd_lngth: Option<Number>,
#[serde(rename = "MxScrptLngth", skip_serializing_if = "Option::is_none")]
pub mx_scrpt_lngth: Option<Number>,
#[serde(rename = "CardCaptrCpbl", skip_serializing_if = "Option::is_none")]
pub card_captr_cpbl: Option<TrueFalseIndicator>,
#[serde(rename = "OnLineCpblty", skip_serializing_if = "Option::is_none")]
pub on_line_cpblty: Option<OnLineCapability2Code>,
#[validate(length(min = 0,))]
#[serde(rename = "MsgCpblty", default)]
pub msg_cpblty: Vec<DisplayCapabilities6>,
#[validate(length(min = 0,))]
#[serde(rename = "CrdhldrVrfctnCpblty", default)]
pub crdhldr_vrfctn_cpblty: Vec<CardholderVerificationCapabilities1>,
#[serde(
rename = "TempScrCardDataStorg",
skip_serializing_if = "Option::is_none"
)]
pub temp_scr_card_data_storg: Option<TrueFalseIndicator>,
}
#[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 Parameter12 {
#[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
pub ncrptn_frmt: Option<EncryptionFormat2Code>,
#[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
pub initlstn_vctr: Option<Max500Binary>,
#[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
pub b_pddg: Option<BytePadding1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max35Binary {
#[validate(length(min = 1, max = 35,), regex = "MAX_35_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification262 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<Iso3NumericCountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
#[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
pub addtl_id: Option<Max35Text>,
#[serde(rename = "FrgnMrchnt", skip_serializing_if = "Option::is_none")]
pub frgn_mrchnt: Option<TrueFalseIndicator>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification23 {
#[serde(rename = "Algo")]
pub algo: Algorithm18Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter12>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedData1 {
#[serde(rename = "Ctrl", skip_serializing_if = "Option::is_none")]
pub ctrl: Option<Exact1HexBinaryText>,
#[serde(rename = "KeySetIdr", skip_serializing_if = "Option::is_none")]
pub key_set_idr: Option<Max8NumericText>,
#[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
pub drvd_inf: Option<Max32HexBinaryText>,
#[serde(rename = "Algo", skip_serializing_if = "Option::is_none")]
pub algo: Option<Max2NumericText>,
#[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
pub key_lngth: Option<Max4NumericText>,
#[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
pub key_prtcn: Option<Max2NumericText>,
#[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
pub key_indx: Option<Max5NumericText>,
#[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
pub pddg_mtd: Option<Max2NumericText>,
#[serde(rename = "NcrptdDataFrmt", skip_serializing_if = "Option::is_none")]
pub ncrptd_data_frmt: Option<Max2NumericText>,
#[validate(length(min = 1,))]
#[serde(rename = "NcrptdDataElmt", default)]
pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max512Text {
#[validate(length(min = 1, max = 512,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum MessageFunction44Code {
#[serde(rename = "ADVC")]
Advc,
#[serde(rename = "NOTI")]
Noti,
#[serde(rename = "INST")]
Inst,
#[serde(rename = "REQU")]
Requ,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TypeOfAmount21Code {
#[serde(rename = "INTC")]
Intc,
#[serde(rename = "FEEP")]
Feep,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "FEEA")]
Feea,
#[serde(rename = "CSIF")]
Csif,
#[serde(rename = "MXIF")]
Mxif,
#[serde(rename = "MNIF")]
Mnif,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FinancialInstitution7 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address2>,
#[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
pub email: Option<Max256Text>,
#[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
pub url_adr: Option<Max256Text>,
#[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
pub phne_nb: Option<Max35Text>,
#[serde(rename = "CstmrSvc", skip_serializing_if = "Option::is_none")]
pub cstmr_svc: Option<Max35Text>,
#[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
pub addtl_ctct_inf: Option<Max256Text>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max10MbText {
#[validate(length(min = 1, max = 10000000,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter5 {
#[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
pub dgst_algo: Option<Algorithm11Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FileActionInitiationV02<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "Hdr")]
pub hdr: Header68,
#[validate]
#[serde(rename = "Body")]
pub body: FileActionInitiation2<A>,
#[serde(rename = "SctyTrlr", skip_serializing_if = "Option::is_none")]
pub scty_trlr: Option<ContentInformationType20>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionComponentIdentification3 {
#[serde(rename = "ItmNb", skip_serializing_if = "Option::is_none")]
pub itm_nb: Option<Max35Text>,
#[serde(rename = "PrvdrId", skip_serializing_if = "Option::is_none")]
pub prvdr_id: Option<Max35Text>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "SrlNb", skip_serializing_if = "Option::is_none")]
pub srl_nb: Option<Max70Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum EncryptionFormat2Code {
#[serde(rename = "TR31")]
Tr31,
#[serde(rename = "TR34")]
Tr34,
#[serde(rename = "I238")]
I238,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact12Text {
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ProtectedData1 {
#[serde(rename = "CnttTp")]
pub cntt_tp: ContentType3Code,
#[serde(rename = "EnvlpdData", skip_serializing_if = "Option::is_none")]
pub envlpd_data: Option<EnvelopedData6>,
#[serde(rename = "NcrptdData", skip_serializing_if = "Option::is_none")]
pub ncrptd_data: Option<EncryptedData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum MemoryUnit1Code {
#[serde(rename = "BYTE")]
Byte,
#[serde(rename = "EXAB")]
Exab,
#[serde(rename = "GIGA")]
Giga,
#[serde(rename = "KILO")]
Kilo,
#[serde(rename = "MEGA")]
Mega,
#[serde(rename = "PETA")]
Peta,
#[serde(rename = "TERA")]
Tera,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedDataElement1 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<ExternalEncryptedElementIdentification1Code>,
#[serde(rename = "OthrId", skip_serializing_if = "Option::is_none")]
pub othr_id: Option<Max35Text>,
#[serde(rename = "NcrptdData")]
pub ncrptd_data: EncryptedData1Choice,
#[serde(rename = "ClearTxtDataFrmt", skip_serializing_if = "Option::is_none")]
pub clear_txt_data_frmt: Option<EncryptedDataFormat1Code>,
#[serde(
rename = "OthrClearTxtDataFrmt",
skip_serializing_if = "Option::is_none"
)]
pub othr_clear_txt_data_frmt: Option<Max35Text>,
}
#[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 = "FileActnInitn")]
pub file_actn_initn: FileActionInitiationV02<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 GeographicPointInDecimalDegrees {
#[validate(length(max = 27,), regex = "GEOGRAPHIC_POINT_IN_DECIMAL_DEGREES_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Traceability9 {
#[validate]
#[serde(rename = "RlayId")]
pub rlay_id: GenericIdentification183,
#[serde(rename = "TracDtTmIn", skip_serializing_if = "Option::is_none")]
pub trac_dt_tm_in: Option<IsoDateTime>,
#[serde(rename = "TracDtTmOut", skip_serializing_if = "Option::is_none")]
pub trac_dt_tm_out: Option<IsoDateTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification27 {
#[serde(rename = "Algo")]
pub algo: Algorithm7Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter13>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DisplayCapabilities6 {
#[serde(rename = "Dstn")]
pub dstn: UserInterface1Code,
#[validate(length(min = 0,))]
#[serde(rename = "AvlblFrmt", default)]
pub avlbl_frmt: Vec<OutputFormat1Code>,
#[serde(rename = "NbOfLines", skip_serializing_if = "Option::is_none")]
pub nb_of_lines: Option<Number>,
#[serde(rename = "LineWidth", skip_serializing_if = "Option::is_none")]
pub line_width: Option<Number>,
#[validate(length(min = 0,))]
#[serde(rename = "AvlblLang", default)]
pub avlbl_lang: Vec<LanguageCode>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification12 {
#[serde(rename = "Algo")]
pub algo: Algorithm8Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter5>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Priority3Code {
#[serde(rename = "URGT")]
Urgt,
#[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 Max10PositiveNumber {
#[validate(range(min = 1,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification20 {
#[serde(rename = "Algo")]
pub algo: Algorithm19Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter11>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DataRecord1ChoiceEnum {
#[serde(rename = "Binry", skip_serializing_if = "Option::is_none")]
pub binry: Option<Max20MbBinary>,
#[serde(rename = "Txt", skip_serializing_if = "Option::is_none")]
pub txt: Option<Max10MbText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DataRecord1Choice {
#[serde(flatten)]
pub value: DataRecord1ChoiceEnum,
}
#[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)]
pub enum UserInterface1Code {
#[serde(rename = "CDSP")]
Cdsp,
#[serde(rename = "CRCP")]
Crcp,
#[serde(rename = "MDSP")]
Mdsp,
#[serde(rename = "MRCP")]
Mrcp,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardholderName2 {
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "GvnNm", skip_serializing_if = "Option::is_none")]
pub gvn_nm: Option<Max70Text>,
#[serde(rename = "MddlNm", skip_serializing_if = "Option::is_none")]
pub mddl_nm: Option<Max70Text>,
#[serde(rename = "LastNm", skip_serializing_if = "Option::is_none")]
pub last_nm: Option<Max70Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalData2 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address3>,
#[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
pub addtl_ctct_inf: Option<Max512Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardWritingCapabilities1 {
#[serde(rename = "Cpblty")]
pub cpblty: CardDataWriting1Code,
#[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
pub othr_cpblty: Option<Max35Text>,
}
#[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 MacData1 {
#[validate]
#[serde(rename = "Ctrl")]
pub ctrl: Exact1HexBinaryText,
#[validate]
#[serde(rename = "KeySetIdr")]
pub key_set_idr: Max8NumericText,
#[serde(rename = "DrvdInf", skip_serializing_if = "Option::is_none")]
pub drvd_inf: Option<Max32HexBinaryText>,
#[validate]
#[serde(rename = "Algo")]
pub algo: Max2NumericText,
#[serde(rename = "KeyLngth", skip_serializing_if = "Option::is_none")]
pub key_lngth: Option<Max4NumericText>,
#[serde(rename = "KeyPrtcn", skip_serializing_if = "Option::is_none")]
pub key_prtcn: Option<Max2NumericText>,
#[serde(rename = "KeyIndx", skip_serializing_if = "Option::is_none")]
pub key_indx: Option<Max5NumericText>,
#[serde(rename = "PddgMtd", skip_serializing_if = "Option::is_none")]
pub pddg_mtd: Option<Max2NumericText>,
#[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
pub initlstn_vctr: Option<Max32HexBinaryText>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Environment22 {
#[serde(rename = "Acqrr", skip_serializing_if = "Option::is_none")]
pub acqrr: Option<PartyIdentification263>,
#[serde(rename = "Orgtr", skip_serializing_if = "Option::is_none")]
pub orgtr: Option<PartyIdentification263>,
#[serde(rename = "Sndr", skip_serializing_if = "Option::is_none")]
pub sndr: Option<PartyIdentification263>,
#[serde(rename = "Rcvr", skip_serializing_if = "Option::is_none")]
pub rcvr: Option<PartyIdentification263>,
#[serde(rename = "Accptr", skip_serializing_if = "Option::is_none")]
pub accptr: Option<PartyIdentification254>,
#[serde(rename = "Pyer", skip_serializing_if = "Option::is_none")]
pub pyer: Option<PartyIdentification257>,
#[serde(rename = "Pyee", skip_serializing_if = "Option::is_none")]
pub pyee: Option<PartyIdentification257>,
#[serde(rename = "Termnl", skip_serializing_if = "Option::is_none")]
pub termnl: Option<Terminal4>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<PartyIdentification263>,
#[serde(rename = "Card", skip_serializing_if = "Option::is_none")]
pub card: Option<CardData8>,
#[serde(rename = "Dstn", skip_serializing_if = "Option::is_none")]
pub dstn: Option<PartyIdentification263>,
#[serde(rename = "CstmrDvc", skip_serializing_if = "Option::is_none")]
pub cstmr_dvc: Option<CustomerDevice4>,
#[serde(rename = "Wllt", skip_serializing_if = "Option::is_none")]
pub wllt: Option<Wallet2>,
#[serde(rename = "Tkn", skip_serializing_if = "Option::is_none")]
pub tkn: Option<Token3>,
#[serde(rename = "Crdhldr", skip_serializing_if = "Option::is_none")]
pub crdhldr: Option<Cardholder19>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max500Binary {
#[validate(length(min = 1, max = 500,), regex = "MAX_500_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso2ALanguageCode {
#[validate(regex = "ISO_2_A_LANGUAGE_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max99Text {
#[validate(length(min = 1, max = 99,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoTime {
#[serde(rename = "$value")]
pub value: ::chrono::naive::NaiveTime,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification25 {
#[serde(rename = "Algo")]
pub algo: Algorithm23Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter7>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification21 {
#[serde(rename = "Algo")]
pub algo: Algorithm16Code,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification18 {
#[serde(rename = "Algo")]
pub algo: Algorithm8Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter9>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum FileActionType2Code {
#[serde(rename = "ADDD")]
Addd,
#[serde(rename = "BRPT")]
Brpt,
#[serde(rename = "DELT")]
Delt,
#[serde(rename = "DLSP")]
Dlsp,
#[serde(rename = "ENQR")]
Enqr,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "REPL")]
Repl,
#[serde(rename = "REQU")]
Requ,
#[serde(rename = "UPDT")]
Updt,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Reconciliation3 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "ChckptRef", skip_serializing_if = "Option::is_none")]
pub chckpt_ref: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardDataWriting1Code {
#[serde(rename = "ICPY")]
Icpy,
#[serde(rename = "MGST")]
Mgst,
#[serde(rename = "ICCY")]
Iccy,
#[serde(rename = "MSIP")]
Msip,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "UNSP")]
Unsp,
#[serde(rename = "OTHP")]
Othp,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum FileActionResult1Code {
#[serde(rename = "DUPR")]
Dupr,
#[serde(rename = "FERD")]
Ferd,
#[serde(rename = "INFD")]
Infd,
#[serde(rename = "FLCK")]
Flck,
#[serde(rename = "FTER")]
Fter,
#[serde(rename = "NSUP")]
Nsup,
#[serde(rename = "OTHR")]
Othr,
#[serde(rename = "SUCC")]
Succ,
#[serde(rename = "UTLR")]
Utlr,
#[serde(rename = "UNKF")]
Unkf,
#[serde(rename = "USUC")]
Usuc,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionComponentCharacteristics4 {
#[validate(length(min = 0,))]
#[serde(rename = "Mmry", default)]
pub mmry: Vec<MemoryCharacteristics1>,
#[validate(length(min = 0,))]
#[serde(rename = "Com", default)]
pub com: Vec<CommunicationCharacteristics3>,
#[serde(rename = "SctyAccsMdls", skip_serializing_if = "Option::is_none")]
pub scty_accs_mdls: Option<Number>,
#[serde(rename = "SbcbrIdntyMdls", skip_serializing_if = "Option::is_none")]
pub sbcbr_idnty_mdls: Option<Number>,
#[validate(length(min = 0,))]
#[serde(rename = "SctyElmt", default)]
pub scty_elmt: Vec<CryptographicKey13>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionIdentification12 {
#[validate]
#[serde(rename = "SysTracAudtNb")]
pub sys_trac_audt_nb: Max12NumericText,
#[validate]
#[serde(rename = "TrnsmssnDtTm")]
pub trnsmssn_dt_tm: IsoDateTime,
#[serde(rename = "RtrvlRefNb", skip_serializing_if = "Option::is_none")]
pub rtrvl_ref_nb: Option<Exact12Text>,
#[serde(rename = "LifeCyclTracIdData", skip_serializing_if = "Option::is_none")]
pub life_cycl_trac_id_data: Option<TransactionLifeCycleIdentification2>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm23Code {
#[serde(rename = "EA2C")]
Ea2C,
#[serde(rename = "E3DC")]
E3Dc,
#[serde(rename = "EA9C")]
Ea9C,
#[serde(rename = "EA5C")]
Ea5C,
#[serde(rename = "EA2R")]
Ea2R,
#[serde(rename = "EA9R")]
Ea9R,
#[serde(rename = "EA5R")]
Ea5R,
#[serde(rename = "E3DR")]
E3Dr,
#[serde(rename = "E36C")]
E36C,
#[serde(rename = "E36R")]
E36R,
#[serde(rename = "SD5C")]
Sd5C,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CorrectionIdentification1 {
#[serde(rename = "Ind", skip_serializing_if = "Option::is_none")]
pub ind: Option<TrueFalseIndicator>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<IsoDate>,
#[serde(rename = "Tm", skip_serializing_if = "Option::is_none")]
pub tm: Option<IsoTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient6ChoiceEnum {
#[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
pub key_idr: Option<KekIdentifier2>,
#[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
pub kek: Option<Kek5>,
#[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
pub key_trnsprt: Option<KeyTransport5>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient6Choice {
#[serde(flatten)]
pub value: Recipient6ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient7ChoiceEnum {
#[serde(rename = "KEK", skip_serializing_if = "Option::is_none")]
pub kek: Option<Kek6>,
#[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
pub key_idr: Option<KekIdentifier6>,
#[serde(rename = "KeyTrnsprt", skip_serializing_if = "Option::is_none")]
pub key_trnsprt: Option<KeyTransport6>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient7Choice {
#[serde(flatten)]
pub value: Recipient7ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso3NumericCountryCode {
#[validate(regex = "ISO_3_NUMERIC_COUNTRY_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum ProtectionMethod1Code {
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "SELM")]
Selm,
#[serde(rename = "SNCL")]
Sncl,
#[serde(rename = "SOFT")]
Soft,
#[serde(rename = "TEEN")]
Teen,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max12NumericText {
#[validate(regex = "MAX_12_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 AuthenticatedData5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate(length(min = 1,))]
#[serde(rename = "Rcpt", default)]
pub rcpt: Vec<Recipient6Choice>,
#[validate]
#[serde(rename = "MACAlgo")]
pub mac_algo: AlgorithmIdentification22,
#[validate]
#[serde(rename = "NcpsltdCntt")]
pub ncpsltd_cntt: EncapsulatedContent3,
#[validate]
#[serde(rename = "MAC")]
pub mac: Max140Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max32HexBinaryText {
#[validate(regex = "MAX_32_HEX_BINARY_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max5NumericText {
#[validate(regex = "MAX_5_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct 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 IssuerAndSerialNumber1 {
#[validate]
#[serde(rename = "Issr")]
pub issr: CertificateIssuer1,
#[validate]
#[serde(rename = "SrlNb")]
pub srl_nb: Max35Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact1HexBinaryText {
#[validate(regex = "EXACT_1_HEX_BINARY_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EncryptedContent5 {
#[serde(rename = "CnttTp")]
pub cntt_tp: ContentType2Code,
#[validate]
#[serde(rename = "CnttNcrptnAlgo")]
pub cntt_ncrptn_algo: AlgorithmIdentification25,
#[validate(length(min = 1,))]
#[serde(rename = "NcrptdDataElmt", default)]
pub ncrptd_data_elmt: Vec<EncryptedDataElement1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max8NumericText {
#[validate(regex = "MAX_8_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 Kek6 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate]
#[serde(rename = "KEKId")]
pub kek_id: KekIdentifier6,
#[validate]
#[serde(rename = "KeyNcrptnAlgo")]
pub key_ncrptn_algo: AlgorithmIdentification28,
#[serde(rename = "NcrptdKey", skip_serializing_if = "Option::is_none")]
pub ncrptd_key: Option<Max500Binary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso3NumericCurrencyCode {
#[validate(regex = "ISO_3_NUMERIC_CURRENCY_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum StorageLocation1Code {
#[serde(rename = "CAWL")]
Cawl,
#[serde(rename = "DVCE")]
Dvce,
#[serde(rename = "ISWL")]
Iswl,
#[serde(rename = "ONFL")]
Onfl,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "TPWL")]
Tpwl,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericIdentification183 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<PartyType17Code>,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<PartyType18Code>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<IsoMax3ACountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoDate {
#[serde(rename = "$text")]
pub value: ::chrono::NaiveDate,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardholderVerificationCapabilities1 {
#[serde(rename = "Cpblty")]
pub cpblty: CardholderVerificationCapability5Code,
#[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
pub othr_cpblty: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm18Code {
#[serde(rename = "EA2C")]
Ea2C,
#[serde(rename = "E3DC")]
E3Dc,
#[serde(rename = "DKP9")]
Dkp9,
#[serde(rename = "UKPT")]
Ukpt,
#[serde(rename = "UKA1")]
Uka1,
#[serde(rename = "EA9C")]
Ea9C,
#[serde(rename = "EA5C")]
Ea5C,
#[serde(rename = "DA12")]
Da12,
#[serde(rename = "DA19")]
Da19,
#[serde(rename = "DA25")]
Da25,
#[serde(rename = "N108")]
N108,
#[serde(rename = "EA5R")]
Ea5R,
#[serde(rename = "EA9R")]
Ea9R,
#[serde(rename = "EA2R")]
Ea2R,
#[serde(rename = "E3DR")]
E3Dr,
#[serde(rename = "E36C")]
E36C,
#[serde(rename = "E36R")]
E36R,
#[serde(rename = "SD5C")]
Sd5C,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Frequency12Code {
#[serde(rename = "YEAR")]
Year,
#[serde(rename = "DAIL")]
Dail,
#[serde(rename = "FRTN")]
Frtn,
#[serde(rename = "MNTH")]
Mnth,
#[serde(rename = "QURT")]
Qurt,
#[serde(rename = "MIAN")]
Mian,
#[serde(rename = "TEND")]
Tend,
#[serde(rename = "WEEK")]
Week,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter7 {
#[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
pub initlstn_vctr: Option<Max500Binary>,
#[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
pub b_pddg: Option<BytePadding1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification258 {
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<Iso3NumericCountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max99Text>,
#[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
pub addtl_id: Option<AdditionalData1>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Header68 {
#[serde(rename = "MsgFctn")]
pub msg_fctn: MessageFunction44Code,
#[validate]
#[serde(rename = "PrtcolVrsn")]
pub prtcol_vrsn: Max2048Text,
#[serde(rename = "XchgId", skip_serializing_if = "Option::is_none")]
pub xchg_id: Option<Max35Text>,
#[serde(rename = "ReTrnsmssnCntr", skip_serializing_if = "Option::is_none")]
pub re_trnsmssn_cntr: Option<Max3NumericText>,
#[validate]
#[serde(rename = "CreDtTm")]
pub cre_dt_tm: IsoDateTime,
#[serde(rename = "BtchMgmtInf", skip_serializing_if = "Option::is_none")]
pub btch_mgmt_inf: Option<BatchManagementInformation1>,
#[validate]
#[serde(rename = "InitgPty")]
pub initg_pty: GenericIdentification183,
#[serde(rename = "RcptPty", skip_serializing_if = "Option::is_none")]
pub rcpt_pty: Option<GenericIdentification183>,
#[validate(length(min = 0,))]
#[serde(rename = "TracData", default)]
pub trac_data: Vec<AdditionalData1>,
#[validate(length(min = 0,))]
#[serde(rename = "Tracblt", default)]
pub tracblt: Vec<Traceability9>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient5ChoiceEnum {
#[serde(rename = "KeyIdr", skip_serializing_if = "Option::is_none")]
pub key_idr: Option<KekIdentifier2>,
#[serde(rename = "IssrAndSrlNb", skip_serializing_if = "Option::is_none")]
pub issr_and_srl_nb: Option<IssuerAndSerialNumber1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Recipient5Choice {
#[serde(flatten)]
pub value: Recipient5ChoiceEnum,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct RelativeDistinguishedName1 {
#[serde(rename = "AttrTp")]
pub attr_tp: AttributeType1Code,
#[validate]
#[serde(rename = "AttrVal")]
pub attr_val: Max140Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AdditionalData1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
pub val: Option<Max2048Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Wallet2 {
#[serde(rename = "Prvdr", skip_serializing_if = "Option::is_none")]
pub prvdr: Option<PartyIdentification258>,
#[serde(rename = "PANAge", skip_serializing_if = "Option::is_none")]
pub pan_age: Option<Max5PositiveNumber>,
#[serde(rename = "UsrAcctAge", skip_serializing_if = "Option::is_none")]
pub usr_acct_age: Option<Max5PositiveNumber>,
#[serde(rename = "WlltAcctAge", skip_serializing_if = "Option::is_none")]
pub wllt_acct_age: Option<Max5PositiveNumber>,
#[serde(rename = "DaysSncLastActvty", skip_serializing_if = "Option::is_none")]
pub days_snc_last_actvty: Option<Max5PositiveNumber>,
#[serde(rename = "Actvty", skip_serializing_if = "Option::is_none")]
pub actvty: Option<Max10PositiveNumber>,
#[serde(rename = "ActvtyIntrvl", skip_serializing_if = "Option::is_none")]
pub actvty_intrvl: Option<Frequency12Code>,
#[serde(rename = "LastWlltChng", skip_serializing_if = "Option::is_none")]
pub last_wllt_chng: Option<Max5PositiveNumber>,
#[serde(rename = "SspdCrds", skip_serializing_if = "Option::is_none")]
pub sspd_crds: Option<Max5PositiveNumber>,
#[serde(rename = "WlltAcctCtry", skip_serializing_if = "Option::is_none")]
pub wllt_acct_ctry: Option<IsoMax3ACountryCode>,
#[serde(rename = "CardDataNtryMd", skip_serializing_if = "Option::is_none")]
pub card_data_ntry_md: Option<CardDataReading9Code>,
#[serde(rename = "OthrCardDataNtryMd", skip_serializing_if = "Option::is_none")]
pub othr_card_data_ntry_md: Option<Max35Text>,
#[serde(rename = "WlltAcctEmailAge", skip_serializing_if = "Option::is_none")]
pub wllt_acct_email_age: Option<Max5PositiveNumber>,
#[serde(rename = "WlltPrvdrRskAssmnt", skip_serializing_if = "Option::is_none")]
pub wllt_prvdr_rsk_assmnt: Option<RiskAssessment1Code>,
#[serde(
rename = "WlltPrvdrRskAssmntMdlVrsn",
skip_serializing_if = "Option::is_none"
)]
pub wllt_prvdr_rsk_assmnt_mdl_vrsn: Option<Max35Text>,
#[serde(rename = "WlltPrvdrPhneScore", skip_serializing_if = "Option::is_none")]
pub wllt_prvdr_phne_score: Option<Max5PositiveNumber>,
#[serde(rename = "WlltPrvdrDvcScore", skip_serializing_if = "Option::is_none")]
pub wllt_prvdr_dvc_score: Option<Max5PositiveNumber>,
#[serde(rename = "WlltPrvdrAcctScore", skip_serializing_if = "Option::is_none")]
pub wllt_prvdr_acct_score: Option<Max5PositiveNumber>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PoiCommunicationType2Code {
#[serde(rename = "BLTH")]
Blth,
#[serde(rename = "ETHR")]
Ethr,
#[serde(rename = "GPRS")]
Gprs,
#[serde(rename = "GSMF")]
Gsmf,
#[serde(rename = "PSTN")]
Pstn,
#[serde(rename = "RS23")]
Rs23,
#[serde(rename = "USBD")]
Usbd,
#[serde(rename = "USBH")]
Usbh,
#[serde(rename = "WIFI")]
Wifi,
#[serde(rename = "WT2G")]
Wt2G,
#[serde(rename = "WT3G")]
Wt3G,
#[serde(rename = "WT4G")]
Wt4G,
#[serde(rename = "WT5G")]
Wt5G,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CertificateIssuer1 {
#[validate(length(min = 1,))]
#[serde(rename = "RltvDstngshdNm", default)]
pub rltv_dstngshd_nm: Vec<RelativeDistinguishedName1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm16Code {
#[serde(rename = "HS25")]
Hs25,
#[serde(rename = "HS38")]
Hs38,
#[serde(rename = "HS51")]
Hs51,
#[serde(rename = "HS01")]
Hs01,
#[serde(rename = "SH31")]
Sh31,
#[serde(rename = "SH32")]
Sh32,
#[serde(rename = "SH33")]
Sh33,
#[serde(rename = "SH35")]
Sh35,
#[serde(rename = "SHK1")]
Shk1,
#[serde(rename = "SHK2")]
Shk2,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso8583ResponseCode {
#[validate(regex = "ISO_8583_RESPONSE_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter9 {
#[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
pub dgst_algo: Option<Algorithm16Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Iso8583MessageReasonCode {
#[validate(regex = "ISO_8583_MESSAGE_REASON_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoMax3ALanguageCode {
#[validate(regex = "ISO_MAX_3_A_LANGUAGE_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Exact15Text {
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Min2Max3NumericText {
#[validate(regex = "MIN_2_MAX_3_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct 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 DeviceOperatingSystem1 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max70Text>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DeviceOperatingSystemType1Code>,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Max35Text>,
#[serde(rename = "Bld", skip_serializing_if = "Option::is_none")]
pub bld: Option<Max70Text>,
}
#[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 IsoYearMonth {
#[validate(regex = "ISO_YEAR_MONTH_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max140Binary {
#[validate(length(min = 1, max = 140,), regex = "MAX_140_BINARY_REGEX")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum FileActionScope1Code {
#[serde(rename = "FILE")]
File,
#[serde(rename = "RECD")]
Recd,
#[default]
Unknown,
}
#[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 TrueFalseIndicator {
#[serde(rename = "$text")]
pub value: bool,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct KekIdentifier2 {
#[validate]
#[serde(rename = "KeyId")]
pub key_id: Max140Text,
#[validate]
#[serde(rename = "KeyVrsn")]
pub key_vrsn: Max140Text,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<Number>,
#[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
pub derivtn_id: Option<Min5Max16Binary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max19NumericText {
#[validate(regex = "MAX_19_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 LocalData4 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max70Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max210Text>,
#[serde(rename = "NmAndLctn", skip_serializing_if = "Option::is_none")]
pub nm_and_lctn: Option<Max200Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address3>,
#[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
pub addtl_adr_inf: Option<Max512Text>,
#[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
pub addtl_ctct_inf: Option<Max512Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct AlgorithmIdentification19 {
#[serde(rename = "Algo")]
pub algo: Algorithm7Code,
#[serde(rename = "Param", skip_serializing_if = "Option::is_none")]
pub param: Option<Parameter10>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CardDataReading10Code {
#[serde(rename = "ICPY")]
Icpy,
#[serde(rename = "MGST")]
Mgst,
#[serde(rename = "ICCY")]
Iccy,
#[serde(rename = "MICR")]
Micr,
#[serde(rename = "MLEY")]
Mley,
#[serde(rename = "OCRR")]
Ocrr,
#[serde(rename = "MSIP")]
Msip,
#[serde(rename = "OPTC")]
Optc,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "RFID")]
Rfid,
#[serde(rename = "UNSP")]
Unsp,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "KEEN")]
Keen,
#[serde(rename = "DFLE")]
Dfle,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CustomerDevice4 {
#[serde(rename = "Dvc", skip_serializing_if = "Option::is_none")]
pub dvc: Option<Device2>,
#[serde(rename = "DvcId", skip_serializing_if = "Option::is_none")]
pub dvc_id: Option<DeviceIdentification1>,
#[serde(rename = "OprgSys", skip_serializing_if = "Option::is_none")]
pub oprg_sys: Option<DeviceOperatingSystem1>,
#[serde(rename = "Prvdr", skip_serializing_if = "Option::is_none")]
pub prvdr: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum PinEntrySecurityCharacteristic1Code {
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "SECS")]
Secs,
#[serde(rename = "SECH")]
Sech,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max3NumericText {
#[validate(regex = "MAX_3_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TerminalIdentification3 {
#[validate]
#[serde(rename = "Id")]
pub id: Max16Text,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<IsoMax3ACountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max200Text {
#[validate(length(min = 1, max = 200,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct KeyTransport5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[serde(rename = "RcptId")]
pub rcpt_id: Recipient5Choice,
#[validate]
#[serde(rename = "KeyNcrptnAlgo")]
pub key_ncrptn_algo: AlgorithmIdentification19,
#[validate]
#[serde(rename = "NcrptdKey")]
pub ncrptd_key: Max5000Binary,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum OutputFormat5Code {
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "TEXT")]
Text,
#[serde(rename = "URLI")]
Urli,
#[serde(rename = "HTML")]
Html,
#[serde(rename = "PLIN")]
Plin,
#[serde(rename = "JSON")]
Json,
#[serde(rename = "XMLF")]
Xmlf,
#[serde(rename = "EDIF")]
Edif,
#[serde(rename = "CSVF")]
Csvf,
#[serde(rename = "JPEG")]
Jpeg,
#[serde(rename = "PDFF")]
Pdff,
#[serde(rename = "PNGF")]
Pngf,
#[serde(rename = "SVGF")]
Svgf,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionContext10 {
#[serde(rename = "CardPrgrmmApld", skip_serializing_if = "Option::is_none")]
pub card_prgrmm_apld: Option<CardProgrammeMode3>,
#[serde(rename = "Jursdctn", skip_serializing_if = "Option::is_none")]
pub jursdctn: Option<Jurisdiction2>,
#[serde(rename = "SttlmSvc", skip_serializing_if = "Option::is_none")]
pub sttlm_svc: Option<SettlementService4>,
#[serde(rename = "Rcncltn", skip_serializing_if = "Option::is_none")]
pub rcncltn: Option<Reconciliation3>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalData3 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<CardholderName2>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address3>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct OriginatorInformation1 {
#[validate(length(min = 0,))]
#[serde(rename = "Cert", default)]
pub cert: Vec<Max5000Binary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Min5Max16Binary {
#[validate(length(min = 5, max = 16,), regex = "MIN_5_MAX_16_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max4NumericText {
#[validate(regex = "MAX_4_NUMERIC_TEXT_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Signer4 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[serde(rename = "SgnrId", skip_serializing_if = "Option::is_none")]
pub sgnr_id: Option<Recipient5Choice>,
#[validate]
#[serde(rename = "DgstAlgo")]
pub dgst_algo: AlgorithmIdentification21,
#[validate(length(min = 0,))]
#[serde(rename = "SgndAttrbts", default)]
pub sgnd_attrbts: Vec<GenericInformation1>,
#[validate]
#[serde(rename = "SgntrAlgo")]
pub sgntr_algo: AlgorithmIdentification20,
#[validate]
#[serde(rename = "Sgntr")]
pub sgntr: Max3000Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ExternalEncryptedElementIdentification1Code {
#[validate(regex = "EXTERNAL_ENCRYPTED_ELEMENT_IDENTIFICATION_1_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CreditDebit3Code {
#[serde(rename = "CRDT")]
Crdt,
#[serde(rename = "DBIT")]
Dbit,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum CryptographicKeyType3Code {
#[serde(rename = "AES2")]
Aes2,
#[serde(rename = "EDE3")]
Ede3,
#[serde(rename = "DKP9")]
Dkp9,
#[serde(rename = "AES9")]
Aes9,
#[serde(rename = "AES5")]
Aes5,
#[serde(rename = "EDE4")]
Ede4,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CommunicationCharacteristics3 {
#[serde(rename = "ComTp")]
pub com_tp: PoiCommunicationType2Code,
#[validate(length(min = 1,))]
#[serde(rename = "RmotPty", default)]
pub rmot_pty: Vec<PartyType7Code>,
#[validate]
#[serde(rename = "Actv")]
pub actv: TrueFalseIndicator,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoCountrySubDivisionCode {
#[validate(regex = "ISO_COUNTRY_SUB_DIVISION_CODE_REGEX")]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BaseOne25Rate {
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct BatchManagementInformation1 {
#[serde(rename = "ColltnId", skip_serializing_if = "Option::is_none")]
pub colltn_id: Option<Max35Text>,
#[validate]
#[serde(rename = "BtchId")]
pub btch_id: Max35Text,
#[serde(rename = "MsgSeqNb", skip_serializing_if = "Option::is_none")]
pub msg_seq_nb: Option<Max15NumericText>,
#[serde(rename = "MsgChcksmInptVal", skip_serializing_if = "Option::is_none")]
pub msg_chcksm_inpt_val: Option<Max140Binary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CryptographicKey13 {
#[validate]
#[serde(rename = "Id")]
pub id: Max140Text,
#[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
pub addtl_id: Option<Max35Binary>,
#[validate]
#[serde(rename = "Vrsn")]
pub vrsn: Max256Text,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CryptographicKeyType3Code>,
#[validate(length(min = 0,))]
#[serde(rename = "Fctn", default)]
pub fctn: Vec<KeyUsage1Code>,
#[serde(rename = "ActvtnDt", skip_serializing_if = "Option::is_none")]
pub actvtn_dt: Option<IsoDateTime>,
#[serde(rename = "DeactvtnDt", skip_serializing_if = "Option::is_none")]
pub deactvtn_dt: Option<IsoDateTime>,
#[serde(rename = "KeyVal", skip_serializing_if = "Option::is_none")]
pub key_val: Option<ContentInformationType19>,
#[serde(rename = "KeyChckVal", skip_serializing_if = "Option::is_none")]
pub key_chck_val: Option<Max35Binary>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlMgmtInf", default)]
pub addtl_mgmt_inf: Vec<GenericInformation1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct LocalData5 {
#[serde(rename = "Lang")]
pub lang: IsoMax3ALanguageCode,
#[serde(rename = "CmonNm", skip_serializing_if = "Option::is_none")]
pub cmon_nm: Option<Max280Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max210Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address3>,
#[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
pub addtl_adr_inf: Option<Max512Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Contact6 {
#[serde(rename = "HomePhneNb", skip_serializing_if = "Option::is_none")]
pub home_phne_nb: Option<PhoneNumber>,
#[serde(rename = "BizPhneNb", skip_serializing_if = "Option::is_none")]
pub biz_phne_nb: Option<PhoneNumber>,
#[serde(rename = "MobPhneNb", skip_serializing_if = "Option::is_none")]
pub mob_phne_nb: Option<PhoneNumber>,
#[serde(rename = "OthrPhneNb", skip_serializing_if = "Option::is_none")]
pub othr_phne_nb: Option<PhoneNumber>,
#[serde(rename = "PrsnlEmailAdr", skip_serializing_if = "Option::is_none")]
pub prsnl_email_adr: Option<Max256Text>,
#[serde(rename = "BizEmailAdr", skip_serializing_if = "Option::is_none")]
pub biz_email_adr: Option<Max256Text>,
#[serde(rename = "OthrEmailAdr", skip_serializing_if = "Option::is_none")]
pub othr_email_adr: Option<Max256Text>,
#[serde(rename = "HomeFaxNb", skip_serializing_if = "Option::is_none")]
pub home_fax_nb: Option<PhoneNumber>,
#[serde(rename = "BizFaxNb", skip_serializing_if = "Option::is_none")]
pub biz_fax_nb: Option<PhoneNumber>,
#[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
pub url_adr: Option<Max256Text>,
#[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
pub lang: Option<LanguageCode>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm5Code {
#[serde(rename = "HS25")]
Hs25,
#[serde(rename = "HS38")]
Hs38,
#[serde(rename = "HS51")]
Hs51,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionComponentStatus3 {
#[serde(rename = "VrsnNb", skip_serializing_if = "Option::is_none")]
pub vrsn_nb: Option<Max256Text>,
#[serde(rename = "Sts", skip_serializing_if = "Option::is_none")]
pub sts: Option<PoiComponentStatus1Code>,
#[serde(rename = "XpryDt", skip_serializing_if = "Option::is_none")]
pub xpry_dt: Option<IsoDate>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm11Code {
#[serde(rename = "HS25")]
Hs25,
#[serde(rename = "HS38")]
Hs38,
#[serde(rename = "HS51")]
Hs51,
#[serde(rename = "HS01")]
Hs01,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification257 {
#[serde(rename = "FI", skip_serializing_if = "Option::is_none")]
pub fi: Option<FinancialInstitution7>,
#[serde(rename = "Cstmr", skip_serializing_if = "Option::is_none")]
pub cstmr: Option<Customer7>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PointOfInteractionComponent13 {
#[serde(rename = "Tp")]
pub tp: PoiComponentType5Code,
#[validate]
#[serde(rename = "Id")]
pub id: PointOfInteractionComponentIdentification3,
#[serde(rename = "Sts", skip_serializing_if = "Option::is_none")]
pub sts: Option<PointOfInteractionComponentStatus3>,
#[validate(length(min = 0,))]
#[serde(rename = "StdCmplc", default)]
pub std_cmplc: Vec<GenericIdentification48>,
#[serde(rename = "Chrtcs", skip_serializing_if = "Option::is_none")]
pub chrtcs: Option<PointOfInteractionComponentCharacteristics4>,
#[validate(length(min = 0,))]
#[serde(rename = "Assmnt", default)]
pub assmnt: Vec<PointOfInteractionComponentIdentification3>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Transaction157 {
#[validate(length(min = 0,))]
#[serde(rename = "MsgRsn", default)]
pub msg_rsn: Vec<Iso8583MessageReasonCode>,
#[validate(length(min = 0,))]
#[serde(rename = "AltrnMsgRsn", default)]
pub altrn_msg_rsn: Vec<Max256Text>,
#[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<TransactionIdentification12>,
#[serde(rename = "FileActnScp", skip_serializing_if = "Option::is_none")]
pub file_actn_scp: Option<FileActionScope1Code>,
#[serde(rename = "FileActnTp", skip_serializing_if = "Option::is_none")]
pub file_actn_tp: Option<FileActionType2Code>,
#[serde(rename = "OthrFileActnTp", skip_serializing_if = "Option::is_none")]
pub othr_file_actn_tp: Option<Max35Text>,
#[validate]
#[serde(rename = "FileActnDtls")]
pub file_actn_dtls: FileActionDetails2,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlFee", default)]
pub addtl_fee: Vec<AdditionalFee2>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
#[serde(rename = "Crrctn", skip_serializing_if = "Option::is_none")]
pub crrctn: Option<CorrectionIdentification1>,
#[serde(rename = "ConttnInd", skip_serializing_if = "Option::is_none")]
pub conttn_ind: Option<TrueFalseIndicator>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct DigestedData5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate]
#[serde(rename = "DgstAlgo")]
pub dgst_algo: AlgorithmIdentification21,
#[validate]
#[serde(rename = "NcpsltdCntt")]
pub ncpsltd_cntt: EncapsulatedContent3,
#[validate]
#[serde(rename = "Dgst")]
pub dgst: Max140Binary,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SignedData5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[validate(length(min = 0,))]
#[serde(rename = "DgstAlgo", default)]
pub dgst_algo: Vec<AlgorithmIdentification21>,
#[serde(rename = "NcpsltdCntt", skip_serializing_if = "Option::is_none")]
pub ncpsltd_cntt: Option<EncapsulatedContent3>,
#[validate(length(min = 0,))]
#[serde(rename = "Cert", default)]
pub cert: Vec<Max5000Binary>,
#[validate(length(min = 0,))]
#[serde(rename = "Sgnr", default)]
pub sgnr: Vec<Signer4>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardholderName3 {
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "GvnNm", skip_serializing_if = "Option::is_none")]
pub gvn_nm: Option<Max35Text>,
#[serde(rename = "MddlNm", skip_serializing_if = "Option::is_none")]
pub mddl_nm: Option<Max35Text>,
#[serde(rename = "LastNm", skip_serializing_if = "Option::is_none")]
pub last_nm: Option<Max35Text>,
}
#[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 Max2NumericText {
#[validate(regex = "MAX_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 KekIdentifier6 {
#[validate]
#[serde(rename = "KeyId")]
pub key_id: Max140Text,
#[serde(rename = "KeyVrsn", skip_serializing_if = "Option::is_none")]
pub key_vrsn: Option<Max140Text>,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<Number>,
#[serde(rename = "DerivtnId", skip_serializing_if = "Option::is_none")]
pub derivtn_id: Option<Min5Max16Binary>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardProgrammeMode3 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[validate]
#[serde(rename = "Id")]
pub id: Max35Text,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlId", default)]
pub addtl_id: Vec<AdditionalData1>,
}
#[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 FileActionInitiation2<
A: std::fmt::Debug + Default + Clone + PartialEq + ::serde::Serialize + ::validator::Validate,
> {
#[validate]
#[serde(rename = "Envt")]
pub envt: Environment22,
#[serde(rename = "Cntxt", skip_serializing_if = "Option::is_none")]
pub cntxt: Option<Context17>,
#[validate]
#[serde(rename = "Tx")]
pub tx: Transaction157,
#[serde(rename = "PrcgRslt", skip_serializing_if = "Option::is_none")]
pub prcg_rslt: Option<ResultData9>,
#[validate(length(min = 0,))]
#[serde(rename = "PrtctdData", default)]
pub prtctd_data: Vec<ProtectedData1>,
#[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 LanguageCode {
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max210Text {
#[validate(length(min = 1, max = 210,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum OutputFormat1Code {
#[serde(rename = "MREF")]
Mref,
#[serde(rename = "TEXT")]
Text,
#[serde(rename = "HTML")]
Html,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct TransactionLifeCycleIdentification2 {
#[validate]
#[serde(rename = "Id")]
pub id: Exact15Text,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ImpliedCurrencyAndAmount {
#[validate(range(min = 0,))]
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum EncryptionFormat3Code {
#[serde(rename = "TR34")]
Tr34,
#[serde(rename = "TR31")]
Tr31,
#[serde(rename = "CTCE")]
Ctce,
#[serde(rename = "CBCE")]
Cbce,
#[default]
Unknown,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum DeviceOperatingSystemType1Code {
#[serde(rename = "DROI")]
Droi,
#[serde(rename = "BLCK")]
Blck,
#[serde(rename = "IOSS")]
Ioss,
#[serde(rename = "OTHN")]
Othn,
#[serde(rename = "OTHP")]
Othp,
#[serde(rename = "TIZN")]
Tizn,
#[serde(rename = "WIND")]
Wind,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct GenericInformation1 {
#[validate]
#[serde(rename = "Nm")]
pub nm: Max70Text,
#[serde(rename = "Val", skip_serializing_if = "Option::is_none")]
pub val: Option<Max140Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FeeAmount3 {
#[validate]
#[serde(rename = "Amt")]
pub amt: ImpliedCurrencyAndAmount,
#[serde(rename = "CdtDbt", skip_serializing_if = "Option::is_none")]
pub cdt_dbt: Option<CreditDebit3Code>,
#[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
pub ccy: Option<Iso3NumericCurrencyCode>,
#[serde(rename = "FctvXchgRate", skip_serializing_if = "Option::is_none")]
pub fctv_xchg_rate: Option<BaseOne25Rate>,
#[serde(rename = "ConvsDt", skip_serializing_if = "Option::is_none")]
pub convs_dt: Option<IsoDate>,
#[serde(rename = "ConvsTm", skip_serializing_if = "Option::is_none")]
pub convs_tm: Option<IsoTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Contact1 {
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "HomePhneNb", skip_serializing_if = "Option::is_none")]
pub home_phne_nb: Option<PhoneNumber>,
#[serde(rename = "BizPhneNb", skip_serializing_if = "Option::is_none")]
pub biz_phne_nb: Option<PhoneNumber>,
#[serde(rename = "MobPhneNb", skip_serializing_if = "Option::is_none")]
pub mob_phne_nb: Option<PhoneNumber>,
#[serde(rename = "OthrPhneNb", skip_serializing_if = "Option::is_none")]
pub othr_phne_nb: Option<PhoneNumber>,
#[serde(rename = "PrsnlEmailAdr", skip_serializing_if = "Option::is_none")]
pub prsnl_email_adr: Option<Max256Text>,
#[serde(rename = "BizEmailAdr", skip_serializing_if = "Option::is_none")]
pub biz_email_adr: Option<Max256Text>,
#[serde(rename = "OthrEmailAdr", skip_serializing_if = "Option::is_none")]
pub othr_email_adr: Option<Max256Text>,
#[serde(rename = "Lang", skip_serializing_if = "Option::is_none")]
pub lang: Option<Iso2ALanguageCode>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct EnvelopedData5 {
#[serde(rename = "Vrsn", skip_serializing_if = "Option::is_none")]
pub vrsn: Option<Number>,
#[serde(rename = "OrgtrInf", skip_serializing_if = "Option::is_none")]
pub orgtr_inf: Option<OriginatorInformation1>,
#[validate(length(min = 1,))]
#[serde(rename = "Rcpt", default)]
pub rcpt: Vec<Recipient6Choice>,
#[serde(rename = "NcrptdCntt", skip_serializing_if = "Option::is_none")]
pub ncrptd_cntt: Option<EncryptedContent4>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct SettlementServiceDate2 {
#[serde(rename = "ReqdSttlmDt", skip_serializing_if = "Option::is_none")]
pub reqd_sttlm_dt: Option<IsoDate>,
#[serde(rename = "DfrrdSttlmInd", skip_serializing_if = "Option::is_none")]
pub dfrrd_sttlm_ind: Option<TrueFalseIndicator>,
#[serde(rename = "SttlmDt", skip_serializing_if = "Option::is_none")]
pub sttlm_dt: Option<IsoDate>,
#[serde(rename = "SttlmTm", skip_serializing_if = "Option::is_none")]
pub sttlm_tm: Option<IsoTime>,
#[serde(rename = "SttlmPrd", skip_serializing_if = "Option::is_none")]
pub sttlm_prd: Option<Max35Text>,
#[serde(rename = "SttlmCutOffTm", skip_serializing_if = "Option::is_none")]
pub sttlm_cut_off_tm: Option<IsoDateTime>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max11NumericText {
#[validate(regex = "MAX_11_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 Address3 {
#[serde(rename = "AdrLine1", skip_serializing_if = "Option::is_none")]
pub adr_line_1: Option<Max200Text>,
#[serde(rename = "AdrLine2", skip_serializing_if = "Option::is_none")]
pub adr_line_2: Option<Max200Text>,
#[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
pub strt_nm: Option<Max200Text>,
#[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
pub bldg_nb: Option<Max35Text>,
#[serde(rename = "PstlCd", skip_serializing_if = "Option::is_none")]
pub pstl_cd: Option<Max35Text>,
#[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
pub twn_nm: Option<Max100Text>,
#[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mnr_nm: Option<Max100Text>,
#[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mjr_nm: Option<Max100Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<IsoMax3ACountryCode>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Authority1 {
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<Iso3NumericCountryCode>,
#[serde(rename = "CtrySubDvsnMjr", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mjr: Option<IsoCountrySubDivisionCode>,
#[serde(rename = "CtrySubDvsnMnr", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mnr: Option<IsoCountrySubDivisionCode>,
#[serde(rename = "CtrySubDvsnMjrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mjr_nm: Option<Max50Text>,
#[serde(rename = "CtrySubDvsnMnrNm", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn_mnr_nm: Option<Max50Text>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max50Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct ResultData9 {
#[serde(rename = "Rslt", skip_serializing_if = "Option::is_none")]
pub rslt: Option<FileActionResult1Code>,
#[serde(rename = "OthrRslt", skip_serializing_if = "Option::is_none")]
pub othr_rslt: Option<Max35Text>,
#[serde(rename = "RsltDtls")]
pub rslt_dtls: Iso8583ResponseCode,
#[serde(rename = "OthrRsltDtls", skip_serializing_if = "Option::is_none")]
pub othr_rslt_dtls: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum Algorithm19Code {
#[serde(rename = "ERS2")]
Ers2,
#[serde(rename = "ERS1")]
Ers1,
#[serde(rename = "RPSS")]
Rpss,
#[serde(rename = "ECC5")]
Ecc5,
#[serde(rename = "ECC1")]
Ecc1,
#[serde(rename = "ECC4")]
Ecc4,
#[serde(rename = "ECC2")]
Ecc2,
#[serde(rename = "ECC3")]
Ecc3,
#[serde(rename = "ERS3")]
Ers3,
#[serde(rename = "ECP2")]
Ecp2,
#[serde(rename = "ECP3")]
Ecp3,
#[serde(rename = "ECP5")]
Ecp5,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max5000Binary {
#[validate(length(min = 1, max = 5000,), regex = "MAX_5000_BINARY_REGEX")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Parameter14 {
#[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
pub ncrptn_frmt: Option<EncryptionFormat3Code>,
#[serde(rename = "InitlstnVctr", skip_serializing_if = "Option::is_none")]
pub initlstn_vctr: Option<Max500Binary>,
#[serde(rename = "BPddg", skip_serializing_if = "Option::is_none")]
pub b_pddg: Option<BytePadding1Code>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct PartyIdentification254 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "Assgnr", skip_serializing_if = "Option::is_none")]
pub assgnr: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<Iso3NumericCountryCode>,
#[serde(rename = "ShrtNm", skip_serializing_if = "Option::is_none")]
pub shrt_nm: Option<Max35Text>,
#[serde(rename = "LglCorpNm", skip_serializing_if = "Option::is_none")]
pub lgl_corp_nm: Option<Max99Text>,
#[serde(rename = "AddtlId", skip_serializing_if = "Option::is_none")]
pub addtl_id: Option<Max35Text>,
#[serde(rename = "NmAndLctn", skip_serializing_if = "Option::is_none")]
pub nm_and_lctn: Option<Max99Text>,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<Address2>,
#[serde(rename = "AddtlAdrInf", skip_serializing_if = "Option::is_none")]
pub addtl_adr_inf: Option<Max256Text>,
#[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
#[serde(rename = "Email", skip_serializing_if = "Option::is_none")]
pub email: Option<Max256Text>,
#[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
pub url_adr: Option<Max256Text>,
#[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
pub phne_nb: Option<Max35Text>,
#[serde(rename = "CstmrSvc", skip_serializing_if = "Option::is_none")]
pub cstmr_svc: Option<Max35Text>,
#[serde(rename = "AddtlCtctInf", skip_serializing_if = "Option::is_none")]
pub addtl_ctct_inf: Option<Max256Text>,
#[serde(rename = "TaxRegnId", skip_serializing_if = "Option::is_none")]
pub tax_regn_id: Option<Max35Text>,
#[validate(length(min = 0,))]
#[serde(rename = "AddtlData", default)]
pub addtl_data: Vec<AdditionalData1>,
#[serde(rename = "LclData", skip_serializing_if = "Option::is_none")]
pub lcl_data: Option<LocalData4>,
#[validate(length(min = 0,))]
#[serde(rename = "SpnsrdMrchnt", default)]
pub spnsrd_mrchnt: Vec<SponsoredMerchant2>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct CardReadingCapabilities1 {
#[serde(rename = "Cpblty")]
pub cpblty: CardDataReading10Code,
#[serde(rename = "OthrCpblty", skip_serializing_if = "Option::is_none")]
pub othr_cpblty: Option<Max35Text>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct FileActionDetails2 {
#[serde(rename = "FileNm", skip_serializing_if = "Option::is_none")]
pub file_nm: Option<Max140Text>,
#[serde(rename = "Frmt", skip_serializing_if = "Option::is_none")]
pub frmt: Option<OutputFormat5Code>,
#[serde(rename = "DataRcrd")]
pub data_rcrd: DataRecord1Choice,
#[serde(rename = "ActnDt", skip_serializing_if = "Option::is_none")]
pub actn_dt: Option<IsoDate>,
#[serde(rename = "FileSctyCd", skip_serializing_if = "Option::is_none")]
pub file_scty_cd: Option<Max35Text>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
pub enum TerminalIntegrationCategory1Code {
#[serde(rename = "MPOI")]
Mpoi,
#[serde(rename = "MSLE")]
Msle,
#[serde(rename = "SSLE")]
Ssle,
#[default]
Unknown,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Max256Text {
#[validate(length(min = 1, max = 256,))]
#[serde(rename = "$text")]
pub value: String,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct IsoMax3ACountryCode {
#[validate(regex = "ISO_MAX_3_A_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 Parameter10 {
#[serde(rename = "NcrptnFrmt", skip_serializing_if = "Option::is_none")]
pub ncrptn_frmt: Option<EncryptionFormat2Code>,
#[serde(rename = "DgstAlgo", skip_serializing_if = "Option::is_none")]
pub dgst_algo: Option<Algorithm16Code>,
#[serde(rename = "MskGnrtrAlgo", skip_serializing_if = "Option::is_none")]
pub msk_gnrtr_algo: Option<AlgorithmIdentification18>,
}
#[derive(
Debug,
Default,
Clone,
PartialEq,
::serde::Serialize,
::serde::Deserialize,
::derive_builder::Builder,
::validator::Validate,
)]
pub struct Terminal4 {
#[validate]
#[serde(rename = "TermnlId")]
pub termnl_id: TerminalIdentification3,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<TerminalType1Code>,
#[serde(rename = "OthrTp", skip_serializing_if = "Option::is_none")]
pub othr_tp: Option<Max35Text>,
#[serde(rename = "Cpblties", skip_serializing_if = "Option::is_none")]
pub cpblties: Option<Capabilities2>,
#[serde(rename = "TermnlIntgtn", skip_serializing_if = "Option::is_none")]
pub termnl_intgtn: Option<TerminalIntegrationCategory1Code>,
#[serde(rename = "GeogcLctn", skip_serializing_if = "Option::is_none")]
pub geogc_lctn: Option<GeographicPointInDecimalDegrees>,
#[serde(rename = "OutdrInd", skip_serializing_if = "Option::is_none")]
pub outdr_ind: Option<TrueFalseIndicator>,
#[serde(rename = "OffPrmissInd", skip_serializing_if = "Option::is_none")]
pub off_prmiss_ind: Option<TrueFalseIndicator>,
#[serde(rename = "OnBrdInd", skip_serializing_if = "Option::is_none")]
pub on_brd_ind: Option<TrueFalseIndicator>,
#[validate(length(min = 0,))]
#[serde(rename = "POICmpnt", default)]
pub poi_cmpnt: Vec<PointOfInteractionComponent13>,
}