use chrono::NaiveDate;
use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
use super::common::{
AssetCategory, BuySell, DeliveredReceived, InOut, OpenClose, OptionAction, OrderType, PutCall,
TradeType, TransferType,
};
use crate::parsers::xml_utils::{
deserialize_optional_bool, deserialize_optional_date, deserialize_optional_decimal,
deserialize_optional_string,
};
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct AccountInformation {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@accountType", default)]
pub account_type: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(rename = "@name", default)]
pub name: Option<String>,
#[serde(rename = "@masterName", default)]
pub master_name: Option<String>,
#[serde(rename = "@customerType", default)]
pub customer_type: Option<String>,
#[serde(
rename = "@dateOpened",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date_opened: Option<NaiveDate>,
#[serde(
rename = "@dateFunded",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date_funded: Option<NaiveDate>,
#[serde(
rename = "@dateClosed",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date_closed: Option<NaiveDate>,
#[serde(rename = "@primaryEmail", default)]
pub primary_email: Option<String>,
#[serde(rename = "@streetAddress", default)]
pub street_address: Option<String>,
#[serde(rename = "@streetAddress2", default)]
pub street_address2: Option<String>,
#[serde(rename = "@city", default)]
pub city: Option<String>,
#[serde(rename = "@state", default)]
pub state: Option<String>,
#[serde(rename = "@country", default)]
pub country: Option<String>,
#[serde(rename = "@postalCode", default)]
pub postal_code: Option<String>,
#[serde(rename = "@accountCapabilities", default)]
pub account_capabilities: Option<String>,
#[serde(rename = "@tradingPermissions", default)]
pub trading_permissions: Option<String>,
#[serde(rename = "@registeredRepName", default)]
pub registered_rep_name: Option<String>,
#[serde(rename = "@registeredRepPhone", default)]
pub registered_rep_phone: Option<String>,
#[serde(rename = "@ibEntity", default)]
pub ib_entity: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@street",
default,
deserialize_with = "deserialize_optional_string"
)]
pub street: Option<String>,
#[serde(
rename = "@street2",
default,
deserialize_with = "deserialize_optional_string"
)]
pub street2: Option<String>,
#[serde(
rename = "@streetResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub street_residential_address: Option<String>,
#[serde(
rename = "@street2ResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub street2_residential_address: Option<String>,
#[serde(
rename = "@cityResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub city_residential_address: Option<String>,
#[serde(
rename = "@stateResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub state_residential_address: Option<String>,
#[serde(
rename = "@countryResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub country_residential_address: Option<String>,
#[serde(
rename = "@postalCodeResidentialAddress",
default,
deserialize_with = "deserialize_optional_string"
)]
pub postal_code_residential_address: Option<String>,
#[serde(
rename = "@accountRepName",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_rep_name: Option<String>,
#[serde(
rename = "@accountRepPhone",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_rep_phone: Option<String>,
#[serde(
rename = "@lastTradedDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub last_traded_date: Option<NaiveDate>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ChangeInNAV {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fromDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub from_date: Option<NaiveDate>,
#[serde(
rename = "@toDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub to_date: Option<NaiveDate>,
#[serde(
rename = "@startingValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_value: Option<Decimal>,
#[serde(
rename = "@endingValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_value: Option<Decimal>,
#[serde(
rename = "@mtm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm: Option<Decimal>,
#[serde(
rename = "@realized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized: Option<Decimal>,
#[serde(
rename = "@changeInUnrealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_unrealized: Option<Decimal>,
#[serde(
rename = "@depositsWithdrawals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_withdrawals: Option<Decimal>,
#[serde(
rename = "@dividends",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends: Option<Decimal>,
#[serde(
rename = "@withholdingTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax: Option<Decimal>,
#[serde(
rename = "@changeInDividendAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_dividend_accruals: Option<Decimal>,
#[serde(
rename = "@interest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest: Option<Decimal>,
#[serde(
rename = "@changeInInterestAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_interest_accruals: Option<Decimal>,
#[serde(
rename = "@advisorFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees: Option<Decimal>,
#[serde(
rename = "@clientFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees: Option<Decimal>,
#[serde(
rename = "@otherFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees: Option<Decimal>,
#[serde(
rename = "@commissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions: Option<Decimal>,
#[serde(
rename = "@fxTranslation",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation: Option<Decimal>,
#[serde(
rename = "@twr",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub twr: Option<Decimal>,
#[serde(
rename = "@corporateActionProceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub corporate_action_proceeds: Option<Decimal>,
#[serde(
rename = "@costAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_adjustments: Option<Decimal>,
#[serde(
rename = "@transferredPnlAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transferred_pnl_adjustments: Option<Decimal>,
#[serde(
rename = "@internalCashTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_cash_transfers: Option<Decimal>,
#[serde(
rename = "@assetTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub asset_transfers: Option<Decimal>,
#[serde(
rename = "@debitCardActivity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity: Option<Decimal>,
#[serde(
rename = "@billPay",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay: Option<Decimal>,
#[serde(
rename = "@withholding871m",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m: Option<Decimal>,
#[serde(
rename = "@withholdingTaxCollected",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_collected: Option<Decimal>,
#[serde(
rename = "@brokerFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees: Option<Decimal>,
#[serde(
rename = "@changeInBrokerFeeAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_broker_fee_accruals: Option<Decimal>,
#[serde(
rename = "@feesReceivables",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables: Option<Decimal>,
#[serde(
rename = "@commissionReceivables",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_receivables: Option<Decimal>,
#[serde(
rename = "@forexCommissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub forex_commissions: Option<Decimal>,
#[serde(
rename = "@transactionTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax: Option<Decimal>,
#[serde(
rename = "@taxReceivables",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables: Option<Decimal>,
#[serde(
rename = "@salesTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax: Option<Decimal>,
#[serde(
rename = "@softDollars",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub soft_dollars: Option<Decimal>,
#[serde(
rename = "@netFxTrading",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_fx_trading: Option<Decimal>,
#[serde(
rename = "@linkingAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments: Option<Decimal>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemption",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption: Option<Decimal>,
#[serde(
rename = "@grantActivity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub grant_activity: Option<Decimal>,
#[serde(
rename = "@excessFundSweep",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep: Option<Decimal>,
#[serde(
rename = "@billableSalesTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax: Option<Decimal>,
#[serde(
rename = "@mtmAtPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_at_paxos: Option<Decimal>,
#[serde(
rename = "@carbonCredits",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits: Option<Decimal>,
#[serde(
rename = "@donations",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations: Option<Decimal>,
#[serde(
rename = "@paxosTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers: Option<Decimal>,
#[serde(
rename = "@commissionsAtPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_at_paxos: Option<Decimal>,
#[serde(
rename = "@referralFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee: Option<Decimal>,
#[serde(
rename = "@changeInIncentiveCouponAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_incentive_coupon_accruals: Option<Decimal>,
#[serde(
rename = "@otherIncome",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income: Option<Decimal>,
#[serde(
rename = "@changeInCGTWithholdingAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_cgt_withholding_accruals: Option<Decimal>,
#[serde(
rename = "@changeInLiteSurchargeAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_lite_surcharge_accruals: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct EquitySummaryByReportDateInBase {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@cash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash: Option<Decimal>,
#[serde(
rename = "@cashLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_long: Option<Decimal>,
#[serde(
rename = "@cashShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_short: Option<Decimal>,
#[serde(
rename = "@settledCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub settled_cash: Option<Decimal>,
#[serde(
rename = "@slbCashCollateral",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_cash_collateral: Option<Decimal>,
#[serde(
rename = "@stock",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub stock: Option<Decimal>,
#[serde(
rename = "@stockLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub stock_long: Option<Decimal>,
#[serde(
rename = "@stockShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub stock_short: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesBorrowed",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_borrowed: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesLent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_lent: Option<Decimal>,
#[serde(
rename = "@options",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub options: Option<Decimal>,
#[serde(
rename = "@optionsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub options_long: Option<Decimal>,
#[serde(
rename = "@optionsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub options_short: Option<Decimal>,
#[serde(
rename = "@bonds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bonds: Option<Decimal>,
#[serde(
rename = "@bondsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bonds_long: Option<Decimal>,
#[serde(
rename = "@bondsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bonds_short: Option<Decimal>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub notes: Option<Decimal>,
#[serde(
rename = "@funds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub funds: Option<Decimal>,
#[serde(
rename = "@futures",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub futures: Option<Decimal>,
#[serde(
rename = "@futuresLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub futures_long: Option<Decimal>,
#[serde(
rename = "@futuresShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub futures_short: Option<Decimal>,
#[serde(
rename = "@commodities",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commodities: Option<Decimal>,
#[serde(
rename = "@total",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total: Option<Decimal>,
#[serde(
rename = "@totalLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_long: Option<Decimal>,
#[serde(
rename = "@totalShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_short: Option<Decimal>,
#[serde(
rename = "@interestAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest_accruals: Option<Decimal>,
#[serde(
rename = "@dividendAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividend_accruals: Option<Decimal>,
#[serde(
rename = "@accruedInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_interest: Option<Decimal>,
#[serde(
rename = "@accruedDividend",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_dividend: Option<Decimal>,
#[serde(
rename = "@softDollars",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub soft_dollars: Option<Decimal>,
#[serde(
rename = "@forexCfdUnrealizedPl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub forex_cfd_unrealized_pl: Option<Decimal>,
#[serde(
rename = "@cfdUnrealizedPl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_unrealized_pl: Option<Decimal>,
#[serde(
rename = "@brokerCashComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_cash_component: Option<Decimal>,
#[serde(
rename = "@brokerInterestAccrualsComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_accruals_component: Option<Decimal>,
#[serde(
rename = "@grossPositionValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_position_value: Option<Decimal>,
#[serde(
rename = "@netLiquidation",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_liquidation: Option<Decimal>,
#[serde(
rename = "@netLiquidationUncertainty",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_liquidation_uncertainty: Option<Decimal>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@slbCashCollateralLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_cash_collateral_long: Option<Decimal>,
#[serde(
rename = "@slbCashCollateralShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_cash_collateral_short: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesBorrowedLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_borrowed_long: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesBorrowedShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_borrowed_short: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesLentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_lent_long: Option<Decimal>,
#[serde(
rename = "@slbDirectSecuritiesLentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_direct_securities_lent_short: Option<Decimal>,
#[serde(
rename = "@bondInterestAccrualsComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_accruals_component: Option<Decimal>,
#[serde(
rename = "@bondInterestAccrualsComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_accruals_component_long: Option<Decimal>,
#[serde(
rename = "@bondInterestAccrualsComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_accruals_component_short: Option<Decimal>,
#[serde(
rename = "@notesLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub notes_long: Option<Decimal>,
#[serde(
rename = "@notesShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub notes_short: Option<Decimal>,
#[serde(
rename = "@incentiveCouponAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub incentive_coupon_accruals: Option<Decimal>,
#[serde(
rename = "@interestAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest_accruals_long: Option<Decimal>,
#[serde(
rename = "@interestAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest_accruals_short: Option<Decimal>,
#[serde(
rename = "@softDollarsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub soft_dollars_long: Option<Decimal>,
#[serde(
rename = "@softDollarsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub soft_dollars_short: Option<Decimal>,
#[serde(
rename = "@dividendAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividend_accruals_long: Option<Decimal>,
#[serde(
rename = "@dividendAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividend_accruals_short: Option<Decimal>,
#[serde(
rename = "@commoditiesLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commodities_long: Option<Decimal>,
#[serde(
rename = "@commoditiesShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commodities_short: Option<Decimal>,
#[serde(
rename = "@fundsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub funds_long: Option<Decimal>,
#[serde(
rename = "@fundsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub funds_short: Option<Decimal>,
#[serde(
rename = "@forexCfdUnrealizedPlLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub forex_cfd_unrealized_pl_long: Option<Decimal>,
#[serde(
rename = "@forexCfdUnrealizedPlShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub forex_cfd_unrealized_pl_short: Option<Decimal>,
#[serde(
rename = "@brokerFeesAccrualsComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_accruals_component: Option<Decimal>,
#[serde(
rename = "@brokerFeesAccrualsComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_accruals_component_long: Option<Decimal>,
#[serde(
rename = "@brokerFeesAccrualsComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_accruals_component_short: Option<Decimal>,
#[serde(
rename = "@eventContractInterestAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub event_contract_interest_accruals: Option<Decimal>,
#[serde(
rename = "@marginFinancingChargeAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub margin_financing_charge_accruals: Option<Decimal>,
#[serde(
rename = "@insuredBankDepositRedemptionCashComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_bank_deposit_redemption_cash_component: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccountLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account_long: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccountShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account_short: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccountCashComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account_cash_component: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccountCashComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account_cash_component_long: Option<Decimal>,
#[serde(
rename = "@fdicInsuredBankSweepAccountCashComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_bank_sweep_account_cash_component_short: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals_long: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals_short: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccrualsComponent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals_component: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccrualsComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals_component_long: Option<Decimal>,
#[serde(
rename = "@fdicInsuredAccountInterestAccrualsComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fdic_insured_account_interest_accruals_component_short: Option<Decimal>,
#[serde(
rename = "@brokerCashComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_cash_component_long: Option<Decimal>,
#[serde(
rename = "@brokerCashComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_cash_component_short: Option<Decimal>,
#[serde(
rename = "@brokerInterestAccrualsComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_accruals_component_long: Option<Decimal>,
#[serde(
rename = "@brokerInterestAccrualsComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_accruals_component_short: Option<Decimal>,
#[serde(
rename = "@cfdUnrealizedPlLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_unrealized_pl_long: Option<Decimal>,
#[serde(
rename = "@cfdUnrealizedPlShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_unrealized_pl_short: Option<Decimal>,
#[serde(
rename = "@ipoSubscription",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_long: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_short: Option<Decimal>,
#[serde(
rename = "@crypto",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub crypto: Option<Decimal>,
#[serde(
rename = "@physDel",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub phys_del: Option<Decimal>,
#[serde(
rename = "@physDelLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub phys_del_long: Option<Decimal>,
#[serde(
rename = "@physDelShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub phys_del_short: Option<Decimal>,
#[serde(
rename = "@insuredBankDepositRedemptionCashComponentLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_bank_deposit_redemption_cash_component_long: Option<Decimal>,
#[serde(
rename = "@insuredBankDepositRedemptionCashComponentShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_bank_deposit_redemption_cash_component_short: Option<Decimal>,
#[serde(
rename = "@incentiveCouponAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub incentive_coupon_accruals_long: Option<Decimal>,
#[serde(
rename = "@incentiveCouponAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub incentive_coupon_accruals_short: Option<Decimal>,
#[serde(
rename = "@eventContractInterestAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub event_contract_interest_accruals_long: Option<Decimal>,
#[serde(
rename = "@eventContractInterestAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub event_contract_interest_accruals_short: Option<Decimal>,
#[serde(
rename = "@marginFinancingChargeAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub margin_financing_charge_accruals_long: Option<Decimal>,
#[serde(
rename = "@marginFinancingChargeAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub margin_financing_charge_accruals_short: Option<Decimal>,
#[serde(
rename = "@cryptoLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub crypto_long: Option<Decimal>,
#[serde(
rename = "@cryptoShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub crypto_short: Option<Decimal>,
#[serde(
rename = "@liteSurchargeAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub lite_surcharge_accruals: Option<Decimal>,
#[serde(
rename = "@cgtWithholdingAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cgt_withholding_accruals: Option<Decimal>,
#[serde(
rename = "@cgtWithholdingAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cgt_withholding_accruals_long: Option<Decimal>,
#[serde(
rename = "@cgtWithholdingAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cgt_withholding_accruals_short: Option<Decimal>,
#[serde(
rename = "@liteSurchargeAccrualsLong",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub lite_surcharge_accruals_long: Option<Decimal>,
#[serde(
rename = "@liteSurchargeAccrualsShort",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub lite_surcharge_accruals_short: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct CashReportCurrency {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fromDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub from_date: Option<NaiveDate>,
#[serde(
rename = "@toDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub to_date: Option<NaiveDate>,
#[serde(
rename = "@startingCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_cash: Option<Decimal>,
#[serde(
rename = "@startingCashSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_cash_sec: Option<Decimal>,
#[serde(
rename = "@startingCashCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_cash_com: Option<Decimal>,
#[serde(
rename = "@commissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions: Option<Decimal>,
#[serde(
rename = "@commissionsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_sec: Option<Decimal>,
#[serde(
rename = "@commissionsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_com: Option<Decimal>,
#[serde(
rename = "@deposits",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits: Option<Decimal>,
#[serde(
rename = "@withdrawals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals: Option<Decimal>,
#[serde(
rename = "@dividends",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends: Option<Decimal>,
#[serde(
rename = "@brokerInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest: Option<Decimal>,
#[serde(
rename = "@bondInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest: Option<Decimal>,
#[serde(
rename = "@withholdingTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax: Option<Decimal>,
#[serde(
rename = "@netTradesSales",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales: Option<Decimal>,
#[serde(
rename = "@netTradesPurchases",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases: Option<Decimal>,
#[serde(
rename = "@accountTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers: Option<Decimal>,
#[serde(
rename = "@internalTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers: Option<Decimal>,
#[serde(
rename = "@externalTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub external_transfers: Option<Decimal>,
#[serde(
rename = "@linkingAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments: Option<Decimal>,
#[serde(
rename = "@otherFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees: Option<Decimal>,
#[serde(
rename = "@fxTranslationPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_pnl: Option<Decimal>,
#[serde(
rename = "@billableSalesTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax: Option<Decimal>,
#[serde(
rename = "@realizedForexPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_pnl: Option<Decimal>,
#[serde(
rename = "@debitCardActivity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity: Option<Decimal>,
#[serde(
rename = "@clientFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm: Option<Decimal>,
#[serde(
rename = "@softDollars",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub soft_dollars: Option<Decimal>,
#[serde(
rename = "@endingCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_cash: Option<Decimal>,
#[serde(
rename = "@endingCashSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_cash_sec: Option<Decimal>,
#[serde(
rename = "@endingCashCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_cash_com: Option<Decimal>,
#[serde(
rename = "@endingSettledCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_settled_cash: Option<Decimal>,
#[serde(
rename = "@endingSettledCashSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_settled_cash_sec: Option<Decimal>,
#[serde(
rename = "@endingSettledCashCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_settled_cash_com: Option<Decimal>,
#[serde(
rename = "@startingCashPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_cash_paxos: Option<Decimal>,
#[serde(
rename = "@clientFeesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees_sec: Option<Decimal>,
#[serde(
rename = "@clientFeesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees_com: Option<Decimal>,
#[serde(
rename = "@billableCommissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions: Option<Decimal>,
#[serde(
rename = "@billableCommissionsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions_sec: Option<Decimal>,
#[serde(
rename = "@billableCommissionsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions_com: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxIBUKL",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_ibukl: Option<Decimal>,
#[serde(
rename = "@depositWithdrawals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals: Option<Decimal>,
#[serde(
rename = "@depositWithdrawalsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals_sec: Option<Decimal>,
#[serde(
rename = "@depositWithdrawalsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals_com: Option<Decimal>,
#[serde(
rename = "@depositsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_sec: Option<Decimal>,
#[serde(
rename = "@depositsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_com: Option<Decimal>,
#[serde(
rename = "@withdrawalsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals_sec: Option<Decimal>,
#[serde(
rename = "@withdrawalsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals_com: Option<Decimal>,
#[serde(
rename = "@accountTransfersSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers_sec: Option<Decimal>,
#[serde(
rename = "@accountTransfersCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers_com: Option<Decimal>,
#[serde(
rename = "@internalTransfersSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers_sec: Option<Decimal>,
#[serde(
rename = "@internalTransfersCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers_com: Option<Decimal>,
#[serde(
rename = "@dividendsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends_sec: Option<Decimal>,
#[serde(
rename = "@dividendsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends_com: Option<Decimal>,
#[serde(
rename = "@brokerFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees: Option<Decimal>,
#[serde(
rename = "@brokerFeesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_sec: Option<Decimal>,
#[serde(
rename = "@brokerFeesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_com: Option<Decimal>,
#[serde(
rename = "@brokerFeesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_mtd: Option<Decimal>,
#[serde(
rename = "@brokerFeesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_ytd: Option<Decimal>,
#[serde(
rename = "@brokerFeesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_paxos: Option<Decimal>,
#[serde(
rename = "@brokerInterestSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_sec: Option<Decimal>,
#[serde(
rename = "@brokerInterestCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_com: Option<Decimal>,
#[serde(
rename = "@bondInterestSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_sec: Option<Decimal>,
#[serde(
rename = "@bondInterestCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_com: Option<Decimal>,
#[serde(
rename = "@bondInterestPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_paxos: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtmSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm_sec: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtmCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm_com: Option<Decimal>,
#[serde(
rename = "@cfdCharges",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges: Option<Decimal>,
#[serde(
rename = "@cfdChargesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges_sec: Option<Decimal>,
#[serde(
rename = "@cfdChargesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges_com: Option<Decimal>,
#[serde(
rename = "@netTradesSalesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales_sec: Option<Decimal>,
#[serde(
rename = "@netTradesSalesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales_com: Option<Decimal>,
#[serde(
rename = "@netTradesPurchasesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases_sec: Option<Decimal>,
#[serde(
rename = "@netTradesPurchasesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases_com: Option<Decimal>,
#[serde(
rename = "@feesReceivables",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables: Option<Decimal>,
#[serde(
rename = "@feesReceivablesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables_sec: Option<Decimal>,
#[serde(
rename = "@feesReceivablesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables_com: Option<Decimal>,
#[serde(
rename = "@paymentInLieu",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu: Option<Decimal>,
#[serde(
rename = "@paymentInLieuSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_sec: Option<Decimal>,
#[serde(
rename = "@paymentInLieuCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_com: Option<Decimal>,
#[serde(
rename = "@paymentInLieuIBUKL",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_ibukl: Option<Decimal>,
#[serde(
rename = "@transactionTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax: Option<Decimal>,
#[serde(
rename = "@transactionTaxSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax_sec: Option<Decimal>,
#[serde(
rename = "@transactionTaxCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax_com: Option<Decimal>,
#[serde(
rename = "@withholdingTaxSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_sec: Option<Decimal>,
#[serde(
rename = "@withholdingTaxCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_com: Option<Decimal>,
#[serde(
rename = "@fxTranslationGainLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_gain_loss: Option<Decimal>,
#[serde(
rename = "@fxTranslationGainLossSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_gain_loss_sec: Option<Decimal>,
#[serde(
rename = "@fxTranslationGainLossCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_gain_loss_com: Option<Decimal>,
#[serde(
rename = "@fxTranslationGainLossPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_gain_loss_paxos: Option<Decimal>,
#[serde(
rename = "@otherFeesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees_sec: Option<Decimal>,
#[serde(
rename = "@otherFeesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees_com: Option<Decimal>,
#[serde(
rename = "@endingCashPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_cash_paxos: Option<Decimal>,
#[serde(
rename = "@endingSettledCashPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_settled_cash_paxos: Option<Decimal>,
#[serde(
rename = "@endingCashIBUKL",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_cash_ibukl: Option<Decimal>,
#[serde(
rename = "@clientFeesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees_mtd: Option<Decimal>,
#[serde(
rename = "@clientFeesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees_ytd: Option<Decimal>,
#[serde(
rename = "@clientFeesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub client_fees_paxos: Option<Decimal>,
#[serde(
rename = "@commissionsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_mtd: Option<Decimal>,
#[serde(
rename = "@commissionsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_ytd: Option<Decimal>,
#[serde(
rename = "@commissionsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions_paxos: Option<Decimal>,
#[serde(
rename = "@billableCommissionsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions_mtd: Option<Decimal>,
#[serde(
rename = "@billableCommissionsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions_ytd: Option<Decimal>,
#[serde(
rename = "@billableCommissionsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_commissions_paxos: Option<Decimal>,
#[serde(
rename = "@depositWithdrawalsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals_mtd: Option<Decimal>,
#[serde(
rename = "@depositWithdrawalsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals_ytd: Option<Decimal>,
#[serde(
rename = "@depositWithdrawalsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposit_withdrawals_paxos: Option<Decimal>,
#[serde(
rename = "@depositsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_mtd: Option<Decimal>,
#[serde(
rename = "@depositsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_ytd: Option<Decimal>,
#[serde(
rename = "@depositsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub deposits_paxos: Option<Decimal>,
#[serde(
rename = "@withdrawalsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals_mtd: Option<Decimal>,
#[serde(
rename = "@withdrawalsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals_ytd: Option<Decimal>,
#[serde(
rename = "@withdrawalsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withdrawals_paxos: Option<Decimal>,
#[serde(
rename = "@accountTransfersMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers_mtd: Option<Decimal>,
#[serde(
rename = "@accountTransfersYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers_ytd: Option<Decimal>,
#[serde(
rename = "@accountTransfersPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers_paxos: Option<Decimal>,
#[serde(
rename = "@internalTransfersMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers_mtd: Option<Decimal>,
#[serde(
rename = "@internalTransfersYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers_ytd: Option<Decimal>,
#[serde(
rename = "@internalTransfersPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub internal_transfers_paxos: Option<Decimal>,
#[serde(
rename = "@paxosTransfersPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers_paxos: Option<Decimal>,
#[serde(
rename = "@excessFundSweep",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep: Option<Decimal>,
#[serde(
rename = "@excessFundSweepSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep_sec: Option<Decimal>,
#[serde(
rename = "@excessFundSweepCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep_com: Option<Decimal>,
#[serde(
rename = "@excessFundSweepMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep_mtd: Option<Decimal>,
#[serde(
rename = "@excessFundSweepYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep_ytd: Option<Decimal>,
#[serde(
rename = "@excessFundSweepPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_fund_sweep_paxos: Option<Decimal>,
#[serde(
rename = "@dividendsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends_mtd: Option<Decimal>,
#[serde(
rename = "@dividendsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends_ytd: Option<Decimal>,
#[serde(
rename = "@dividendsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends_paxos: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterestMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest_mtd: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterestYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest_ytd: Option<Decimal>,
#[serde(
rename = "@insuredDepositInteresPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interes_paxos: Option<Decimal>,
#[serde(
rename = "@brokerInterestMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_mtd: Option<Decimal>,
#[serde(
rename = "@brokerInterestYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_ytd: Option<Decimal>,
#[serde(
rename = "@brokerInterestPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_interest_paxos: Option<Decimal>,
#[serde(
rename = "@bondInterestMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_mtd: Option<Decimal>,
#[serde(
rename = "@bondInterestYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bond_interest_ytd: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtmMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm_mtd: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtmYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm_ytd: Option<Decimal>,
#[serde(
rename = "@cashSettlingMtmPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_settling_mtm_paxos: Option<Decimal>,
#[serde(
rename = "@realizedVmMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm_mtd: Option<Decimal>,
#[serde(
rename = "@realizedVmYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm_ytd: Option<Decimal>,
#[serde(
rename = "@realizedVmPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm_paxos: Option<Decimal>,
#[serde(
rename = "@cfdChargesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges_mtd: Option<Decimal>,
#[serde(
rename = "@cfdChargesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges_ytd: Option<Decimal>,
#[serde(
rename = "@cfdChargesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cfd_charges_paxos: Option<Decimal>,
#[serde(
rename = "@netTradesSalesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales_mtd: Option<Decimal>,
#[serde(
rename = "@netTradesSalesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales_ytd: Option<Decimal>,
#[serde(
rename = "@netTradesSalesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_sales_paxos: Option<Decimal>,
#[serde(
rename = "@advisorFeesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees_mtd: Option<Decimal>,
#[serde(
rename = "@advisorFeesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees_ytd: Option<Decimal>,
#[serde(
rename = "@advisorFeePaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fee_paxos: Option<Decimal>,
#[serde(
rename = "@feesReceivablesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables_mtd: Option<Decimal>,
#[serde(
rename = "@feesReceivablesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables_ytd: Option<Decimal>,
#[serde(
rename = "@feesReceivablesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fees_receivables_paxos: Option<Decimal>,
#[serde(
rename = "@netTradesPurchasesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases_mtd: Option<Decimal>,
#[serde(
rename = "@netTradesPurchasesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases_ytd: Option<Decimal>,
#[serde(
rename = "@netTradesPurchasesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trades_purchases_paxos: Option<Decimal>,
#[serde(
rename = "@paymentInLieuMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_mtd: Option<Decimal>,
#[serde(
rename = "@paymentInLieuYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_ytd: Option<Decimal>,
#[serde(
rename = "@paymentInLieuPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub payment_in_lieu_paxos: Option<Decimal>,
#[serde(
rename = "@transactionTaxMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax_mtd: Option<Decimal>,
#[serde(
rename = "@transactionTaxYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax_ytd: Option<Decimal>,
#[serde(
rename = "@transactionTaxPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_tax_paxos: Option<Decimal>,
#[serde(
rename = "@taxReceivablesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables_mtd: Option<Decimal>,
#[serde(
rename = "@taxReceivablesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables_ytd: Option<Decimal>,
#[serde(
rename = "@taxReceivablesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables_paxos: Option<Decimal>,
#[serde(
rename = "@withholdingTaxMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_mtd: Option<Decimal>,
#[serde(
rename = "@withholdingTaxYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_ytd: Option<Decimal>,
#[serde(
rename = "@withholdingTaxPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_tax_paxos: Option<Decimal>,
#[serde(
rename = "@withholding871mMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m_mtd: Option<Decimal>,
#[serde(
rename = "@withholding871mYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m_ytd: Option<Decimal>,
#[serde(
rename = "@withholding871mPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m_paxos: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTaxMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax_mtd: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTaxYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax_ytd: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTaxPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax_paxos: Option<Decimal>,
#[serde(
rename = "@salesTaxMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax_mtd: Option<Decimal>,
#[serde(
rename = "@salesTaxYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax_ytd: Option<Decimal>,
#[serde(
rename = "@salesTaxPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax_paxos: Option<Decimal>,
#[serde(
rename = "@otherIncome",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income: Option<Decimal>,
#[serde(
rename = "@otherIncomeMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income_mtd: Option<Decimal>,
#[serde(
rename = "@otherIncomeYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income_ytd: Option<Decimal>,
#[serde(
rename = "@otherIncomeSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income_sec: Option<Decimal>,
#[serde(
rename = "@otherIncomeCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_income_com: Option<Decimal>,
#[serde(
rename = "@otherFeesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees_mtd: Option<Decimal>,
#[serde(
rename = "@otherFeesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees_ytd: Option<Decimal>,
#[serde(
rename = "@otherFeesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_fees_paxos: Option<Decimal>,
#[serde(
rename = "@avgCreditBalance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_credit_balance: Option<Decimal>,
#[serde(
rename = "@avgCreditBalanceSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_credit_balance_sec: Option<Decimal>,
#[serde(
rename = "@avgCreditBalanceCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_credit_balance_com: Option<Decimal>,
#[serde(
rename = "@avgDebitBalance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_debit_balance: Option<Decimal>,
#[serde(
rename = "@avgDebitBalanceSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_debit_balance_sec: Option<Decimal>,
#[serde(
rename = "@avgDebitBalanceCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_debit_balance_com: Option<Decimal>,
#[serde(
rename = "@linkingAdjustmentsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments_sec: Option<Decimal>,
#[serde(
rename = "@linkingAdjustmentsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments_com: Option<Decimal>,
#[serde(
rename = "@linkingAdjustmentsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments_paxos: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterestSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest_sec: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterestCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest_com: Option<Decimal>,
#[serde(
rename = "@insuredDepositInterestPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub insured_deposit_interest_paxos: Option<Decimal>,
#[serde(
rename = "@realizedVm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm: Option<Decimal>,
#[serde(
rename = "@realizedVmSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm_sec: Option<Decimal>,
#[serde(
rename = "@realizedVmCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_vm_com: Option<Decimal>,
#[serde(
rename = "@advisorFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees: Option<Decimal>,
#[serde(
rename = "@advisorFeesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees_sec: Option<Decimal>,
#[serde(
rename = "@advisorFeesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees_com: Option<Decimal>,
#[serde(
rename = "@advisorFeesPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub advisor_fees_paxos: Option<Decimal>,
#[serde(
rename = "@taxReceivables",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables: Option<Decimal>,
#[serde(
rename = "@taxReceivablesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables_sec: Option<Decimal>,
#[serde(
rename = "@taxReceivablesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_receivables_com: Option<Decimal>,
#[serde(
rename = "@withholding871m",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m: Option<Decimal>,
#[serde(
rename = "@withholding871mSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m_sec: Option<Decimal>,
#[serde(
rename = "@withholding871mCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding871m_com: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTaxSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax_sec: Option<Decimal>,
#[serde(
rename = "@withholdingCollectedTaxCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub withholding_collected_tax_com: Option<Decimal>,
#[serde(
rename = "@salesTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax: Option<Decimal>,
#[serde(
rename = "@salesTaxSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax_sec: Option<Decimal>,
#[serde(
rename = "@salesTaxCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax_com: Option<Decimal>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
#[serde(
rename = "@otherSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_sec: Option<Decimal>,
#[serde(
rename = "@otherCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_com: Option<Decimal>,
#[serde(
rename = "@otherPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_paxos: Option<Decimal>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@debitCardActivitySec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity_sec: Option<Decimal>,
#[serde(
rename = "@debitCardActivityCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity_com: Option<Decimal>,
#[serde(
rename = "@debitCardActivityMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity_mtd: Option<Decimal>,
#[serde(
rename = "@debitCardActivityYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity_ytd: Option<Decimal>,
#[serde(
rename = "@debitCardActivityPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit_card_activity_paxos: Option<Decimal>,
#[serde(
rename = "@billPay",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay: Option<Decimal>,
#[serde(
rename = "@billPaySec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay_sec: Option<Decimal>,
#[serde(
rename = "@billPayCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay_com: Option<Decimal>,
#[serde(
rename = "@billPayMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay_mtd: Option<Decimal>,
#[serde(
rename = "@billPayYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay_ytd: Option<Decimal>,
#[serde(
rename = "@billPayPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub bill_pay_paxos: Option<Decimal>,
#[serde(
rename = "@realizedForexVm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm: Option<Decimal>,
#[serde(
rename = "@realizedForexVmSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm_sec: Option<Decimal>,
#[serde(
rename = "@realizedForexVmCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm_com: Option<Decimal>,
#[serde(
rename = "@realizedForexVmMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm_mtd: Option<Decimal>,
#[serde(
rename = "@realizedForexVmYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm_ytd: Option<Decimal>,
#[serde(
rename = "@realizedForexVmPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_forex_vm_paxos: Option<Decimal>,
#[serde(
rename = "@ipoSubscription",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_sec: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_com: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_mtd: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_ytd: Option<Decimal>,
#[serde(
rename = "@ipoSubscriptionPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ipo_subscription_paxos: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_sec: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_com: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_mtd: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_ytd: Option<Decimal>,
#[serde(
rename = "@billableSalesTaxPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub billable_sales_tax_paxos: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemption",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemptionSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption_sec: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemptionCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption_com: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemptionMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption_mtd: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemptionYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption_ytd: Option<Decimal>,
#[serde(
rename = "@commissionCreditsRedemptionPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission_credits_redemption_paxos: Option<Decimal>,
#[serde(
rename = "@referralFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee: Option<Decimal>,
#[serde(
rename = "@referralFeePaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee_paxos: Option<Decimal>,
#[serde(
rename = "@referralFeeSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee_sec: Option<Decimal>,
#[serde(
rename = "@referralFeeCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee_com: Option<Decimal>,
#[serde(
rename = "@referralFeeMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee_mtd: Option<Decimal>,
#[serde(
rename = "@referralFeeYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub referral_fee_ytd: Option<Decimal>,
#[serde(
rename = "@carbonCredits",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits: Option<Decimal>,
#[serde(
rename = "@carbonCreditsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits_sec: Option<Decimal>,
#[serde(
rename = "@carbonCreditsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits_com: Option<Decimal>,
#[serde(
rename = "@carbonCreditsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits_mtd: Option<Decimal>,
#[serde(
rename = "@carbonCreditsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits_ytd: Option<Decimal>,
#[serde(
rename = "@carbonCreditsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carbon_credits_paxos: Option<Decimal>,
#[serde(
rename = "@donations",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations: Option<Decimal>,
#[serde(
rename = "@donationsSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations_sec: Option<Decimal>,
#[serde(
rename = "@donationsCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations_com: Option<Decimal>,
#[serde(
rename = "@donationsMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations_mtd: Option<Decimal>,
#[serde(
rename = "@donationsYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations_ytd: Option<Decimal>,
#[serde(
rename = "@donationsPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub donations_paxos: Option<Decimal>,
#[serde(
rename = "@paxosTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers: Option<Decimal>,
#[serde(
rename = "@paxosTransfersSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers_sec: Option<Decimal>,
#[serde(
rename = "@paxosTransfersCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers_com: Option<Decimal>,
#[serde(
rename = "@paxosTransfersMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers_mtd: Option<Decimal>,
#[serde(
rename = "@paxosTransfersYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paxos_transfers_ytd: Option<Decimal>,
#[serde(
rename = "@slbStartingCashCollateral",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_starting_cash_collateral: Option<Decimal>,
#[serde(
rename = "@slbStartingCashCollateralSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_starting_cash_collateral_sec: Option<Decimal>,
#[serde(
rename = "@slbStartingCashCollateralCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_starting_cash_collateral_com: Option<Decimal>,
#[serde(
rename = "@slbStartingCashCollateralPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_starting_cash_collateral_paxos: Option<Decimal>,
#[serde(
rename = "@slbNetSecuritiesLentActivity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_securities_lent_activity: Option<Decimal>,
#[serde(
rename = "@slbNetSecuritiesLentActivityCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_securities_lent_activity_com: Option<Decimal>,
#[serde(
rename = "@slbNetSecuritiesLentActivitySec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_securities_lent_activity_sec: Option<Decimal>,
#[serde(
rename = "@slbNetSecuritiesLentActivityPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_securities_lent_activity_paxos: Option<Decimal>,
#[serde(
rename = "@slbEndingCashCollateral",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_ending_cash_collateral: Option<Decimal>,
#[serde(
rename = "@slbEndingCashCollateralSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_ending_cash_collateral_sec: Option<Decimal>,
#[serde(
rename = "@slbEndingCashCollateralCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_ending_cash_collateral_com: Option<Decimal>,
#[serde(
rename = "@slbEndingCashCollateralPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_ending_cash_collateral_paxos: Option<Decimal>,
#[serde(
rename = "@slbNetCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_cash: Option<Decimal>,
#[serde(
rename = "@slbNetCashSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_cash_sec: Option<Decimal>,
#[serde(
rename = "@slbNetCashCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_cash_com: Option<Decimal>,
#[serde(
rename = "@slbNetCashPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_cash_paxos: Option<Decimal>,
#[serde(
rename = "@slbNetSettledCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_settled_cash: Option<Decimal>,
#[serde(
rename = "@slbNetSettledCashSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_settled_cash_sec: Option<Decimal>,
#[serde(
rename = "@slbNetSettledCashCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_settled_cash_com: Option<Decimal>,
#[serde(
rename = "@slbNetSettledCashPaxos",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub slb_net_settled_cash_paxos: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TradeConfirm {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(rename = "@transactionID", default)]
pub transaction_id: Option<String>,
#[serde(rename = "@tradeID", default)]
pub trade_id: Option<String>,
#[serde(rename = "@orderID", default)]
pub order_id: Option<String>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(rename = "@tradeTime", default)]
pub trade_time: Option<String>,
#[serde(rename = "@dateTime", default)]
pub date_time: Option<String>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date: Option<NaiveDate>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@figi", default)]
pub figi: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(rename = "@underlyingSymbol", default)]
pub underlying_symbol: Option<String>,
#[serde(rename = "@underlyingConid", default)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@commission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission: Option<Decimal>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@netCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@buySell", default)]
pub buy_sell: Option<String>,
#[serde(rename = "@orderType", default)]
pub order_type: Option<String>,
#[serde(rename = "@exchange", default)]
pub exchange: Option<String>,
#[serde(rename = "@clearingID", default)]
pub clearing_id: Option<String>,
#[serde(
rename = "@awayBrokerCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub away_broker_commission: Option<Decimal>,
#[serde(
rename = "@regulatoryFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub regulatory_fee: Option<Decimal>,
#[serde(rename = "@orderReference", default)]
pub order_reference: Option<String>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<TradeType>,
#[serde(rename = "@openCloseIndicator", default)]
pub open_close_indicator: Option<OpenClose>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@rfqID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub rfq_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@settleDateTarget",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date_target: Option<NaiveDate>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_money: Option<Decimal>,
#[serde(
rename = "@taxes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxes: Option<Decimal>,
#[serde(
rename = "@ibCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ib_commission: Option<Decimal>,
#[serde(
rename = "@ibCommissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_commission_currency: Option<String>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_string"
)]
pub notes: Option<String>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@origTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub orig_trade_price: Option<Decimal>,
#[serde(
rename = "@origTradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub orig_trade_date: Option<NaiveDate>,
#[serde(
rename = "@origTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_trade_id: Option<String>,
#[serde(
rename = "@origOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_order_id: Option<String>,
#[serde(
rename = "@clearingFirmID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub clearing_firm_id: Option<String>,
#[serde(
rename = "@openDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub open_date_time: Option<String>,
#[serde(
rename = "@holdingPeriodDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub holding_period_date_time: Option<String>,
#[serde(
rename = "@whenRealized",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_realized: Option<String>,
#[serde(
rename = "@whenReopened",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_reopened: Option<String>,
#[serde(
rename = "@commissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commission_currency: Option<String>,
#[serde(
rename = "@thirdPartyClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_clearing_commission: Option<Decimal>,
#[serde(
rename = "@allocatedTo",
default,
deserialize_with = "deserialize_optional_string"
)]
pub allocated_to: Option<String>,
#[serde(
rename = "@thirdPartyRegulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_commission: Option<Decimal>,
#[serde(
rename = "@brokerExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_commission: Option<Decimal>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@otherCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_commission: Option<Decimal>,
#[serde(
rename = "@brokerClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_clearing_commission: Option<Decimal>,
#[serde(
rename = "@ibOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_order_id: Option<String>,
#[serde(
rename = "@ibExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_exec_id: Option<String>,
#[serde(
rename = "@brokerageOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub brokerage_order_id: Option<String>,
#[serde(
rename = "@volatilityOrderLink",
default,
deserialize_with = "deserialize_optional_string"
)]
pub volatility_order_link: Option<String>,
#[serde(
rename = "@exchOrderId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exch_order_id: Option<String>,
#[serde(
rename = "@extExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ext_exec_id: Option<String>,
#[serde(
rename = "@orderTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_time: Option<String>,
#[serde(
rename = "@changeInPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_price: Option<Decimal>,
#[serde(
rename = "@changeInQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_quantity: Option<Decimal>,
#[serde(
rename = "@traderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trader_id: Option<String>,
#[serde(
rename = "@isAPIOrder",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub is_api_order: Option<bool>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@accruedInt",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_int: Option<Decimal>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
#[serde(
rename = "@blockID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub block_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct OptionEAE {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@transactionID", default)]
pub transaction_id: Option<String>,
#[serde(rename = "@actionID", default)]
pub action_id: Option<String>,
#[serde(rename = "@type", default)]
pub action_type: Option<OptionAction>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@dateTime", default)]
pub date_time: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@figi", default)]
pub figi: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(rename = "@underlyingSymbol", default)]
pub underlying_symbol: Option<String>,
#[serde(rename = "@underlyingConid", default)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@commission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(rename = "@notes", default)]
pub notes: Option<String>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<OptionAction>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@markPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mark_price: Option<Decimal>,
#[serde(
rename = "@commisionsAndTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commisions_and_tax: Option<Decimal>,
#[serde(
rename = "@costBasis",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_basis: Option<Decimal>,
#[serde(
rename = "@realizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pnl: Option<Decimal>,
#[serde(
rename = "@capitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@origTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_transaction_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
#[serde(
rename = "@rtn",
default,
deserialize_with = "deserialize_optional_string"
)]
pub rtn: Option<String>,
#[serde(
rename = "@initialInvestment",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub initial_investment: Option<bool>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct FxTransaction {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@transactionID", default)]
pub transaction_id: Option<String>,
#[serde(rename = "@actionID", default)]
pub action_id: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(rename = "@dateTime", default)]
pub date_time: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@functionalCurrency", default)]
pub functional_currency: Option<String>,
#[serde(
rename = "@fromCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub from_currency: Option<String>,
#[serde(
rename = "@toCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub to_currency: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@realizedPL",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pl: Option<Decimal>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<String>,
#[serde(
rename = "@fxCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub fx_currency: Option<String>,
#[serde(
rename = "@activityDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub activity_description: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ChangeInDividendAccrual {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@securityID", default)]
pub security_id: Option<String>,
#[serde(rename = "@securityIDType", default)]
pub security_id_type: Option<String>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@figi", default)]
pub figi: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@exDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub ex_date: Option<NaiveDate>,
#[serde(
rename = "@payDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub pay_date: Option<NaiveDate>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@fee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee: Option<Decimal>,
#[serde(
rename = "@grossRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_rate: Option<Decimal>,
#[serde(
rename = "@grossAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_amount: Option<Decimal>,
#[serde(
rename = "@netAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_amount: Option<Decimal>,
#[serde(
rename = "@fromAccrual",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub from_accrual: Option<Decimal>,
#[serde(
rename = "@toAccrual",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub to_accrual: Option<Decimal>,
#[serde(rename = "@code", default)]
pub code: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@fromAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub from_acct: Option<String>,
#[serde(
rename = "@toAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub to_acct: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@actionID",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub action_id: Option<Decimal>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct OpenDividendAccrual {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@securityID", default)]
pub security_id: Option<String>,
#[serde(rename = "@securityIDType", default)]
pub security_id_type: Option<String>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@figi", default)]
pub figi: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@exDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub ex_date: Option<NaiveDate>,
#[serde(
rename = "@payDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub pay_date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@fee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee: Option<Decimal>,
#[serde(
rename = "@grossRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_rate: Option<Decimal>,
#[serde(
rename = "@grossAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_amount: Option<Decimal>,
#[serde(
rename = "@netAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_amount: Option<Decimal>,
#[serde(rename = "@code", default)]
pub code: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@fromAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub from_acct: Option<String>,
#[serde(
rename = "@toAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub to_acct: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@actionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub action_id: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct InterestAccrualsCurrency {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fromDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub from_date: Option<NaiveDate>,
#[serde(
rename = "@toDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub to_date: Option<NaiveDate>,
#[serde(
rename = "@startingAccrualBalance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub starting_balance: Option<Decimal>,
#[serde(
rename = "@interestAccrued",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest_accrued: Option<Decimal>,
#[serde(
rename = "@endingAccrualBalance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_balance: Option<Decimal>,
#[serde(
rename = "@accrualReversal",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrual_reversal: Option<Decimal>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@fxTranslation",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct Transfer {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@transactionID", default)]
pub transaction_id: Option<String>,
#[serde(rename = "@type", default)]
pub transfer_type: Option<TransferType>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@figi", default)]
pub figi: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@transferPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transfer_price: Option<Decimal>,
#[serde(
rename = "@positionAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub position_amount: Option<Decimal>,
#[serde(
rename = "@positionAmountInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub position_amount_in_base: Option<Decimal>,
#[serde(
rename = "@cashTransfer",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_transfer: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@direction", default)]
pub direction: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@ppiPayerPayeeAccount", default)]
pub ppi_payer_payee_account: Option<String>,
#[serde(rename = "@deliveringReceivingBroker", default)]
pub delivering_receiving_broker: Option<String>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(
rename = "@account",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account: Option<String>,
#[serde(
rename = "@deliveringBroker",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivering_broker: Option<String>,
#[serde(
rename = "@capitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@clientReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub client_reference: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@company",
default,
deserialize_with = "deserialize_optional_string"
)]
pub company: Option<String>,
#[serde(
rename = "@accountName",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_name: Option<String>,
#[serde(
rename = "@pnlAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub pnl_amount: Option<Decimal>,
#[serde(
rename = "@pnlAmountInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub pnl_amount_in_base: Option<Decimal>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date: Option<NaiveDate>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@positionInstructionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub position_instruction_id: Option<String>,
#[serde(
rename = "@positionInstructionSetID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub position_instruction_set_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct MTMPerformanceSummaryUnderlying {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(rename = "@underlyingSymbol", default)]
pub underlying_symbol: Option<String>,
#[serde(rename = "@underlyingConid", default)]
pub underlying_conid: Option<String>,
#[serde(rename = "@underlyingListingExchange", default)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@costAdj",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_adj: Option<Decimal>,
#[serde(
rename = "@realizedSTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_st_profit: Option<Decimal>,
#[serde(
rename = "@realizedSTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_st_loss: Option<Decimal>,
#[serde(
rename = "@realizedLTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_lt_profit: Option<Decimal>,
#[serde(
rename = "@realizedLTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_lt_loss: Option<Decimal>,
#[serde(
rename = "@unrealizedSTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_st_profit: Option<Decimal>,
#[serde(
rename = "@unrealizedSTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_st_loss: Option<Decimal>,
#[serde(
rename = "@unrealizedLTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_lt_profit: Option<Decimal>,
#[serde(
rename = "@unrealizedLTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_lt_loss: Option<Decimal>,
#[serde(
rename = "@transactionMtm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transaction_mtm: Option<Decimal>,
#[serde(
rename = "@commissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commissions: Option<Decimal>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@prevCloseQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub prev_close_quantity: Option<Decimal>,
#[serde(
rename = "@prevClosePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub prev_close_price: Option<Decimal>,
#[serde(
rename = "@closeQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_quantity: Option<Decimal>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@priorOpenMtm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub prior_open_mtm: Option<Decimal>,
#[serde(
rename = "@total",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@corpActionMtm",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub corp_action_mtm: Option<Decimal>,
#[serde(
rename = "@dividends",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub dividends: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@otherWithAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_with_accruals: Option<Decimal>,
#[serde(
rename = "@totalWithAccruals",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_with_accruals: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct FIFOPerformanceSummaryUnderlying {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@cusip", default)]
pub cusip: Option<String>,
#[serde(rename = "@isin", default)]
pub isin: Option<String>,
#[serde(rename = "@listingExchange", default)]
pub listing_exchange: Option<String>,
#[serde(rename = "@underlyingSymbol", default)]
pub underlying_symbol: Option<String>,
#[serde(rename = "@underlyingConid", default)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@realizedShortTermPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_short_term_pnl: Option<Decimal>,
#[serde(
rename = "@realizedLongTermPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_long_term_pnl: Option<Decimal>,
#[serde(
rename = "@realizedTotalPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_total_pnl: Option<Decimal>,
#[serde(
rename = "@unrealizedShortTermPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_short_term_pnl: Option<Decimal>,
#[serde(
rename = "@unrealizedLongTermPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_long_term_pnl: Option<Decimal>,
#[serde(
rename = "@unrealizedTotalPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_total_pnl: Option<Decimal>,
#[serde(
rename = "@totalIncome",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_income: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@realizedSTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_st_profit: Option<Decimal>,
#[serde(
rename = "@realizedSTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_st_loss: Option<Decimal>,
#[serde(
rename = "@realizedLTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_lt_profit: Option<Decimal>,
#[serde(
rename = "@realizedLTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_lt_loss: Option<Decimal>,
#[serde(
rename = "@totalRealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_realized_pnl: Option<Decimal>,
#[serde(
rename = "@unrealizedProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_profit: Option<Decimal>,
#[serde(
rename = "@unrealizedLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_loss: Option<Decimal>,
#[serde(
rename = "@totalUnrealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_unrealized_pnl: Option<Decimal>,
#[serde(
rename = "@totalFifoPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_fifo_pnl: Option<Decimal>,
#[serde(
rename = "@totalRealizedCapitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_realized_capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@totalRealizedFxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_realized_fx_pnl: Option<Decimal>,
#[serde(
rename = "@totalUnrealizedCapitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_unrealized_capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@totalUnrealizedFxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_unrealized_fx_pnl: Option<Decimal>,
#[serde(
rename = "@totalCapitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@totalFxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_fx_pnl: Option<Decimal>,
#[serde(
rename = "@transferredPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transferred_pnl: Option<Decimal>,
#[serde(
rename = "@transferredCapitalGainsPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transferred_capital_gains_pnl: Option<Decimal>,
#[serde(
rename = "@transferredFxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transferred_fx_pnl: Option<Decimal>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@unrealizedSTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_st_profit: Option<Decimal>,
#[serde(
rename = "@unrealizedSTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_st_loss: Option<Decimal>,
#[serde(
rename = "@unrealizedLTProfit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_lt_profit: Option<Decimal>,
#[serde(
rename = "@unrealizedLTLoss",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_lt_loss: Option<Decimal>,
#[serde(
rename = "@costAdj",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_adj: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct MTDYTDPerformanceSummary {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@mtdRealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtd_realized_pnl: Option<Decimal>,
#[serde(
rename = "@mtdUnrealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtd_unrealized_pnl: Option<Decimal>,
#[serde(
rename = "@mtdCommissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtd_commissions: Option<Decimal>,
#[serde(
rename = "@mtdFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtd_fees: Option<Decimal>,
#[serde(
rename = "@ytdRealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ytd_realized_pnl: Option<Decimal>,
#[serde(
rename = "@ytdUnrealizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ytd_unrealized_pnl: Option<Decimal>,
#[serde(
rename = "@ytdCommissions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ytd_commissions: Option<Decimal>,
#[serde(
rename = "@ytdFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ytd_fees: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@mtmMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_mtd: Option<Decimal>,
#[serde(
rename = "@mtmYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_ytd: Option<Decimal>,
#[serde(
rename = "@realSTMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub real_stmtd: Option<Decimal>,
#[serde(
rename = "@realSTYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub real_stytd: Option<Decimal>,
#[serde(
rename = "@realLTMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub real_ltmtd: Option<Decimal>,
#[serde(
rename = "@realLTYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub real_ltytd: Option<Decimal>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@realizedPnlMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pnl_mtd: Option<Decimal>,
#[serde(
rename = "@realizedCapitalGainsPnlMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_capital_gains_pnl_mtd: Option<Decimal>,
#[serde(
rename = "@realizedFxPnlMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_fx_pnl_mtd: Option<Decimal>,
#[serde(
rename = "@realizedPnlYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pnl_ytd: Option<Decimal>,
#[serde(
rename = "@realizedCapitalGainsPnlYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_capital_gains_pnl_ytd: Option<Decimal>,
#[serde(
rename = "@realizedFxPnlYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_fx_pnl_ytd: Option<Decimal>,
#[serde(
rename = "@brokerFees",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees: Option<Decimal>,
#[serde(
rename = "@brokerFeesSec",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_sec: Option<Decimal>,
#[serde(
rename = "@brokerFeesCom",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_com: Option<Decimal>,
#[serde(
rename = "@brokerFeesMTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_mtd: Option<Decimal>,
#[serde(
rename = "@brokerFeesYTD",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_fees_ytd: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct StatementOfFundsLine {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(rename = "@activityCode", default)]
pub activity_code: Option<String>,
#[serde(rename = "@activityDescription", default)]
pub activity_description: Option<String>,
#[serde(rename = "@tradeID", default)]
pub trade_id: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(
rename = "@debit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub debit: Option<Decimal>,
#[serde(
rename = "@credit",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub credit: Option<Decimal>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@balance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub balance: Option<Decimal>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@buySell",
default,
deserialize_with = "deserialize_optional_string"
)]
pub buy_sell: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date: Option<NaiveDate>,
#[serde(
rename = "@orderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_id: Option<String>,
#[serde(
rename = "@tradeQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_quantity: Option<Decimal>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeGross",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_gross: Option<Decimal>,
#[serde(
rename = "@tradeCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_commission: Option<Decimal>,
#[serde(
rename = "@tradeTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_tax: Option<Decimal>,
#[serde(
rename = "@tradeCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_code: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@actionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub action_id: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@origTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_transaction_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ChangeInPositionValue {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@priorPeriodValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub prior_period_value: Option<Decimal>,
#[serde(
rename = "@transactions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transactions: Option<Decimal>,
#[serde(
rename = "@mtmPriorPeriodPositions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_prior_period_positions: Option<Decimal>,
#[serde(
rename = "@mtmTransactions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_transactions: Option<Decimal>,
#[serde(
rename = "@corporateActions",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub corporate_actions: Option<Decimal>,
#[serde(
rename = "@fxTranslation",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation: Option<Decimal>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
#[serde(
rename = "@endingValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ending_value: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@accountTransfers",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub account_transfers: Option<Decimal>,
#[serde(
rename = "@fxTranslationPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_translation_pnl: Option<Decimal>,
#[serde(
rename = "@futurePriceAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub future_price_adjustments: Option<Decimal>,
#[serde(
rename = "@settledCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub settled_cash: Option<Decimal>,
#[serde(
rename = "@endOfPeriodValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub end_of_period_value: Option<Decimal>,
#[serde(
rename = "@linkingAdjustments",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub linking_adjustments: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct UnbundledCommissionDetail {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@execID", default)]
pub exec_id: Option<String>,
#[serde(rename = "@orderID", default)]
pub order_id: Option<String>,
#[serde(rename = "@tradeID", default)]
pub trade_id: Option<String>,
#[serde(rename = "@dateTime", default)]
pub date_time: Option<String>,
#[serde(rename = "@exchange", default)]
pub exchange: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@executionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub execution_commission: Option<Decimal>,
#[serde(
rename = "@clearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub clearing_commission: Option<Decimal>,
#[serde(
rename = "@regulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub regulatory_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_commission: Option<Decimal>,
#[serde(
rename = "@totalCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_commission: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(rename = "@buySell", default)]
pub buy_sell: Option<BuySell>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@orderReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_reference: Option<String>,
#[serde(
rename = "@brokerExecutionCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_charge: Option<Decimal>,
#[serde(
rename = "@brokerClearingCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_clearing_charge: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_charge: Option<Decimal>,
#[serde(
rename = "@thirdPartyClearingCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_clearing_charge: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_charge: Option<Decimal>,
#[serde(
rename = "@regFINRATradingActivityFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_finra_trading_activity_fee: Option<Decimal>,
#[serde(
rename = "@regSection31TransactionFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_section31_transaction_fee: Option<Decimal>,
#[serde(
rename = "@regOther",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_other: Option<Decimal>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ClientFee {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@revenue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub revenue: Option<Decimal>,
#[serde(
rename = "@expense",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub expense: Option<Decimal>,
#[serde(
rename = "@net",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net: Option<Decimal>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@feeType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub fee_type: Option<String>,
#[serde(
rename = "@expenseIndicator",
default,
deserialize_with = "deserialize_optional_string"
)]
pub expense_indicator: Option<String>,
#[serde(
rename = "@revenueInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub revenue_in_base: Option<Decimal>,
#[serde(
rename = "@expenseInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub expense_in_base: Option<Decimal>,
#[serde(
rename = "@netInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_in_base: Option<Decimal>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@assetCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub asset_category: Option<String>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_string"
)]
pub settle_date: Option<String>,
#[serde(
rename = "@buySell",
default,
deserialize_with = "deserialize_optional_string"
)]
pub buy_sell: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_string"
)]
pub quantity: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_price: Option<String>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_string"
)]
pub proceeds: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_string"
)]
pub multiplier: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ClientFeesDetail {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(rename = "@feeType", default)]
pub fee_type: Option<String>,
#[serde(
rename = "@revenue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub revenue: Option<Decimal>,
#[serde(
rename = "@expense",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub expense: Option<Decimal>,
#[serde(
rename = "@net",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net: Option<Decimal>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(
rename = "@totalRevenue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_revenue: Option<Decimal>,
#[serde(
rename = "@totalCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_commission: Option<Decimal>,
#[serde(
rename = "@brokerExecutionCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_charge: Option<Decimal>,
#[serde(
rename = "@clearingCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub clearing_charge: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_charge: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_charge: Option<Decimal>,
#[serde(
rename = "@regFINRATradingActivityFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_finra_trading_activity_fee: Option<Decimal>,
#[serde(
rename = "@regSection31TransactionFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_section31_transaction_fee: Option<Decimal>,
#[serde(
rename = "@regOther",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub reg_other: Option<Decimal>,
#[serde(
rename = "@totalNet",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_net: Option<Decimal>,
#[serde(
rename = "@totalNetInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_net_in_base: Option<Decimal>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@other",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SLBActivity {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@type", default)]
pub activity_type: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@collateralAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub collateral_amount: Option<Decimal>,
#[serde(
rename = "@feeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee_rate: Option<Decimal>,
#[serde(
rename = "@netLendFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_lend_fee: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@slbTransactionId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub slb_transaction_id: Option<String>,
#[serde(
rename = "@activityDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub activity_description: Option<String>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(
rename = "@markQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mark_quantity: Option<Decimal>,
#[serde(
rename = "@markPriorPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mark_prior_price: Option<Decimal>,
#[serde(
rename = "@markCurrentPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mark_current_price: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SLBFee {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@valueDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub value_date: Option<NaiveDate>,
#[serde(
rename = "@startDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub start_date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@collateralAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub collateral_amount: Option<Decimal>,
#[serde(
rename = "@feeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee_rate: Option<Decimal>,
#[serde(
rename = "@fee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee: Option<Decimal>,
#[serde(
rename = "@carryCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub carry_charge: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@type",
default,
deserialize_with = "deserialize_optional_string"
)]
pub slb_type: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@uniqueID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub unique_id: Option<String>,
#[serde(
rename = "@grossLendFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub gross_lend_fee: Option<Decimal>,
#[serde(
rename = "@netLendFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_lend_fee: Option<Decimal>,
#[serde(
rename = "@marketFeeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub market_fee_rate: Option<Decimal>,
#[serde(
rename = "@netLendFeeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_lend_fee_rate: Option<Decimal>,
#[serde(
rename = "@totalCharges",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_charges: Option<Decimal>,
#[serde(
rename = "@ticketCharge",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ticket_charge: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@fromAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub from_acct: Option<String>,
#[serde(
rename = "@toAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub to_acct: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
impl SLBFee {
pub fn lending_income(&self) -> Option<Decimal> {
match self.net_lend_fee {
Some(v) if v != Decimal::ZERO => Some(v),
_ => self.fee,
}
}
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct HardToBorrowDetail {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@valueDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub value_date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@value",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub value: Option<Decimal>,
#[serde(
rename = "@borrowFeeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub borrow_fee_rate: Option<Decimal>,
#[serde(
rename = "@borrowFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub borrow_fee: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@fromAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub from_acct: Option<String>,
#[serde(
rename = "@toAcct",
default,
deserialize_with = "deserialize_optional_string"
)]
pub to_acct: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct FxLot {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(rename = "@functionalCurrency", default)]
pub functional_currency: Option<String>,
#[serde(rename = "@fxCurrency", default)]
pub fx_currency: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@costPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_price: Option<Decimal>,
#[serde(
rename = "@costBasis",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost_basis: Option<Decimal>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@value",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub value: Option<Decimal>,
#[serde(
rename = "@unrealizedPL",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub unrealized_pl: Option<Decimal>,
#[serde(rename = "@levelOfDetail", default)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@lotDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub lot_description: Option<String>,
#[serde(
rename = "@lotOpenDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub lot_open_date_time: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct UnsettledTransfer {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@direction", default)]
pub direction: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@expectedDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expected_date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@stage",
default,
deserialize_with = "deserialize_optional_string"
)]
pub stage: Option<String>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(
rename = "@targetSettlement",
default,
deserialize_with = "deserialize_optional_date"
)]
pub target_settlement: Option<NaiveDate>,
#[serde(
rename = "@contra",
default,
deserialize_with = "deserialize_optional_string"
)]
pub contra: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_amount: Option<Decimal>,
#[serde(
rename = "@tradeAmountInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_amount_in_base: Option<Decimal>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TradeTransfer {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@transferType", default)]
pub transfer_type: Option<String>,
#[serde(rename = "@direction", default)]
pub direction: Option<String>,
#[serde(rename = "@deliveryType", default)]
pub delivery_type: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@transferPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transfer_price: Option<Decimal>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@executingBroker", default)]
pub executing_broker: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<TradeType>,
#[serde(rename = "@openCloseIndicator", default)]
pub open_close_indicator: Option<OpenClose>,
#[serde(rename = "@deliveredReceived", default)]
pub delivered_received: Option<DeliveredReceived>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(
rename = "@tradeTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_time: Option<String>,
#[serde(
rename = "@settleDateTarget",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date_target: Option<NaiveDate>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_money: Option<Decimal>,
#[serde(
rename = "@taxes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxes: Option<Decimal>,
#[serde(
rename = "@ibCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ib_commission: Option<Decimal>,
#[serde(
rename = "@ibCommissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_commission_currency: Option<String>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_string"
)]
pub notes: Option<String>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@brokerName",
default,
deserialize_with = "deserialize_optional_string"
)]
pub broker_name: Option<String>,
#[serde(
rename = "@brokerAccount",
default,
deserialize_with = "deserialize_optional_string"
)]
pub broker_account: Option<String>,
#[serde(
rename = "@awayBrokerCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub away_broker_commission: Option<Decimal>,
#[serde(
rename = "@regulatoryFee",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub regulatory_fee: Option<Decimal>,
#[serde(
rename = "@netTradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trade_money: Option<Decimal>,
#[serde(
rename = "@netTradeMoneyInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trade_money_in_base: Option<Decimal>,
#[serde(
rename = "@netTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_trade_price: Option<Decimal>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@netCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash: Option<Decimal>,
#[serde(
rename = "@origTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub orig_trade_price: Option<Decimal>,
#[serde(
rename = "@origTradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub orig_trade_date: Option<NaiveDate>,
#[serde(
rename = "@origTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_trade_id: Option<String>,
#[serde(
rename = "@origOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_order_id: Option<String>,
#[serde(
rename = "@clearingFirmID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub clearing_firm_id: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@openDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub open_date_time: Option<String>,
#[serde(
rename = "@holdingPeriodDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub holding_period_date_time: Option<String>,
#[serde(
rename = "@whenRealized",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_realized: Option<String>,
#[serde(
rename = "@whenReopened",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_reopened: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct PriorPeriodPosition {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@priorMtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub prior_mtm_pnl: Option<Decimal>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TierInterestDetail {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@interestType", default)]
pub interest_type: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@valueDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub value_date: Option<NaiveDate>,
#[serde(rename = "@tierBreak", default)]
pub tier_break: Option<String>,
#[serde(
rename = "@balanceThreshold",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub balance_threshold: Option<Decimal>,
#[serde(
rename = "@securitiesPrincipal",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub securities_principal: Option<Decimal>,
#[serde(
rename = "@commoditiesPrincipal",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commodities_principal: Option<Decimal>,
#[serde(
rename = "@ibuklPrincipal",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ibukl_principal: Option<Decimal>,
#[serde(
rename = "@totalPrincipal",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_principal: Option<Decimal>,
#[serde(
rename = "@rate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub rate: Option<Decimal>,
#[serde(
rename = "@securitiesInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub securities_interest: Option<Decimal>,
#[serde(
rename = "@commoditiesInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commodities_interest: Option<Decimal>,
#[serde(
rename = "@ibuklInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ibukl_interest: Option<Decimal>,
#[serde(
rename = "@totalInterest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_interest: Option<Decimal>,
#[serde(rename = "@code", default)]
pub code: Option<String>,
#[serde(rename = "@fromAcct", default)]
pub from_acct: Option<String>,
#[serde(rename = "@toAcct", default)]
pub to_acct: Option<String>,
#[serde(rename = "@marginBalance", default)]
pub margin_balance: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@fromDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub from_date: Option<NaiveDate>,
#[serde(
rename = "@toDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub to_date: Option<NaiveDate>,
#[serde(
rename = "@balance",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub balance: Option<Decimal>,
#[serde(
rename = "@interestRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest_rate: Option<Decimal>,
#[serde(
rename = "@interest",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub interest: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct DebitCardActivity {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@merchant", default)]
pub merchant: Option<String>,
#[serde(rename = "@category", default)]
pub category: Option<String>,
#[serde(rename = "@status", default)]
pub status: Option<String>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<String>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@postingDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub posting_date: Option<NaiveDate>,
#[serde(
rename = "@transactionDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_date_time: Option<String>,
#[serde(
rename = "@merchantNameLocation",
default,
deserialize_with = "deserialize_optional_string"
)]
pub merchant_name_location: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SalesTax {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@taxType", default)]
pub tax_type: Option<String>,
#[serde(
rename = "@taxAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_amount: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@country",
default,
deserialize_with = "deserialize_optional_string"
)]
pub country: Option<String>,
#[serde(
rename = "@payer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub payer: Option<String>,
#[serde(
rename = "@taxableDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub taxable_description: Option<String>,
#[serde(
rename = "@taxableAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxable_amount: Option<Decimal>,
#[serde(
rename = "@taxRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_rate: Option<Decimal>,
#[serde(
rename = "@salesTax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub sales_tax: Option<Decimal>,
#[serde(
rename = "@taxableTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub taxable_transaction_id: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SymbolSummary {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@totalBuyQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_buy_quantity: Option<Decimal>,
#[serde(
rename = "@totalSellQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_sell_quantity: Option<Decimal>,
#[serde(
rename = "@totalBuyValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_buy_value: Option<Decimal>,
#[serde(
rename = "@totalSellValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_sell_value: Option<Decimal>,
#[serde(
rename = "@totalCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_commission: Option<Decimal>,
#[serde(
rename = "@realizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pnl: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<TradeType>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@orderID",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub order_id: Option<Decimal>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(
rename = "@brokerageOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub brokerage_order_id: Option<String>,
#[serde(
rename = "@orderReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_reference: Option<String>,
#[serde(
rename = "@volatilityOrderLink",
default,
deserialize_with = "deserialize_optional_string"
)]
pub volatility_order_link: Option<String>,
#[serde(
rename = "@clearingFirmID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub clearing_firm_id: Option<String>,
#[serde(
rename = "@origTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub orig_trade_price: Option<Decimal>,
#[serde(
rename = "@origTradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub orig_trade_date: Option<NaiveDate>,
#[serde(
rename = "@origTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_trade_id: Option<String>,
#[serde(
rename = "@orderTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_time: Option<String>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date: Option<NaiveDate>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(rename = "@buySell", default)]
pub buy_sell: Option<BuySell>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@commission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission: Option<Decimal>,
#[serde(
rename = "@brokerExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_commission: Option<Decimal>,
#[serde(
rename = "@brokerClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_commission: Option<Decimal>,
#[serde(
rename = "@otherCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_commission: Option<Decimal>,
#[serde(
rename = "@commissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commission_currency: Option<String>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(rename = "@orderType", default)]
pub order_type: Option<OrderType>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@traderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trader_id: Option<String>,
#[serde(
rename = "@isAPIOrder",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub is_api_order: Option<bool>,
#[serde(
rename = "@allocatedTo",
default,
deserialize_with = "deserialize_optional_string"
)]
pub allocated_to: Option<String>,
#[serde(
rename = "@accruedInt",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_int: Option<Decimal>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@origTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_transaction_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
#[serde(
rename = "@positionActionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub position_action_id: Option<String>,
#[serde(
rename = "@ibExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_exec_id: Option<String>,
#[serde(
rename = "@extExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ext_exec_id: Option<String>,
#[serde(
rename = "@exchOrderId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exch_order_id: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@openDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub open_date_time: Option<String>,
#[serde(
rename = "@holdingPeriodDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub holding_period_date_time: Option<String>,
#[serde(
rename = "@settleDateTarget",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date_target: Option<NaiveDate>,
#[serde(
rename = "@taxes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxes: Option<Decimal>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_money: Option<Decimal>,
#[serde(
rename = "@changeInPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_price: Option<Decimal>,
#[serde(
rename = "@changeInQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_quantity: Option<Decimal>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@ibCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ib_commission: Option<Decimal>,
#[serde(
rename = "@ibCommissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_commission_currency: Option<String>,
#[serde(
rename = "@ibOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_order_id: Option<String>,
#[serde(
rename = "@initialInvestment",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub initial_investment: Option<bool>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@netCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash: Option<Decimal>,
#[serde(
rename = "@netCashInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash_in_base: Option<Decimal>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_string"
)]
pub notes: Option<String>,
#[serde(rename = "@openCloseIndicator", default)]
pub open_close_indicator: Option<OpenClose>,
#[serde(
rename = "@origOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_order_id: Option<String>,
#[serde(
rename = "@rtn",
default,
deserialize_with = "deserialize_optional_string"
)]
pub rtn: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@whenRealized",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_realized: Option<String>,
#[serde(
rename = "@whenReopened",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_reopened: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct AssetSummary {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@totalBuyQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_buy_quantity: Option<Decimal>,
#[serde(
rename = "@totalSellQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_sell_quantity: Option<Decimal>,
#[serde(
rename = "@totalBuyValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_buy_value: Option<Decimal>,
#[serde(
rename = "@totalSellValue",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_sell_value: Option<Decimal>,
#[serde(
rename = "@totalCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total_commission: Option<Decimal>,
#[serde(
rename = "@realizedPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub realized_pnl: Option<Decimal>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<TradeType>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@orderID",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub order_id: Option<Decimal>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(
rename = "@brokerageOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub brokerage_order_id: Option<String>,
#[serde(
rename = "@orderReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_reference: Option<String>,
#[serde(
rename = "@volatilityOrderLink",
default,
deserialize_with = "deserialize_optional_string"
)]
pub volatility_order_link: Option<String>,
#[serde(
rename = "@clearingFirmID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub clearing_firm_id: Option<String>,
#[serde(
rename = "@origTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub orig_trade_price: Option<Decimal>,
#[serde(
rename = "@TradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@tradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_money: Option<Decimal>,
#[serde(
rename = "@taxes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxes: Option<Decimal>,
#[serde(
rename = "@origTradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub orig_trade_date: Option<NaiveDate>,
#[serde(
rename = "@origTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_trade_id: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price_trad: Option<Decimal>,
#[serde(
rename = "@orderTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_time: Option<String>,
#[serde(
rename = "@exchOrderId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exch_order_id: Option<String>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@ibExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_exec_id: Option<String>,
#[serde(
rename = "@settleDateTarget",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date_target: Option<NaiveDate>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@extExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ext_exec_id: Option<String>,
#[serde(
rename = "@openDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub open_date_time: Option<String>,
#[serde(
rename = "@holdingPeriodDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub holding_period_date_time: Option<String>,
#[serde(
rename = "@whenRealized",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_realized: Option<String>,
#[serde(
rename = "@whenReopened",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_reopened: Option<String>,
#[serde(
rename = "@changeInPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_price: Option<Decimal>,
#[serde(
rename = "@changeInQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_quantity: Option<Decimal>,
#[serde(
rename = "@ibOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_order_id: Option<String>,
#[serde(
rename = "@origOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_order_id: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(rename = "@openCloseIndicator", default)]
pub open_close_indicator: Option<OpenClose>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_string"
)]
pub notes: Option<String>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(
rename = "@ibCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ib_commission: Option<Decimal>,
#[serde(
rename = "@ibCommissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_commission_currency: Option<String>,
#[serde(
rename = "@netCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash: Option<Decimal>,
#[serde(
rename = "@netCashInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash_in_base: Option<Decimal>,
#[serde(rename = "@buySell", default)]
pub buy_sell: Option<BuySell>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@commission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission: Option<Decimal>,
#[serde(
rename = "@brokerExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_commission: Option<Decimal>,
#[serde(
rename = "@brokerClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_commission: Option<Decimal>,
#[serde(
rename = "@otherCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_commission: Option<Decimal>,
#[serde(
rename = "@commissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commission_currency: Option<String>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(rename = "@orderType", default)]
pub order_type: Option<OrderType>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@traderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trader_id: Option<String>,
#[serde(
rename = "@isAPIOrder",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub is_api_order: Option<bool>,
#[serde(
rename = "@allocatedTo",
default,
deserialize_with = "deserialize_optional_string"
)]
pub allocated_to: Option<String>,
#[serde(
rename = "@accruedInt",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_int: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@origTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_transaction_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
#[serde(
rename = "@rtn",
default,
deserialize_with = "deserialize_optional_string"
)]
pub rtn: Option<String>,
#[serde(
rename = "@initialInvestment",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub initial_investment: Option<bool>,
#[serde(
rename = "@positionActionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub position_action_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct Order {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(rename = "@acctAlias", default)]
pub acct_alias: Option<String>,
#[serde(rename = "@model", default)]
pub model: Option<String>,
#[serde(rename = "@orderID", default)]
pub order_id: Option<String>,
#[serde(rename = "@symbol", default)]
pub symbol: Option<String>,
#[serde(rename = "@description", default)]
pub description: Option<String>,
#[serde(rename = "@conid", default)]
pub conid: Option<String>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(rename = "@orderTime", default)]
pub order_time: Option<String>,
#[serde(rename = "@orderType", default)]
pub order_type: Option<String>,
#[serde(rename = "@side", default)]
pub side: Option<String>,
#[serde(rename = "@tif", default)]
pub tif: Option<String>,
#[serde(
rename = "@orderQty",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub order_qty: Option<Decimal>,
#[serde(
rename = "@limitPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub limit_price: Option<Decimal>,
#[serde(
rename = "@stopPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub stop_price: Option<Decimal>,
#[serde(
rename = "@filledQty",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub filled_qty: Option<Decimal>,
#[serde(
rename = "@avgPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub avg_price: Option<Decimal>,
#[serde(
rename = "@remainingQty",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub remaining_qty: Option<Decimal>,
#[serde(rename = "@status", default)]
pub status: Option<String>,
#[serde(rename = "@currency", default)]
pub currency: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(rename = "@transactionType", default)]
pub transaction_type: Option<TradeType>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@execID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exec_id: Option<String>,
#[serde(
rename = "@brokerageOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub brokerage_order_id: Option<String>,
#[serde(
rename = "@orderReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub order_reference: Option<String>,
#[serde(
rename = "@volatilityOrderLink",
default,
deserialize_with = "deserialize_optional_string"
)]
pub volatility_order_link: Option<String>,
#[serde(
rename = "@clearingFirmID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub clearing_firm_id: Option<String>,
#[serde(
rename = "@origTradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub orig_trade_price: Option<Decimal>,
#[serde(
rename = "@origTradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub orig_trade_date: Option<NaiveDate>,
#[serde(
rename = "@origTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_trade_id: Option<String>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@settleDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date: Option<NaiveDate>,
#[serde(
rename = "@tradeDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub trade_date: Option<NaiveDate>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(rename = "@buySell", default)]
pub buy_sell: Option<BuySell>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@proceeds",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub proceeds: Option<Decimal>,
#[serde(
rename = "@commission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub commission: Option<Decimal>,
#[serde(
rename = "@brokerExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_execution_commission: Option<Decimal>,
#[serde(
rename = "@brokerClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub broker_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyExecutionCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_execution_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyClearingCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_clearing_commission: Option<Decimal>,
#[serde(
rename = "@thirdPartyRegulatoryCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub third_party_regulatory_commission: Option<Decimal>,
#[serde(
rename = "@otherCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub other_commission: Option<Decimal>,
#[serde(
rename = "@commissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commission_currency: Option<String>,
#[serde(
rename = "@tax",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@traderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trader_id: Option<String>,
#[serde(
rename = "@isAPIOrder",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub is_api_order: Option<bool>,
#[serde(
rename = "@allocatedTo",
default,
deserialize_with = "deserialize_optional_string"
)]
pub allocated_to: Option<String>,
#[serde(
rename = "@accruedInt",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub accrued_int: Option<Decimal>,
#[serde(
rename = "@netCash",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_cash: Option<Decimal>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@ibCommission",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub ib_commission: Option<Decimal>,
#[serde(
rename = "@ibOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_order_id: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@settleDateTarget",
default,
deserialize_with = "deserialize_optional_date"
)]
pub settle_date_target: Option<NaiveDate>,
#[serde(
rename = "@tradeMoney",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_money: Option<Decimal>,
#[serde(
rename = "@taxes",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub taxes: Option<Decimal>,
#[serde(
rename = "@ibCommissionCurrency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_commission_currency: Option<String>,
#[serde(
rename = "@closePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub close_price: Option<Decimal>,
#[serde(rename = "@openCloseIndicator", default)]
pub open_close_indicator: Option<OpenClose>,
#[serde(
rename = "@notes",
default,
deserialize_with = "deserialize_optional_string"
)]
pub notes: Option<String>,
#[serde(
rename = "@cost",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cost: Option<Decimal>,
#[serde(
rename = "@fifoPnlRealized",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fifo_pnl_realized: Option<Decimal>,
#[serde(
rename = "@fxPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_pnl: Option<Decimal>,
#[serde(
rename = "@mtmPnl",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub mtm_pnl: Option<Decimal>,
#[serde(
rename = "@origOrderID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_order_id: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@ibExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ib_exec_id: Option<String>,
#[serde(
rename = "@exchOrderId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exch_order_id: Option<String>,
#[serde(
rename = "@extExecID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub ext_exec_id: Option<String>,
#[serde(
rename = "@openDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub open_date_time: Option<String>,
#[serde(
rename = "@holdingPeriodDateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub holding_period_date_time: Option<String>,
#[serde(
rename = "@whenRealized",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_realized: Option<String>,
#[serde(
rename = "@whenReopened",
default,
deserialize_with = "deserialize_optional_string"
)]
pub when_reopened: Option<String>,
#[serde(
rename = "@changeInPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_price: Option<Decimal>,
#[serde(
rename = "@changeInQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub change_in_quantity: Option<Decimal>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@relatedTradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_trade_id: Option<String>,
#[serde(
rename = "@origTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub orig_transaction_id: Option<String>,
#[serde(
rename = "@relatedTransactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub related_transaction_id: Option<String>,
#[serde(
rename = "@rtn",
default,
deserialize_with = "deserialize_optional_string"
)]
pub rtn: Option<String>,
#[serde(
rename = "@initialInvestment",
default,
deserialize_with = "deserialize_optional_bool"
)]
pub initial_investment: Option<bool>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@positionActionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub position_action_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct NetStockPosition {
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@sharesAtIb",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub shares_at_ib: Option<Decimal>,
#[serde(
rename = "@sharesBorrowed",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub shares_borrowed: Option<Decimal>,
#[serde(
rename = "@sharesLent",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub shares_lent: Option<Decimal>,
#[serde(
rename = "@netShares",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub net_shares: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TransactionTax {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date: Option<String>,
#[serde(
rename = "@taxDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub tax_description: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@taxAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_amount: Option<Decimal>,
#[serde(
rename = "@tradeId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@source",
default,
deserialize_with = "deserialize_optional_string"
)]
pub source: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct CFDCharge {
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@amount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub amount: Option<Decimal>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(
rename = "@sedol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sedol: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@tradeID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@received",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub received: Option<Decimal>,
#[serde(
rename = "@paid",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub paid: Option<Decimal>,
#[serde(
rename = "@total",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub total: Option<Decimal>,
#[serde(
rename = "@transactionId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id_lc: Option<String>,
#[serde(
rename = "@activityDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub activity_description: Option<String>,
#[serde(
rename = "@clientReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub client_reference: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SLBOpenContract {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@assetCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub asset_category: Option<String>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@type",
default,
deserialize_with = "deserialize_optional_string"
)]
pub r#type: Option<String>,
#[serde(
rename = "@slbTransactionId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub slb_transaction_id: Option<String>,
#[serde(
rename = "@exchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub exchange: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@excessQuantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub excess_quantity: Option<Decimal>,
#[serde(
rename = "@feeRate",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fee_rate: Option<Decimal>,
#[serde(
rename = "@collateralAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub collateral_amount: Option<Decimal>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub serial_number: Option<Decimal>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub delivery_type: Option<Decimal>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct StockGrantActivity {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@subCategory",
default,
deserialize_with = "deserialize_optional_string"
)]
pub sub_category: Option<String>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@figi",
default,
deserialize_with = "deserialize_optional_string"
)]
pub figi: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@issuerCountryCode",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer_country_code: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@activityDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub activity_description: Option<String>,
#[serde(
rename = "@awardDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub award_date: Option<NaiveDate>,
#[serde(
rename = "@vestingDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub vesting_date: Option<NaiveDate>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@price",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub price: Option<Decimal>,
#[serde(
rename = "@value",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub value: Option<Decimal>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub weight: Option<Decimal>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TransactionTaxDetail {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date: Option<String>,
#[serde(
rename = "@taxDescription",
default,
deserialize_with = "deserialize_optional_string"
)]
pub tax_description: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@taxAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub tax_amount: Option<Decimal>,
#[serde(
rename = "@tradeId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub trade_id: Option<String>,
#[serde(
rename = "@tradePrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub trade_price: Option<Decimal>,
#[serde(
rename = "@source",
default,
deserialize_with = "deserialize_optional_string"
)]
pub source: Option<String>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@levelOfDetail",
default,
deserialize_with = "deserialize_optional_string"
)]
pub level_of_detail: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TransferLot {
#[serde(
rename = "@accountId",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_id: Option<String>,
#[serde(
rename = "@currency",
default,
deserialize_with = "deserialize_optional_string"
)]
pub currency: Option<String>,
#[serde(
rename = "@fxRateToBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fx_rate_to_base: Option<Decimal>,
#[serde(rename = "@assetCategory", default)]
pub asset_category: Option<AssetCategory>,
#[serde(
rename = "@symbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub symbol: Option<String>,
#[serde(
rename = "@description",
default,
deserialize_with = "deserialize_optional_string"
)]
pub description: Option<String>,
#[serde(
rename = "@conid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub conid: Option<String>,
#[serde(
rename = "@securityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id: Option<String>,
#[serde(
rename = "@securityIDType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub security_id_type: Option<String>,
#[serde(
rename = "@cusip",
default,
deserialize_with = "deserialize_optional_string"
)]
pub cusip: Option<String>,
#[serde(
rename = "@isin",
default,
deserialize_with = "deserialize_optional_string"
)]
pub isin: Option<String>,
#[serde(
rename = "@listingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub listing_exchange: Option<String>,
#[serde(
rename = "@multiplier",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub multiplier: Option<Decimal>,
#[serde(
rename = "@reportDate",
default,
deserialize_with = "deserialize_optional_date"
)]
pub report_date: Option<NaiveDate>,
#[serde(
rename = "@date",
default,
deserialize_with = "deserialize_optional_date"
)]
pub date: Option<NaiveDate>,
#[serde(
rename = "@dateTime",
default,
deserialize_with = "deserialize_optional_string"
)]
pub date_time: Option<String>,
#[serde(rename = "@type", default)]
pub r#type: Option<TransferType>,
#[serde(rename = "@direction", default)]
pub direction: Option<InOut>,
#[serde(
rename = "@company",
default,
deserialize_with = "deserialize_optional_string"
)]
pub company: Option<String>,
#[serde(
rename = "@account",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account: Option<String>,
#[serde(
rename = "@deliveringBroker",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivering_broker: Option<String>,
#[serde(
rename = "@quantity",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub quantity: Option<Decimal>,
#[serde(
rename = "@transferPrice",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub transfer_price: Option<Decimal>,
#[serde(
rename = "@pnlAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub pnl_amount: Option<Decimal>,
#[serde(
rename = "@pnlAmountInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub pnl_amount_in_base: Option<Decimal>,
#[serde(
rename = "@code",
default,
deserialize_with = "deserialize_optional_string"
)]
pub code: Option<String>,
#[serde(
rename = "@acctAlias",
default,
deserialize_with = "deserialize_optional_string"
)]
pub acct_alias: Option<String>,
#[serde(
rename = "@model",
default,
deserialize_with = "deserialize_optional_string"
)]
pub model: Option<String>,
#[serde(
rename = "@underlyingConid",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_conid: Option<String>,
#[serde(
rename = "@underlyingSymbol",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_symbol: Option<String>,
#[serde(
rename = "@underlyingSecurityID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_security_id: Option<String>,
#[serde(
rename = "@underlyingListingExchange",
default,
deserialize_with = "deserialize_optional_string"
)]
pub underlying_listing_exchange: Option<String>,
#[serde(
rename = "@issuer",
default,
deserialize_with = "deserialize_optional_string"
)]
pub issuer: Option<String>,
#[serde(
rename = "@strike",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub strike: Option<Decimal>,
#[serde(
rename = "@expiry",
default,
deserialize_with = "deserialize_optional_date"
)]
pub expiry: Option<NaiveDate>,
#[serde(rename = "@putCall", default)]
pub put_call: Option<PutCall>,
#[serde(
rename = "@principalAdjustFactor",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub principal_adjust_factor: Option<Decimal>,
#[serde(
rename = "@accountName",
default,
deserialize_with = "deserialize_optional_string"
)]
pub account_name: Option<String>,
#[serde(
rename = "@positionAmount",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub position_amount: Option<Decimal>,
#[serde(
rename = "@positionAmountInBase",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub position_amount_in_base: Option<Decimal>,
#[serde(
rename = "@cashTransfer",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub cash_transfer: Option<Decimal>,
#[serde(
rename = "@clientReference",
default,
deserialize_with = "deserialize_optional_string"
)]
pub client_reference: Option<String>,
#[serde(
rename = "@transactionID",
default,
deserialize_with = "deserialize_optional_string"
)]
pub transaction_id: Option<String>,
#[serde(
rename = "@serialNumber",
default,
deserialize_with = "deserialize_optional_string"
)]
pub serial_number: Option<String>,
#[serde(
rename = "@deliveryType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub delivery_type: Option<String>,
#[serde(
rename = "@commodityType",
default,
deserialize_with = "deserialize_optional_string"
)]
pub commodity_type: Option<String>,
#[serde(
rename = "@fineness",
default,
deserialize_with = "deserialize_optional_decimal"
)]
pub fineness: Option<Decimal>,
#[serde(
rename = "@weight",
default,
deserialize_with = "deserialize_optional_string"
)]
pub weight: Option<String>,
}