use serde::{Deserialize, Serialize};
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum AddressType2Code {
#[default]
#[serde(rename = "ADDR")]
CodeADDR,
#[serde(rename = "PBOX")]
CodePBOX,
#[serde(rename = "HOME")]
CodeHOME,
#[serde(rename = "BIZZ")]
CodeBIZZ,
#[serde(rename = "MLTO")]
CodeMLTO,
#[serde(rename = "DLVY")]
CodeDLVY,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct AnyBICDec2014Identifier {
#[serde(rename = "$value")]
pub any_bic_dec2014_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct CountryCode {
#[serde(rename = "$value")]
pub country_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ErrorHandling3Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalSystemErrorHandling1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ErrorHandling5 {
#[serde(rename = "Err")]
pub err: ErrorHandling3Choice,
#[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
pub desc: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Exact4AlphaNumericText {
#[serde(rename = "$value")]
pub exact4_alpha_numeric_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalSystemErrorHandling1Code {
#[serde(rename = "$value")]
pub external_system_error_handling1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalSystemPartyType1Code {
#[serde(rename = "$value")]
pub external_system_party_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericIdentification1 {
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericIdentification30 {
#[serde(rename = "Id")]
pub id: Exact4AlphaNumericText,
#[serde(rename = "Issr")]
pub issr: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericIdentification36 {
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Issr")]
pub issr: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISODate {
#[serde(rename = "$value")]
pub iso_date: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISODateTime {
#[serde(rename = "$value")]
pub iso_date_time: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct LEIIdentifier {
#[serde(rename = "$value")]
pub lei_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct MarketSpecificAttribute1 {
#[serde(rename = "Nm")]
pub nm: Max35Text,
#[serde(rename = "Val")]
pub val: Max350Text,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max140Text {
#[serde(rename = "$value")]
pub max140_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max16Text {
#[serde(rename = "$value")]
pub max16_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max350Text {
#[serde(rename = "$value")]
pub max350_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max35Text {
#[serde(rename = "$value")]
pub max35_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max5NumericText {
#[serde(rename = "$value")]
pub max5_numeric_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max70Text {
#[serde(rename = "$value")]
pub max70_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct MessageHeader3 {
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[serde(rename = "CreDtTm", skip_serializing_if = "Option::is_none")]
pub cre_dt_tm: Option<String>,
#[serde(rename = "ReqTp", skip_serializing_if = "Option::is_none")]
pub req_tp: Option<RequestType2Choice>,
#[serde(rename = "OrgnlBizQry", skip_serializing_if = "Option::is_none")]
pub orgnl_biz_qry: Option<OriginalBusinessQuery1>,
#[serde(rename = "QryNm", skip_serializing_if = "Option::is_none")]
pub qry_nm: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct NameAndAddress5 {
#[serde(rename = "Nm")]
pub nm: Max350Text,
#[serde(rename = "Adr", skip_serializing_if = "Option::is_none")]
pub adr: Option<PostalAddress1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct OriginalBusinessQuery1 {
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[serde(rename = "MsgNmId", skip_serializing_if = "Option::is_none")]
pub msg_nm_id: Option<Max35Text>,
#[serde(rename = "CreDtTm", skip_serializing_if = "Option::is_none")]
pub cre_dt_tm: Option<String>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct Pagination1 {
#[serde(rename = "PgNb")]
pub pg_nb: Max5NumericText,
#[serde(rename = "LastPgInd")]
pub last_pg_ind: bool,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PartyIdentification120Choice {
#[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
pub any_bic: Option<AnyBICDec2014Identifier>,
#[serde(rename = "PrtryId", skip_serializing_if = "Option::is_none")]
pub prtry_id: Option<GenericIdentification36>,
#[serde(rename = "NmAndAdr", skip_serializing_if = "Option::is_none")]
pub nm_and_adr: Option<NameAndAddress5>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PartyIdentification136 {
#[serde(rename = "Id")]
pub id: PartyIdentification120Choice,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LEIIdentifier>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PostalAddress1 {
#[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
pub adr_tp: Option<AddressType2Code>,
#[serde(rename = "AdrLine", skip_serializing_if = "Option::is_none")]
pub adr_line: Option<Vec<Max70Text>>,
#[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
pub strt_nm: Option<Max70Text>,
#[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
pub bldg_nb: Option<Max16Text>,
#[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
pub pst_cd: Option<Max16Text>,
#[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
pub twn_nm: Option<Max35Text>,
#[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn: Option<Max35Text>,
#[serde(rename = "Ctry")]
pub ctry: CountryCode,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum RequestType1Code {
#[default]
#[serde(rename = "RT01")]
CodeRT01,
#[serde(rename = "RT02")]
CodeRT02,
#[serde(rename = "RT03")]
CodeRT03,
#[serde(rename = "RT04")]
CodeRT04,
#[serde(rename = "RT05")]
CodeRT05,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct RequestType2Choice {
#[serde(rename = "PmtCtrl", skip_serializing_if = "Option::is_none")]
pub pmt_ctrl: Option<RequestType1Code>,
#[serde(rename = "Enqry", skip_serializing_if = "Option::is_none")]
pub enqry: Option<RequestType2Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum RequestType2Code {
#[default]
#[serde(rename = "RT11")]
CodeRT11,
#[serde(rename = "RT12")]
CodeRT12,
#[serde(rename = "RT13")]
CodeRT13,
#[serde(rename = "RT14")]
CodeRT14,
#[serde(rename = "RT15")]
CodeRT15,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SecuritiesAccount19 {
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<GenericIdentification30>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SecuritiesAccountOrBusinessError3Choice {
#[serde(rename = "SctiesAcct", skip_serializing_if = "Option::is_none")]
pub scties_acct: Option<SystemSecuritiesAccount6>,
#[serde(rename = "BizErr", skip_serializing_if = "Option::is_none")]
pub biz_err: Option<Vec<ErrorHandling5>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SecuritiesAccountOrOperationalError3Choice {
#[serde(rename = "SctiesAcctRpt", skip_serializing_if = "Option::is_none")]
pub scties_acct_rpt: Option<Vec<SecuritiesAccountReport3>>,
#[serde(rename = "OprlErr", skip_serializing_if = "Option::is_none")]
pub oprl_err: Option<Vec<ErrorHandling5>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SecuritiesAccountReport3 {
#[serde(rename = "SctiesAcctId")]
pub scties_acct_id: SecuritiesAccount19,
#[serde(rename = "SctiesAcctOrErr")]
pub scties_acct_or_err: SecuritiesAccountOrBusinessError3Choice,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SecuritiesAccountReportV01 {
#[serde(rename = "MsgHdr", skip_serializing_if = "Option::is_none")]
pub msg_hdr: Option<MessageHeader3>,
#[serde(rename = "Pgntn")]
pub pgntn: Pagination1,
#[serde(rename = "RptOrErr")]
pub rpt_or_err: SecuritiesAccountOrOperationalError3Choice,
#[serde(rename = "SplmtryData", skip_serializing_if = "Option::is_none")]
pub splmtry_data: Option<Vec<SupplementaryData1>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SupplementaryData1 {
#[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
pub plc_and_nm: Option<Max350Text>,
#[serde(rename = "Envlp")]
pub envlp: SupplementaryDataEnvelope1,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SupplementaryDataEnvelope1 {
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SystemPartyIdentification8 {
#[serde(rename = "Id")]
pub id: PartyIdentification136,
#[serde(rename = "RspnsblPtyId", skip_serializing_if = "Option::is_none")]
pub rspnsbl_pty_id: Option<PartyIdentification136>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SystemPartyType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalSystemPartyType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SystemRestriction1 {
#[serde(rename = "VldFr")]
pub vld_fr: String,
#[serde(rename = "VldTo", skip_serializing_if = "Option::is_none")]
pub vld_to: Option<String>,
#[serde(rename = "Tp")]
pub tp: Max35Text,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SystemSecuritiesAccount6 {
#[serde(rename = "OpngDt", skip_serializing_if = "Option::is_none")]
pub opng_dt: Option<String>,
#[serde(rename = "ClsgDt", skip_serializing_if = "Option::is_none")]
pub clsg_dt: Option<String>,
#[serde(rename = "HldInd", skip_serializing_if = "Option::is_none")]
pub hld_ind: Option<bool>,
#[serde(rename = "NegPos", skip_serializing_if = "Option::is_none")]
pub neg_pos: Option<bool>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<SystemSecuritiesAccountType1Choice>,
#[serde(rename = "AcctOwnr")]
pub acct_ownr: SystemPartyIdentification8,
#[serde(rename = "PtyTp", skip_serializing_if = "Option::is_none")]
pub pty_tp: Option<SystemPartyType1Choice>,
#[serde(rename = "MktSpcfcAttr", skip_serializing_if = "Option::is_none")]
pub mkt_spcfc_attr: Option<Vec<MarketSpecificAttribute1>>,
#[serde(rename = "Rstrctn", skip_serializing_if = "Option::is_none")]
pub rstrctn: Option<Vec<SystemRestriction1>>,
#[serde(rename = "EndInvstrFlg", skip_serializing_if = "Option::is_none")]
pub end_invstr_flg: Option<Exact4AlphaNumericText>,
#[serde(rename = "PricgSchme", skip_serializing_if = "Option::is_none")]
pub pricg_schme: Option<Exact4AlphaNumericText>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SystemSecuritiesAccountType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<SystemSecuritiesAccountType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification30>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum SystemSecuritiesAccountType1Code {
#[default]
#[serde(rename = "CSDP")]
CodeCSDP,
#[serde(rename = "CSDM")]
CodeCSDM,
#[serde(rename = "ICSA")]
CodeICSA,
#[serde(rename = "TOFF")]
CodeTOFF,
#[serde(rename = "CSDO")]
CodeCSDO,
#[serde(rename = "ISSA")]
CodeISSA,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct TrueFalseIndicator {
#[serde(rename = "$value")]
pub true_false_indicator: bool,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct YesNoIndicator {
#[serde(rename = "$value")]
pub yes_no_indicator: bool,
}