1use chrono::NaiveDate;
8use rust_decimal::Decimal;
9use serde::{Deserialize, Serialize};
10
11use super::common::{
12 AssetCategory, BuySell, DeliveredReceived, OpenClose, OptionAction, OrderType, PutCall,
13 TradeType, TransferType,
14};
15use crate::parsers::xml_utils::{
16 deserialize_optional_bool, deserialize_optional_date, deserialize_optional_decimal,
17 deserialize_optional_string,
18};
19
20#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
22pub struct AccountInformation {
23 #[serde(
25 rename = "@accountId",
26 default,
27 deserialize_with = "deserialize_optional_string"
28 )]
29 pub account_id: Option<String>,
30
31 #[serde(rename = "@accountType", default)]
33 pub account_type: Option<String>,
34
35 #[serde(rename = "@acctAlias", default)]
37 pub acct_alias: Option<String>,
38
39 #[serde(rename = "@currency", default)]
41 pub currency: Option<String>,
42
43 #[serde(rename = "@name", default)]
45 pub name: Option<String>,
46
47 #[serde(rename = "@masterName", default)]
49 pub master_name: Option<String>,
50
51 #[serde(rename = "@customerType", default)]
53 pub customer_type: Option<String>,
54
55 #[serde(
57 rename = "@dateOpened",
58 default,
59 deserialize_with = "deserialize_optional_date"
60 )]
61 pub date_opened: Option<NaiveDate>,
62
63 #[serde(
65 rename = "@dateFunded",
66 default,
67 deserialize_with = "deserialize_optional_date"
68 )]
69 pub date_funded: Option<NaiveDate>,
70
71 #[serde(
73 rename = "@dateClosed",
74 default,
75 deserialize_with = "deserialize_optional_date"
76 )]
77 pub date_closed: Option<NaiveDate>,
78
79 #[serde(rename = "@primaryEmail", default)]
81 pub primary_email: Option<String>,
82
83 #[serde(rename = "@streetAddress", default)]
85 pub street_address: Option<String>,
86
87 #[serde(rename = "@streetAddress2", default)]
89 pub street_address2: Option<String>,
90
91 #[serde(rename = "@city", default)]
93 pub city: Option<String>,
94
95 #[serde(rename = "@state", default)]
97 pub state: Option<String>,
98
99 #[serde(rename = "@country", default)]
101 pub country: Option<String>,
102
103 #[serde(rename = "@postalCode", default)]
105 pub postal_code: Option<String>,
106
107 #[serde(rename = "@accountCapabilities", default)]
109 pub account_capabilities: Option<String>,
110
111 #[serde(rename = "@tradingPermissions", default)]
113 pub trading_permissions: Option<String>,
114
115 #[serde(rename = "@registeredRepName", default)]
117 pub registered_rep_name: Option<String>,
118
119 #[serde(rename = "@registeredRepPhone", default)]
121 pub registered_rep_phone: Option<String>,
122
123 #[serde(rename = "@ibEntity", default)]
125 pub ib_entity: Option<String>,
126
127 #[serde(rename = "@model", default)]
129 pub model: Option<String>,
130
131 #[serde(
133 rename = "@street",
134 default,
135 deserialize_with = "deserialize_optional_string"
136 )]
137 pub street: Option<String>,
138
139 #[serde(
141 rename = "@street2",
142 default,
143 deserialize_with = "deserialize_optional_string"
144 )]
145 pub street2: Option<String>,
146
147 #[serde(
149 rename = "@streetResidentialAddress",
150 default,
151 deserialize_with = "deserialize_optional_string"
152 )]
153 pub street_residential_address: Option<String>,
154
155 #[serde(
157 rename = "@street2ResidentialAddress",
158 default,
159 deserialize_with = "deserialize_optional_string"
160 )]
161 pub street2_residential_address: Option<String>,
162
163 #[serde(
165 rename = "@cityResidentialAddress",
166 default,
167 deserialize_with = "deserialize_optional_string"
168 )]
169 pub city_residential_address: Option<String>,
170
171 #[serde(
173 rename = "@stateResidentialAddress",
174 default,
175 deserialize_with = "deserialize_optional_string"
176 )]
177 pub state_residential_address: Option<String>,
178
179 #[serde(
181 rename = "@countryResidentialAddress",
182 default,
183 deserialize_with = "deserialize_optional_string"
184 )]
185 pub country_residential_address: Option<String>,
186
187 #[serde(
189 rename = "@postalCodeResidentialAddress",
190 default,
191 deserialize_with = "deserialize_optional_string"
192 )]
193 pub postal_code_residential_address: Option<String>,
194
195 #[serde(
197 rename = "@accountRepName",
198 default,
199 deserialize_with = "deserialize_optional_string"
200 )]
201 pub account_rep_name: Option<String>,
202
203 #[serde(
205 rename = "@accountRepPhone",
206 default,
207 deserialize_with = "deserialize_optional_string"
208 )]
209 pub account_rep_phone: Option<String>,
210
211 #[serde(
213 rename = "@lastTradedDate",
214 default,
215 deserialize_with = "deserialize_optional_date"
216 )]
217 pub last_traded_date: Option<NaiveDate>,
218}
219
220#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
222pub struct ChangeInNAV {
223 #[serde(
225 rename = "@accountId",
226 default,
227 deserialize_with = "deserialize_optional_string"
228 )]
229 pub account_id: Option<String>,
230
231 #[serde(rename = "@acctAlias", default)]
233 pub acct_alias: Option<String>,
234
235 #[serde(rename = "@model", default)]
237 pub model: Option<String>,
238
239 #[serde(rename = "@currency", default)]
241 pub currency: Option<String>,
242
243 #[serde(
245 rename = "@fromDate",
246 default,
247 deserialize_with = "deserialize_optional_date"
248 )]
249 pub from_date: Option<NaiveDate>,
250
251 #[serde(
253 rename = "@toDate",
254 default,
255 deserialize_with = "deserialize_optional_date"
256 )]
257 pub to_date: Option<NaiveDate>,
258
259 #[serde(
261 rename = "@startingValue",
262 default,
263 deserialize_with = "deserialize_optional_decimal"
264 )]
265 pub starting_value: Option<Decimal>,
266
267 #[serde(
269 rename = "@endingValue",
270 default,
271 deserialize_with = "deserialize_optional_decimal"
272 )]
273 pub ending_value: Option<Decimal>,
274
275 #[serde(
277 rename = "@mtm",
278 default,
279 deserialize_with = "deserialize_optional_decimal"
280 )]
281 pub mtm: Option<Decimal>,
282
283 #[serde(
285 rename = "@realized",
286 default,
287 deserialize_with = "deserialize_optional_decimal"
288 )]
289 pub realized: Option<Decimal>,
290
291 #[serde(
293 rename = "@changeInUnrealized",
294 default,
295 deserialize_with = "deserialize_optional_decimal"
296 )]
297 pub change_in_unrealized: Option<Decimal>,
298
299 #[serde(
301 rename = "@depositsWithdrawals",
302 default,
303 deserialize_with = "deserialize_optional_decimal"
304 )]
305 pub deposits_withdrawals: Option<Decimal>,
306
307 #[serde(
309 rename = "@dividends",
310 default,
311 deserialize_with = "deserialize_optional_decimal"
312 )]
313 pub dividends: Option<Decimal>,
314
315 #[serde(
317 rename = "@withholdingTax",
318 default,
319 deserialize_with = "deserialize_optional_decimal"
320 )]
321 pub withholding_tax: Option<Decimal>,
322
323 #[serde(
325 rename = "@changeInDividendAccruals",
326 default,
327 deserialize_with = "deserialize_optional_decimal"
328 )]
329 pub change_in_dividend_accruals: Option<Decimal>,
330
331 #[serde(
333 rename = "@interest",
334 default,
335 deserialize_with = "deserialize_optional_decimal"
336 )]
337 pub interest: Option<Decimal>,
338
339 #[serde(
341 rename = "@changeInInterestAccruals",
342 default,
343 deserialize_with = "deserialize_optional_decimal"
344 )]
345 pub change_in_interest_accruals: Option<Decimal>,
346
347 #[serde(
349 rename = "@advisorFees",
350 default,
351 deserialize_with = "deserialize_optional_decimal"
352 )]
353 pub advisor_fees: Option<Decimal>,
354
355 #[serde(
357 rename = "@clientFees",
358 default,
359 deserialize_with = "deserialize_optional_decimal"
360 )]
361 pub client_fees: Option<Decimal>,
362
363 #[serde(
365 rename = "@otherFees",
366 default,
367 deserialize_with = "deserialize_optional_decimal"
368 )]
369 pub other_fees: Option<Decimal>,
370
371 #[serde(
373 rename = "@commissions",
374 default,
375 deserialize_with = "deserialize_optional_decimal"
376 )]
377 pub commissions: Option<Decimal>,
378
379 #[serde(
381 rename = "@fxTranslation",
382 default,
383 deserialize_with = "deserialize_optional_decimal"
384 )]
385 pub fx_translation: Option<Decimal>,
386
387 #[serde(
389 rename = "@twr",
390 default,
391 deserialize_with = "deserialize_optional_decimal"
392 )]
393 pub twr: Option<Decimal>,
394
395 #[serde(
397 rename = "@corporateActionProceeds",
398 default,
399 deserialize_with = "deserialize_optional_decimal"
400 )]
401 pub corporate_action_proceeds: Option<Decimal>,
402
403 #[serde(
405 rename = "@costAdjustments",
406 default,
407 deserialize_with = "deserialize_optional_decimal"
408 )]
409 pub cost_adjustments: Option<Decimal>,
410
411 #[serde(
413 rename = "@transferredPnlAdjustments",
414 default,
415 deserialize_with = "deserialize_optional_decimal"
416 )]
417 pub transferred_pnl_adjustments: Option<Decimal>,
418
419 #[serde(
421 rename = "@internalCashTransfers",
422 default,
423 deserialize_with = "deserialize_optional_decimal"
424 )]
425 pub internal_cash_transfers: Option<Decimal>,
426
427 #[serde(
429 rename = "@assetTransfers",
430 default,
431 deserialize_with = "deserialize_optional_decimal"
432 )]
433 pub asset_transfers: Option<Decimal>,
434
435 #[serde(
437 rename = "@debitCardActivity",
438 default,
439 deserialize_with = "deserialize_optional_decimal"
440 )]
441 pub debit_card_activity: Option<Decimal>,
442
443 #[serde(
445 rename = "@billPay",
446 default,
447 deserialize_with = "deserialize_optional_decimal"
448 )]
449 pub bill_pay: Option<Decimal>,
450
451 #[serde(
453 rename = "@withholding871m",
454 default,
455 deserialize_with = "deserialize_optional_decimal"
456 )]
457 pub withholding871m: Option<Decimal>,
458
459 #[serde(
461 rename = "@withholdingTaxCollected",
462 default,
463 deserialize_with = "deserialize_optional_decimal"
464 )]
465 pub withholding_tax_collected: Option<Decimal>,
466
467 #[serde(
469 rename = "@brokerFees",
470 default,
471 deserialize_with = "deserialize_optional_decimal"
472 )]
473 pub broker_fees: Option<Decimal>,
474
475 #[serde(
477 rename = "@changeInBrokerFeeAccruals",
478 default,
479 deserialize_with = "deserialize_optional_decimal"
480 )]
481 pub change_in_broker_fee_accruals: Option<Decimal>,
482
483 #[serde(
485 rename = "@feesReceivables",
486 default,
487 deserialize_with = "deserialize_optional_decimal"
488 )]
489 pub fees_receivables: Option<Decimal>,
490
491 #[serde(
493 rename = "@commissionReceivables",
494 default,
495 deserialize_with = "deserialize_optional_decimal"
496 )]
497 pub commission_receivables: Option<Decimal>,
498
499 #[serde(
501 rename = "@forexCommissions",
502 default,
503 deserialize_with = "deserialize_optional_decimal"
504 )]
505 pub forex_commissions: Option<Decimal>,
506
507 #[serde(
509 rename = "@transactionTax",
510 default,
511 deserialize_with = "deserialize_optional_decimal"
512 )]
513 pub transaction_tax: Option<Decimal>,
514
515 #[serde(
517 rename = "@taxReceivables",
518 default,
519 deserialize_with = "deserialize_optional_decimal"
520 )]
521 pub tax_receivables: Option<Decimal>,
522
523 #[serde(
525 rename = "@salesTax",
526 default,
527 deserialize_with = "deserialize_optional_decimal"
528 )]
529 pub sales_tax: Option<Decimal>,
530
531 #[serde(
533 rename = "@softDollars",
534 default,
535 deserialize_with = "deserialize_optional_decimal"
536 )]
537 pub soft_dollars: Option<Decimal>,
538
539 #[serde(
541 rename = "@netFxTrading",
542 default,
543 deserialize_with = "deserialize_optional_decimal"
544 )]
545 pub net_fx_trading: Option<Decimal>,
546
547 #[serde(
549 rename = "@linkingAdjustments",
550 default,
551 deserialize_with = "deserialize_optional_decimal"
552 )]
553 pub linking_adjustments: Option<Decimal>,
554
555 #[serde(
557 rename = "@other",
558 default,
559 deserialize_with = "deserialize_optional_decimal"
560 )]
561 pub other: Option<Decimal>,
562
563 #[serde(
565 rename = "@commissionCreditsRedemption",
566 default,
567 deserialize_with = "deserialize_optional_decimal"
568 )]
569 pub commission_credits_redemption: Option<Decimal>,
570
571 #[serde(
573 rename = "@grantActivity",
574 default,
575 deserialize_with = "deserialize_optional_decimal"
576 )]
577 pub grant_activity: Option<Decimal>,
578
579 #[serde(
581 rename = "@excessFundSweep",
582 default,
583 deserialize_with = "deserialize_optional_decimal"
584 )]
585 pub excess_fund_sweep: Option<Decimal>,
586
587 #[serde(
589 rename = "@billableSalesTax",
590 default,
591 deserialize_with = "deserialize_optional_decimal"
592 )]
593 pub billable_sales_tax: Option<Decimal>,
594
595 #[serde(
597 rename = "@mtmAtPaxos",
598 default,
599 deserialize_with = "deserialize_optional_decimal"
600 )]
601 pub mtm_at_paxos: Option<Decimal>,
602
603 #[serde(
605 rename = "@carbonCredits",
606 default,
607 deserialize_with = "deserialize_optional_decimal"
608 )]
609 pub carbon_credits: Option<Decimal>,
610
611 #[serde(
613 rename = "@donations",
614 default,
615 deserialize_with = "deserialize_optional_decimal"
616 )]
617 pub donations: Option<Decimal>,
618
619 #[serde(
621 rename = "@paxosTransfers",
622 default,
623 deserialize_with = "deserialize_optional_decimal"
624 )]
625 pub paxos_transfers: Option<Decimal>,
626
627 #[serde(
629 rename = "@commissionsAtPaxos",
630 default,
631 deserialize_with = "deserialize_optional_decimal"
632 )]
633 pub commissions_at_paxos: Option<Decimal>,
634
635 #[serde(
637 rename = "@referralFee",
638 default,
639 deserialize_with = "deserialize_optional_decimal"
640 )]
641 pub referral_fee: Option<Decimal>,
642
643 #[serde(
645 rename = "@changeInIncentiveCouponAccruals",
646 default,
647 deserialize_with = "deserialize_optional_decimal"
648 )]
649 pub change_in_incentive_coupon_accruals: Option<Decimal>,
650
651 #[serde(
653 rename = "@otherIncome",
654 default,
655 deserialize_with = "deserialize_optional_decimal"
656 )]
657 pub other_income: Option<Decimal>,
658}
659
660#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
662pub struct EquitySummaryByReportDateInBase {
663 #[serde(
665 rename = "@accountId",
666 default,
667 deserialize_with = "deserialize_optional_string"
668 )]
669 pub account_id: Option<String>,
670
671 #[serde(rename = "@acctAlias", default)]
673 pub acct_alias: Option<String>,
674
675 #[serde(rename = "@model", default)]
677 pub model: Option<String>,
678
679 #[serde(
681 rename = "@reportDate",
682 default,
683 deserialize_with = "deserialize_optional_date"
684 )]
685 pub report_date: Option<NaiveDate>,
686
687 #[serde(
689 rename = "@cash",
690 default,
691 deserialize_with = "deserialize_optional_decimal"
692 )]
693 pub cash: Option<Decimal>,
694
695 #[serde(
697 rename = "@cashLong",
698 default,
699 deserialize_with = "deserialize_optional_decimal"
700 )]
701 pub cash_long: Option<Decimal>,
702
703 #[serde(
705 rename = "@cashShort",
706 default,
707 deserialize_with = "deserialize_optional_decimal"
708 )]
709 pub cash_short: Option<Decimal>,
710
711 #[serde(
713 rename = "@settledCash",
714 default,
715 deserialize_with = "deserialize_optional_decimal"
716 )]
717 pub settled_cash: Option<Decimal>,
718
719 #[serde(
721 rename = "@slbCashCollateral",
722 default,
723 deserialize_with = "deserialize_optional_decimal"
724 )]
725 pub slb_cash_collateral: Option<Decimal>,
726
727 #[serde(
729 rename = "@stock",
730 default,
731 deserialize_with = "deserialize_optional_decimal"
732 )]
733 pub stock: Option<Decimal>,
734
735 #[serde(
737 rename = "@stockLong",
738 default,
739 deserialize_with = "deserialize_optional_decimal"
740 )]
741 pub stock_long: Option<Decimal>,
742
743 #[serde(
745 rename = "@stockShort",
746 default,
747 deserialize_with = "deserialize_optional_decimal"
748 )]
749 pub stock_short: Option<Decimal>,
750
751 #[serde(
753 rename = "@slbDirectSecuritiesBorrowed",
754 default,
755 deserialize_with = "deserialize_optional_decimal"
756 )]
757 pub slb_direct_securities_borrowed: Option<Decimal>,
758
759 #[serde(
761 rename = "@slbDirectSecuritiesLent",
762 default,
763 deserialize_with = "deserialize_optional_decimal"
764 )]
765 pub slb_direct_securities_lent: Option<Decimal>,
766
767 #[serde(
769 rename = "@options",
770 default,
771 deserialize_with = "deserialize_optional_decimal"
772 )]
773 pub options: Option<Decimal>,
774
775 #[serde(
777 rename = "@optionsLong",
778 default,
779 deserialize_with = "deserialize_optional_decimal"
780 )]
781 pub options_long: Option<Decimal>,
782
783 #[serde(
785 rename = "@optionsShort",
786 default,
787 deserialize_with = "deserialize_optional_decimal"
788 )]
789 pub options_short: Option<Decimal>,
790
791 #[serde(
793 rename = "@bonds",
794 default,
795 deserialize_with = "deserialize_optional_decimal"
796 )]
797 pub bonds: Option<Decimal>,
798
799 #[serde(
801 rename = "@bondsLong",
802 default,
803 deserialize_with = "deserialize_optional_decimal"
804 )]
805 pub bonds_long: Option<Decimal>,
806
807 #[serde(
809 rename = "@bondsShort",
810 default,
811 deserialize_with = "deserialize_optional_decimal"
812 )]
813 pub bonds_short: Option<Decimal>,
814
815 #[serde(
817 rename = "@notes",
818 default,
819 deserialize_with = "deserialize_optional_decimal"
820 )]
821 pub notes: Option<Decimal>,
822
823 #[serde(
825 rename = "@funds",
826 default,
827 deserialize_with = "deserialize_optional_decimal"
828 )]
829 pub funds: Option<Decimal>,
830
831 #[serde(
833 rename = "@futures",
834 default,
835 deserialize_with = "deserialize_optional_decimal"
836 )]
837 pub futures: Option<Decimal>,
838
839 #[serde(
841 rename = "@futuresLong",
842 default,
843 deserialize_with = "deserialize_optional_decimal"
844 )]
845 pub futures_long: Option<Decimal>,
846
847 #[serde(
849 rename = "@futuresShort",
850 default,
851 deserialize_with = "deserialize_optional_decimal"
852 )]
853 pub futures_short: Option<Decimal>,
854
855 #[serde(
857 rename = "@commodities",
858 default,
859 deserialize_with = "deserialize_optional_decimal"
860 )]
861 pub commodities: Option<Decimal>,
862
863 #[serde(
865 rename = "@total",
866 default,
867 deserialize_with = "deserialize_optional_decimal"
868 )]
869 pub total: Option<Decimal>,
870
871 #[serde(
873 rename = "@totalLong",
874 default,
875 deserialize_with = "deserialize_optional_decimal"
876 )]
877 pub total_long: Option<Decimal>,
878
879 #[serde(
881 rename = "@totalShort",
882 default,
883 deserialize_with = "deserialize_optional_decimal"
884 )]
885 pub total_short: Option<Decimal>,
886
887 #[serde(
889 rename = "@interestAccruals",
890 default,
891 deserialize_with = "deserialize_optional_decimal"
892 )]
893 pub interest_accruals: Option<Decimal>,
894
895 #[serde(
897 rename = "@dividendAccruals",
898 default,
899 deserialize_with = "deserialize_optional_decimal"
900 )]
901 pub dividend_accruals: Option<Decimal>,
902
903 #[serde(
905 rename = "@accruedInterest",
906 default,
907 deserialize_with = "deserialize_optional_decimal"
908 )]
909 pub accrued_interest: Option<Decimal>,
910
911 #[serde(
913 rename = "@accruedDividend",
914 default,
915 deserialize_with = "deserialize_optional_decimal"
916 )]
917 pub accrued_dividend: Option<Decimal>,
918
919 #[serde(
921 rename = "@softDollars",
922 default,
923 deserialize_with = "deserialize_optional_decimal"
924 )]
925 pub soft_dollars: Option<Decimal>,
926
927 #[serde(
929 rename = "@forexCfdUnrealizedPl",
930 default,
931 deserialize_with = "deserialize_optional_decimal"
932 )]
933 pub forex_cfd_unrealized_pl: Option<Decimal>,
934
935 #[serde(
937 rename = "@cfdUnrealizedPl",
938 default,
939 deserialize_with = "deserialize_optional_decimal"
940 )]
941 pub cfd_unrealized_pl: Option<Decimal>,
942
943 #[serde(
945 rename = "@brokerCashComponent",
946 default,
947 deserialize_with = "deserialize_optional_decimal"
948 )]
949 pub broker_cash_component: Option<Decimal>,
950
951 #[serde(
953 rename = "@brokerInterestAccrualsComponent",
954 default,
955 deserialize_with = "deserialize_optional_decimal"
956 )]
957 pub broker_interest_accruals_component: Option<Decimal>,
958
959 #[serde(
961 rename = "@grossPositionValue",
962 default,
963 deserialize_with = "deserialize_optional_decimal"
964 )]
965 pub gross_position_value: Option<Decimal>,
966
967 #[serde(
969 rename = "@netLiquidation",
970 default,
971 deserialize_with = "deserialize_optional_decimal"
972 )]
973 pub net_liquidation: Option<Decimal>,
974
975 #[serde(
977 rename = "@netLiquidationUncertainty",
978 default,
979 deserialize_with = "deserialize_optional_decimal"
980 )]
981 pub net_liquidation_uncertainty: Option<Decimal>,
982
983 #[serde(
985 rename = "@currency",
986 default,
987 deserialize_with = "deserialize_optional_string"
988 )]
989 pub currency: Option<String>,
990
991 #[serde(
993 rename = "@slbCashCollateralLong",
994 default,
995 deserialize_with = "deserialize_optional_decimal"
996 )]
997 pub slb_cash_collateral_long: Option<Decimal>,
998
999 #[serde(
1001 rename = "@slbCashCollateralShort",
1002 default,
1003 deserialize_with = "deserialize_optional_decimal"
1004 )]
1005 pub slb_cash_collateral_short: Option<Decimal>,
1006
1007 #[serde(
1009 rename = "@slbDirectSecuritiesBorrowedLong",
1010 default,
1011 deserialize_with = "deserialize_optional_decimal"
1012 )]
1013 pub slb_direct_securities_borrowed_long: Option<Decimal>,
1014
1015 #[serde(
1017 rename = "@slbDirectSecuritiesBorrowedShort",
1018 default,
1019 deserialize_with = "deserialize_optional_decimal"
1020 )]
1021 pub slb_direct_securities_borrowed_short: Option<Decimal>,
1022
1023 #[serde(
1025 rename = "@slbDirectSecuritiesLentLong",
1026 default,
1027 deserialize_with = "deserialize_optional_decimal"
1028 )]
1029 pub slb_direct_securities_lent_long: Option<Decimal>,
1030
1031 #[serde(
1033 rename = "@slbDirectSecuritiesLentShort",
1034 default,
1035 deserialize_with = "deserialize_optional_decimal"
1036 )]
1037 pub slb_direct_securities_lent_short: Option<Decimal>,
1038
1039 #[serde(
1041 rename = "@bondInterestAccrualsComponent",
1042 default,
1043 deserialize_with = "deserialize_optional_decimal"
1044 )]
1045 pub bond_interest_accruals_component: Option<Decimal>,
1046
1047 #[serde(
1049 rename = "@bondInterestAccrualsComponentLong",
1050 default,
1051 deserialize_with = "deserialize_optional_decimal"
1052 )]
1053 pub bond_interest_accruals_component_long: Option<Decimal>,
1054
1055 #[serde(
1057 rename = "@bondInterestAccrualsComponentShort",
1058 default,
1059 deserialize_with = "deserialize_optional_decimal"
1060 )]
1061 pub bond_interest_accruals_component_short: Option<Decimal>,
1062
1063 #[serde(
1065 rename = "@notesLong",
1066 default,
1067 deserialize_with = "deserialize_optional_decimal"
1068 )]
1069 pub notes_long: Option<Decimal>,
1070
1071 #[serde(
1073 rename = "@notesShort",
1074 default,
1075 deserialize_with = "deserialize_optional_decimal"
1076 )]
1077 pub notes_short: Option<Decimal>,
1078
1079 #[serde(
1081 rename = "@incentiveCouponAccruals",
1082 default,
1083 deserialize_with = "deserialize_optional_decimal"
1084 )]
1085 pub incentive_coupon_accruals: Option<Decimal>,
1086
1087 #[serde(
1089 rename = "@interestAccrualsLong",
1090 default,
1091 deserialize_with = "deserialize_optional_decimal"
1092 )]
1093 pub interest_accruals_long: Option<Decimal>,
1094
1095 #[serde(
1097 rename = "@interestAccrualsShort",
1098 default,
1099 deserialize_with = "deserialize_optional_decimal"
1100 )]
1101 pub interest_accruals_short: Option<Decimal>,
1102
1103 #[serde(
1105 rename = "@softDollarsLong",
1106 default,
1107 deserialize_with = "deserialize_optional_decimal"
1108 )]
1109 pub soft_dollars_long: Option<Decimal>,
1110
1111 #[serde(
1113 rename = "@softDollarsShort",
1114 default,
1115 deserialize_with = "deserialize_optional_decimal"
1116 )]
1117 pub soft_dollars_short: Option<Decimal>,
1118
1119 #[serde(
1121 rename = "@dividendAccrualsLong",
1122 default,
1123 deserialize_with = "deserialize_optional_decimal"
1124 )]
1125 pub dividend_accruals_long: Option<Decimal>,
1126
1127 #[serde(
1129 rename = "@dividendAccrualsShort",
1130 default,
1131 deserialize_with = "deserialize_optional_decimal"
1132 )]
1133 pub dividend_accruals_short: Option<Decimal>,
1134
1135 #[serde(
1137 rename = "@commoditiesLong",
1138 default,
1139 deserialize_with = "deserialize_optional_decimal"
1140 )]
1141 pub commodities_long: Option<Decimal>,
1142
1143 #[serde(
1145 rename = "@commoditiesShort",
1146 default,
1147 deserialize_with = "deserialize_optional_decimal"
1148 )]
1149 pub commodities_short: Option<Decimal>,
1150
1151 #[serde(
1153 rename = "@fundsLong",
1154 default,
1155 deserialize_with = "deserialize_optional_decimal"
1156 )]
1157 pub funds_long: Option<Decimal>,
1158
1159 #[serde(
1161 rename = "@fundsShort",
1162 default,
1163 deserialize_with = "deserialize_optional_decimal"
1164 )]
1165 pub funds_short: Option<Decimal>,
1166
1167 #[serde(
1169 rename = "@forexCfdUnrealizedPlLong",
1170 default,
1171 deserialize_with = "deserialize_optional_decimal"
1172 )]
1173 pub forex_cfd_unrealized_pl_long: Option<Decimal>,
1174
1175 #[serde(
1177 rename = "@forexCfdUnrealizedPlShort",
1178 default,
1179 deserialize_with = "deserialize_optional_decimal"
1180 )]
1181 pub forex_cfd_unrealized_pl_short: Option<Decimal>,
1182
1183 #[serde(
1185 rename = "@brokerFeesAccrualsComponent",
1186 default,
1187 deserialize_with = "deserialize_optional_decimal"
1188 )]
1189 pub broker_fees_accruals_component: Option<Decimal>,
1190
1191 #[serde(
1193 rename = "@brokerFeesAccrualsComponentLong",
1194 default,
1195 deserialize_with = "deserialize_optional_decimal"
1196 )]
1197 pub broker_fees_accruals_component_long: Option<Decimal>,
1198
1199 #[serde(
1201 rename = "@brokerFeesAccrualsComponentShort",
1202 default,
1203 deserialize_with = "deserialize_optional_decimal"
1204 )]
1205 pub broker_fees_accruals_component_short: Option<Decimal>,
1206
1207 #[serde(
1209 rename = "@eventContractInterestAccruals",
1210 default,
1211 deserialize_with = "deserialize_optional_decimal"
1212 )]
1213 pub event_contract_interest_accruals: Option<Decimal>,
1214
1215 #[serde(
1217 rename = "@marginFinancingChargeAccruals",
1218 default,
1219 deserialize_with = "deserialize_optional_decimal"
1220 )]
1221 pub margin_financing_charge_accruals: Option<Decimal>,
1222
1223 #[serde(
1225 rename = "@insuredBankDepositRedemptionCashComponent",
1226 default,
1227 deserialize_with = "deserialize_optional_decimal"
1228 )]
1229 pub insured_bank_deposit_redemption_cash_component: Option<Decimal>,
1230
1231 #[serde(
1233 rename = "@fdicInsuredBankSweepAccount",
1234 default,
1235 deserialize_with = "deserialize_optional_decimal"
1236 )]
1237 pub fdic_insured_bank_sweep_account: Option<Decimal>,
1238
1239 #[serde(
1241 rename = "@fdicInsuredBankSweepAccountLong",
1242 default,
1243 deserialize_with = "deserialize_optional_decimal"
1244 )]
1245 pub fdic_insured_bank_sweep_account_long: Option<Decimal>,
1246
1247 #[serde(
1249 rename = "@fdicInsuredBankSweepAccountShort",
1250 default,
1251 deserialize_with = "deserialize_optional_decimal"
1252 )]
1253 pub fdic_insured_bank_sweep_account_short: Option<Decimal>,
1254
1255 #[serde(
1257 rename = "@fdicInsuredBankSweepAccountCashComponent",
1258 default,
1259 deserialize_with = "deserialize_optional_decimal"
1260 )]
1261 pub fdic_insured_bank_sweep_account_cash_component: Option<Decimal>,
1262
1263 #[serde(
1265 rename = "@fdicInsuredBankSweepAccountCashComponentLong",
1266 default,
1267 deserialize_with = "deserialize_optional_decimal"
1268 )]
1269 pub fdic_insured_bank_sweep_account_cash_component_long: Option<Decimal>,
1270
1271 #[serde(
1273 rename = "@fdicInsuredBankSweepAccountCashComponentShort",
1274 default,
1275 deserialize_with = "deserialize_optional_decimal"
1276 )]
1277 pub fdic_insured_bank_sweep_account_cash_component_short: Option<Decimal>,
1278
1279 #[serde(
1281 rename = "@fdicInsuredAccountInterestAccruals",
1282 default,
1283 deserialize_with = "deserialize_optional_decimal"
1284 )]
1285 pub fdic_insured_account_interest_accruals: Option<Decimal>,
1286
1287 #[serde(
1289 rename = "@fdicInsuredAccountInterestAccrualsLong",
1290 default,
1291 deserialize_with = "deserialize_optional_decimal"
1292 )]
1293 pub fdic_insured_account_interest_accruals_long: Option<Decimal>,
1294
1295 #[serde(
1297 rename = "@fdicInsuredAccountInterestAccrualsShort",
1298 default,
1299 deserialize_with = "deserialize_optional_decimal"
1300 )]
1301 pub fdic_insured_account_interest_accruals_short: Option<Decimal>,
1302
1303 #[serde(
1305 rename = "@fdicInsuredAccountInterestAccrualsComponent",
1306 default,
1307 deserialize_with = "deserialize_optional_decimal"
1308 )]
1309 pub fdic_insured_account_interest_accruals_component: Option<Decimal>,
1310
1311 #[serde(
1313 rename = "@fdicInsuredAccountInterestAccrualsComponentLong",
1314 default,
1315 deserialize_with = "deserialize_optional_decimal"
1316 )]
1317 pub fdic_insured_account_interest_accruals_component_long: Option<Decimal>,
1318
1319 #[serde(
1321 rename = "@fdicInsuredAccountInterestAccrualsComponentShort",
1322 default,
1323 deserialize_with = "deserialize_optional_decimal"
1324 )]
1325 pub fdic_insured_account_interest_accruals_component_short: Option<Decimal>,
1326
1327 #[serde(
1329 rename = "@brokerCashComponentLong",
1330 default,
1331 deserialize_with = "deserialize_optional_decimal"
1332 )]
1333 pub broker_cash_component_long: Option<Decimal>,
1334
1335 #[serde(
1337 rename = "@brokerCashComponentShort",
1338 default,
1339 deserialize_with = "deserialize_optional_decimal"
1340 )]
1341 pub broker_cash_component_short: Option<Decimal>,
1342
1343 #[serde(
1345 rename = "@brokerInterestAccrualsComponentLong",
1346 default,
1347 deserialize_with = "deserialize_optional_decimal"
1348 )]
1349 pub broker_interest_accruals_component_long: Option<Decimal>,
1350
1351 #[serde(
1353 rename = "@brokerInterestAccrualsComponentShort",
1354 default,
1355 deserialize_with = "deserialize_optional_decimal"
1356 )]
1357 pub broker_interest_accruals_component_short: Option<Decimal>,
1358
1359 #[serde(
1361 rename = "@cfdUnrealizedPlLong",
1362 default,
1363 deserialize_with = "deserialize_optional_decimal"
1364 )]
1365 pub cfd_unrealized_pl_long: Option<Decimal>,
1366
1367 #[serde(
1369 rename = "@cfdUnrealizedPlShort",
1370 default,
1371 deserialize_with = "deserialize_optional_decimal"
1372 )]
1373 pub cfd_unrealized_pl_short: Option<Decimal>,
1374
1375 #[serde(
1377 rename = "@ipoSubscription",
1378 default,
1379 deserialize_with = "deserialize_optional_decimal"
1380 )]
1381 pub ipo_subscription: Option<Decimal>,
1382
1383 #[serde(
1385 rename = "@ipoSubscriptionLong",
1386 default,
1387 deserialize_with = "deserialize_optional_decimal"
1388 )]
1389 pub ipo_subscription_long: Option<Decimal>,
1390
1391 #[serde(
1393 rename = "@ipoSubscriptionShort",
1394 default,
1395 deserialize_with = "deserialize_optional_decimal"
1396 )]
1397 pub ipo_subscription_short: Option<Decimal>,
1398
1399 #[serde(
1401 rename = "@crypto",
1402 default,
1403 deserialize_with = "deserialize_optional_decimal"
1404 )]
1405 pub crypto: Option<Decimal>,
1406
1407 #[serde(
1409 rename = "@physDel",
1410 default,
1411 deserialize_with = "deserialize_optional_decimal"
1412 )]
1413 pub phys_del: Option<Decimal>,
1414
1415 #[serde(
1417 rename = "@physDelLong",
1418 default,
1419 deserialize_with = "deserialize_optional_decimal"
1420 )]
1421 pub phys_del_long: Option<Decimal>,
1422
1423 #[serde(
1425 rename = "@physDelShort",
1426 default,
1427 deserialize_with = "deserialize_optional_decimal"
1428 )]
1429 pub phys_del_short: Option<Decimal>,
1430
1431 #[serde(
1433 rename = "@insuredBankDepositRedemptionCashComponentLong",
1434 default,
1435 deserialize_with = "deserialize_optional_decimal"
1436 )]
1437 pub insured_bank_deposit_redemption_cash_component_long: Option<Decimal>,
1438
1439 #[serde(
1441 rename = "@insuredBankDepositRedemptionCashComponentShort",
1442 default,
1443 deserialize_with = "deserialize_optional_decimal"
1444 )]
1445 pub insured_bank_deposit_redemption_cash_component_short: Option<Decimal>,
1446
1447 #[serde(
1449 rename = "@incentiveCouponAccrualsLong",
1450 default,
1451 deserialize_with = "deserialize_optional_decimal"
1452 )]
1453 pub incentive_coupon_accruals_long: Option<Decimal>,
1454
1455 #[serde(
1457 rename = "@incentiveCouponAccrualsShort",
1458 default,
1459 deserialize_with = "deserialize_optional_decimal"
1460 )]
1461 pub incentive_coupon_accruals_short: Option<Decimal>,
1462
1463 #[serde(
1465 rename = "@eventContractInterestAccrualsLong",
1466 default,
1467 deserialize_with = "deserialize_optional_decimal"
1468 )]
1469 pub event_contract_interest_accruals_long: Option<Decimal>,
1470
1471 #[serde(
1473 rename = "@eventContractInterestAccrualsShort",
1474 default,
1475 deserialize_with = "deserialize_optional_decimal"
1476 )]
1477 pub event_contract_interest_accruals_short: Option<Decimal>,
1478
1479 #[serde(
1481 rename = "@marginFinancingChargeAccrualsLong",
1482 default,
1483 deserialize_with = "deserialize_optional_decimal"
1484 )]
1485 pub margin_financing_charge_accruals_long: Option<Decimal>,
1486
1487 #[serde(
1489 rename = "@marginFinancingChargeAccrualsShort",
1490 default,
1491 deserialize_with = "deserialize_optional_decimal"
1492 )]
1493 pub margin_financing_charge_accruals_short: Option<Decimal>,
1494
1495 #[serde(
1497 rename = "@cryptoLong",
1498 default,
1499 deserialize_with = "deserialize_optional_decimal"
1500 )]
1501 pub crypto_long: Option<Decimal>,
1502
1503 #[serde(
1505 rename = "@cryptoShort",
1506 default,
1507 deserialize_with = "deserialize_optional_decimal"
1508 )]
1509 pub crypto_short: Option<Decimal>,
1510
1511 #[serde(
1513 rename = "@liteSurchargeAccruals",
1514 default,
1515 deserialize_with = "deserialize_optional_decimal"
1516 )]
1517 pub lite_surcharge_accruals: Option<Decimal>,
1518}
1519
1520#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
1522pub struct CashReportCurrency {
1523 #[serde(
1525 rename = "@accountId",
1526 default,
1527 deserialize_with = "deserialize_optional_string"
1528 )]
1529 pub account_id: Option<String>,
1530
1531 #[serde(rename = "@acctAlias", default)]
1533 pub acct_alias: Option<String>,
1534
1535 #[serde(rename = "@model", default)]
1537 pub model: Option<String>,
1538
1539 #[serde(
1541 rename = "@currency",
1542 default,
1543 deserialize_with = "deserialize_optional_string"
1544 )]
1545 pub currency: Option<String>,
1546
1547 #[serde(
1549 rename = "@fromDate",
1550 default,
1551 deserialize_with = "deserialize_optional_date"
1552 )]
1553 pub from_date: Option<NaiveDate>,
1554
1555 #[serde(
1557 rename = "@toDate",
1558 default,
1559 deserialize_with = "deserialize_optional_date"
1560 )]
1561 pub to_date: Option<NaiveDate>,
1562
1563 #[serde(
1565 rename = "@startingCash",
1566 default,
1567 deserialize_with = "deserialize_optional_decimal"
1568 )]
1569 pub starting_cash: Option<Decimal>,
1570
1571 #[serde(
1573 rename = "@startingCashSec",
1574 default,
1575 deserialize_with = "deserialize_optional_decimal"
1576 )]
1577 pub starting_cash_sec: Option<Decimal>,
1578
1579 #[serde(
1581 rename = "@startingCashCom",
1582 default,
1583 deserialize_with = "deserialize_optional_decimal"
1584 )]
1585 pub starting_cash_com: Option<Decimal>,
1586
1587 #[serde(
1589 rename = "@commissions",
1590 default,
1591 deserialize_with = "deserialize_optional_decimal"
1592 )]
1593 pub commissions: Option<Decimal>,
1594
1595 #[serde(
1597 rename = "@commissionsSec",
1598 default,
1599 deserialize_with = "deserialize_optional_decimal"
1600 )]
1601 pub commissions_sec: Option<Decimal>,
1602
1603 #[serde(
1605 rename = "@commissionsCom",
1606 default,
1607 deserialize_with = "deserialize_optional_decimal"
1608 )]
1609 pub commissions_com: Option<Decimal>,
1610
1611 #[serde(
1613 rename = "@deposits",
1614 default,
1615 deserialize_with = "deserialize_optional_decimal"
1616 )]
1617 pub deposits: Option<Decimal>,
1618
1619 #[serde(
1621 rename = "@withdrawals",
1622 default,
1623 deserialize_with = "deserialize_optional_decimal"
1624 )]
1625 pub withdrawals: Option<Decimal>,
1626
1627 #[serde(
1629 rename = "@dividends",
1630 default,
1631 deserialize_with = "deserialize_optional_decimal"
1632 )]
1633 pub dividends: Option<Decimal>,
1634
1635 #[serde(
1637 rename = "@brokerInterest",
1638 default,
1639 deserialize_with = "deserialize_optional_decimal"
1640 )]
1641 pub broker_interest: Option<Decimal>,
1642
1643 #[serde(
1645 rename = "@bondInterest",
1646 default,
1647 deserialize_with = "deserialize_optional_decimal"
1648 )]
1649 pub bond_interest: Option<Decimal>,
1650
1651 #[serde(
1653 rename = "@withholdingTax",
1654 default,
1655 deserialize_with = "deserialize_optional_decimal"
1656 )]
1657 pub withholding_tax: Option<Decimal>,
1658
1659 #[serde(
1661 rename = "@netTradesSales",
1662 default,
1663 deserialize_with = "deserialize_optional_decimal"
1664 )]
1665 pub net_trades_sales: Option<Decimal>,
1666
1667 #[serde(
1669 rename = "@netTradesPurchases",
1670 default,
1671 deserialize_with = "deserialize_optional_decimal"
1672 )]
1673 pub net_trades_purchases: Option<Decimal>,
1674
1675 #[serde(
1677 rename = "@accountTransfers",
1678 default,
1679 deserialize_with = "deserialize_optional_decimal"
1680 )]
1681 pub account_transfers: Option<Decimal>,
1682
1683 #[serde(
1685 rename = "@internalTransfers",
1686 default,
1687 deserialize_with = "deserialize_optional_decimal"
1688 )]
1689 pub internal_transfers: Option<Decimal>,
1690
1691 #[serde(
1693 rename = "@externalTransfers",
1694 default,
1695 deserialize_with = "deserialize_optional_decimal"
1696 )]
1697 pub external_transfers: Option<Decimal>,
1698
1699 #[serde(
1701 rename = "@linkingAdjustments",
1702 default,
1703 deserialize_with = "deserialize_optional_decimal"
1704 )]
1705 pub linking_adjustments: Option<Decimal>,
1706
1707 #[serde(
1709 rename = "@otherFees",
1710 default,
1711 deserialize_with = "deserialize_optional_decimal"
1712 )]
1713 pub other_fees: Option<Decimal>,
1714
1715 #[serde(
1717 rename = "@fxTranslationPnl",
1718 default,
1719 deserialize_with = "deserialize_optional_decimal"
1720 )]
1721 pub fx_translation_pnl: Option<Decimal>,
1722
1723 #[serde(
1725 rename = "@billableSalesTax",
1726 default,
1727 deserialize_with = "deserialize_optional_decimal"
1728 )]
1729 pub billable_sales_tax: Option<Decimal>,
1730
1731 #[serde(
1733 rename = "@realizedForexPnl",
1734 default,
1735 deserialize_with = "deserialize_optional_decimal"
1736 )]
1737 pub realized_forex_pnl: Option<Decimal>,
1738
1739 #[serde(
1741 rename = "@debitCardActivity",
1742 default,
1743 deserialize_with = "deserialize_optional_decimal"
1744 )]
1745 pub debit_card_activity: Option<Decimal>,
1746
1747 #[serde(
1749 rename = "@clientFees",
1750 default,
1751 deserialize_with = "deserialize_optional_decimal"
1752 )]
1753 pub client_fees: Option<Decimal>,
1754
1755 #[serde(
1757 rename = "@cashSettlingMtm",
1758 default,
1759 deserialize_with = "deserialize_optional_decimal"
1760 )]
1761 pub cash_settling_mtm: Option<Decimal>,
1762
1763 #[serde(
1765 rename = "@softDollars",
1766 default,
1767 deserialize_with = "deserialize_optional_decimal"
1768 )]
1769 pub soft_dollars: Option<Decimal>,
1770
1771 #[serde(
1773 rename = "@endingCash",
1774 default,
1775 deserialize_with = "deserialize_optional_decimal"
1776 )]
1777 pub ending_cash: Option<Decimal>,
1778
1779 #[serde(
1781 rename = "@endingCashSec",
1782 default,
1783 deserialize_with = "deserialize_optional_decimal"
1784 )]
1785 pub ending_cash_sec: Option<Decimal>,
1786
1787 #[serde(
1789 rename = "@endingCashCom",
1790 default,
1791 deserialize_with = "deserialize_optional_decimal"
1792 )]
1793 pub ending_cash_com: Option<Decimal>,
1794
1795 #[serde(
1797 rename = "@endingSettledCash",
1798 default,
1799 deserialize_with = "deserialize_optional_decimal"
1800 )]
1801 pub ending_settled_cash: Option<Decimal>,
1802
1803 #[serde(
1805 rename = "@endingSettledCashSec",
1806 default,
1807 deserialize_with = "deserialize_optional_decimal"
1808 )]
1809 pub ending_settled_cash_sec: Option<Decimal>,
1810
1811 #[serde(
1813 rename = "@endingSettledCashCom",
1814 default,
1815 deserialize_with = "deserialize_optional_decimal"
1816 )]
1817 pub ending_settled_cash_com: Option<Decimal>,
1818
1819 #[serde(
1821 rename = "@startingCashPaxos",
1822 default,
1823 deserialize_with = "deserialize_optional_decimal"
1824 )]
1825 pub starting_cash_paxos: Option<Decimal>,
1826
1827 #[serde(
1829 rename = "@clientFeesSec",
1830 default,
1831 deserialize_with = "deserialize_optional_decimal"
1832 )]
1833 pub client_fees_sec: Option<Decimal>,
1834
1835 #[serde(
1837 rename = "@clientFeesCom",
1838 default,
1839 deserialize_with = "deserialize_optional_decimal"
1840 )]
1841 pub client_fees_com: Option<Decimal>,
1842
1843 #[serde(
1845 rename = "@billableCommissions",
1846 default,
1847 deserialize_with = "deserialize_optional_decimal"
1848 )]
1849 pub billable_commissions: Option<Decimal>,
1850
1851 #[serde(
1853 rename = "@billableCommissionsSec",
1854 default,
1855 deserialize_with = "deserialize_optional_decimal"
1856 )]
1857 pub billable_commissions_sec: Option<Decimal>,
1858
1859 #[serde(
1861 rename = "@billableCommissionsCom",
1862 default,
1863 deserialize_with = "deserialize_optional_decimal"
1864 )]
1865 pub billable_commissions_com: Option<Decimal>,
1866
1867 #[serde(
1869 rename = "@billableSalesTaxIBUKL",
1870 default,
1871 deserialize_with = "deserialize_optional_decimal"
1872 )]
1873 pub billable_sales_tax_ibukl: Option<Decimal>,
1874
1875 #[serde(
1877 rename = "@depositWithdrawals",
1878 default,
1879 deserialize_with = "deserialize_optional_decimal"
1880 )]
1881 pub deposit_withdrawals: Option<Decimal>,
1882
1883 #[serde(
1885 rename = "@depositWithdrawalsSec",
1886 default,
1887 deserialize_with = "deserialize_optional_decimal"
1888 )]
1889 pub deposit_withdrawals_sec: Option<Decimal>,
1890
1891 #[serde(
1893 rename = "@depositWithdrawalsCom",
1894 default,
1895 deserialize_with = "deserialize_optional_decimal"
1896 )]
1897 pub deposit_withdrawals_com: Option<Decimal>,
1898
1899 #[serde(
1901 rename = "@depositsSec",
1902 default,
1903 deserialize_with = "deserialize_optional_decimal"
1904 )]
1905 pub deposits_sec: Option<Decimal>,
1906
1907 #[serde(
1909 rename = "@depositsCom",
1910 default,
1911 deserialize_with = "deserialize_optional_decimal"
1912 )]
1913 pub deposits_com: Option<Decimal>,
1914
1915 #[serde(
1917 rename = "@withdrawalsSec",
1918 default,
1919 deserialize_with = "deserialize_optional_decimal"
1920 )]
1921 pub withdrawals_sec: Option<Decimal>,
1922
1923 #[serde(
1925 rename = "@withdrawalsCom",
1926 default,
1927 deserialize_with = "deserialize_optional_decimal"
1928 )]
1929 pub withdrawals_com: Option<Decimal>,
1930
1931 #[serde(
1933 rename = "@accountTransfersSec",
1934 default,
1935 deserialize_with = "deserialize_optional_decimal"
1936 )]
1937 pub account_transfers_sec: Option<Decimal>,
1938
1939 #[serde(
1941 rename = "@accountTransfersCom",
1942 default,
1943 deserialize_with = "deserialize_optional_decimal"
1944 )]
1945 pub account_transfers_com: Option<Decimal>,
1946
1947 #[serde(
1949 rename = "@internalTransfersSec",
1950 default,
1951 deserialize_with = "deserialize_optional_decimal"
1952 )]
1953 pub internal_transfers_sec: Option<Decimal>,
1954
1955 #[serde(
1957 rename = "@internalTransfersCom",
1958 default,
1959 deserialize_with = "deserialize_optional_decimal"
1960 )]
1961 pub internal_transfers_com: Option<Decimal>,
1962
1963 #[serde(
1965 rename = "@dividendsSec",
1966 default,
1967 deserialize_with = "deserialize_optional_decimal"
1968 )]
1969 pub dividends_sec: Option<Decimal>,
1970
1971 #[serde(
1973 rename = "@dividendsCom",
1974 default,
1975 deserialize_with = "deserialize_optional_decimal"
1976 )]
1977 pub dividends_com: Option<Decimal>,
1978
1979 #[serde(
1981 rename = "@brokerFees",
1982 default,
1983 deserialize_with = "deserialize_optional_decimal"
1984 )]
1985 pub broker_fees: Option<Decimal>,
1986
1987 #[serde(
1989 rename = "@brokerFeesSec",
1990 default,
1991 deserialize_with = "deserialize_optional_decimal"
1992 )]
1993 pub broker_fees_sec: Option<Decimal>,
1994
1995 #[serde(
1997 rename = "@brokerFeesCom",
1998 default,
1999 deserialize_with = "deserialize_optional_decimal"
2000 )]
2001 pub broker_fees_com: Option<Decimal>,
2002
2003 #[serde(
2005 rename = "@brokerFeesMTD",
2006 default,
2007 deserialize_with = "deserialize_optional_decimal"
2008 )]
2009 pub broker_fees_mtd: Option<Decimal>,
2010
2011 #[serde(
2013 rename = "@brokerFeesYTD",
2014 default,
2015 deserialize_with = "deserialize_optional_decimal"
2016 )]
2017 pub broker_fees_ytd: Option<Decimal>,
2018
2019 #[serde(
2021 rename = "@brokerFeesPaxos",
2022 default,
2023 deserialize_with = "deserialize_optional_decimal"
2024 )]
2025 pub broker_fees_paxos: Option<Decimal>,
2026
2027 #[serde(
2029 rename = "@brokerInterestSec",
2030 default,
2031 deserialize_with = "deserialize_optional_decimal"
2032 )]
2033 pub broker_interest_sec: Option<Decimal>,
2034
2035 #[serde(
2037 rename = "@brokerInterestCom",
2038 default,
2039 deserialize_with = "deserialize_optional_decimal"
2040 )]
2041 pub broker_interest_com: Option<Decimal>,
2042
2043 #[serde(
2045 rename = "@bondInterestSec",
2046 default,
2047 deserialize_with = "deserialize_optional_decimal"
2048 )]
2049 pub bond_interest_sec: Option<Decimal>,
2050
2051 #[serde(
2053 rename = "@bondInterestCom",
2054 default,
2055 deserialize_with = "deserialize_optional_decimal"
2056 )]
2057 pub bond_interest_com: Option<Decimal>,
2058
2059 #[serde(
2061 rename = "@bondInterestPaxos",
2062 default,
2063 deserialize_with = "deserialize_optional_decimal"
2064 )]
2065 pub bond_interest_paxos: Option<Decimal>,
2066
2067 #[serde(
2069 rename = "@cashSettlingMtmSec",
2070 default,
2071 deserialize_with = "deserialize_optional_decimal"
2072 )]
2073 pub cash_settling_mtm_sec: Option<Decimal>,
2074
2075 #[serde(
2077 rename = "@cashSettlingMtmCom",
2078 default,
2079 deserialize_with = "deserialize_optional_decimal"
2080 )]
2081 pub cash_settling_mtm_com: Option<Decimal>,
2082
2083 #[serde(
2085 rename = "@cfdCharges",
2086 default,
2087 deserialize_with = "deserialize_optional_decimal"
2088 )]
2089 pub cfd_charges: Option<Decimal>,
2090
2091 #[serde(
2093 rename = "@cfdChargesSec",
2094 default,
2095 deserialize_with = "deserialize_optional_decimal"
2096 )]
2097 pub cfd_charges_sec: Option<Decimal>,
2098
2099 #[serde(
2101 rename = "@cfdChargesCom",
2102 default,
2103 deserialize_with = "deserialize_optional_decimal"
2104 )]
2105 pub cfd_charges_com: Option<Decimal>,
2106
2107 #[serde(
2109 rename = "@netTradesSalesSec",
2110 default,
2111 deserialize_with = "deserialize_optional_decimal"
2112 )]
2113 pub net_trades_sales_sec: Option<Decimal>,
2114
2115 #[serde(
2117 rename = "@netTradesSalesCom",
2118 default,
2119 deserialize_with = "deserialize_optional_decimal"
2120 )]
2121 pub net_trades_sales_com: Option<Decimal>,
2122
2123 #[serde(
2125 rename = "@netTradesPurchasesSec",
2126 default,
2127 deserialize_with = "deserialize_optional_decimal"
2128 )]
2129 pub net_trades_purchases_sec: Option<Decimal>,
2130
2131 #[serde(
2133 rename = "@netTradesPurchasesCom",
2134 default,
2135 deserialize_with = "deserialize_optional_decimal"
2136 )]
2137 pub net_trades_purchases_com: Option<Decimal>,
2138
2139 #[serde(
2141 rename = "@feesReceivables",
2142 default,
2143 deserialize_with = "deserialize_optional_decimal"
2144 )]
2145 pub fees_receivables: Option<Decimal>,
2146
2147 #[serde(
2149 rename = "@feesReceivablesSec",
2150 default,
2151 deserialize_with = "deserialize_optional_decimal"
2152 )]
2153 pub fees_receivables_sec: Option<Decimal>,
2154
2155 #[serde(
2157 rename = "@feesReceivablesCom",
2158 default,
2159 deserialize_with = "deserialize_optional_decimal"
2160 )]
2161 pub fees_receivables_com: Option<Decimal>,
2162
2163 #[serde(
2165 rename = "@paymentInLieu",
2166 default,
2167 deserialize_with = "deserialize_optional_decimal"
2168 )]
2169 pub payment_in_lieu: Option<Decimal>,
2170
2171 #[serde(
2173 rename = "@paymentInLieuSec",
2174 default,
2175 deserialize_with = "deserialize_optional_decimal"
2176 )]
2177 pub payment_in_lieu_sec: Option<Decimal>,
2178
2179 #[serde(
2181 rename = "@paymentInLieuCom",
2182 default,
2183 deserialize_with = "deserialize_optional_decimal"
2184 )]
2185 pub payment_in_lieu_com: Option<Decimal>,
2186
2187 #[serde(
2189 rename = "@paymentInLieuIBUKL",
2190 default,
2191 deserialize_with = "deserialize_optional_decimal"
2192 )]
2193 pub payment_in_lieu_ibukl: Option<Decimal>,
2194
2195 #[serde(
2197 rename = "@transactionTax",
2198 default,
2199 deserialize_with = "deserialize_optional_decimal"
2200 )]
2201 pub transaction_tax: Option<Decimal>,
2202
2203 #[serde(
2205 rename = "@transactionTaxSec",
2206 default,
2207 deserialize_with = "deserialize_optional_decimal"
2208 )]
2209 pub transaction_tax_sec: Option<Decimal>,
2210
2211 #[serde(
2213 rename = "@transactionTaxCom",
2214 default,
2215 deserialize_with = "deserialize_optional_decimal"
2216 )]
2217 pub transaction_tax_com: Option<Decimal>,
2218
2219 #[serde(
2221 rename = "@withholdingTaxSec",
2222 default,
2223 deserialize_with = "deserialize_optional_decimal"
2224 )]
2225 pub withholding_tax_sec: Option<Decimal>,
2226
2227 #[serde(
2229 rename = "@withholdingTaxCom",
2230 default,
2231 deserialize_with = "deserialize_optional_decimal"
2232 )]
2233 pub withholding_tax_com: Option<Decimal>,
2234
2235 #[serde(
2237 rename = "@fxTranslationGainLoss",
2238 default,
2239 deserialize_with = "deserialize_optional_decimal"
2240 )]
2241 pub fx_translation_gain_loss: Option<Decimal>,
2242
2243 #[serde(
2245 rename = "@fxTranslationGainLossSec",
2246 default,
2247 deserialize_with = "deserialize_optional_decimal"
2248 )]
2249 pub fx_translation_gain_loss_sec: Option<Decimal>,
2250
2251 #[serde(
2253 rename = "@fxTranslationGainLossCom",
2254 default,
2255 deserialize_with = "deserialize_optional_decimal"
2256 )]
2257 pub fx_translation_gain_loss_com: Option<Decimal>,
2258
2259 #[serde(
2261 rename = "@fxTranslationGainLossPaxos",
2262 default,
2263 deserialize_with = "deserialize_optional_decimal"
2264 )]
2265 pub fx_translation_gain_loss_paxos: Option<Decimal>,
2266
2267 #[serde(
2269 rename = "@otherFeesSec",
2270 default,
2271 deserialize_with = "deserialize_optional_decimal"
2272 )]
2273 pub other_fees_sec: Option<Decimal>,
2274
2275 #[serde(
2277 rename = "@otherFeesCom",
2278 default,
2279 deserialize_with = "deserialize_optional_decimal"
2280 )]
2281 pub other_fees_com: Option<Decimal>,
2282
2283 #[serde(
2285 rename = "@endingCashPaxos",
2286 default,
2287 deserialize_with = "deserialize_optional_decimal"
2288 )]
2289 pub ending_cash_paxos: Option<Decimal>,
2290
2291 #[serde(
2293 rename = "@endingSettledCashPaxos",
2294 default,
2295 deserialize_with = "deserialize_optional_decimal"
2296 )]
2297 pub ending_settled_cash_paxos: Option<Decimal>,
2298
2299 #[serde(
2301 rename = "@endingCashIBUKL",
2302 default,
2303 deserialize_with = "deserialize_optional_decimal"
2304 )]
2305 pub ending_cash_ibukl: Option<Decimal>,
2306
2307 #[serde(
2309 rename = "@clientFeesMTD",
2310 default,
2311 deserialize_with = "deserialize_optional_decimal"
2312 )]
2313 pub client_fees_mtd: Option<Decimal>,
2314
2315 #[serde(
2317 rename = "@clientFeesYTD",
2318 default,
2319 deserialize_with = "deserialize_optional_decimal"
2320 )]
2321 pub client_fees_ytd: Option<Decimal>,
2322
2323 #[serde(
2325 rename = "@clientFeesPaxos",
2326 default,
2327 deserialize_with = "deserialize_optional_decimal"
2328 )]
2329 pub client_fees_paxos: Option<Decimal>,
2330
2331 #[serde(
2333 rename = "@commissionsMTD",
2334 default,
2335 deserialize_with = "deserialize_optional_decimal"
2336 )]
2337 pub commissions_mtd: Option<Decimal>,
2338
2339 #[serde(
2341 rename = "@commissionsYTD",
2342 default,
2343 deserialize_with = "deserialize_optional_decimal"
2344 )]
2345 pub commissions_ytd: Option<Decimal>,
2346
2347 #[serde(
2349 rename = "@commissionsPaxos",
2350 default,
2351 deserialize_with = "deserialize_optional_decimal"
2352 )]
2353 pub commissions_paxos: Option<Decimal>,
2354
2355 #[serde(
2357 rename = "@billableCommissionsMTD",
2358 default,
2359 deserialize_with = "deserialize_optional_decimal"
2360 )]
2361 pub billable_commissions_mtd: Option<Decimal>,
2362
2363 #[serde(
2365 rename = "@billableCommissionsYTD",
2366 default,
2367 deserialize_with = "deserialize_optional_decimal"
2368 )]
2369 pub billable_commissions_ytd: Option<Decimal>,
2370
2371 #[serde(
2373 rename = "@billableCommissionsPaxos",
2374 default,
2375 deserialize_with = "deserialize_optional_decimal"
2376 )]
2377 pub billable_commissions_paxos: Option<Decimal>,
2378
2379 #[serde(
2381 rename = "@depositWithdrawalsMTD",
2382 default,
2383 deserialize_with = "deserialize_optional_decimal"
2384 )]
2385 pub deposit_withdrawals_mtd: Option<Decimal>,
2386
2387 #[serde(
2389 rename = "@depositWithdrawalsYTD",
2390 default,
2391 deserialize_with = "deserialize_optional_decimal"
2392 )]
2393 pub deposit_withdrawals_ytd: Option<Decimal>,
2394
2395 #[serde(
2397 rename = "@depositWithdrawalsPaxos",
2398 default,
2399 deserialize_with = "deserialize_optional_decimal"
2400 )]
2401 pub deposit_withdrawals_paxos: Option<Decimal>,
2402
2403 #[serde(
2405 rename = "@depositsMTD",
2406 default,
2407 deserialize_with = "deserialize_optional_decimal"
2408 )]
2409 pub deposits_mtd: Option<Decimal>,
2410
2411 #[serde(
2413 rename = "@depositsYTD",
2414 default,
2415 deserialize_with = "deserialize_optional_decimal"
2416 )]
2417 pub deposits_ytd: Option<Decimal>,
2418
2419 #[serde(
2421 rename = "@depositsPaxos",
2422 default,
2423 deserialize_with = "deserialize_optional_decimal"
2424 )]
2425 pub deposits_paxos: Option<Decimal>,
2426
2427 #[serde(
2429 rename = "@withdrawalsMTD",
2430 default,
2431 deserialize_with = "deserialize_optional_decimal"
2432 )]
2433 pub withdrawals_mtd: Option<Decimal>,
2434
2435 #[serde(
2437 rename = "@withdrawalsYTD",
2438 default,
2439 deserialize_with = "deserialize_optional_decimal"
2440 )]
2441 pub withdrawals_ytd: Option<Decimal>,
2442
2443 #[serde(
2445 rename = "@withdrawalsPaxos",
2446 default,
2447 deserialize_with = "deserialize_optional_decimal"
2448 )]
2449 pub withdrawals_paxos: Option<Decimal>,
2450
2451 #[serde(
2453 rename = "@accountTransfersMTD",
2454 default,
2455 deserialize_with = "deserialize_optional_decimal"
2456 )]
2457 pub account_transfers_mtd: Option<Decimal>,
2458
2459 #[serde(
2461 rename = "@accountTransfersYTD",
2462 default,
2463 deserialize_with = "deserialize_optional_decimal"
2464 )]
2465 pub account_transfers_ytd: Option<Decimal>,
2466
2467 #[serde(
2469 rename = "@accountTransfersPaxos",
2470 default,
2471 deserialize_with = "deserialize_optional_decimal"
2472 )]
2473 pub account_transfers_paxos: Option<Decimal>,
2474
2475 #[serde(
2477 rename = "@internalTransfersMTD",
2478 default,
2479 deserialize_with = "deserialize_optional_decimal"
2480 )]
2481 pub internal_transfers_mtd: Option<Decimal>,
2482
2483 #[serde(
2485 rename = "@internalTransfersYTD",
2486 default,
2487 deserialize_with = "deserialize_optional_decimal"
2488 )]
2489 pub internal_transfers_ytd: Option<Decimal>,
2490
2491 #[serde(
2493 rename = "@internalTransfersPaxos",
2494 default,
2495 deserialize_with = "deserialize_optional_decimal"
2496 )]
2497 pub internal_transfers_paxos: Option<Decimal>,
2498
2499 #[serde(
2501 rename = "@paxosTransfersPaxos",
2502 default,
2503 deserialize_with = "deserialize_optional_decimal"
2504 )]
2505 pub paxos_transfers_paxos: Option<Decimal>,
2506
2507 #[serde(
2509 rename = "@excessFundSweep",
2510 default,
2511 deserialize_with = "deserialize_optional_decimal"
2512 )]
2513 pub excess_fund_sweep: Option<Decimal>,
2514
2515 #[serde(
2517 rename = "@excessFundSweepSec",
2518 default,
2519 deserialize_with = "deserialize_optional_decimal"
2520 )]
2521 pub excess_fund_sweep_sec: Option<Decimal>,
2522
2523 #[serde(
2525 rename = "@excessFundSweepCom",
2526 default,
2527 deserialize_with = "deserialize_optional_decimal"
2528 )]
2529 pub excess_fund_sweep_com: Option<Decimal>,
2530
2531 #[serde(
2533 rename = "@excessFundSweepMTD",
2534 default,
2535 deserialize_with = "deserialize_optional_decimal"
2536 )]
2537 pub excess_fund_sweep_mtd: Option<Decimal>,
2538
2539 #[serde(
2541 rename = "@excessFundSweepYTD",
2542 default,
2543 deserialize_with = "deserialize_optional_decimal"
2544 )]
2545 pub excess_fund_sweep_ytd: Option<Decimal>,
2546
2547 #[serde(
2549 rename = "@excessFundSweepPaxos",
2550 default,
2551 deserialize_with = "deserialize_optional_decimal"
2552 )]
2553 pub excess_fund_sweep_paxos: Option<Decimal>,
2554
2555 #[serde(
2557 rename = "@dividendsMTD",
2558 default,
2559 deserialize_with = "deserialize_optional_decimal"
2560 )]
2561 pub dividends_mtd: Option<Decimal>,
2562
2563 #[serde(
2565 rename = "@dividendsYTD",
2566 default,
2567 deserialize_with = "deserialize_optional_decimal"
2568 )]
2569 pub dividends_ytd: Option<Decimal>,
2570
2571 #[serde(
2573 rename = "@dividendsPaxos",
2574 default,
2575 deserialize_with = "deserialize_optional_decimal"
2576 )]
2577 pub dividends_paxos: Option<Decimal>,
2578
2579 #[serde(
2581 rename = "@insuredDepositInterestMTD",
2582 default,
2583 deserialize_with = "deserialize_optional_decimal"
2584 )]
2585 pub insured_deposit_interest_mtd: Option<Decimal>,
2586
2587 #[serde(
2589 rename = "@insuredDepositInterestYTD",
2590 default,
2591 deserialize_with = "deserialize_optional_decimal"
2592 )]
2593 pub insured_deposit_interest_ytd: Option<Decimal>,
2594
2595 #[serde(
2597 rename = "@insuredDepositInteresPaxos",
2598 default,
2599 deserialize_with = "deserialize_optional_decimal"
2600 )]
2601 pub insured_deposit_interes_paxos: Option<Decimal>,
2602
2603 #[serde(
2605 rename = "@brokerInterestMTD",
2606 default,
2607 deserialize_with = "deserialize_optional_decimal"
2608 )]
2609 pub broker_interest_mtd: Option<Decimal>,
2610
2611 #[serde(
2613 rename = "@brokerInterestYTD",
2614 default,
2615 deserialize_with = "deserialize_optional_decimal"
2616 )]
2617 pub broker_interest_ytd: Option<Decimal>,
2618
2619 #[serde(
2621 rename = "@brokerInterestPaxos",
2622 default,
2623 deserialize_with = "deserialize_optional_decimal"
2624 )]
2625 pub broker_interest_paxos: Option<Decimal>,
2626
2627 #[serde(
2629 rename = "@bondInterestMTD",
2630 default,
2631 deserialize_with = "deserialize_optional_decimal"
2632 )]
2633 pub bond_interest_mtd: Option<Decimal>,
2634
2635 #[serde(
2637 rename = "@bondInterestYTD",
2638 default,
2639 deserialize_with = "deserialize_optional_decimal"
2640 )]
2641 pub bond_interest_ytd: Option<Decimal>,
2642
2643 #[serde(
2645 rename = "@cashSettlingMtmMTD",
2646 default,
2647 deserialize_with = "deserialize_optional_decimal"
2648 )]
2649 pub cash_settling_mtm_mtd: Option<Decimal>,
2650
2651 #[serde(
2653 rename = "@cashSettlingMtmYTD",
2654 default,
2655 deserialize_with = "deserialize_optional_decimal"
2656 )]
2657 pub cash_settling_mtm_ytd: Option<Decimal>,
2658
2659 #[serde(
2661 rename = "@cashSettlingMtmPaxos",
2662 default,
2663 deserialize_with = "deserialize_optional_decimal"
2664 )]
2665 pub cash_settling_mtm_paxos: Option<Decimal>,
2666
2667 #[serde(
2669 rename = "@realizedVmMTD",
2670 default,
2671 deserialize_with = "deserialize_optional_decimal"
2672 )]
2673 pub realized_vm_mtd: Option<Decimal>,
2674
2675 #[serde(
2677 rename = "@realizedVmYTD",
2678 default,
2679 deserialize_with = "deserialize_optional_decimal"
2680 )]
2681 pub realized_vm_ytd: Option<Decimal>,
2682
2683 #[serde(
2685 rename = "@realizedVmPaxos",
2686 default,
2687 deserialize_with = "deserialize_optional_decimal"
2688 )]
2689 pub realized_vm_paxos: Option<Decimal>,
2690
2691 #[serde(
2693 rename = "@cfdChargesMTD",
2694 default,
2695 deserialize_with = "deserialize_optional_decimal"
2696 )]
2697 pub cfd_charges_mtd: Option<Decimal>,
2698
2699 #[serde(
2701 rename = "@cfdChargesYTD",
2702 default,
2703 deserialize_with = "deserialize_optional_decimal"
2704 )]
2705 pub cfd_charges_ytd: Option<Decimal>,
2706
2707 #[serde(
2709 rename = "@cfdChargesPaxos",
2710 default,
2711 deserialize_with = "deserialize_optional_decimal"
2712 )]
2713 pub cfd_charges_paxos: Option<Decimal>,
2714
2715 #[serde(
2717 rename = "@netTradesSalesMTD",
2718 default,
2719 deserialize_with = "deserialize_optional_decimal"
2720 )]
2721 pub net_trades_sales_mtd: Option<Decimal>,
2722
2723 #[serde(
2725 rename = "@netTradesSalesYTD",
2726 default,
2727 deserialize_with = "deserialize_optional_decimal"
2728 )]
2729 pub net_trades_sales_ytd: Option<Decimal>,
2730
2731 #[serde(
2733 rename = "@netTradesSalesPaxos",
2734 default,
2735 deserialize_with = "deserialize_optional_decimal"
2736 )]
2737 pub net_trades_sales_paxos: Option<Decimal>,
2738
2739 #[serde(
2741 rename = "@advisorFeesMTD",
2742 default,
2743 deserialize_with = "deserialize_optional_decimal"
2744 )]
2745 pub advisor_fees_mtd: Option<Decimal>,
2746
2747 #[serde(
2749 rename = "@advisorFeesYTD",
2750 default,
2751 deserialize_with = "deserialize_optional_decimal"
2752 )]
2753 pub advisor_fees_ytd: Option<Decimal>,
2754
2755 #[serde(
2757 rename = "@advisorFeePaxos",
2758 default,
2759 deserialize_with = "deserialize_optional_decimal"
2760 )]
2761 pub advisor_fee_paxos: Option<Decimal>,
2762
2763 #[serde(
2765 rename = "@feesReceivablesMTD",
2766 default,
2767 deserialize_with = "deserialize_optional_decimal"
2768 )]
2769 pub fees_receivables_mtd: Option<Decimal>,
2770
2771 #[serde(
2773 rename = "@feesReceivablesYTD",
2774 default,
2775 deserialize_with = "deserialize_optional_decimal"
2776 )]
2777 pub fees_receivables_ytd: Option<Decimal>,
2778
2779 #[serde(
2781 rename = "@feesReceivablesPaxos",
2782 default,
2783 deserialize_with = "deserialize_optional_decimal"
2784 )]
2785 pub fees_receivables_paxos: Option<Decimal>,
2786
2787 #[serde(
2789 rename = "@netTradesPurchasesMTD",
2790 default,
2791 deserialize_with = "deserialize_optional_decimal"
2792 )]
2793 pub net_trades_purchases_mtd: Option<Decimal>,
2794
2795 #[serde(
2797 rename = "@netTradesPurchasesYTD",
2798 default,
2799 deserialize_with = "deserialize_optional_decimal"
2800 )]
2801 pub net_trades_purchases_ytd: Option<Decimal>,
2802
2803 #[serde(
2805 rename = "@netTradesPurchasesPaxos",
2806 default,
2807 deserialize_with = "deserialize_optional_decimal"
2808 )]
2809 pub net_trades_purchases_paxos: Option<Decimal>,
2810
2811 #[serde(
2813 rename = "@paymentInLieuMTD",
2814 default,
2815 deserialize_with = "deserialize_optional_decimal"
2816 )]
2817 pub payment_in_lieu_mtd: Option<Decimal>,
2818
2819 #[serde(
2821 rename = "@paymentInLieuYTD",
2822 default,
2823 deserialize_with = "deserialize_optional_decimal"
2824 )]
2825 pub payment_in_lieu_ytd: Option<Decimal>,
2826
2827 #[serde(
2829 rename = "@paymentInLieuPaxos",
2830 default,
2831 deserialize_with = "deserialize_optional_decimal"
2832 )]
2833 pub payment_in_lieu_paxos: Option<Decimal>,
2834
2835 #[serde(
2837 rename = "@transactionTaxMTD",
2838 default,
2839 deserialize_with = "deserialize_optional_decimal"
2840 )]
2841 pub transaction_tax_mtd: Option<Decimal>,
2842
2843 #[serde(
2845 rename = "@transactionTaxYTD",
2846 default,
2847 deserialize_with = "deserialize_optional_decimal"
2848 )]
2849 pub transaction_tax_ytd: Option<Decimal>,
2850
2851 #[serde(
2853 rename = "@transactionTaxPaxos",
2854 default,
2855 deserialize_with = "deserialize_optional_decimal"
2856 )]
2857 pub transaction_tax_paxos: Option<Decimal>,
2858
2859 #[serde(
2861 rename = "@taxReceivablesMTD",
2862 default,
2863 deserialize_with = "deserialize_optional_decimal"
2864 )]
2865 pub tax_receivables_mtd: Option<Decimal>,
2866
2867 #[serde(
2869 rename = "@taxReceivablesYTD",
2870 default,
2871 deserialize_with = "deserialize_optional_decimal"
2872 )]
2873 pub tax_receivables_ytd: Option<Decimal>,
2874
2875 #[serde(
2877 rename = "@taxReceivablesPaxos",
2878 default,
2879 deserialize_with = "deserialize_optional_decimal"
2880 )]
2881 pub tax_receivables_paxos: Option<Decimal>,
2882
2883 #[serde(
2885 rename = "@withholdingTaxMTD",
2886 default,
2887 deserialize_with = "deserialize_optional_decimal"
2888 )]
2889 pub withholding_tax_mtd: Option<Decimal>,
2890
2891 #[serde(
2893 rename = "@withholdingTaxYTD",
2894 default,
2895 deserialize_with = "deserialize_optional_decimal"
2896 )]
2897 pub withholding_tax_ytd: Option<Decimal>,
2898
2899 #[serde(
2901 rename = "@withholdingTaxPaxos",
2902 default,
2903 deserialize_with = "deserialize_optional_decimal"
2904 )]
2905 pub withholding_tax_paxos: Option<Decimal>,
2906
2907 #[serde(
2909 rename = "@withholding871mMTD",
2910 default,
2911 deserialize_with = "deserialize_optional_decimal"
2912 )]
2913 pub withholding871m_mtd: Option<Decimal>,
2914
2915 #[serde(
2917 rename = "@withholding871mYTD",
2918 default,
2919 deserialize_with = "deserialize_optional_decimal"
2920 )]
2921 pub withholding871m_ytd: Option<Decimal>,
2922
2923 #[serde(
2925 rename = "@withholding871mPaxos",
2926 default,
2927 deserialize_with = "deserialize_optional_decimal"
2928 )]
2929 pub withholding871m_paxos: Option<Decimal>,
2930
2931 #[serde(
2933 rename = "@withholdingCollectedTaxMTD",
2934 default,
2935 deserialize_with = "deserialize_optional_decimal"
2936 )]
2937 pub withholding_collected_tax_mtd: Option<Decimal>,
2938
2939 #[serde(
2941 rename = "@withholdingCollectedTaxYTD",
2942 default,
2943 deserialize_with = "deserialize_optional_decimal"
2944 )]
2945 pub withholding_collected_tax_ytd: Option<Decimal>,
2946
2947 #[serde(
2949 rename = "@withholdingCollectedTaxPaxos",
2950 default,
2951 deserialize_with = "deserialize_optional_decimal"
2952 )]
2953 pub withholding_collected_tax_paxos: Option<Decimal>,
2954
2955 #[serde(
2957 rename = "@salesTaxMTD",
2958 default,
2959 deserialize_with = "deserialize_optional_decimal"
2960 )]
2961 pub sales_tax_mtd: Option<Decimal>,
2962
2963 #[serde(
2965 rename = "@salesTaxYTD",
2966 default,
2967 deserialize_with = "deserialize_optional_decimal"
2968 )]
2969 pub sales_tax_ytd: Option<Decimal>,
2970
2971 #[serde(
2973 rename = "@salesTaxPaxos",
2974 default,
2975 deserialize_with = "deserialize_optional_decimal"
2976 )]
2977 pub sales_tax_paxos: Option<Decimal>,
2978
2979 #[serde(
2981 rename = "@otherIncome",
2982 default,
2983 deserialize_with = "deserialize_optional_decimal"
2984 )]
2985 pub other_income: Option<Decimal>,
2986
2987 #[serde(
2989 rename = "@otherIncomeMTD",
2990 default,
2991 deserialize_with = "deserialize_optional_decimal"
2992 )]
2993 pub other_income_mtd: Option<Decimal>,
2994
2995 #[serde(
2997 rename = "@otherIncomeYTD",
2998 default,
2999 deserialize_with = "deserialize_optional_decimal"
3000 )]
3001 pub other_income_ytd: Option<Decimal>,
3002
3003 #[serde(
3005 rename = "@otherIncomeSec",
3006 default,
3007 deserialize_with = "deserialize_optional_decimal"
3008 )]
3009 pub other_income_sec: Option<Decimal>,
3010
3011 #[serde(
3013 rename = "@otherIncomeCom",
3014 default,
3015 deserialize_with = "deserialize_optional_decimal"
3016 )]
3017 pub other_income_com: Option<Decimal>,
3018
3019 #[serde(
3021 rename = "@otherFeesMTD",
3022 default,
3023 deserialize_with = "deserialize_optional_decimal"
3024 )]
3025 pub other_fees_mtd: Option<Decimal>,
3026
3027 #[serde(
3029 rename = "@otherFeesYTD",
3030 default,
3031 deserialize_with = "deserialize_optional_decimal"
3032 )]
3033 pub other_fees_ytd: Option<Decimal>,
3034
3035 #[serde(
3037 rename = "@otherFeesPaxos",
3038 default,
3039 deserialize_with = "deserialize_optional_decimal"
3040 )]
3041 pub other_fees_paxos: Option<Decimal>,
3042
3043 #[serde(
3045 rename = "@avgCreditBalance",
3046 default,
3047 deserialize_with = "deserialize_optional_decimal"
3048 )]
3049 pub avg_credit_balance: Option<Decimal>,
3050
3051 #[serde(
3053 rename = "@avgCreditBalanceSec",
3054 default,
3055 deserialize_with = "deserialize_optional_decimal"
3056 )]
3057 pub avg_credit_balance_sec: Option<Decimal>,
3058
3059 #[serde(
3061 rename = "@avgCreditBalanceCom",
3062 default,
3063 deserialize_with = "deserialize_optional_decimal"
3064 )]
3065 pub avg_credit_balance_com: Option<Decimal>,
3066
3067 #[serde(
3069 rename = "@avgDebitBalance",
3070 default,
3071 deserialize_with = "deserialize_optional_decimal"
3072 )]
3073 pub avg_debit_balance: Option<Decimal>,
3074
3075 #[serde(
3077 rename = "@avgDebitBalanceSec",
3078 default,
3079 deserialize_with = "deserialize_optional_decimal"
3080 )]
3081 pub avg_debit_balance_sec: Option<Decimal>,
3082
3083 #[serde(
3085 rename = "@avgDebitBalanceCom",
3086 default,
3087 deserialize_with = "deserialize_optional_decimal"
3088 )]
3089 pub avg_debit_balance_com: Option<Decimal>,
3090
3091 #[serde(
3093 rename = "@linkingAdjustmentsSec",
3094 default,
3095 deserialize_with = "deserialize_optional_decimal"
3096 )]
3097 pub linking_adjustments_sec: Option<Decimal>,
3098
3099 #[serde(
3101 rename = "@linkingAdjustmentsCom",
3102 default,
3103 deserialize_with = "deserialize_optional_decimal"
3104 )]
3105 pub linking_adjustments_com: Option<Decimal>,
3106
3107 #[serde(
3109 rename = "@linkingAdjustmentsPaxos",
3110 default,
3111 deserialize_with = "deserialize_optional_decimal"
3112 )]
3113 pub linking_adjustments_paxos: Option<Decimal>,
3114
3115 #[serde(
3117 rename = "@insuredDepositInterest",
3118 default,
3119 deserialize_with = "deserialize_optional_decimal"
3120 )]
3121 pub insured_deposit_interest: Option<Decimal>,
3122
3123 #[serde(
3125 rename = "@insuredDepositInterestSec",
3126 default,
3127 deserialize_with = "deserialize_optional_decimal"
3128 )]
3129 pub insured_deposit_interest_sec: Option<Decimal>,
3130
3131 #[serde(
3133 rename = "@insuredDepositInterestCom",
3134 default,
3135 deserialize_with = "deserialize_optional_decimal"
3136 )]
3137 pub insured_deposit_interest_com: Option<Decimal>,
3138
3139 #[serde(
3141 rename = "@insuredDepositInterestPaxos",
3142 default,
3143 deserialize_with = "deserialize_optional_decimal"
3144 )]
3145 pub insured_deposit_interest_paxos: Option<Decimal>,
3146
3147 #[serde(
3149 rename = "@realizedVm",
3150 default,
3151 deserialize_with = "deserialize_optional_decimal"
3152 )]
3153 pub realized_vm: Option<Decimal>,
3154
3155 #[serde(
3157 rename = "@realizedVmSec",
3158 default,
3159 deserialize_with = "deserialize_optional_decimal"
3160 )]
3161 pub realized_vm_sec: Option<Decimal>,
3162
3163 #[serde(
3165 rename = "@realizedVmCom",
3166 default,
3167 deserialize_with = "deserialize_optional_decimal"
3168 )]
3169 pub realized_vm_com: Option<Decimal>,
3170
3171 #[serde(
3173 rename = "@advisorFees",
3174 default,
3175 deserialize_with = "deserialize_optional_decimal"
3176 )]
3177 pub advisor_fees: Option<Decimal>,
3178
3179 #[serde(
3181 rename = "@advisorFeesSec",
3182 default,
3183 deserialize_with = "deserialize_optional_decimal"
3184 )]
3185 pub advisor_fees_sec: Option<Decimal>,
3186
3187 #[serde(
3189 rename = "@advisorFeesCom",
3190 default,
3191 deserialize_with = "deserialize_optional_decimal"
3192 )]
3193 pub advisor_fees_com: Option<Decimal>,
3194
3195 #[serde(
3197 rename = "@advisorFeesPaxos",
3198 default,
3199 deserialize_with = "deserialize_optional_decimal"
3200 )]
3201 pub advisor_fees_paxos: Option<Decimal>,
3202
3203 #[serde(
3205 rename = "@taxReceivables",
3206 default,
3207 deserialize_with = "deserialize_optional_decimal"
3208 )]
3209 pub tax_receivables: Option<Decimal>,
3210
3211 #[serde(
3213 rename = "@taxReceivablesSec",
3214 default,
3215 deserialize_with = "deserialize_optional_decimal"
3216 )]
3217 pub tax_receivables_sec: Option<Decimal>,
3218
3219 #[serde(
3221 rename = "@taxReceivablesCom",
3222 default,
3223 deserialize_with = "deserialize_optional_decimal"
3224 )]
3225 pub tax_receivables_com: Option<Decimal>,
3226
3227 #[serde(
3229 rename = "@withholding871m",
3230 default,
3231 deserialize_with = "deserialize_optional_decimal"
3232 )]
3233 pub withholding871m: Option<Decimal>,
3234
3235 #[serde(
3237 rename = "@withholding871mSec",
3238 default,
3239 deserialize_with = "deserialize_optional_decimal"
3240 )]
3241 pub withholding871m_sec: Option<Decimal>,
3242
3243 #[serde(
3245 rename = "@withholding871mCom",
3246 default,
3247 deserialize_with = "deserialize_optional_decimal"
3248 )]
3249 pub withholding871m_com: Option<Decimal>,
3250
3251 #[serde(
3253 rename = "@withholdingCollectedTax",
3254 default,
3255 deserialize_with = "deserialize_optional_decimal"
3256 )]
3257 pub withholding_collected_tax: Option<Decimal>,
3258
3259 #[serde(
3261 rename = "@withholdingCollectedTaxSec",
3262 default,
3263 deserialize_with = "deserialize_optional_decimal"
3264 )]
3265 pub withholding_collected_tax_sec: Option<Decimal>,
3266
3267 #[serde(
3269 rename = "@withholdingCollectedTaxCom",
3270 default,
3271 deserialize_with = "deserialize_optional_decimal"
3272 )]
3273 pub withholding_collected_tax_com: Option<Decimal>,
3274
3275 #[serde(
3277 rename = "@salesTax",
3278 default,
3279 deserialize_with = "deserialize_optional_decimal"
3280 )]
3281 pub sales_tax: Option<Decimal>,
3282
3283 #[serde(
3285 rename = "@salesTaxSec",
3286 default,
3287 deserialize_with = "deserialize_optional_decimal"
3288 )]
3289 pub sales_tax_sec: Option<Decimal>,
3290
3291 #[serde(
3293 rename = "@salesTaxCom",
3294 default,
3295 deserialize_with = "deserialize_optional_decimal"
3296 )]
3297 pub sales_tax_com: Option<Decimal>,
3298
3299 #[serde(
3301 rename = "@other",
3302 default,
3303 deserialize_with = "deserialize_optional_decimal"
3304 )]
3305 pub other: Option<Decimal>,
3306
3307 #[serde(
3309 rename = "@otherSec",
3310 default,
3311 deserialize_with = "deserialize_optional_decimal"
3312 )]
3313 pub other_sec: Option<Decimal>,
3314
3315 #[serde(
3317 rename = "@otherCom",
3318 default,
3319 deserialize_with = "deserialize_optional_decimal"
3320 )]
3321 pub other_com: Option<Decimal>,
3322
3323 #[serde(
3325 rename = "@otherPaxos",
3326 default,
3327 deserialize_with = "deserialize_optional_decimal"
3328 )]
3329 pub other_paxos: Option<Decimal>,
3330
3331 #[serde(
3333 rename = "@levelOfDetail",
3334 default,
3335 deserialize_with = "deserialize_optional_string"
3336 )]
3337 pub level_of_detail: Option<String>,
3338
3339 #[serde(
3341 rename = "@debitCardActivitySec",
3342 default,
3343 deserialize_with = "deserialize_optional_decimal"
3344 )]
3345 pub debit_card_activity_sec: Option<Decimal>,
3346
3347 #[serde(
3349 rename = "@debitCardActivityCom",
3350 default,
3351 deserialize_with = "deserialize_optional_decimal"
3352 )]
3353 pub debit_card_activity_com: Option<Decimal>,
3354
3355 #[serde(
3357 rename = "@debitCardActivityMTD",
3358 default,
3359 deserialize_with = "deserialize_optional_decimal"
3360 )]
3361 pub debit_card_activity_mtd: Option<Decimal>,
3362
3363 #[serde(
3365 rename = "@debitCardActivityYTD",
3366 default,
3367 deserialize_with = "deserialize_optional_decimal"
3368 )]
3369 pub debit_card_activity_ytd: Option<Decimal>,
3370
3371 #[serde(
3373 rename = "@debitCardActivityPaxos",
3374 default,
3375 deserialize_with = "deserialize_optional_decimal"
3376 )]
3377 pub debit_card_activity_paxos: Option<Decimal>,
3378
3379 #[serde(
3381 rename = "@billPay",
3382 default,
3383 deserialize_with = "deserialize_optional_decimal"
3384 )]
3385 pub bill_pay: Option<Decimal>,
3386
3387 #[serde(
3389 rename = "@billPaySec",
3390 default,
3391 deserialize_with = "deserialize_optional_decimal"
3392 )]
3393 pub bill_pay_sec: Option<Decimal>,
3394
3395 #[serde(
3397 rename = "@billPayCom",
3398 default,
3399 deserialize_with = "deserialize_optional_decimal"
3400 )]
3401 pub bill_pay_com: Option<Decimal>,
3402
3403 #[serde(
3405 rename = "@billPayMTD",
3406 default,
3407 deserialize_with = "deserialize_optional_decimal"
3408 )]
3409 pub bill_pay_mtd: Option<Decimal>,
3410
3411 #[serde(
3413 rename = "@billPayYTD",
3414 default,
3415 deserialize_with = "deserialize_optional_decimal"
3416 )]
3417 pub bill_pay_ytd: Option<Decimal>,
3418
3419 #[serde(
3421 rename = "@billPayPaxos",
3422 default,
3423 deserialize_with = "deserialize_optional_decimal"
3424 )]
3425 pub bill_pay_paxos: Option<Decimal>,
3426
3427 #[serde(
3429 rename = "@realizedForexVm",
3430 default,
3431 deserialize_with = "deserialize_optional_decimal"
3432 )]
3433 pub realized_forex_vm: Option<Decimal>,
3434
3435 #[serde(
3437 rename = "@realizedForexVmSec",
3438 default,
3439 deserialize_with = "deserialize_optional_decimal"
3440 )]
3441 pub realized_forex_vm_sec: Option<Decimal>,
3442
3443 #[serde(
3445 rename = "@realizedForexVmCom",
3446 default,
3447 deserialize_with = "deserialize_optional_decimal"
3448 )]
3449 pub realized_forex_vm_com: Option<Decimal>,
3450
3451 #[serde(
3453 rename = "@realizedForexVmMTD",
3454 default,
3455 deserialize_with = "deserialize_optional_decimal"
3456 )]
3457 pub realized_forex_vm_mtd: Option<Decimal>,
3458
3459 #[serde(
3461 rename = "@realizedForexVmYTD",
3462 default,
3463 deserialize_with = "deserialize_optional_decimal"
3464 )]
3465 pub realized_forex_vm_ytd: Option<Decimal>,
3466
3467 #[serde(
3469 rename = "@realizedForexVmPaxos",
3470 default,
3471 deserialize_with = "deserialize_optional_decimal"
3472 )]
3473 pub realized_forex_vm_paxos: Option<Decimal>,
3474
3475 #[serde(
3477 rename = "@ipoSubscription",
3478 default,
3479 deserialize_with = "deserialize_optional_decimal"
3480 )]
3481 pub ipo_subscription: Option<Decimal>,
3482
3483 #[serde(
3485 rename = "@ipoSubscriptionSec",
3486 default,
3487 deserialize_with = "deserialize_optional_decimal"
3488 )]
3489 pub ipo_subscription_sec: Option<Decimal>,
3490
3491 #[serde(
3493 rename = "@ipoSubscriptionCom",
3494 default,
3495 deserialize_with = "deserialize_optional_decimal"
3496 )]
3497 pub ipo_subscription_com: Option<Decimal>,
3498
3499 #[serde(
3501 rename = "@ipoSubscriptionMTD",
3502 default,
3503 deserialize_with = "deserialize_optional_decimal"
3504 )]
3505 pub ipo_subscription_mtd: Option<Decimal>,
3506
3507 #[serde(
3509 rename = "@ipoSubscriptionYTD",
3510 default,
3511 deserialize_with = "deserialize_optional_decimal"
3512 )]
3513 pub ipo_subscription_ytd: Option<Decimal>,
3514
3515 #[serde(
3517 rename = "@ipoSubscriptionPaxos",
3518 default,
3519 deserialize_with = "deserialize_optional_decimal"
3520 )]
3521 pub ipo_subscription_paxos: Option<Decimal>,
3522
3523 #[serde(
3525 rename = "@billableSalesTaxSec",
3526 default,
3527 deserialize_with = "deserialize_optional_decimal"
3528 )]
3529 pub billable_sales_tax_sec: Option<Decimal>,
3530
3531 #[serde(
3533 rename = "@billableSalesTaxCom",
3534 default,
3535 deserialize_with = "deserialize_optional_decimal"
3536 )]
3537 pub billable_sales_tax_com: Option<Decimal>,
3538
3539 #[serde(
3541 rename = "@billableSalesTaxMTD",
3542 default,
3543 deserialize_with = "deserialize_optional_decimal"
3544 )]
3545 pub billable_sales_tax_mtd: Option<Decimal>,
3546
3547 #[serde(
3549 rename = "@billableSalesTaxYTD",
3550 default,
3551 deserialize_with = "deserialize_optional_decimal"
3552 )]
3553 pub billable_sales_tax_ytd: Option<Decimal>,
3554
3555 #[serde(
3557 rename = "@billableSalesTaxPaxos",
3558 default,
3559 deserialize_with = "deserialize_optional_decimal"
3560 )]
3561 pub billable_sales_tax_paxos: Option<Decimal>,
3562
3563 #[serde(
3565 rename = "@commissionCreditsRedemption",
3566 default,
3567 deserialize_with = "deserialize_optional_decimal"
3568 )]
3569 pub commission_credits_redemption: Option<Decimal>,
3570
3571 #[serde(
3573 rename = "@commissionCreditsRedemptionSec",
3574 default,
3575 deserialize_with = "deserialize_optional_decimal"
3576 )]
3577 pub commission_credits_redemption_sec: Option<Decimal>,
3578
3579 #[serde(
3581 rename = "@commissionCreditsRedemptionCom",
3582 default,
3583 deserialize_with = "deserialize_optional_decimal"
3584 )]
3585 pub commission_credits_redemption_com: Option<Decimal>,
3586
3587 #[serde(
3589 rename = "@commissionCreditsRedemptionMTD",
3590 default,
3591 deserialize_with = "deserialize_optional_decimal"
3592 )]
3593 pub commission_credits_redemption_mtd: Option<Decimal>,
3594
3595 #[serde(
3597 rename = "@commissionCreditsRedemptionYTD",
3598 default,
3599 deserialize_with = "deserialize_optional_decimal"
3600 )]
3601 pub commission_credits_redemption_ytd: Option<Decimal>,
3602
3603 #[serde(
3605 rename = "@commissionCreditsRedemptionPaxos",
3606 default,
3607 deserialize_with = "deserialize_optional_decimal"
3608 )]
3609 pub commission_credits_redemption_paxos: Option<Decimal>,
3610
3611 #[serde(
3613 rename = "@referralFee",
3614 default,
3615 deserialize_with = "deserialize_optional_decimal"
3616 )]
3617 pub referral_fee: Option<Decimal>,
3618
3619 #[serde(
3621 rename = "@referralFeePaxos",
3622 default,
3623 deserialize_with = "deserialize_optional_decimal"
3624 )]
3625 pub referral_fee_paxos: Option<Decimal>,
3626
3627 #[serde(
3629 rename = "@referralFeeSec",
3630 default,
3631 deserialize_with = "deserialize_optional_decimal"
3632 )]
3633 pub referral_fee_sec: Option<Decimal>,
3634
3635 #[serde(
3637 rename = "@referralFeeCom",
3638 default,
3639 deserialize_with = "deserialize_optional_decimal"
3640 )]
3641 pub referral_fee_com: Option<Decimal>,
3642
3643 #[serde(
3645 rename = "@referralFeeMTD",
3646 default,
3647 deserialize_with = "deserialize_optional_decimal"
3648 )]
3649 pub referral_fee_mtd: Option<Decimal>,
3650
3651 #[serde(
3653 rename = "@referralFeeYTD",
3654 default,
3655 deserialize_with = "deserialize_optional_decimal"
3656 )]
3657 pub referral_fee_ytd: Option<Decimal>,
3658
3659 #[serde(
3661 rename = "@carbonCredits",
3662 default,
3663 deserialize_with = "deserialize_optional_decimal"
3664 )]
3665 pub carbon_credits: Option<Decimal>,
3666
3667 #[serde(
3669 rename = "@carbonCreditsSec",
3670 default,
3671 deserialize_with = "deserialize_optional_decimal"
3672 )]
3673 pub carbon_credits_sec: Option<Decimal>,
3674
3675 #[serde(
3677 rename = "@carbonCreditsCom",
3678 default,
3679 deserialize_with = "deserialize_optional_decimal"
3680 )]
3681 pub carbon_credits_com: Option<Decimal>,
3682
3683 #[serde(
3685 rename = "@carbonCreditsMTD",
3686 default,
3687 deserialize_with = "deserialize_optional_decimal"
3688 )]
3689 pub carbon_credits_mtd: Option<Decimal>,
3690
3691 #[serde(
3693 rename = "@carbonCreditsYTD",
3694 default,
3695 deserialize_with = "deserialize_optional_decimal"
3696 )]
3697 pub carbon_credits_ytd: Option<Decimal>,
3698
3699 #[serde(
3701 rename = "@carbonCreditsPaxos",
3702 default,
3703 deserialize_with = "deserialize_optional_decimal"
3704 )]
3705 pub carbon_credits_paxos: Option<Decimal>,
3706
3707 #[serde(
3709 rename = "@donations",
3710 default,
3711 deserialize_with = "deserialize_optional_decimal"
3712 )]
3713 pub donations: Option<Decimal>,
3714
3715 #[serde(
3717 rename = "@donationsSec",
3718 default,
3719 deserialize_with = "deserialize_optional_decimal"
3720 )]
3721 pub donations_sec: Option<Decimal>,
3722
3723 #[serde(
3725 rename = "@donationsCom",
3726 default,
3727 deserialize_with = "deserialize_optional_decimal"
3728 )]
3729 pub donations_com: Option<Decimal>,
3730
3731 #[serde(
3733 rename = "@donationsMTD",
3734 default,
3735 deserialize_with = "deserialize_optional_decimal"
3736 )]
3737 pub donations_mtd: Option<Decimal>,
3738
3739 #[serde(
3741 rename = "@donationsYTD",
3742 default,
3743 deserialize_with = "deserialize_optional_decimal"
3744 )]
3745 pub donations_ytd: Option<Decimal>,
3746
3747 #[serde(
3749 rename = "@donationsPaxos",
3750 default,
3751 deserialize_with = "deserialize_optional_decimal"
3752 )]
3753 pub donations_paxos: Option<Decimal>,
3754
3755 #[serde(
3757 rename = "@paxosTransfers",
3758 default,
3759 deserialize_with = "deserialize_optional_decimal"
3760 )]
3761 pub paxos_transfers: Option<Decimal>,
3762
3763 #[serde(
3765 rename = "@paxosTransfersSec",
3766 default,
3767 deserialize_with = "deserialize_optional_decimal"
3768 )]
3769 pub paxos_transfers_sec: Option<Decimal>,
3770
3771 #[serde(
3773 rename = "@paxosTransfersCom",
3774 default,
3775 deserialize_with = "deserialize_optional_decimal"
3776 )]
3777 pub paxos_transfers_com: Option<Decimal>,
3778
3779 #[serde(
3781 rename = "@paxosTransfersMTD",
3782 default,
3783 deserialize_with = "deserialize_optional_decimal"
3784 )]
3785 pub paxos_transfers_mtd: Option<Decimal>,
3786
3787 #[serde(
3789 rename = "@paxosTransfersYTD",
3790 default,
3791 deserialize_with = "deserialize_optional_decimal"
3792 )]
3793 pub paxos_transfers_ytd: Option<Decimal>,
3794
3795 #[serde(
3797 rename = "@slbStartingCashCollateral",
3798 default,
3799 deserialize_with = "deserialize_optional_decimal"
3800 )]
3801 pub slb_starting_cash_collateral: Option<Decimal>,
3802
3803 #[serde(
3805 rename = "@slbStartingCashCollateralSec",
3806 default,
3807 deserialize_with = "deserialize_optional_decimal"
3808 )]
3809 pub slb_starting_cash_collateral_sec: Option<Decimal>,
3810
3811 #[serde(
3813 rename = "@slbStartingCashCollateralCom",
3814 default,
3815 deserialize_with = "deserialize_optional_decimal"
3816 )]
3817 pub slb_starting_cash_collateral_com: Option<Decimal>,
3818
3819 #[serde(
3821 rename = "@slbStartingCashCollateralPaxos",
3822 default,
3823 deserialize_with = "deserialize_optional_decimal"
3824 )]
3825 pub slb_starting_cash_collateral_paxos: Option<Decimal>,
3826
3827 #[serde(
3829 rename = "@slbNetSecuritiesLentActivity",
3830 default,
3831 deserialize_with = "deserialize_optional_decimal"
3832 )]
3833 pub slb_net_securities_lent_activity: Option<Decimal>,
3834
3835 #[serde(
3837 rename = "@slbNetSecuritiesLentActivityCom",
3838 default,
3839 deserialize_with = "deserialize_optional_decimal"
3840 )]
3841 pub slb_net_securities_lent_activity_com: Option<Decimal>,
3842
3843 #[serde(
3845 rename = "@slbNetSecuritiesLentActivitySec",
3846 default,
3847 deserialize_with = "deserialize_optional_decimal"
3848 )]
3849 pub slb_net_securities_lent_activity_sec: Option<Decimal>,
3850
3851 #[serde(
3853 rename = "@slbNetSecuritiesLentActivityPaxos",
3854 default,
3855 deserialize_with = "deserialize_optional_decimal"
3856 )]
3857 pub slb_net_securities_lent_activity_paxos: Option<Decimal>,
3858
3859 #[serde(
3861 rename = "@slbEndingCashCollateral",
3862 default,
3863 deserialize_with = "deserialize_optional_decimal"
3864 )]
3865 pub slb_ending_cash_collateral: Option<Decimal>,
3866
3867 #[serde(
3869 rename = "@slbEndingCashCollateralSec",
3870 default,
3871 deserialize_with = "deserialize_optional_decimal"
3872 )]
3873 pub slb_ending_cash_collateral_sec: Option<Decimal>,
3874
3875 #[serde(
3877 rename = "@slbEndingCashCollateralCom",
3878 default,
3879 deserialize_with = "deserialize_optional_decimal"
3880 )]
3881 pub slb_ending_cash_collateral_com: Option<Decimal>,
3882
3883 #[serde(
3885 rename = "@slbEndingCashCollateralPaxos",
3886 default,
3887 deserialize_with = "deserialize_optional_decimal"
3888 )]
3889 pub slb_ending_cash_collateral_paxos: Option<Decimal>,
3890
3891 #[serde(
3893 rename = "@slbNetCash",
3894 default,
3895 deserialize_with = "deserialize_optional_decimal"
3896 )]
3897 pub slb_net_cash: Option<Decimal>,
3898
3899 #[serde(
3901 rename = "@slbNetCashSec",
3902 default,
3903 deserialize_with = "deserialize_optional_decimal"
3904 )]
3905 pub slb_net_cash_sec: Option<Decimal>,
3906
3907 #[serde(
3909 rename = "@slbNetCashCom",
3910 default,
3911 deserialize_with = "deserialize_optional_decimal"
3912 )]
3913 pub slb_net_cash_com: Option<Decimal>,
3914
3915 #[serde(
3917 rename = "@slbNetCashPaxos",
3918 default,
3919 deserialize_with = "deserialize_optional_decimal"
3920 )]
3921 pub slb_net_cash_paxos: Option<Decimal>,
3922
3923 #[serde(
3925 rename = "@slbNetSettledCash",
3926 default,
3927 deserialize_with = "deserialize_optional_decimal"
3928 )]
3929 pub slb_net_settled_cash: Option<Decimal>,
3930
3931 #[serde(
3933 rename = "@slbNetSettledCashSec",
3934 default,
3935 deserialize_with = "deserialize_optional_decimal"
3936 )]
3937 pub slb_net_settled_cash_sec: Option<Decimal>,
3938
3939 #[serde(
3941 rename = "@slbNetSettledCashCom",
3942 default,
3943 deserialize_with = "deserialize_optional_decimal"
3944 )]
3945 pub slb_net_settled_cash_com: Option<Decimal>,
3946
3947 #[serde(
3949 rename = "@slbNetSettledCashPaxos",
3950 default,
3951 deserialize_with = "deserialize_optional_decimal"
3952 )]
3953 pub slb_net_settled_cash_paxos: Option<Decimal>,
3954}
3955
3956#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
3958pub struct TradeConfirm {
3959 #[serde(
3961 rename = "@accountId",
3962 default,
3963 deserialize_with = "deserialize_optional_string"
3964 )]
3965 pub account_id: Option<String>,
3966
3967 #[serde(rename = "@acctAlias", default)]
3969 pub acct_alias: Option<String>,
3970
3971 #[serde(rename = "@model", default)]
3973 pub model: Option<String>,
3974
3975 #[serde(
3977 rename = "@execID",
3978 default,
3979 deserialize_with = "deserialize_optional_string"
3980 )]
3981 pub exec_id: Option<String>,
3982
3983 #[serde(rename = "@transactionID", default)]
3985 pub transaction_id: Option<String>,
3986
3987 #[serde(rename = "@tradeID", default)]
3989 pub trade_id: Option<String>,
3990
3991 #[serde(rename = "@orderID", default)]
3993 pub order_id: Option<String>,
3994
3995 #[serde(
3997 rename = "@tradeDate",
3998 default,
3999 deserialize_with = "deserialize_optional_date"
4000 )]
4001 pub trade_date: Option<NaiveDate>,
4002
4003 #[serde(rename = "@tradeTime", default)]
4005 pub trade_time: Option<String>,
4006
4007 #[serde(rename = "@dateTime", default)]
4009 pub date_time: Option<String>,
4010
4011 #[serde(
4013 rename = "@settleDate",
4014 default,
4015 deserialize_with = "deserialize_optional_date"
4016 )]
4017 pub settle_date: Option<NaiveDate>,
4018
4019 #[serde(
4021 rename = "@symbol",
4022 default,
4023 deserialize_with = "deserialize_optional_string"
4024 )]
4025 pub symbol: Option<String>,
4026
4027 #[serde(rename = "@description", default)]
4029 pub description: Option<String>,
4030
4031 #[serde(rename = "@conid", default)]
4033 pub conid: Option<String>,
4034
4035 #[serde(rename = "@assetCategory", default)]
4037 pub asset_category: Option<AssetCategory>,
4038
4039 #[serde(rename = "@cusip", default)]
4042 pub cusip: Option<String>,
4043
4044 #[serde(rename = "@isin", default)]
4046 pub isin: Option<String>,
4047
4048 #[serde(rename = "@figi", default)]
4050 pub figi: Option<String>,
4051
4052 #[serde(rename = "@listingExchange", default)]
4054 pub listing_exchange: Option<String>,
4055
4056 #[serde(
4059 rename = "@strike",
4060 default,
4061 deserialize_with = "deserialize_optional_decimal"
4062 )]
4063 pub strike: Option<Decimal>,
4064
4065 #[serde(
4067 rename = "@expiry",
4068 default,
4069 deserialize_with = "deserialize_optional_date"
4070 )]
4071 pub expiry: Option<NaiveDate>,
4072
4073 #[serde(rename = "@putCall", default)]
4075 pub put_call: Option<String>,
4076
4077 #[serde(
4079 rename = "@multiplier",
4080 default,
4081 deserialize_with = "deserialize_optional_decimal"
4082 )]
4083 pub multiplier: Option<Decimal>,
4084
4085 #[serde(rename = "@underlyingSymbol", default)]
4088 pub underlying_symbol: Option<String>,
4089
4090 #[serde(rename = "@underlyingConid", default)]
4092 pub underlying_conid: Option<String>,
4093
4094 #[serde(
4097 rename = "@quantity",
4098 default,
4099 deserialize_with = "deserialize_optional_decimal"
4100 )]
4101 pub quantity: Option<Decimal>,
4102
4103 #[serde(
4105 rename = "@price",
4106 default,
4107 deserialize_with = "deserialize_optional_decimal"
4108 )]
4109 pub price: Option<Decimal>,
4110
4111 #[serde(
4113 rename = "@proceeds",
4114 default,
4115 deserialize_with = "deserialize_optional_decimal"
4116 )]
4117 pub proceeds: Option<Decimal>,
4118
4119 #[serde(
4121 rename = "@commission",
4122 default,
4123 deserialize_with = "deserialize_optional_decimal"
4124 )]
4125 pub commission: Option<Decimal>,
4126
4127 #[serde(
4129 rename = "@tax",
4130 default,
4131 deserialize_with = "deserialize_optional_decimal"
4132 )]
4133 pub tax: Option<Decimal>,
4134
4135 #[serde(
4137 rename = "@netCash",
4138 default,
4139 deserialize_with = "deserialize_optional_decimal"
4140 )]
4141 pub net_cash: Option<Decimal>,
4142
4143 #[serde(rename = "@currency", default)]
4145 pub currency: Option<String>,
4146
4147 #[serde(
4149 rename = "@fxRateToBase",
4150 default,
4151 deserialize_with = "deserialize_optional_decimal"
4152 )]
4153 pub fx_rate_to_base: Option<Decimal>,
4154
4155 #[serde(rename = "@buySell", default)]
4157 pub buy_sell: Option<String>,
4158
4159 #[serde(rename = "@orderType", default)]
4161 pub order_type: Option<String>,
4162
4163 #[serde(rename = "@exchange", default)]
4165 pub exchange: Option<String>,
4166
4167 #[serde(rename = "@clearingID", default)]
4169 pub clearing_id: Option<String>,
4170
4171 #[serde(
4173 rename = "@awayBrokerCommission",
4174 default,
4175 deserialize_with = "deserialize_optional_decimal"
4176 )]
4177 pub away_broker_commission: Option<Decimal>,
4178
4179 #[serde(
4181 rename = "@regulatoryFee",
4182 default,
4183 deserialize_with = "deserialize_optional_decimal"
4184 )]
4185 pub regulatory_fee: Option<Decimal>,
4186
4187 #[serde(rename = "@orderReference", default)]
4189 pub order_reference: Option<String>,
4190
4191 #[serde(rename = "@levelOfDetail", default)]
4193 pub level_of_detail: Option<String>,
4194
4195 #[serde(rename = "@transactionType", default)]
4197 pub transaction_type: Option<TradeType>,
4198
4199 #[serde(rename = "@openCloseIndicator", default)]
4201 pub open_close_indicator: Option<OpenClose>,
4202
4203 #[serde(
4205 rename = "@securityID",
4206 default,
4207 deserialize_with = "deserialize_optional_string"
4208 )]
4209 pub security_id: Option<String>,
4210
4211 #[serde(
4213 rename = "@rfqID",
4214 default,
4215 deserialize_with = "deserialize_optional_string"
4216 )]
4217 pub rfq_id: Option<String>,
4218
4219 #[serde(
4221 rename = "@securityIDType",
4222 default,
4223 deserialize_with = "deserialize_optional_string"
4224 )]
4225 pub security_id_type: Option<String>,
4226
4227 #[serde(
4229 rename = "@issuer",
4230 default,
4231 deserialize_with = "deserialize_optional_string"
4232 )]
4233 pub issuer: Option<String>,
4234
4235 #[serde(
4237 rename = "@principalAdjustFactor",
4238 default,
4239 deserialize_with = "deserialize_optional_decimal"
4240 )]
4241 pub principal_adjust_factor: Option<Decimal>,
4242
4243 #[serde(
4245 rename = "@reportDate",
4246 default,
4247 deserialize_with = "deserialize_optional_date"
4248 )]
4249 pub report_date: Option<NaiveDate>,
4250
4251 #[serde(
4253 rename = "@settleDateTarget",
4254 default,
4255 deserialize_with = "deserialize_optional_date"
4256 )]
4257 pub settle_date_target: Option<NaiveDate>,
4258
4259 #[serde(
4261 rename = "@tradePrice",
4262 default,
4263 deserialize_with = "deserialize_optional_decimal"
4264 )]
4265 pub trade_price: Option<Decimal>,
4266
4267 #[serde(
4269 rename = "@tradeMoney",
4270 default,
4271 deserialize_with = "deserialize_optional_decimal"
4272 )]
4273 pub trade_money: Option<Decimal>,
4274
4275 #[serde(
4277 rename = "@taxes",
4278 default,
4279 deserialize_with = "deserialize_optional_decimal"
4280 )]
4281 pub taxes: Option<Decimal>,
4282
4283 #[serde(
4285 rename = "@ibCommission",
4286 default,
4287 deserialize_with = "deserialize_optional_decimal"
4288 )]
4289 pub ib_commission: Option<Decimal>,
4290
4291 #[serde(
4293 rename = "@ibCommissionCurrency",
4294 default,
4295 deserialize_with = "deserialize_optional_string"
4296 )]
4297 pub ib_commission_currency: Option<String>,
4298
4299 #[serde(
4301 rename = "@closePrice",
4302 default,
4303 deserialize_with = "deserialize_optional_decimal"
4304 )]
4305 pub close_price: Option<Decimal>,
4306
4307 #[serde(
4309 rename = "@notes",
4310 default,
4311 deserialize_with = "deserialize_optional_string"
4312 )]
4313 pub notes: Option<String>,
4314
4315 #[serde(
4317 rename = "@cost",
4318 default,
4319 deserialize_with = "deserialize_optional_decimal"
4320 )]
4321 pub cost: Option<Decimal>,
4322
4323 #[serde(
4325 rename = "@fifoPnlRealized",
4326 default,
4327 deserialize_with = "deserialize_optional_decimal"
4328 )]
4329 pub fifo_pnl_realized: Option<Decimal>,
4330
4331 #[serde(
4333 rename = "@fxPnl",
4334 default,
4335 deserialize_with = "deserialize_optional_decimal"
4336 )]
4337 pub fx_pnl: Option<Decimal>,
4338
4339 #[serde(
4341 rename = "@mtmPnl",
4342 default,
4343 deserialize_with = "deserialize_optional_decimal"
4344 )]
4345 pub mtm_pnl: Option<Decimal>,
4346
4347 #[serde(
4349 rename = "@origTradePrice",
4350 default,
4351 deserialize_with = "deserialize_optional_decimal"
4352 )]
4353 pub orig_trade_price: Option<Decimal>,
4354
4355 #[serde(
4357 rename = "@origTradeDate",
4358 default,
4359 deserialize_with = "deserialize_optional_date"
4360 )]
4361 pub orig_trade_date: Option<NaiveDate>,
4362
4363 #[serde(
4365 rename = "@origTradeID",
4366 default,
4367 deserialize_with = "deserialize_optional_string"
4368 )]
4369 pub orig_trade_id: Option<String>,
4370
4371 #[serde(
4373 rename = "@origOrderID",
4374 default,
4375 deserialize_with = "deserialize_optional_string"
4376 )]
4377 pub orig_order_id: Option<String>,
4378
4379 #[serde(
4381 rename = "@clearingFirmID",
4382 default,
4383 deserialize_with = "deserialize_optional_string"
4384 )]
4385 pub clearing_firm_id: Option<String>,
4386
4387 #[serde(
4389 rename = "@openDateTime",
4390 default,
4391 deserialize_with = "deserialize_optional_string"
4392 )]
4393 pub open_date_time: Option<String>,
4394
4395 #[serde(
4397 rename = "@holdingPeriodDateTime",
4398 default,
4399 deserialize_with = "deserialize_optional_string"
4400 )]
4401 pub holding_period_date_time: Option<String>,
4402
4403 #[serde(
4405 rename = "@whenRealized",
4406 default,
4407 deserialize_with = "deserialize_optional_string"
4408 )]
4409 pub when_realized: Option<String>,
4410
4411 #[serde(
4413 rename = "@whenReopened",
4414 default,
4415 deserialize_with = "deserialize_optional_string"
4416 )]
4417 pub when_reopened: Option<String>,
4418
4419 #[serde(
4421 rename = "@commissionCurrency",
4422 default,
4423 deserialize_with = "deserialize_optional_string"
4424 )]
4425 pub commission_currency: Option<String>,
4426
4427 #[serde(
4429 rename = "@thirdPartyClearingCommission",
4430 default,
4431 deserialize_with = "deserialize_optional_decimal"
4432 )]
4433 pub third_party_clearing_commission: Option<Decimal>,
4434
4435 #[serde(
4437 rename = "@allocatedTo",
4438 default,
4439 deserialize_with = "deserialize_optional_string"
4440 )]
4441 pub allocated_to: Option<String>,
4442
4443 #[serde(
4445 rename = "@thirdPartyRegulatoryCommission",
4446 default,
4447 deserialize_with = "deserialize_optional_decimal"
4448 )]
4449 pub third_party_regulatory_commission: Option<Decimal>,
4450
4451 #[serde(
4453 rename = "@brokerExecutionCommission",
4454 default,
4455 deserialize_with = "deserialize_optional_decimal"
4456 )]
4457 pub broker_execution_commission: Option<Decimal>,
4458
4459 #[serde(
4461 rename = "@thirdPartyExecutionCommission",
4462 default,
4463 deserialize_with = "deserialize_optional_decimal"
4464 )]
4465 pub third_party_execution_commission: Option<Decimal>,
4466
4467 #[serde(
4469 rename = "@amount",
4470 default,
4471 deserialize_with = "deserialize_optional_decimal"
4472 )]
4473 pub amount: Option<Decimal>,
4474
4475 #[serde(
4477 rename = "@otherCommission",
4478 default,
4479 deserialize_with = "deserialize_optional_decimal"
4480 )]
4481 pub other_commission: Option<Decimal>,
4482
4483 #[serde(
4485 rename = "@brokerClearingCommission",
4486 default,
4487 deserialize_with = "deserialize_optional_decimal"
4488 )]
4489 pub broker_clearing_commission: Option<Decimal>,
4490
4491 #[serde(
4493 rename = "@ibOrderID",
4494 default,
4495 deserialize_with = "deserialize_optional_string"
4496 )]
4497 pub ib_order_id: Option<String>,
4498
4499 #[serde(
4501 rename = "@ibExecID",
4502 default,
4503 deserialize_with = "deserialize_optional_string"
4504 )]
4505 pub ib_exec_id: Option<String>,
4506
4507 #[serde(
4509 rename = "@brokerageOrderID",
4510 default,
4511 deserialize_with = "deserialize_optional_string"
4512 )]
4513 pub brokerage_order_id: Option<String>,
4514
4515 #[serde(
4517 rename = "@volatilityOrderLink",
4518 default,
4519 deserialize_with = "deserialize_optional_string"
4520 )]
4521 pub volatility_order_link: Option<String>,
4522
4523 #[serde(
4525 rename = "@exchOrderId",
4526 default,
4527 deserialize_with = "deserialize_optional_string"
4528 )]
4529 pub exch_order_id: Option<String>,
4530
4531 #[serde(
4533 rename = "@extExecID",
4534 default,
4535 deserialize_with = "deserialize_optional_string"
4536 )]
4537 pub ext_exec_id: Option<String>,
4538
4539 #[serde(
4541 rename = "@orderTime",
4542 default,
4543 deserialize_with = "deserialize_optional_string"
4544 )]
4545 pub order_time: Option<String>,
4546
4547 #[serde(
4549 rename = "@changeInPrice",
4550 default,
4551 deserialize_with = "deserialize_optional_decimal"
4552 )]
4553 pub change_in_price: Option<Decimal>,
4554
4555 #[serde(
4557 rename = "@changeInQuantity",
4558 default,
4559 deserialize_with = "deserialize_optional_decimal"
4560 )]
4561 pub change_in_quantity: Option<Decimal>,
4562
4563 #[serde(
4565 rename = "@traderID",
4566 default,
4567 deserialize_with = "deserialize_optional_string"
4568 )]
4569 pub trader_id: Option<String>,
4570
4571 #[serde(
4573 rename = "@isAPIOrder",
4574 default,
4575 deserialize_with = "deserialize_optional_bool"
4576 )]
4577 pub is_api_order: Option<bool>,
4578
4579 #[serde(
4581 rename = "@code",
4582 default,
4583 deserialize_with = "deserialize_optional_string"
4584 )]
4585 pub code: Option<String>,
4586
4587 #[serde(
4589 rename = "@underlyingListingExchange",
4590 default,
4591 deserialize_with = "deserialize_optional_string"
4592 )]
4593 pub underlying_listing_exchange: Option<String>,
4594
4595 #[serde(
4597 rename = "@underlyingSecurityID",
4598 default,
4599 deserialize_with = "deserialize_optional_string"
4600 )]
4601 pub underlying_security_id: Option<String>,
4602
4603 #[serde(
4605 rename = "@accruedInt",
4606 default,
4607 deserialize_with = "deserialize_optional_decimal"
4608 )]
4609 pub accrued_int: Option<Decimal>,
4610
4611 #[serde(
4613 rename = "@relatedTradeID",
4614 default,
4615 deserialize_with = "deserialize_optional_string"
4616 )]
4617 pub related_trade_id: Option<String>,
4618
4619 #[serde(
4621 rename = "@relatedTransactionID",
4622 default,
4623 deserialize_with = "deserialize_optional_string"
4624 )]
4625 pub related_transaction_id: Option<String>,
4626
4627 #[serde(
4629 rename = "@blockID",
4630 default,
4631 deserialize_with = "deserialize_optional_string"
4632 )]
4633 pub block_id: Option<String>,
4634}
4635
4636#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
4638pub struct OptionEAE {
4639 #[serde(
4641 rename = "@accountId",
4642 default,
4643 deserialize_with = "deserialize_optional_string"
4644 )]
4645 pub account_id: Option<String>,
4646
4647 #[serde(rename = "@acctAlias", default)]
4649 pub acct_alias: Option<String>,
4650
4651 #[serde(rename = "@model", default)]
4653 pub model: Option<String>,
4654
4655 #[serde(rename = "@transactionID", default)]
4657 pub transaction_id: Option<String>,
4658
4659 #[serde(rename = "@actionID", default)]
4661 pub action_id: Option<String>,
4662
4663 #[serde(rename = "@type", default)]
4665 pub action_type: Option<OptionAction>,
4666
4667 #[serde(
4669 rename = "@date",
4670 default,
4671 deserialize_with = "deserialize_optional_date"
4672 )]
4673 pub date: Option<NaiveDate>,
4674
4675 #[serde(rename = "@dateTime", default)]
4677 pub date_time: Option<String>,
4678
4679 #[serde(rename = "@conid", default)]
4681 pub conid: Option<String>,
4682
4683 #[serde(
4685 rename = "@symbol",
4686 default,
4687 deserialize_with = "deserialize_optional_string"
4688 )]
4689 pub symbol: Option<String>,
4690
4691 #[serde(rename = "@description", default)]
4693 pub description: Option<String>,
4694
4695 #[serde(rename = "@assetCategory", default)]
4697 pub asset_category: Option<AssetCategory>,
4698
4699 #[serde(rename = "@cusip", default)]
4702 pub cusip: Option<String>,
4703
4704 #[serde(rename = "@isin", default)]
4706 pub isin: Option<String>,
4707
4708 #[serde(rename = "@figi", default)]
4710 pub figi: Option<String>,
4711
4712 #[serde(rename = "@listingExchange", default)]
4714 pub listing_exchange: Option<String>,
4715
4716 #[serde(
4718 rename = "@quantity",
4719 default,
4720 deserialize_with = "deserialize_optional_decimal"
4721 )]
4722 pub quantity: Option<Decimal>,
4723
4724 #[serde(
4726 rename = "@strike",
4727 default,
4728 deserialize_with = "deserialize_optional_decimal"
4729 )]
4730 pub strike: Option<Decimal>,
4731
4732 #[serde(
4734 rename = "@expiry",
4735 default,
4736 deserialize_with = "deserialize_optional_date"
4737 )]
4738 pub expiry: Option<NaiveDate>,
4739
4740 #[serde(rename = "@putCall", default)]
4742 pub put_call: Option<String>,
4743
4744 #[serde(
4746 rename = "@multiplier",
4747 default,
4748 deserialize_with = "deserialize_optional_decimal"
4749 )]
4750 pub multiplier: Option<Decimal>,
4751
4752 #[serde(rename = "@underlyingSymbol", default)]
4754 pub underlying_symbol: Option<String>,
4755
4756 #[serde(rename = "@underlyingConid", default)]
4758 pub underlying_conid: Option<String>,
4759
4760 #[serde(
4762 rename = "@tradePrice",
4763 default,
4764 deserialize_with = "deserialize_optional_decimal"
4765 )]
4766 pub trade_price: Option<Decimal>,
4767
4768 #[serde(
4770 rename = "@proceeds",
4771 default,
4772 deserialize_with = "deserialize_optional_decimal"
4773 )]
4774 pub proceeds: Option<Decimal>,
4775
4776 #[serde(
4778 rename = "@commission",
4779 default,
4780 deserialize_with = "deserialize_optional_decimal"
4781 )]
4782 pub commission: Option<Decimal>,
4783
4784 #[serde(rename = "@currency", default)]
4786 pub currency: Option<String>,
4787
4788 #[serde(
4790 rename = "@fxRateToBase",
4791 default,
4792 deserialize_with = "deserialize_optional_decimal"
4793 )]
4794 pub fx_rate_to_base: Option<Decimal>,
4795
4796 #[serde(
4798 rename = "@fifoPnlRealized",
4799 default,
4800 deserialize_with = "deserialize_optional_decimal"
4801 )]
4802 pub fifo_pnl_realized: Option<Decimal>,
4803
4804 #[serde(rename = "@notes", default)]
4806 pub notes: Option<String>,
4807
4808 #[serde(rename = "@levelOfDetail", default)]
4810 pub level_of_detail: Option<String>,
4811
4812 #[serde(rename = "@transactionType", default)]
4814 pub transaction_type: Option<OptionAction>,
4815
4816 #[serde(
4818 rename = "@securityID",
4819 default,
4820 deserialize_with = "deserialize_optional_string"
4821 )]
4822 pub security_id: Option<String>,
4823
4824 #[serde(
4826 rename = "@securityIDType",
4827 default,
4828 deserialize_with = "deserialize_optional_string"
4829 )]
4830 pub security_id_type: Option<String>,
4831
4832 #[serde(
4834 rename = "@underlyingSecurityID",
4835 default,
4836 deserialize_with = "deserialize_optional_string"
4837 )]
4838 pub underlying_security_id: Option<String>,
4839
4840 #[serde(
4842 rename = "@underlyingListingExchange",
4843 default,
4844 deserialize_with = "deserialize_optional_string"
4845 )]
4846 pub underlying_listing_exchange: Option<String>,
4847
4848 #[serde(
4850 rename = "@issuer",
4851 default,
4852 deserialize_with = "deserialize_optional_string"
4853 )]
4854 pub issuer: Option<String>,
4855
4856 #[serde(
4858 rename = "@principalAdjustFactor",
4859 default,
4860 deserialize_with = "deserialize_optional_decimal"
4861 )]
4862 pub principal_adjust_factor: Option<Decimal>,
4863
4864 #[serde(
4866 rename = "@markPrice",
4867 default,
4868 deserialize_with = "deserialize_optional_decimal"
4869 )]
4870 pub mark_price: Option<Decimal>,
4871
4872 #[serde(
4874 rename = "@commisionsAndTax",
4875 default,
4876 deserialize_with = "deserialize_optional_decimal"
4877 )]
4878 pub commisions_and_tax: Option<Decimal>,
4879
4880 #[serde(
4882 rename = "@costBasis",
4883 default,
4884 deserialize_with = "deserialize_optional_decimal"
4885 )]
4886 pub cost_basis: Option<Decimal>,
4887
4888 #[serde(
4890 rename = "@realizedPnl",
4891 default,
4892 deserialize_with = "deserialize_optional_decimal"
4893 )]
4894 pub realized_pnl: Option<Decimal>,
4895
4896 #[serde(
4898 rename = "@capitalGainsPnl",
4899 default,
4900 deserialize_with = "deserialize_optional_decimal"
4901 )]
4902 pub capital_gains_pnl: Option<Decimal>,
4903
4904 #[serde(
4906 rename = "@fxPnl",
4907 default,
4908 deserialize_with = "deserialize_optional_decimal"
4909 )]
4910 pub fx_pnl: Option<Decimal>,
4911
4912 #[serde(
4914 rename = "@mtmPnl",
4915 default,
4916 deserialize_with = "deserialize_optional_decimal"
4917 )]
4918 pub mtm_pnl: Option<Decimal>,
4919
4920 #[serde(
4922 rename = "@tradeID",
4923 default,
4924 deserialize_with = "deserialize_optional_string"
4925 )]
4926 pub trade_id: Option<String>,
4927
4928 #[serde(
4930 rename = "@relatedTradeID",
4931 default,
4932 deserialize_with = "deserialize_optional_string"
4933 )]
4934 pub related_trade_id: Option<String>,
4935
4936 #[serde(
4938 rename = "@subCategory",
4939 default,
4940 deserialize_with = "deserialize_optional_string"
4941 )]
4942 pub sub_category: Option<String>,
4943
4944 #[serde(
4946 rename = "@issuerCountryCode",
4947 default,
4948 deserialize_with = "deserialize_optional_string"
4949 )]
4950 pub issuer_country_code: Option<String>,
4951
4952 #[serde(
4954 rename = "@origTransactionID",
4955 default,
4956 deserialize_with = "deserialize_optional_string"
4957 )]
4958 pub orig_transaction_id: Option<String>,
4959
4960 #[serde(
4962 rename = "@relatedTransactionID",
4963 default,
4964 deserialize_with = "deserialize_optional_string"
4965 )]
4966 pub related_transaction_id: Option<String>,
4967
4968 #[serde(
4970 rename = "@rtn",
4971 default,
4972 deserialize_with = "deserialize_optional_string"
4973 )]
4974 pub rtn: Option<String>,
4975
4976 #[serde(
4978 rename = "@initialInvestment",
4979 default,
4980 deserialize_with = "deserialize_optional_bool"
4981 )]
4982 pub initial_investment: Option<bool>,
4983
4984 #[serde(
4986 rename = "@serialNumber",
4987 default,
4988 deserialize_with = "deserialize_optional_string"
4989 )]
4990 pub serial_number: Option<String>,
4991
4992 #[serde(
4994 rename = "@deliveryType",
4995 default,
4996 deserialize_with = "deserialize_optional_string"
4997 )]
4998 pub delivery_type: Option<String>,
4999
5000 #[serde(
5002 rename = "@commodityType",
5003 default,
5004 deserialize_with = "deserialize_optional_string"
5005 )]
5006 pub commodity_type: Option<String>,
5007
5008 #[serde(
5010 rename = "@fineness",
5011 default,
5012 deserialize_with = "deserialize_optional_decimal"
5013 )]
5014 pub fineness: Option<Decimal>,
5015
5016 #[serde(
5018 rename = "@weight",
5019 default,
5020 deserialize_with = "deserialize_optional_string"
5021 )]
5022 pub weight: Option<String>,
5023}
5024
5025#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5027pub struct FxTransaction {
5028 #[serde(
5030 rename = "@accountId",
5031 default,
5032 deserialize_with = "deserialize_optional_string"
5033 )]
5034 pub account_id: Option<String>,
5035
5036 #[serde(rename = "@acctAlias", default)]
5038 pub acct_alias: Option<String>,
5039
5040 #[serde(rename = "@model", default)]
5042 pub model: Option<String>,
5043
5044 #[serde(rename = "@transactionID", default)]
5046 pub transaction_id: Option<String>,
5047
5048 #[serde(rename = "@actionID", default)]
5050 pub action_id: Option<String>,
5051
5052 #[serde(
5054 rename = "@reportDate",
5055 default,
5056 deserialize_with = "deserialize_optional_date"
5057 )]
5058 pub report_date: Option<NaiveDate>,
5059
5060 #[serde(rename = "@dateTime", default)]
5062 pub date_time: Option<String>,
5063
5064 #[serde(rename = "@description", default)]
5066 pub description: Option<String>,
5067
5068 #[serde(rename = "@functionalCurrency", default)]
5070 pub functional_currency: Option<String>,
5071
5072 #[serde(
5074 rename = "@fromCurrency",
5075 default,
5076 deserialize_with = "deserialize_optional_string"
5077 )]
5078 pub from_currency: Option<String>,
5079
5080 #[serde(
5082 rename = "@toCurrency",
5083 default,
5084 deserialize_with = "deserialize_optional_string"
5085 )]
5086 pub to_currency: Option<String>,
5087
5088 #[serde(
5090 rename = "@quantity",
5091 default,
5092 deserialize_with = "deserialize_optional_decimal"
5093 )]
5094 pub quantity: Option<Decimal>,
5095
5096 #[serde(
5098 rename = "@proceeds",
5099 default,
5100 deserialize_with = "deserialize_optional_decimal"
5101 )]
5102 pub proceeds: Option<Decimal>,
5103
5104 #[serde(
5106 rename = "@cost",
5107 default,
5108 deserialize_with = "deserialize_optional_decimal"
5109 )]
5110 pub cost: Option<Decimal>,
5111
5112 #[serde(
5114 rename = "@realizedPL",
5115 default,
5116 deserialize_with = "deserialize_optional_decimal"
5117 )]
5118 pub realized_pl: Option<Decimal>,
5119
5120 #[serde(
5122 rename = "@fxRateToBase",
5123 default,
5124 deserialize_with = "deserialize_optional_decimal"
5125 )]
5126 pub fx_rate_to_base: Option<Decimal>,
5127
5128 #[serde(rename = "@levelOfDetail", default)]
5130 pub level_of_detail: Option<String>,
5131
5132 #[serde(rename = "@assetCategory", default)]
5134 pub asset_category: Option<String>,
5135
5136 #[serde(
5138 rename = "@fxCurrency",
5139 default,
5140 deserialize_with = "deserialize_optional_string"
5141 )]
5142 pub fx_currency: Option<String>,
5143
5144 #[serde(
5146 rename = "@activityDescription",
5147 default,
5148 deserialize_with = "deserialize_optional_string"
5149 )]
5150 pub activity_description: Option<String>,
5151
5152 #[serde(
5154 rename = "@code",
5155 default,
5156 deserialize_with = "deserialize_optional_string"
5157 )]
5158 pub code: Option<String>,
5159}
5160
5161#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5163pub struct ChangeInDividendAccrual {
5164 #[serde(
5166 rename = "@accountId",
5167 default,
5168 deserialize_with = "deserialize_optional_string"
5169 )]
5170 pub account_id: Option<String>,
5171
5172 #[serde(rename = "@acctAlias", default)]
5174 pub acct_alias: Option<String>,
5175
5176 #[serde(rename = "@model", default)]
5178 pub model: Option<String>,
5179
5180 #[serde(rename = "@currency", default)]
5182 pub currency: Option<String>,
5183
5184 #[serde(
5186 rename = "@fxRateToBase",
5187 default,
5188 deserialize_with = "deserialize_optional_decimal"
5189 )]
5190 pub fx_rate_to_base: Option<Decimal>,
5191
5192 #[serde(rename = "@assetCategory", default)]
5194 pub asset_category: Option<AssetCategory>,
5195
5196 #[serde(
5198 rename = "@symbol",
5199 default,
5200 deserialize_with = "deserialize_optional_string"
5201 )]
5202 pub symbol: Option<String>,
5203
5204 #[serde(rename = "@description", default)]
5206 pub description: Option<String>,
5207
5208 #[serde(rename = "@conid", default)]
5210 pub conid: Option<String>,
5211
5212 #[serde(rename = "@securityID", default)]
5214 pub security_id: Option<String>,
5215
5216 #[serde(rename = "@securityIDType", default)]
5218 pub security_id_type: Option<String>,
5219
5220 #[serde(rename = "@cusip", default)]
5222 pub cusip: Option<String>,
5223
5224 #[serde(rename = "@isin", default)]
5226 pub isin: Option<String>,
5227
5228 #[serde(rename = "@figi", default)]
5230 pub figi: Option<String>,
5231
5232 #[serde(rename = "@listingExchange", default)]
5234 pub listing_exchange: Option<String>,
5235
5236 #[serde(
5238 rename = "@exDate",
5239 default,
5240 deserialize_with = "deserialize_optional_date"
5241 )]
5242 pub ex_date: Option<NaiveDate>,
5243
5244 #[serde(
5246 rename = "@payDate",
5247 default,
5248 deserialize_with = "deserialize_optional_date"
5249 )]
5250 pub pay_date: Option<NaiveDate>,
5251
5252 #[serde(
5254 rename = "@date",
5255 default,
5256 deserialize_with = "deserialize_optional_date"
5257 )]
5258 pub date: Option<NaiveDate>,
5259
5260 #[serde(
5262 rename = "@quantity",
5263 default,
5264 deserialize_with = "deserialize_optional_decimal"
5265 )]
5266 pub quantity: Option<Decimal>,
5267
5268 #[serde(
5270 rename = "@tax",
5271 default,
5272 deserialize_with = "deserialize_optional_decimal"
5273 )]
5274 pub tax: Option<Decimal>,
5275
5276 #[serde(
5278 rename = "@fee",
5279 default,
5280 deserialize_with = "deserialize_optional_decimal"
5281 )]
5282 pub fee: Option<Decimal>,
5283
5284 #[serde(
5286 rename = "@grossRate",
5287 default,
5288 deserialize_with = "deserialize_optional_decimal"
5289 )]
5290 pub gross_rate: Option<Decimal>,
5291
5292 #[serde(
5294 rename = "@grossAmount",
5295 default,
5296 deserialize_with = "deserialize_optional_decimal"
5297 )]
5298 pub gross_amount: Option<Decimal>,
5299
5300 #[serde(
5302 rename = "@netAmount",
5303 default,
5304 deserialize_with = "deserialize_optional_decimal"
5305 )]
5306 pub net_amount: Option<Decimal>,
5307
5308 #[serde(
5310 rename = "@fromAccrual",
5311 default,
5312 deserialize_with = "deserialize_optional_decimal"
5313 )]
5314 pub from_accrual: Option<Decimal>,
5315
5316 #[serde(
5318 rename = "@toAccrual",
5319 default,
5320 deserialize_with = "deserialize_optional_decimal"
5321 )]
5322 pub to_accrual: Option<Decimal>,
5323
5324 #[serde(rename = "@code", default)]
5326 pub code: Option<String>,
5327
5328 #[serde(
5330 rename = "@sedol",
5331 default,
5332 deserialize_with = "deserialize_optional_string"
5333 )]
5334 pub sedol: Option<String>,
5335
5336 #[serde(
5338 rename = "@underlyingSecurityID",
5339 default,
5340 deserialize_with = "deserialize_optional_string"
5341 )]
5342 pub underlying_security_id: Option<String>,
5343
5344 #[serde(
5346 rename = "@underlyingListingExchange",
5347 default,
5348 deserialize_with = "deserialize_optional_string"
5349 )]
5350 pub underlying_listing_exchange: Option<String>,
5351
5352 #[serde(
5354 rename = "@reportDate",
5355 default,
5356 deserialize_with = "deserialize_optional_date"
5357 )]
5358 pub report_date: Option<NaiveDate>,
5359
5360 #[serde(
5362 rename = "@underlyingConid",
5363 default,
5364 deserialize_with = "deserialize_optional_string"
5365 )]
5366 pub underlying_conid: Option<String>,
5367
5368 #[serde(
5370 rename = "@underlyingSymbol",
5371 default,
5372 deserialize_with = "deserialize_optional_string"
5373 )]
5374 pub underlying_symbol: Option<String>,
5375
5376 #[serde(
5378 rename = "@issuer",
5379 default,
5380 deserialize_with = "deserialize_optional_string"
5381 )]
5382 pub issuer: Option<String>,
5383
5384 #[serde(
5386 rename = "@multiplier",
5387 default,
5388 deserialize_with = "deserialize_optional_decimal"
5389 )]
5390 pub multiplier: Option<Decimal>,
5391
5392 #[serde(
5394 rename = "@strike",
5395 default,
5396 deserialize_with = "deserialize_optional_decimal"
5397 )]
5398 pub strike: Option<Decimal>,
5399
5400 #[serde(
5402 rename = "@expiry",
5403 default,
5404 deserialize_with = "deserialize_optional_date"
5405 )]
5406 pub expiry: Option<NaiveDate>,
5407
5408 #[serde(rename = "@putCall", default)]
5410 pub put_call: Option<PutCall>,
5411
5412 #[serde(
5414 rename = "@principalAdjustFactor",
5415 default,
5416 deserialize_with = "deserialize_optional_decimal"
5417 )]
5418 pub principal_adjust_factor: Option<Decimal>,
5419
5420 #[serde(
5422 rename = "@fromAcct",
5423 default,
5424 deserialize_with = "deserialize_optional_string"
5425 )]
5426 pub from_acct: Option<String>,
5427
5428 #[serde(
5430 rename = "@toAcct",
5431 default,
5432 deserialize_with = "deserialize_optional_string"
5433 )]
5434 pub to_acct: Option<String>,
5435
5436 #[serde(
5438 rename = "@subCategory",
5439 default,
5440 deserialize_with = "deserialize_optional_string"
5441 )]
5442 pub sub_category: Option<String>,
5443
5444 #[serde(
5446 rename = "@issuerCountryCode",
5447 default,
5448 deserialize_with = "deserialize_optional_string"
5449 )]
5450 pub issuer_country_code: Option<String>,
5451
5452 #[serde(
5454 rename = "@actionID",
5455 default,
5456 deserialize_with = "deserialize_optional_decimal"
5457 )]
5458 pub action_id: Option<Decimal>,
5459
5460 #[serde(
5462 rename = "@levelOfDetail",
5463 default,
5464 deserialize_with = "deserialize_optional_string"
5465 )]
5466 pub level_of_detail: Option<String>,
5467
5468 #[serde(
5470 rename = "@serialNumber",
5471 default,
5472 deserialize_with = "deserialize_optional_decimal"
5473 )]
5474 pub serial_number: Option<Decimal>,
5475
5476 #[serde(
5478 rename = "@deliveryType",
5479 default,
5480 deserialize_with = "deserialize_optional_decimal"
5481 )]
5482 pub delivery_type: Option<Decimal>,
5483
5484 #[serde(
5486 rename = "@commodityType",
5487 default,
5488 deserialize_with = "deserialize_optional_string"
5489 )]
5490 pub commodity_type: Option<String>,
5491
5492 #[serde(
5494 rename = "@fineness",
5495 default,
5496 deserialize_with = "deserialize_optional_decimal"
5497 )]
5498 pub fineness: Option<Decimal>,
5499
5500 #[serde(
5502 rename = "@weight",
5503 default,
5504 deserialize_with = "deserialize_optional_decimal"
5505 )]
5506 pub weight: Option<Decimal>,
5507}
5508
5509#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5511pub struct OpenDividendAccrual {
5512 #[serde(
5514 rename = "@accountId",
5515 default,
5516 deserialize_with = "deserialize_optional_string"
5517 )]
5518 pub account_id: Option<String>,
5519
5520 #[serde(rename = "@acctAlias", default)]
5522 pub acct_alias: Option<String>,
5523
5524 #[serde(rename = "@model", default)]
5526 pub model: Option<String>,
5527
5528 #[serde(rename = "@currency", default)]
5530 pub currency: Option<String>,
5531
5532 #[serde(
5534 rename = "@fxRateToBase",
5535 default,
5536 deserialize_with = "deserialize_optional_decimal"
5537 )]
5538 pub fx_rate_to_base: Option<Decimal>,
5539
5540 #[serde(rename = "@assetCategory", default)]
5542 pub asset_category: Option<AssetCategory>,
5543
5544 #[serde(
5546 rename = "@symbol",
5547 default,
5548 deserialize_with = "deserialize_optional_string"
5549 )]
5550 pub symbol: Option<String>,
5551
5552 #[serde(rename = "@description", default)]
5554 pub description: Option<String>,
5555
5556 #[serde(rename = "@conid", default)]
5558 pub conid: Option<String>,
5559
5560 #[serde(rename = "@securityID", default)]
5562 pub security_id: Option<String>,
5563
5564 #[serde(rename = "@securityIDType", default)]
5566 pub security_id_type: Option<String>,
5567
5568 #[serde(rename = "@cusip", default)]
5570 pub cusip: Option<String>,
5571
5572 #[serde(rename = "@isin", default)]
5574 pub isin: Option<String>,
5575
5576 #[serde(rename = "@figi", default)]
5578 pub figi: Option<String>,
5579
5580 #[serde(rename = "@listingExchange", default)]
5582 pub listing_exchange: Option<String>,
5583
5584 #[serde(
5586 rename = "@exDate",
5587 default,
5588 deserialize_with = "deserialize_optional_date"
5589 )]
5590 pub ex_date: Option<NaiveDate>,
5591
5592 #[serde(
5594 rename = "@payDate",
5595 default,
5596 deserialize_with = "deserialize_optional_date"
5597 )]
5598 pub pay_date: Option<NaiveDate>,
5599
5600 #[serde(
5602 rename = "@quantity",
5603 default,
5604 deserialize_with = "deserialize_optional_decimal"
5605 )]
5606 pub quantity: Option<Decimal>,
5607
5608 #[serde(
5610 rename = "@tax",
5611 default,
5612 deserialize_with = "deserialize_optional_decimal"
5613 )]
5614 pub tax: Option<Decimal>,
5615
5616 #[serde(
5618 rename = "@fee",
5619 default,
5620 deserialize_with = "deserialize_optional_decimal"
5621 )]
5622 pub fee: Option<Decimal>,
5623
5624 #[serde(
5626 rename = "@grossRate",
5627 default,
5628 deserialize_with = "deserialize_optional_decimal"
5629 )]
5630 pub gross_rate: Option<Decimal>,
5631
5632 #[serde(
5634 rename = "@grossAmount",
5635 default,
5636 deserialize_with = "deserialize_optional_decimal"
5637 )]
5638 pub gross_amount: Option<Decimal>,
5639
5640 #[serde(
5642 rename = "@netAmount",
5643 default,
5644 deserialize_with = "deserialize_optional_decimal"
5645 )]
5646 pub net_amount: Option<Decimal>,
5647
5648 #[serde(rename = "@code", default)]
5650 pub code: Option<String>,
5651
5652 #[serde(
5654 rename = "@underlyingConid",
5655 default,
5656 deserialize_with = "deserialize_optional_string"
5657 )]
5658 pub underlying_conid: Option<String>,
5659
5660 #[serde(
5662 rename = "@underlyingSecurityID",
5663 default,
5664 deserialize_with = "deserialize_optional_string"
5665 )]
5666 pub underlying_security_id: Option<String>,
5667
5668 #[serde(
5670 rename = "@underlyingListingExchange",
5671 default,
5672 deserialize_with = "deserialize_optional_string"
5673 )]
5674 pub underlying_listing_exchange: Option<String>,
5675
5676 #[serde(
5678 rename = "@sedol",
5679 default,
5680 deserialize_with = "deserialize_optional_string"
5681 )]
5682 pub sedol: Option<String>,
5683
5684 #[serde(
5686 rename = "@underlyingSymbol",
5687 default,
5688 deserialize_with = "deserialize_optional_string"
5689 )]
5690 pub underlying_symbol: Option<String>,
5691
5692 #[serde(
5694 rename = "@issuer",
5695 default,
5696 deserialize_with = "deserialize_optional_string"
5697 )]
5698 pub issuer: Option<String>,
5699
5700 #[serde(
5702 rename = "@multiplier",
5703 default,
5704 deserialize_with = "deserialize_optional_decimal"
5705 )]
5706 pub multiplier: Option<Decimal>,
5707
5708 #[serde(
5710 rename = "@strike",
5711 default,
5712 deserialize_with = "deserialize_optional_decimal"
5713 )]
5714 pub strike: Option<Decimal>,
5715
5716 #[serde(
5718 rename = "@expiry",
5719 default,
5720 deserialize_with = "deserialize_optional_date"
5721 )]
5722 pub expiry: Option<NaiveDate>,
5723
5724 #[serde(rename = "@putCall", default)]
5726 pub put_call: Option<PutCall>,
5727
5728 #[serde(
5730 rename = "@principalAdjustFactor",
5731 default,
5732 deserialize_with = "deserialize_optional_decimal"
5733 )]
5734 pub principal_adjust_factor: Option<Decimal>,
5735
5736 #[serde(
5738 rename = "@fromAcct",
5739 default,
5740 deserialize_with = "deserialize_optional_string"
5741 )]
5742 pub from_acct: Option<String>,
5743
5744 #[serde(
5746 rename = "@toAcct",
5747 default,
5748 deserialize_with = "deserialize_optional_string"
5749 )]
5750 pub to_acct: Option<String>,
5751
5752 #[serde(
5754 rename = "@serialNumber",
5755 default,
5756 deserialize_with = "deserialize_optional_string"
5757 )]
5758 pub serial_number: Option<String>,
5759
5760 #[serde(
5762 rename = "@deliveryType",
5763 default,
5764 deserialize_with = "deserialize_optional_string"
5765 )]
5766 pub delivery_type: Option<String>,
5767
5768 #[serde(
5770 rename = "@commodityType",
5771 default,
5772 deserialize_with = "deserialize_optional_string"
5773 )]
5774 pub commodity_type: Option<String>,
5775
5776 #[serde(
5778 rename = "@fineness",
5779 default,
5780 deserialize_with = "deserialize_optional_decimal"
5781 )]
5782 pub fineness: Option<Decimal>,
5783
5784 #[serde(
5786 rename = "@weight",
5787 default,
5788 deserialize_with = "deserialize_optional_string"
5789 )]
5790 pub weight: Option<String>,
5791}
5792
5793#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5795pub struct InterestAccrualsCurrency {
5796 #[serde(
5798 rename = "@accountId",
5799 default,
5800 deserialize_with = "deserialize_optional_string"
5801 )]
5802 pub account_id: Option<String>,
5803
5804 #[serde(
5806 rename = "@currency",
5807 default,
5808 deserialize_with = "deserialize_optional_string"
5809 )]
5810 pub currency: Option<String>,
5811
5812 #[serde(
5814 rename = "@fromDate",
5815 default,
5816 deserialize_with = "deserialize_optional_date"
5817 )]
5818 pub from_date: Option<NaiveDate>,
5819
5820 #[serde(
5822 rename = "@toDate",
5823 default,
5824 deserialize_with = "deserialize_optional_date"
5825 )]
5826 pub to_date: Option<NaiveDate>,
5827
5828 #[serde(
5830 rename = "@startingAccrualBalance",
5831 default,
5832 deserialize_with = "deserialize_optional_decimal"
5833 )]
5834 pub starting_balance: Option<Decimal>,
5835
5836 #[serde(
5838 rename = "@interestAccrued",
5839 default,
5840 deserialize_with = "deserialize_optional_decimal"
5841 )]
5842 pub interest_accrued: Option<Decimal>,
5843
5844 #[serde(
5846 rename = "@endingAccrualBalance",
5847 default,
5848 deserialize_with = "deserialize_optional_decimal"
5849 )]
5850 pub ending_balance: Option<Decimal>,
5851
5852 #[serde(
5854 rename = "@accrualReversal",
5855 default,
5856 deserialize_with = "deserialize_optional_decimal"
5857 )]
5858 pub accrual_reversal: Option<Decimal>,
5859
5860 #[serde(
5862 rename = "@acctAlias",
5863 default,
5864 deserialize_with = "deserialize_optional_string"
5865 )]
5866 pub acct_alias: Option<String>,
5867
5868 #[serde(
5870 rename = "@model",
5871 default,
5872 deserialize_with = "deserialize_optional_string"
5873 )]
5874 pub model: Option<String>,
5875
5876 #[serde(
5878 rename = "@fxTranslation",
5879 default,
5880 deserialize_with = "deserialize_optional_decimal"
5881 )]
5882 pub fx_translation: Option<Decimal>,
5883}
5884
5885#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5887pub struct Transfer {
5888 #[serde(
5890 rename = "@accountId",
5891 default,
5892 deserialize_with = "deserialize_optional_string"
5893 )]
5894 pub account_id: Option<String>,
5895
5896 #[serde(rename = "@acctAlias", default)]
5898 pub acct_alias: Option<String>,
5899
5900 #[serde(rename = "@model", default)]
5902 pub model: Option<String>,
5903
5904 #[serde(rename = "@transactionID", default)]
5906 pub transaction_id: Option<String>,
5907
5908 #[serde(rename = "@type", default)]
5910 pub transfer_type: Option<TransferType>,
5911
5912 #[serde(rename = "@conid", default)]
5914 pub conid: Option<String>,
5915
5916 #[serde(
5918 rename = "@symbol",
5919 default,
5920 deserialize_with = "deserialize_optional_string"
5921 )]
5922 pub symbol: Option<String>,
5923
5924 #[serde(rename = "@description", default)]
5926 pub description: Option<String>,
5927
5928 #[serde(rename = "@assetCategory", default)]
5930 pub asset_category: Option<AssetCategory>,
5931
5932 #[serde(rename = "@cusip", default)]
5935 pub cusip: Option<String>,
5936
5937 #[serde(rename = "@isin", default)]
5939 pub isin: Option<String>,
5940
5941 #[serde(rename = "@figi", default)]
5943 pub figi: Option<String>,
5944
5945 #[serde(rename = "@listingExchange", default)]
5947 pub listing_exchange: Option<String>,
5948
5949 #[serde(
5951 rename = "@quantity",
5952 default,
5953 deserialize_with = "deserialize_optional_decimal"
5954 )]
5955 pub quantity: Option<Decimal>,
5956
5957 #[serde(
5959 rename = "@transferPrice",
5960 default,
5961 deserialize_with = "deserialize_optional_decimal"
5962 )]
5963 pub transfer_price: Option<Decimal>,
5964
5965 #[serde(
5967 rename = "@positionAmount",
5968 default,
5969 deserialize_with = "deserialize_optional_decimal"
5970 )]
5971 pub position_amount: Option<Decimal>,
5972
5973 #[serde(
5975 rename = "@positionAmountInBase",
5976 default,
5977 deserialize_with = "deserialize_optional_decimal"
5978 )]
5979 pub position_amount_in_base: Option<Decimal>,
5980
5981 #[serde(
5983 rename = "@cashTransfer",
5984 default,
5985 deserialize_with = "deserialize_optional_decimal"
5986 )]
5987 pub cash_transfer: Option<Decimal>,
5988
5989 #[serde(rename = "@currency", default)]
5991 pub currency: Option<String>,
5992
5993 #[serde(
5995 rename = "@fxRateToBase",
5996 default,
5997 deserialize_with = "deserialize_optional_decimal"
5998 )]
5999 pub fx_rate_to_base: Option<Decimal>,
6000
6001 #[serde(rename = "@direction", default)]
6003 pub direction: Option<String>,
6004
6005 #[serde(
6007 rename = "@date",
6008 default,
6009 deserialize_with = "deserialize_optional_date"
6010 )]
6011 pub date: Option<NaiveDate>,
6012
6013 #[serde(rename = "@ppiPayerPayeeAccount", default)]
6015 pub ppi_payer_payee_account: Option<String>,
6016
6017 #[serde(rename = "@deliveringReceivingBroker", default)]
6019 pub delivering_receiving_broker: Option<String>,
6020
6021 #[serde(
6024 rename = "@strike",
6025 default,
6026 deserialize_with = "deserialize_optional_decimal"
6027 )]
6028 pub strike: Option<Decimal>,
6029
6030 #[serde(
6032 rename = "@expiry",
6033 default,
6034 deserialize_with = "deserialize_optional_date"
6035 )]
6036 pub expiry: Option<NaiveDate>,
6037
6038 #[serde(rename = "@putCall", default)]
6040 pub put_call: Option<String>,
6041
6042 #[serde(
6044 rename = "@multiplier",
6045 default,
6046 deserialize_with = "deserialize_optional_decimal"
6047 )]
6048 pub multiplier: Option<Decimal>,
6049
6050 #[serde(
6052 rename = "@subCategory",
6053 default,
6054 deserialize_with = "deserialize_optional_string"
6055 )]
6056 pub sub_category: Option<String>,
6057
6058 #[serde(
6060 rename = "@securityID",
6061 default,
6062 deserialize_with = "deserialize_optional_string"
6063 )]
6064 pub security_id: Option<String>,
6065
6066 #[serde(
6068 rename = "@underlyingSecurityID",
6069 default,
6070 deserialize_with = "deserialize_optional_string"
6071 )]
6072 pub underlying_security_id: Option<String>,
6073
6074 #[serde(
6076 rename = "@underlyingListingExchange",
6077 default,
6078 deserialize_with = "deserialize_optional_string"
6079 )]
6080 pub underlying_listing_exchange: Option<String>,
6081
6082 #[serde(
6084 rename = "@reportDate",
6085 default,
6086 deserialize_with = "deserialize_optional_date"
6087 )]
6088 pub report_date: Option<NaiveDate>,
6089
6090 #[serde(
6092 rename = "@underlyingConid",
6093 default,
6094 deserialize_with = "deserialize_optional_string"
6095 )]
6096 pub underlying_conid: Option<String>,
6097
6098 #[serde(
6100 rename = "@dateTime",
6101 default,
6102 deserialize_with = "deserialize_optional_string"
6103 )]
6104 pub date_time: Option<String>,
6105
6106 #[serde(
6108 rename = "@account",
6109 default,
6110 deserialize_with = "deserialize_optional_string"
6111 )]
6112 pub account: Option<String>,
6113
6114 #[serde(
6116 rename = "@deliveringBroker",
6117 default,
6118 deserialize_with = "deserialize_optional_string"
6119 )]
6120 pub delivering_broker: Option<String>,
6121
6122 #[serde(
6124 rename = "@capitalGainsPnl",
6125 default,
6126 deserialize_with = "deserialize_optional_decimal"
6127 )]
6128 pub capital_gains_pnl: Option<Decimal>,
6129
6130 #[serde(
6132 rename = "@code",
6133 default,
6134 deserialize_with = "deserialize_optional_string"
6135 )]
6136 pub code: Option<String>,
6137
6138 #[serde(
6140 rename = "@clientReference",
6141 default,
6142 deserialize_with = "deserialize_optional_string"
6143 )]
6144 pub client_reference: Option<String>,
6145
6146 #[serde(
6148 rename = "@sedol",
6149 default,
6150 deserialize_with = "deserialize_optional_string"
6151 )]
6152 pub sedol: Option<String>,
6153
6154 #[serde(
6156 rename = "@securityIDType",
6157 default,
6158 deserialize_with = "deserialize_optional_string"
6159 )]
6160 pub security_id_type: Option<String>,
6161
6162 #[serde(
6164 rename = "@underlyingSymbol",
6165 default,
6166 deserialize_with = "deserialize_optional_string"
6167 )]
6168 pub underlying_symbol: Option<String>,
6169
6170 #[serde(
6172 rename = "@issuer",
6173 default,
6174 deserialize_with = "deserialize_optional_string"
6175 )]
6176 pub issuer: Option<String>,
6177
6178 #[serde(
6180 rename = "@principalAdjustFactor",
6181 default,
6182 deserialize_with = "deserialize_optional_decimal"
6183 )]
6184 pub principal_adjust_factor: Option<Decimal>,
6185
6186 #[serde(
6188 rename = "@company",
6189 default,
6190 deserialize_with = "deserialize_optional_string"
6191 )]
6192 pub company: Option<String>,
6193
6194 #[serde(
6196 rename = "@accountName",
6197 default,
6198 deserialize_with = "deserialize_optional_string"
6199 )]
6200 pub account_name: Option<String>,
6201
6202 #[serde(
6204 rename = "@pnlAmount",
6205 default,
6206 deserialize_with = "deserialize_optional_decimal"
6207 )]
6208 pub pnl_amount: Option<Decimal>,
6209
6210 #[serde(
6212 rename = "@pnlAmountInBase",
6213 default,
6214 deserialize_with = "deserialize_optional_decimal"
6215 )]
6216 pub pnl_amount_in_base: Option<Decimal>,
6217
6218 #[serde(
6220 rename = "@fxPnl",
6221 default,
6222 deserialize_with = "deserialize_optional_decimal"
6223 )]
6224 pub fx_pnl: Option<Decimal>,
6225
6226 #[serde(
6228 rename = "@serialNumber",
6229 default,
6230 deserialize_with = "deserialize_optional_string"
6231 )]
6232 pub serial_number: Option<String>,
6233
6234 #[serde(
6236 rename = "@deliveryType",
6237 default,
6238 deserialize_with = "deserialize_optional_string"
6239 )]
6240 pub delivery_type: Option<String>,
6241
6242 #[serde(
6244 rename = "@commodityType",
6245 default,
6246 deserialize_with = "deserialize_optional_string"
6247 )]
6248 pub commodity_type: Option<String>,
6249
6250 #[serde(
6252 rename = "@fineness",
6253 default,
6254 deserialize_with = "deserialize_optional_decimal"
6255 )]
6256 pub fineness: Option<Decimal>,
6257
6258 #[serde(
6260 rename = "@weight",
6261 default,
6262 deserialize_with = "deserialize_optional_string"
6263 )]
6264 pub weight: Option<String>,
6265
6266 #[serde(
6268 rename = "@settleDate",
6269 default,
6270 deserialize_with = "deserialize_optional_date"
6271 )]
6272 pub settle_date: Option<NaiveDate>,
6273
6274 #[serde(
6276 rename = "@issuerCountryCode",
6277 default,
6278 deserialize_with = "deserialize_optional_string"
6279 )]
6280 pub issuer_country_code: Option<String>,
6281
6282 #[serde(
6284 rename = "@levelOfDetail",
6285 default,
6286 deserialize_with = "deserialize_optional_string"
6287 )]
6288 pub level_of_detail: Option<String>,
6289
6290 #[serde(
6292 rename = "@positionInstructionID",
6293 default,
6294 deserialize_with = "deserialize_optional_string"
6295 )]
6296 pub position_instruction_id: Option<String>,
6297
6298 #[serde(
6300 rename = "@positionInstructionSetID",
6301 default,
6302 deserialize_with = "deserialize_optional_string"
6303 )]
6304 pub position_instruction_set_id: Option<String>,
6305}
6306
6307#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
6316pub struct MTMPerformanceSummaryUnderlying {
6317 #[serde(
6319 rename = "@accountId",
6320 default,
6321 deserialize_with = "deserialize_optional_string"
6322 )]
6323 pub account_id: Option<String>,
6324
6325 #[serde(rename = "@acctAlias", default)]
6327 pub acct_alias: Option<String>,
6328
6329 #[serde(rename = "@model", default)]
6331 pub model: Option<String>,
6332
6333 #[serde(
6335 rename = "@reportDate",
6336 default,
6337 deserialize_with = "deserialize_optional_date"
6338 )]
6339 pub report_date: Option<NaiveDate>,
6340
6341 #[serde(rename = "@symbol", default)]
6343 pub symbol: Option<String>,
6344
6345 #[serde(rename = "@description", default)]
6347 pub description: Option<String>,
6348
6349 #[serde(rename = "@conid", default)]
6351 pub conid: Option<String>,
6352
6353 #[serde(rename = "@assetCategory", default)]
6355 pub asset_category: Option<AssetCategory>,
6356
6357 #[serde(rename = "@cusip", default)]
6360 pub cusip: Option<String>,
6361
6362 #[serde(rename = "@isin", default)]
6364 pub isin: Option<String>,
6365
6366 #[serde(rename = "@listingExchange", default)]
6368 pub listing_exchange: Option<String>,
6369
6370 #[serde(rename = "@underlyingSymbol", default)]
6372 pub underlying_symbol: Option<String>,
6373
6374 #[serde(rename = "@underlyingConid", default)]
6376 pub underlying_conid: Option<String>,
6377
6378 #[serde(rename = "@underlyingListingExchange", default)]
6380 pub underlying_listing_exchange: Option<String>,
6381
6382 #[serde(
6385 rename = "@costAdj",
6386 default,
6387 deserialize_with = "deserialize_optional_decimal"
6388 )]
6389 pub cost_adj: Option<Decimal>,
6390
6391 #[serde(
6393 rename = "@realizedSTProfit",
6394 default,
6395 deserialize_with = "deserialize_optional_decimal"
6396 )]
6397 pub realized_st_profit: Option<Decimal>,
6398
6399 #[serde(
6401 rename = "@realizedSTLoss",
6402 default,
6403 deserialize_with = "deserialize_optional_decimal"
6404 )]
6405 pub realized_st_loss: Option<Decimal>,
6406
6407 #[serde(
6409 rename = "@realizedLTProfit",
6410 default,
6411 deserialize_with = "deserialize_optional_decimal"
6412 )]
6413 pub realized_lt_profit: Option<Decimal>,
6414
6415 #[serde(
6417 rename = "@realizedLTLoss",
6418 default,
6419 deserialize_with = "deserialize_optional_decimal"
6420 )]
6421 pub realized_lt_loss: Option<Decimal>,
6422
6423 #[serde(
6425 rename = "@unrealizedSTProfit",
6426 default,
6427 deserialize_with = "deserialize_optional_decimal"
6428 )]
6429 pub unrealized_st_profit: Option<Decimal>,
6430
6431 #[serde(
6433 rename = "@unrealizedSTLoss",
6434 default,
6435 deserialize_with = "deserialize_optional_decimal"
6436 )]
6437 pub unrealized_st_loss: Option<Decimal>,
6438
6439 #[serde(
6441 rename = "@unrealizedLTProfit",
6442 default,
6443 deserialize_with = "deserialize_optional_decimal"
6444 )]
6445 pub unrealized_lt_profit: Option<Decimal>,
6446
6447 #[serde(
6449 rename = "@unrealizedLTLoss",
6450 default,
6451 deserialize_with = "deserialize_optional_decimal"
6452 )]
6453 pub unrealized_lt_loss: Option<Decimal>,
6454
6455 #[serde(
6457 rename = "@transactionMtm",
6458 default,
6459 deserialize_with = "deserialize_optional_decimal"
6460 )]
6461 pub transaction_mtm: Option<Decimal>,
6462
6463 #[serde(
6465 rename = "@commissions",
6466 default,
6467 deserialize_with = "deserialize_optional_decimal"
6468 )]
6469 pub commissions: Option<Decimal>,
6470
6471 #[serde(
6473 rename = "@other",
6474 default,
6475 deserialize_with = "deserialize_optional_decimal"
6476 )]
6477 pub other: Option<Decimal>,
6478
6479 #[serde(rename = "@levelOfDetail", default)]
6481 pub level_of_detail: Option<String>,
6482
6483 #[serde(
6485 rename = "@securityID",
6486 default,
6487 deserialize_with = "deserialize_optional_string"
6488 )]
6489 pub security_id: Option<String>,
6490
6491 #[serde(
6493 rename = "@securityIDType",
6494 default,
6495 deserialize_with = "deserialize_optional_string"
6496 )]
6497 pub security_id_type: Option<String>,
6498
6499 #[serde(
6501 rename = "@sedol",
6502 default,
6503 deserialize_with = "deserialize_optional_string"
6504 )]
6505 pub sedol: Option<String>,
6506
6507 #[serde(
6509 rename = "@underlyingSecurityID",
6510 default,
6511 deserialize_with = "deserialize_optional_string"
6512 )]
6513 pub underlying_security_id: Option<String>,
6514
6515 #[serde(
6517 rename = "@issuer",
6518 default,
6519 deserialize_with = "deserialize_optional_string"
6520 )]
6521 pub issuer: Option<String>,
6522
6523 #[serde(
6525 rename = "@multiplier",
6526 default,
6527 deserialize_with = "deserialize_optional_decimal"
6528 )]
6529 pub multiplier: Option<Decimal>,
6530
6531 #[serde(
6533 rename = "@strike",
6534 default,
6535 deserialize_with = "deserialize_optional_decimal"
6536 )]
6537 pub strike: Option<Decimal>,
6538
6539 #[serde(
6541 rename = "@expiry",
6542 default,
6543 deserialize_with = "deserialize_optional_date"
6544 )]
6545 pub expiry: Option<NaiveDate>,
6546
6547 #[serde(rename = "@putCall", default)]
6549 pub put_call: Option<PutCall>,
6550
6551 #[serde(
6553 rename = "@principalAdjustFactor",
6554 default,
6555 deserialize_with = "deserialize_optional_decimal"
6556 )]
6557 pub principal_adjust_factor: Option<Decimal>,
6558
6559 #[serde(
6561 rename = "@prevCloseQuantity",
6562 default,
6563 deserialize_with = "deserialize_optional_decimal"
6564 )]
6565 pub prev_close_quantity: Option<Decimal>,
6566
6567 #[serde(
6569 rename = "@prevClosePrice",
6570 default,
6571 deserialize_with = "deserialize_optional_decimal"
6572 )]
6573 pub prev_close_price: Option<Decimal>,
6574
6575 #[serde(
6577 rename = "@closeQuantity",
6578 default,
6579 deserialize_with = "deserialize_optional_decimal"
6580 )]
6581 pub close_quantity: Option<Decimal>,
6582
6583 #[serde(
6585 rename = "@closePrice",
6586 default,
6587 deserialize_with = "deserialize_optional_decimal"
6588 )]
6589 pub close_price: Option<Decimal>,
6590
6591 #[serde(
6593 rename = "@priorOpenMtm",
6594 default,
6595 deserialize_with = "deserialize_optional_decimal"
6596 )]
6597 pub prior_open_mtm: Option<Decimal>,
6598
6599 #[serde(
6601 rename = "@total",
6602 default,
6603 deserialize_with = "deserialize_optional_decimal"
6604 )]
6605 pub total: Option<Decimal>,
6606
6607 #[serde(
6609 rename = "@code",
6610 default,
6611 deserialize_with = "deserialize_optional_string"
6612 )]
6613 pub code: Option<String>,
6614
6615 #[serde(
6617 rename = "@corpActionMtm",
6618 default,
6619 deserialize_with = "deserialize_optional_decimal"
6620 )]
6621 pub corp_action_mtm: Option<Decimal>,
6622
6623 #[serde(
6625 rename = "@dividends",
6626 default,
6627 deserialize_with = "deserialize_optional_decimal"
6628 )]
6629 pub dividends: Option<Decimal>,
6630
6631 #[serde(
6633 rename = "@serialNumber",
6634 default,
6635 deserialize_with = "deserialize_optional_string"
6636 )]
6637 pub serial_number: Option<String>,
6638
6639 #[serde(
6641 rename = "@deliveryType",
6642 default,
6643 deserialize_with = "deserialize_optional_string"
6644 )]
6645 pub delivery_type: Option<String>,
6646
6647 #[serde(
6649 rename = "@commodityType",
6650 default,
6651 deserialize_with = "deserialize_optional_string"
6652 )]
6653 pub commodity_type: Option<String>,
6654
6655 #[serde(
6657 rename = "@fineness",
6658 default,
6659 deserialize_with = "deserialize_optional_decimal"
6660 )]
6661 pub fineness: Option<Decimal>,
6662
6663 #[serde(
6665 rename = "@weight",
6666 default,
6667 deserialize_with = "deserialize_optional_string"
6668 )]
6669 pub weight: Option<String>,
6670
6671 #[serde(
6673 rename = "@otherWithAccruals",
6674 default,
6675 deserialize_with = "deserialize_optional_decimal"
6676 )]
6677 pub other_with_accruals: Option<Decimal>,
6678
6679 #[serde(
6681 rename = "@totalWithAccruals",
6682 default,
6683 deserialize_with = "deserialize_optional_decimal"
6684 )]
6685 pub total_with_accruals: Option<Decimal>,
6686
6687 #[serde(
6689 rename = "@subCategory",
6690 default,
6691 deserialize_with = "deserialize_optional_string"
6692 )]
6693 pub sub_category: Option<String>,
6694
6695 #[serde(
6697 rename = "@figi",
6698 default,
6699 deserialize_with = "deserialize_optional_string"
6700 )]
6701 pub figi: Option<String>,
6702
6703 #[serde(
6705 rename = "@issuerCountryCode",
6706 default,
6707 deserialize_with = "deserialize_optional_string"
6708 )]
6709 pub issuer_country_code: Option<String>,
6710}
6711
6712#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
6717pub struct FIFOPerformanceSummaryUnderlying {
6718 #[serde(
6720 rename = "@accountId",
6721 default,
6722 deserialize_with = "deserialize_optional_string"
6723 )]
6724 pub account_id: Option<String>,
6725
6726 #[serde(rename = "@acctAlias", default)]
6728 pub acct_alias: Option<String>,
6729
6730 #[serde(rename = "@model", default)]
6732 pub model: Option<String>,
6733
6734 #[serde(
6736 rename = "@reportDate",
6737 default,
6738 deserialize_with = "deserialize_optional_date"
6739 )]
6740 pub report_date: Option<NaiveDate>,
6741
6742 #[serde(rename = "@symbol", default)]
6744 pub symbol: Option<String>,
6745
6746 #[serde(rename = "@description", default)]
6748 pub description: Option<String>,
6749
6750 #[serde(rename = "@conid", default)]
6752 pub conid: Option<String>,
6753
6754 #[serde(rename = "@assetCategory", default)]
6756 pub asset_category: Option<AssetCategory>,
6757
6758 #[serde(rename = "@cusip", default)]
6761 pub cusip: Option<String>,
6762
6763 #[serde(rename = "@isin", default)]
6765 pub isin: Option<String>,
6766
6767 #[serde(rename = "@listingExchange", default)]
6769 pub listing_exchange: Option<String>,
6770
6771 #[serde(rename = "@underlyingSymbol", default)]
6773 pub underlying_symbol: Option<String>,
6774
6775 #[serde(rename = "@underlyingConid", default)]
6777 pub underlying_conid: Option<String>,
6778
6779 #[serde(
6782 rename = "@realizedShortTermPnl",
6783 default,
6784 deserialize_with = "deserialize_optional_decimal"
6785 )]
6786 pub realized_short_term_pnl: Option<Decimal>,
6787
6788 #[serde(
6790 rename = "@realizedLongTermPnl",
6791 default,
6792 deserialize_with = "deserialize_optional_decimal"
6793 )]
6794 pub realized_long_term_pnl: Option<Decimal>,
6795
6796 #[serde(
6798 rename = "@realizedTotalPnl",
6799 default,
6800 deserialize_with = "deserialize_optional_decimal"
6801 )]
6802 pub realized_total_pnl: Option<Decimal>,
6803
6804 #[serde(
6806 rename = "@unrealizedShortTermPnl",
6807 default,
6808 deserialize_with = "deserialize_optional_decimal"
6809 )]
6810 pub unrealized_short_term_pnl: Option<Decimal>,
6811
6812 #[serde(
6814 rename = "@unrealizedLongTermPnl",
6815 default,
6816 deserialize_with = "deserialize_optional_decimal"
6817 )]
6818 pub unrealized_long_term_pnl: Option<Decimal>,
6819
6820 #[serde(
6822 rename = "@unrealizedTotalPnl",
6823 default,
6824 deserialize_with = "deserialize_optional_decimal"
6825 )]
6826 pub unrealized_total_pnl: Option<Decimal>,
6827
6828 #[serde(
6830 rename = "@totalIncome",
6831 default,
6832 deserialize_with = "deserialize_optional_decimal"
6833 )]
6834 pub total_income: Option<Decimal>,
6835
6836 #[serde(rename = "@levelOfDetail", default)]
6838 pub level_of_detail: Option<String>,
6839
6840 #[serde(
6842 rename = "@securityID",
6843 default,
6844 deserialize_with = "deserialize_optional_string"
6845 )]
6846 pub security_id: Option<String>,
6847
6848 #[serde(
6850 rename = "@underlyingSecurityID",
6851 default,
6852 deserialize_with = "deserialize_optional_string"
6853 )]
6854 pub underlying_security_id: Option<String>,
6855
6856 #[serde(
6858 rename = "@underlyingListingExchange",
6859 default,
6860 deserialize_with = "deserialize_optional_string"
6861 )]
6862 pub underlying_listing_exchange: Option<String>,
6863
6864 #[serde(
6866 rename = "@realizedSTProfit",
6867 default,
6868 deserialize_with = "deserialize_optional_decimal"
6869 )]
6870 pub realized_st_profit: Option<Decimal>,
6871
6872 #[serde(
6874 rename = "@realizedSTLoss",
6875 default,
6876 deserialize_with = "deserialize_optional_decimal"
6877 )]
6878 pub realized_st_loss: Option<Decimal>,
6879
6880 #[serde(
6882 rename = "@realizedLTProfit",
6883 default,
6884 deserialize_with = "deserialize_optional_decimal"
6885 )]
6886 pub realized_lt_profit: Option<Decimal>,
6887
6888 #[serde(
6890 rename = "@realizedLTLoss",
6891 default,
6892 deserialize_with = "deserialize_optional_decimal"
6893 )]
6894 pub realized_lt_loss: Option<Decimal>,
6895
6896 #[serde(
6898 rename = "@totalRealizedPnl",
6899 default,
6900 deserialize_with = "deserialize_optional_decimal"
6901 )]
6902 pub total_realized_pnl: Option<Decimal>,
6903
6904 #[serde(
6906 rename = "@unrealizedProfit",
6907 default,
6908 deserialize_with = "deserialize_optional_decimal"
6909 )]
6910 pub unrealized_profit: Option<Decimal>,
6911
6912 #[serde(
6914 rename = "@unrealizedLoss",
6915 default,
6916 deserialize_with = "deserialize_optional_decimal"
6917 )]
6918 pub unrealized_loss: Option<Decimal>,
6919
6920 #[serde(
6922 rename = "@totalUnrealizedPnl",
6923 default,
6924 deserialize_with = "deserialize_optional_decimal"
6925 )]
6926 pub total_unrealized_pnl: Option<Decimal>,
6927
6928 #[serde(
6930 rename = "@totalFifoPnl",
6931 default,
6932 deserialize_with = "deserialize_optional_decimal"
6933 )]
6934 pub total_fifo_pnl: Option<Decimal>,
6935
6936 #[serde(
6938 rename = "@totalRealizedCapitalGainsPnl",
6939 default,
6940 deserialize_with = "deserialize_optional_decimal"
6941 )]
6942 pub total_realized_capital_gains_pnl: Option<Decimal>,
6943
6944 #[serde(
6946 rename = "@totalRealizedFxPnl",
6947 default,
6948 deserialize_with = "deserialize_optional_decimal"
6949 )]
6950 pub total_realized_fx_pnl: Option<Decimal>,
6951
6952 #[serde(
6954 rename = "@totalUnrealizedCapitalGainsPnl",
6955 default,
6956 deserialize_with = "deserialize_optional_decimal"
6957 )]
6958 pub total_unrealized_capital_gains_pnl: Option<Decimal>,
6959
6960 #[serde(
6962 rename = "@totalUnrealizedFxPnl",
6963 default,
6964 deserialize_with = "deserialize_optional_decimal"
6965 )]
6966 pub total_unrealized_fx_pnl: Option<Decimal>,
6967
6968 #[serde(
6970 rename = "@totalCapitalGainsPnl",
6971 default,
6972 deserialize_with = "deserialize_optional_decimal"
6973 )]
6974 pub total_capital_gains_pnl: Option<Decimal>,
6975
6976 #[serde(
6978 rename = "@totalFxPnl",
6979 default,
6980 deserialize_with = "deserialize_optional_decimal"
6981 )]
6982 pub total_fx_pnl: Option<Decimal>,
6983
6984 #[serde(
6986 rename = "@transferredPnl",
6987 default,
6988 deserialize_with = "deserialize_optional_decimal"
6989 )]
6990 pub transferred_pnl: Option<Decimal>,
6991
6992 #[serde(
6994 rename = "@transferredCapitalGainsPnl",
6995 default,
6996 deserialize_with = "deserialize_optional_decimal"
6997 )]
6998 pub transferred_capital_gains_pnl: Option<Decimal>,
6999
7000 #[serde(
7002 rename = "@transferredFxPnl",
7003 default,
7004 deserialize_with = "deserialize_optional_decimal"
7005 )]
7006 pub transferred_fx_pnl: Option<Decimal>,
7007
7008 #[serde(
7010 rename = "@sedol",
7011 default,
7012 deserialize_with = "deserialize_optional_string"
7013 )]
7014 pub sedol: Option<String>,
7015
7016 #[serde(
7018 rename = "@securityIDType",
7019 default,
7020 deserialize_with = "deserialize_optional_string"
7021 )]
7022 pub security_id_type: Option<String>,
7023
7024 #[serde(
7026 rename = "@issuer",
7027 default,
7028 deserialize_with = "deserialize_optional_string"
7029 )]
7030 pub issuer: Option<String>,
7031
7032 #[serde(
7034 rename = "@multiplier",
7035 default,
7036 deserialize_with = "deserialize_optional_decimal"
7037 )]
7038 pub multiplier: Option<Decimal>,
7039
7040 #[serde(
7042 rename = "@strike",
7043 default,
7044 deserialize_with = "deserialize_optional_decimal"
7045 )]
7046 pub strike: Option<Decimal>,
7047
7048 #[serde(
7050 rename = "@expiry",
7051 default,
7052 deserialize_with = "deserialize_optional_date"
7053 )]
7054 pub expiry: Option<NaiveDate>,
7055
7056 #[serde(rename = "@putCall", default)]
7058 pub put_call: Option<PutCall>,
7059
7060 #[serde(
7062 rename = "@principalAdjustFactor",
7063 default,
7064 deserialize_with = "deserialize_optional_decimal"
7065 )]
7066 pub principal_adjust_factor: Option<Decimal>,
7067
7068 #[serde(
7070 rename = "@unrealizedSTProfit",
7071 default,
7072 deserialize_with = "deserialize_optional_decimal"
7073 )]
7074 pub unrealized_st_profit: Option<Decimal>,
7075
7076 #[serde(
7078 rename = "@unrealizedSTLoss",
7079 default,
7080 deserialize_with = "deserialize_optional_decimal"
7081 )]
7082 pub unrealized_st_loss: Option<Decimal>,
7083
7084 #[serde(
7086 rename = "@unrealizedLTProfit",
7087 default,
7088 deserialize_with = "deserialize_optional_decimal"
7089 )]
7090 pub unrealized_lt_profit: Option<Decimal>,
7091
7092 #[serde(
7094 rename = "@unrealizedLTLoss",
7095 default,
7096 deserialize_with = "deserialize_optional_decimal"
7097 )]
7098 pub unrealized_lt_loss: Option<Decimal>,
7099
7100 #[serde(
7102 rename = "@costAdj",
7103 default,
7104 deserialize_with = "deserialize_optional_decimal"
7105 )]
7106 pub cost_adj: Option<Decimal>,
7107
7108 #[serde(
7110 rename = "@code",
7111 default,
7112 deserialize_with = "deserialize_optional_string"
7113 )]
7114 pub code: Option<String>,
7115
7116 #[serde(
7118 rename = "@serialNumber",
7119 default,
7120 deserialize_with = "deserialize_optional_string"
7121 )]
7122 pub serial_number: Option<String>,
7123
7124 #[serde(
7126 rename = "@deliveryType",
7127 default,
7128 deserialize_with = "deserialize_optional_string"
7129 )]
7130 pub delivery_type: Option<String>,
7131
7132 #[serde(
7134 rename = "@commodityType",
7135 default,
7136 deserialize_with = "deserialize_optional_string"
7137 )]
7138 pub commodity_type: Option<String>,
7139
7140 #[serde(
7142 rename = "@fineness",
7143 default,
7144 deserialize_with = "deserialize_optional_decimal"
7145 )]
7146 pub fineness: Option<Decimal>,
7147
7148 #[serde(
7150 rename = "@weight",
7151 default,
7152 deserialize_with = "deserialize_optional_string"
7153 )]
7154 pub weight: Option<String>,
7155
7156 #[serde(
7158 rename = "@subCategory",
7159 default,
7160 deserialize_with = "deserialize_optional_string"
7161 )]
7162 pub sub_category: Option<String>,
7163
7164 #[serde(
7166 rename = "@figi",
7167 default,
7168 deserialize_with = "deserialize_optional_string"
7169 )]
7170 pub figi: Option<String>,
7171
7172 #[serde(
7174 rename = "@issuerCountryCode",
7175 default,
7176 deserialize_with = "deserialize_optional_string"
7177 )]
7178 pub issuer_country_code: Option<String>,
7179}
7180
7181#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
7183pub struct MTDYTDPerformanceSummary {
7184 #[serde(
7186 rename = "@accountId",
7187 default,
7188 deserialize_with = "deserialize_optional_string"
7189 )]
7190 pub account_id: Option<String>,
7191
7192 #[serde(rename = "@acctAlias", default)]
7194 pub acct_alias: Option<String>,
7195
7196 #[serde(rename = "@model", default)]
7198 pub model: Option<String>,
7199
7200 #[serde(rename = "@symbol", default)]
7202 pub symbol: Option<String>,
7203
7204 #[serde(rename = "@conid", default)]
7206 pub conid: Option<String>,
7207
7208 #[serde(rename = "@assetCategory", default)]
7210 pub asset_category: Option<AssetCategory>,
7211
7212 #[serde(
7215 rename = "@mtdRealizedPnl",
7216 default,
7217 deserialize_with = "deserialize_optional_decimal"
7218 )]
7219 pub mtd_realized_pnl: Option<Decimal>,
7220
7221 #[serde(
7223 rename = "@mtdUnrealizedPnl",
7224 default,
7225 deserialize_with = "deserialize_optional_decimal"
7226 )]
7227 pub mtd_unrealized_pnl: Option<Decimal>,
7228
7229 #[serde(
7231 rename = "@mtdCommissions",
7232 default,
7233 deserialize_with = "deserialize_optional_decimal"
7234 )]
7235 pub mtd_commissions: Option<Decimal>,
7236
7237 #[serde(
7239 rename = "@mtdFees",
7240 default,
7241 deserialize_with = "deserialize_optional_decimal"
7242 )]
7243 pub mtd_fees: Option<Decimal>,
7244
7245 #[serde(
7248 rename = "@ytdRealizedPnl",
7249 default,
7250 deserialize_with = "deserialize_optional_decimal"
7251 )]
7252 pub ytd_realized_pnl: Option<Decimal>,
7253
7254 #[serde(
7256 rename = "@ytdUnrealizedPnl",
7257 default,
7258 deserialize_with = "deserialize_optional_decimal"
7259 )]
7260 pub ytd_unrealized_pnl: Option<Decimal>,
7261
7262 #[serde(
7264 rename = "@ytdCommissions",
7265 default,
7266 deserialize_with = "deserialize_optional_decimal"
7267 )]
7268 pub ytd_commissions: Option<Decimal>,
7269
7270 #[serde(
7272 rename = "@ytdFees",
7273 default,
7274 deserialize_with = "deserialize_optional_decimal"
7275 )]
7276 pub ytd_fees: Option<Decimal>,
7277
7278 #[serde(rename = "@levelOfDetail", default)]
7280 pub level_of_detail: Option<String>,
7281
7282 #[serde(
7284 rename = "@description",
7285 default,
7286 deserialize_with = "deserialize_optional_string"
7287 )]
7288 pub description: Option<String>,
7289
7290 #[serde(
7292 rename = "@securityID",
7293 default,
7294 deserialize_with = "deserialize_optional_string"
7295 )]
7296 pub security_id: Option<String>,
7297
7298 #[serde(
7300 rename = "@cusip",
7301 default,
7302 deserialize_with = "deserialize_optional_string"
7303 )]
7304 pub cusip: Option<String>,
7305
7306 #[serde(
7308 rename = "@isin",
7309 default,
7310 deserialize_with = "deserialize_optional_string"
7311 )]
7312 pub isin: Option<String>,
7313
7314 #[serde(
7316 rename = "@listingExchange",
7317 default,
7318 deserialize_with = "deserialize_optional_string"
7319 )]
7320 pub listing_exchange: Option<String>,
7321
7322 #[serde(
7324 rename = "@underlyingConid",
7325 default,
7326 deserialize_with = "deserialize_optional_string"
7327 )]
7328 pub underlying_conid: Option<String>,
7329
7330 #[serde(
7332 rename = "@underlyingSecurityID",
7333 default,
7334 deserialize_with = "deserialize_optional_string"
7335 )]
7336 pub underlying_security_id: Option<String>,
7337
7338 #[serde(
7340 rename = "@underlyingListingExchange",
7341 default,
7342 deserialize_with = "deserialize_optional_string"
7343 )]
7344 pub underlying_listing_exchange: Option<String>,
7345
7346 #[serde(
7348 rename = "@mtmMTD",
7349 default,
7350 deserialize_with = "deserialize_optional_decimal"
7351 )]
7352 pub mtm_mtd: Option<Decimal>,
7353
7354 #[serde(
7356 rename = "@mtmYTD",
7357 default,
7358 deserialize_with = "deserialize_optional_decimal"
7359 )]
7360 pub mtm_ytd: Option<Decimal>,
7361
7362 #[serde(
7364 rename = "@realSTMTD",
7365 default,
7366 deserialize_with = "deserialize_optional_decimal"
7367 )]
7368 pub real_stmtd: Option<Decimal>,
7369
7370 #[serde(
7372 rename = "@realSTYTD",
7373 default,
7374 deserialize_with = "deserialize_optional_decimal"
7375 )]
7376 pub real_stytd: Option<Decimal>,
7377
7378 #[serde(
7380 rename = "@realLTMTD",
7381 default,
7382 deserialize_with = "deserialize_optional_decimal"
7383 )]
7384 pub real_ltmtd: Option<Decimal>,
7385
7386 #[serde(
7388 rename = "@realLTYTD",
7389 default,
7390 deserialize_with = "deserialize_optional_decimal"
7391 )]
7392 pub real_ltytd: Option<Decimal>,
7393
7394 #[serde(
7396 rename = "@securityIDType",
7397 default,
7398 deserialize_with = "deserialize_optional_string"
7399 )]
7400 pub security_id_type: Option<String>,
7401
7402 #[serde(
7404 rename = "@underlyingSymbol",
7405 default,
7406 deserialize_with = "deserialize_optional_string"
7407 )]
7408 pub underlying_symbol: Option<String>,
7409
7410 #[serde(
7412 rename = "@issuer",
7413 default,
7414 deserialize_with = "deserialize_optional_string"
7415 )]
7416 pub issuer: Option<String>,
7417
7418 #[serde(
7420 rename = "@multiplier",
7421 default,
7422 deserialize_with = "deserialize_optional_decimal"
7423 )]
7424 pub multiplier: Option<Decimal>,
7425
7426 #[serde(
7428 rename = "@strike",
7429 default,
7430 deserialize_with = "deserialize_optional_decimal"
7431 )]
7432 pub strike: Option<Decimal>,
7433
7434 #[serde(
7436 rename = "@expiry",
7437 default,
7438 deserialize_with = "deserialize_optional_date"
7439 )]
7440 pub expiry: Option<NaiveDate>,
7441
7442 #[serde(rename = "@putCall", default)]
7444 pub put_call: Option<PutCall>,
7445
7446 #[serde(
7448 rename = "@principalAdjustFactor",
7449 default,
7450 deserialize_with = "deserialize_optional_decimal"
7451 )]
7452 pub principal_adjust_factor: Option<Decimal>,
7453
7454 #[serde(
7456 rename = "@realizedPnlMTD",
7457 default,
7458 deserialize_with = "deserialize_optional_decimal"
7459 )]
7460 pub realized_pnl_mtd: Option<Decimal>,
7461
7462 #[serde(
7464 rename = "@realizedCapitalGainsPnlMTD",
7465 default,
7466 deserialize_with = "deserialize_optional_decimal"
7467 )]
7468 pub realized_capital_gains_pnl_mtd: Option<Decimal>,
7469
7470 #[serde(
7472 rename = "@realizedFxPnlMTD",
7473 default,
7474 deserialize_with = "deserialize_optional_decimal"
7475 )]
7476 pub realized_fx_pnl_mtd: Option<Decimal>,
7477
7478 #[serde(
7480 rename = "@realizedPnlYTD",
7481 default,
7482 deserialize_with = "deserialize_optional_decimal"
7483 )]
7484 pub realized_pnl_ytd: Option<Decimal>,
7485
7486 #[serde(
7488 rename = "@realizedCapitalGainsPnlYTD",
7489 default,
7490 deserialize_with = "deserialize_optional_decimal"
7491 )]
7492 pub realized_capital_gains_pnl_ytd: Option<Decimal>,
7493
7494 #[serde(
7496 rename = "@realizedFxPnlYTD",
7497 default,
7498 deserialize_with = "deserialize_optional_decimal"
7499 )]
7500 pub realized_fx_pnl_ytd: Option<Decimal>,
7501
7502 #[serde(
7504 rename = "@brokerFees",
7505 default,
7506 deserialize_with = "deserialize_optional_decimal"
7507 )]
7508 pub broker_fees: Option<Decimal>,
7509
7510 #[serde(
7512 rename = "@brokerFeesSec",
7513 default,
7514 deserialize_with = "deserialize_optional_decimal"
7515 )]
7516 pub broker_fees_sec: Option<Decimal>,
7517
7518 #[serde(
7520 rename = "@brokerFeesCom",
7521 default,
7522 deserialize_with = "deserialize_optional_decimal"
7523 )]
7524 pub broker_fees_com: Option<Decimal>,
7525
7526 #[serde(
7528 rename = "@brokerFeesMTD",
7529 default,
7530 deserialize_with = "deserialize_optional_decimal"
7531 )]
7532 pub broker_fees_mtd: Option<Decimal>,
7533
7534 #[serde(
7536 rename = "@brokerFeesYTD",
7537 default,
7538 deserialize_with = "deserialize_optional_decimal"
7539 )]
7540 pub broker_fees_ytd: Option<Decimal>,
7541
7542 #[serde(
7544 rename = "@serialNumber",
7545 default,
7546 deserialize_with = "deserialize_optional_string"
7547 )]
7548 pub serial_number: Option<String>,
7549
7550 #[serde(
7552 rename = "@deliveryType",
7553 default,
7554 deserialize_with = "deserialize_optional_string"
7555 )]
7556 pub delivery_type: Option<String>,
7557
7558 #[serde(
7560 rename = "@commodityType",
7561 default,
7562 deserialize_with = "deserialize_optional_string"
7563 )]
7564 pub commodity_type: Option<String>,
7565
7566 #[serde(
7568 rename = "@fineness",
7569 default,
7570 deserialize_with = "deserialize_optional_decimal"
7571 )]
7572 pub fineness: Option<Decimal>,
7573
7574 #[serde(
7576 rename = "@weight",
7577 default,
7578 deserialize_with = "deserialize_optional_string"
7579 )]
7580 pub weight: Option<String>,
7581}
7582
7583#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
7592pub struct StatementOfFundsLine {
7593 #[serde(
7595 rename = "@accountId",
7596 default,
7597 deserialize_with = "deserialize_optional_string"
7598 )]
7599 pub account_id: Option<String>,
7600
7601 #[serde(rename = "@acctAlias", default)]
7603 pub acct_alias: Option<String>,
7604
7605 #[serde(rename = "@model", default)]
7607 pub model: Option<String>,
7608
7609 #[serde(
7611 rename = "@reportDate",
7612 default,
7613 deserialize_with = "deserialize_optional_date"
7614 )]
7615 pub report_date: Option<NaiveDate>,
7616
7617 #[serde(
7619 rename = "@date",
7620 default,
7621 deserialize_with = "deserialize_optional_date"
7622 )]
7623 pub date: Option<NaiveDate>,
7624
7625 #[serde(rename = "@currency", default)]
7627 pub currency: Option<String>,
7628
7629 #[serde(rename = "@activityCode", default)]
7631 pub activity_code: Option<String>,
7632
7633 #[serde(rename = "@activityDescription", default)]
7635 pub activity_description: Option<String>,
7636
7637 #[serde(rename = "@tradeID", default)]
7639 pub trade_id: Option<String>,
7640
7641 #[serde(rename = "@symbol", default)]
7643 pub symbol: Option<String>,
7644
7645 #[serde(rename = "@conid", default)]
7647 pub conid: Option<String>,
7648
7649 #[serde(
7651 rename = "@debit",
7652 default,
7653 deserialize_with = "deserialize_optional_decimal"
7654 )]
7655 pub debit: Option<Decimal>,
7656
7657 #[serde(
7659 rename = "@credit",
7660 default,
7661 deserialize_with = "deserialize_optional_decimal"
7662 )]
7663 pub credit: Option<Decimal>,
7664
7665 #[serde(
7667 rename = "@amount",
7668 default,
7669 deserialize_with = "deserialize_optional_decimal"
7670 )]
7671 pub amount: Option<Decimal>,
7672
7673 #[serde(
7675 rename = "@balance",
7676 default,
7677 deserialize_with = "deserialize_optional_decimal"
7678 )]
7679 pub balance: Option<Decimal>,
7680
7681 #[serde(
7683 rename = "@fxRateToBase",
7684 default,
7685 deserialize_with = "deserialize_optional_decimal"
7686 )]
7687 pub fx_rate_to_base: Option<Decimal>,
7688
7689 #[serde(rename = "@levelOfDetail", default)]
7691 pub level_of_detail: Option<String>,
7692
7693 #[serde(rename = "@assetCategory", default)]
7695 pub asset_category: Option<AssetCategory>,
7696
7697 #[serde(
7699 rename = "@buySell",
7700 default,
7701 deserialize_with = "deserialize_optional_string"
7702 )]
7703 pub buy_sell: Option<String>,
7704
7705 #[serde(
7707 rename = "@description",
7708 default,
7709 deserialize_with = "deserialize_optional_string"
7710 )]
7711 pub description: Option<String>,
7712
7713 #[serde(
7715 rename = "@securityID",
7716 default,
7717 deserialize_with = "deserialize_optional_string"
7718 )]
7719 pub security_id: Option<String>,
7720
7721 #[serde(
7723 rename = "@securityIDType",
7724 default,
7725 deserialize_with = "deserialize_optional_string"
7726 )]
7727 pub security_id_type: Option<String>,
7728
7729 #[serde(
7731 rename = "@cusip",
7732 default,
7733 deserialize_with = "deserialize_optional_string"
7734 )]
7735 pub cusip: Option<String>,
7736
7737 #[serde(
7739 rename = "@isin",
7740 default,
7741 deserialize_with = "deserialize_optional_string"
7742 )]
7743 pub isin: Option<String>,
7744
7745 #[serde(
7747 rename = "@underlyingConid",
7748 default,
7749 deserialize_with = "deserialize_optional_string"
7750 )]
7751 pub underlying_conid: Option<String>,
7752
7753 #[serde(
7755 rename = "@underlyingSymbol",
7756 default,
7757 deserialize_with = "deserialize_optional_string"
7758 )]
7759 pub underlying_symbol: Option<String>,
7760
7761 #[serde(
7763 rename = "@issuer",
7764 default,
7765 deserialize_with = "deserialize_optional_string"
7766 )]
7767 pub issuer: Option<String>,
7768
7769 #[serde(
7771 rename = "@multiplier",
7772 default,
7773 deserialize_with = "deserialize_optional_decimal"
7774 )]
7775 pub multiplier: Option<Decimal>,
7776
7777 #[serde(
7779 rename = "@strike",
7780 default,
7781 deserialize_with = "deserialize_optional_decimal"
7782 )]
7783 pub strike: Option<Decimal>,
7784
7785 #[serde(
7787 rename = "@expiry",
7788 default,
7789 deserialize_with = "deserialize_optional_date"
7790 )]
7791 pub expiry: Option<NaiveDate>,
7792
7793 #[serde(rename = "@putCall", default)]
7795 pub put_call: Option<PutCall>,
7796
7797 #[serde(
7799 rename = "@principalAdjustFactor",
7800 default,
7801 deserialize_with = "deserialize_optional_decimal"
7802 )]
7803 pub principal_adjust_factor: Option<Decimal>,
7804
7805 #[serde(
7807 rename = "@listingExchange",
7808 default,
7809 deserialize_with = "deserialize_optional_string"
7810 )]
7811 pub listing_exchange: Option<String>,
7812
7813 #[serde(
7815 rename = "@underlyingSecurityID",
7816 default,
7817 deserialize_with = "deserialize_optional_string"
7818 )]
7819 pub underlying_security_id: Option<String>,
7820
7821 #[serde(
7823 rename = "@underlyingListingExchange",
7824 default,
7825 deserialize_with = "deserialize_optional_string"
7826 )]
7827 pub underlying_listing_exchange: Option<String>,
7828
7829 #[serde(
7831 rename = "@settleDate",
7832 default,
7833 deserialize_with = "deserialize_optional_date"
7834 )]
7835 pub settle_date: Option<NaiveDate>,
7836
7837 #[serde(
7839 rename = "@orderID",
7840 default,
7841 deserialize_with = "deserialize_optional_string"
7842 )]
7843 pub order_id: Option<String>,
7844
7845 #[serde(
7847 rename = "@tradeQuantity",
7848 default,
7849 deserialize_with = "deserialize_optional_decimal"
7850 )]
7851 pub trade_quantity: Option<Decimal>,
7852
7853 #[serde(
7855 rename = "@tradePrice",
7856 default,
7857 deserialize_with = "deserialize_optional_decimal"
7858 )]
7859 pub trade_price: Option<Decimal>,
7860
7861 #[serde(
7863 rename = "@tradeGross",
7864 default,
7865 deserialize_with = "deserialize_optional_decimal"
7866 )]
7867 pub trade_gross: Option<Decimal>,
7868
7869 #[serde(
7871 rename = "@tradeCommission",
7872 default,
7873 deserialize_with = "deserialize_optional_decimal"
7874 )]
7875 pub trade_commission: Option<Decimal>,
7876
7877 #[serde(
7879 rename = "@tradeTax",
7880 default,
7881 deserialize_with = "deserialize_optional_decimal"
7882 )]
7883 pub trade_tax: Option<Decimal>,
7884
7885 #[serde(
7887 rename = "@tradeCode",
7888 default,
7889 deserialize_with = "deserialize_optional_string"
7890 )]
7891 pub trade_code: Option<String>,
7892
7893 #[serde(
7895 rename = "@transactionID",
7896 default,
7897 deserialize_with = "deserialize_optional_string"
7898 )]
7899 pub transaction_id: Option<String>,
7900
7901 #[serde(
7903 rename = "@serialNumber",
7904 default,
7905 deserialize_with = "deserialize_optional_string"
7906 )]
7907 pub serial_number: Option<String>,
7908
7909 #[serde(
7911 rename = "@deliveryType",
7912 default,
7913 deserialize_with = "deserialize_optional_string"
7914 )]
7915 pub delivery_type: Option<String>,
7916
7917 #[serde(
7919 rename = "@commodityType",
7920 default,
7921 deserialize_with = "deserialize_optional_string"
7922 )]
7923 pub commodity_type: Option<String>,
7924
7925 #[serde(
7927 rename = "@fineness",
7928 default,
7929 deserialize_with = "deserialize_optional_decimal"
7930 )]
7931 pub fineness: Option<Decimal>,
7932
7933 #[serde(
7935 rename = "@weight",
7936 default,
7937 deserialize_with = "deserialize_optional_string"
7938 )]
7939 pub weight: Option<String>,
7940
7941 #[serde(
7943 rename = "@actionID",
7944 default,
7945 deserialize_with = "deserialize_optional_string"
7946 )]
7947 pub action_id: Option<String>,
7948
7949 #[serde(
7951 rename = "@subCategory",
7952 default,
7953 deserialize_with = "deserialize_optional_string"
7954 )]
7955 pub sub_category: Option<String>,
7956
7957 #[serde(
7959 rename = "@figi",
7960 default,
7961 deserialize_with = "deserialize_optional_string"
7962 )]
7963 pub figi: Option<String>,
7964
7965 #[serde(
7967 rename = "@issuerCountryCode",
7968 default,
7969 deserialize_with = "deserialize_optional_string"
7970 )]
7971 pub issuer_country_code: Option<String>,
7972
7973 #[serde(
7975 rename = "@relatedTradeID",
7976 default,
7977 deserialize_with = "deserialize_optional_string"
7978 )]
7979 pub related_trade_id: Option<String>,
7980
7981 #[serde(
7983 rename = "@origTransactionID",
7984 default,
7985 deserialize_with = "deserialize_optional_string"
7986 )]
7987 pub orig_transaction_id: Option<String>,
7988
7989 #[serde(
7991 rename = "@relatedTransactionID",
7992 default,
7993 deserialize_with = "deserialize_optional_string"
7994 )]
7995 pub related_transaction_id: Option<String>,
7996}
7997
7998#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8007pub struct ChangeInPositionValue {
8008 #[serde(
8010 rename = "@accountId",
8011 default,
8012 deserialize_with = "deserialize_optional_string"
8013 )]
8014 pub account_id: Option<String>,
8015
8016 #[serde(rename = "@acctAlias", default)]
8018 pub acct_alias: Option<String>,
8019
8020 #[serde(rename = "@model", default)]
8022 pub model: Option<String>,
8023
8024 #[serde(
8026 rename = "@reportDate",
8027 default,
8028 deserialize_with = "deserialize_optional_date"
8029 )]
8030 pub report_date: Option<NaiveDate>,
8031
8032 #[serde(rename = "@symbol", default)]
8034 pub symbol: Option<String>,
8035
8036 #[serde(rename = "@conid", default)]
8038 pub conid: Option<String>,
8039
8040 #[serde(rename = "@assetCategory", default)]
8042 pub asset_category: Option<AssetCategory>,
8043
8044 #[serde(rename = "@currency", default)]
8046 pub currency: Option<String>,
8047
8048 #[serde(
8050 rename = "@priorPeriodValue",
8051 default,
8052 deserialize_with = "deserialize_optional_decimal"
8053 )]
8054 pub prior_period_value: Option<Decimal>,
8055
8056 #[serde(
8058 rename = "@transactions",
8059 default,
8060 deserialize_with = "deserialize_optional_decimal"
8061 )]
8062 pub transactions: Option<Decimal>,
8063
8064 #[serde(
8066 rename = "@mtmPriorPeriodPositions",
8067 default,
8068 deserialize_with = "deserialize_optional_decimal"
8069 )]
8070 pub mtm_prior_period_positions: Option<Decimal>,
8071
8072 #[serde(
8074 rename = "@mtmTransactions",
8075 default,
8076 deserialize_with = "deserialize_optional_decimal"
8077 )]
8078 pub mtm_transactions: Option<Decimal>,
8079
8080 #[serde(
8082 rename = "@corporateActions",
8083 default,
8084 deserialize_with = "deserialize_optional_decimal"
8085 )]
8086 pub corporate_actions: Option<Decimal>,
8087
8088 #[serde(
8090 rename = "@fxTranslation",
8091 default,
8092 deserialize_with = "deserialize_optional_decimal"
8093 )]
8094 pub fx_translation: Option<Decimal>,
8095
8096 #[serde(
8098 rename = "@other",
8099 default,
8100 deserialize_with = "deserialize_optional_decimal"
8101 )]
8102 pub other: Option<Decimal>,
8103
8104 #[serde(
8106 rename = "@endingValue",
8107 default,
8108 deserialize_with = "deserialize_optional_decimal"
8109 )]
8110 pub ending_value: Option<Decimal>,
8111
8112 #[serde(rename = "@levelOfDetail", default)]
8114 pub level_of_detail: Option<String>,
8115
8116 #[serde(
8118 rename = "@accountTransfers",
8119 default,
8120 deserialize_with = "deserialize_optional_decimal"
8121 )]
8122 pub account_transfers: Option<Decimal>,
8123
8124 #[serde(
8126 rename = "@fxTranslationPnl",
8127 default,
8128 deserialize_with = "deserialize_optional_decimal"
8129 )]
8130 pub fx_translation_pnl: Option<Decimal>,
8131
8132 #[serde(
8134 rename = "@futurePriceAdjustments",
8135 default,
8136 deserialize_with = "deserialize_optional_decimal"
8137 )]
8138 pub future_price_adjustments: Option<Decimal>,
8139
8140 #[serde(
8142 rename = "@settledCash",
8143 default,
8144 deserialize_with = "deserialize_optional_decimal"
8145 )]
8146 pub settled_cash: Option<Decimal>,
8147
8148 #[serde(
8150 rename = "@endOfPeriodValue",
8151 default,
8152 deserialize_with = "deserialize_optional_decimal"
8153 )]
8154 pub end_of_period_value: Option<Decimal>,
8155
8156 #[serde(
8158 rename = "@linkingAdjustments",
8159 default,
8160 deserialize_with = "deserialize_optional_decimal"
8161 )]
8162 pub linking_adjustments: Option<Decimal>,
8163}
8164
8165#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8174pub struct UnbundledCommissionDetail {
8175 #[serde(
8177 rename = "@accountId",
8178 default,
8179 deserialize_with = "deserialize_optional_string"
8180 )]
8181 pub account_id: Option<String>,
8182
8183 #[serde(rename = "@acctAlias", default)]
8185 pub acct_alias: Option<String>,
8186
8187 #[serde(rename = "@model", default)]
8189 pub model: Option<String>,
8190
8191 #[serde(rename = "@symbol", default)]
8193 pub symbol: Option<String>,
8194
8195 #[serde(rename = "@description", default)]
8197 pub description: Option<String>,
8198
8199 #[serde(rename = "@conid", default)]
8201 pub conid: Option<String>,
8202
8203 #[serde(rename = "@assetCategory", default)]
8205 pub asset_category: Option<AssetCategory>,
8206
8207 #[serde(rename = "@execID", default)]
8209 pub exec_id: Option<String>,
8210
8211 #[serde(rename = "@orderID", default)]
8213 pub order_id: Option<String>,
8214
8215 #[serde(rename = "@tradeID", default)]
8217 pub trade_id: Option<String>,
8218
8219 #[serde(rename = "@dateTime", default)]
8221 pub date_time: Option<String>,
8222
8223 #[serde(rename = "@exchange", default)]
8225 pub exchange: Option<String>,
8226
8227 #[serde(
8229 rename = "@quantity",
8230 default,
8231 deserialize_with = "deserialize_optional_decimal"
8232 )]
8233 pub quantity: Option<Decimal>,
8234
8235 #[serde(
8237 rename = "@price",
8238 default,
8239 deserialize_with = "deserialize_optional_decimal"
8240 )]
8241 pub price: Option<Decimal>,
8242
8243 #[serde(
8245 rename = "@executionCommission",
8246 default,
8247 deserialize_with = "deserialize_optional_decimal"
8248 )]
8249 pub execution_commission: Option<Decimal>,
8250
8251 #[serde(
8253 rename = "@clearingCommission",
8254 default,
8255 deserialize_with = "deserialize_optional_decimal"
8256 )]
8257 pub clearing_commission: Option<Decimal>,
8258
8259 #[serde(
8261 rename = "@regulatoryCommission",
8262 default,
8263 deserialize_with = "deserialize_optional_decimal"
8264 )]
8265 pub regulatory_commission: Option<Decimal>,
8266
8267 #[serde(
8269 rename = "@thirdPartyCommission",
8270 default,
8271 deserialize_with = "deserialize_optional_decimal"
8272 )]
8273 pub third_party_commission: Option<Decimal>,
8274
8275 #[serde(
8277 rename = "@thirdPartyRegulatoryCommission",
8278 default,
8279 deserialize_with = "deserialize_optional_decimal"
8280 )]
8281 pub third_party_regulatory_commission: Option<Decimal>,
8282
8283 #[serde(
8285 rename = "@totalCommission",
8286 default,
8287 deserialize_with = "deserialize_optional_decimal"
8288 )]
8289 pub total_commission: Option<Decimal>,
8290
8291 #[serde(rename = "@currency", default)]
8293 pub currency: Option<String>,
8294
8295 #[serde(rename = "@buySell", default)]
8297 pub buy_sell: Option<BuySell>,
8298
8299 #[serde(
8301 rename = "@fxRateToBase",
8302 default,
8303 deserialize_with = "deserialize_optional_decimal"
8304 )]
8305 pub fx_rate_to_base: Option<Decimal>,
8306
8307 #[serde(
8309 rename = "@securityID",
8310 default,
8311 deserialize_with = "deserialize_optional_string"
8312 )]
8313 pub security_id: Option<String>,
8314
8315 #[serde(
8317 rename = "@securityIDType",
8318 default,
8319 deserialize_with = "deserialize_optional_string"
8320 )]
8321 pub security_id_type: Option<String>,
8322
8323 #[serde(
8325 rename = "@cusip",
8326 default,
8327 deserialize_with = "deserialize_optional_string"
8328 )]
8329 pub cusip: Option<String>,
8330
8331 #[serde(
8333 rename = "@isin",
8334 default,
8335 deserialize_with = "deserialize_optional_string"
8336 )]
8337 pub isin: Option<String>,
8338
8339 #[serde(
8341 rename = "@sedol",
8342 default,
8343 deserialize_with = "deserialize_optional_string"
8344 )]
8345 pub sedol: Option<String>,
8346
8347 #[serde(
8349 rename = "@listingExchange",
8350 default,
8351 deserialize_with = "deserialize_optional_string"
8352 )]
8353 pub listing_exchange: Option<String>,
8354
8355 #[serde(
8357 rename = "@underlyingConid",
8358 default,
8359 deserialize_with = "deserialize_optional_string"
8360 )]
8361 pub underlying_conid: Option<String>,
8362
8363 #[serde(
8365 rename = "@underlyingSymbol",
8366 default,
8367 deserialize_with = "deserialize_optional_string"
8368 )]
8369 pub underlying_symbol: Option<String>,
8370
8371 #[serde(
8373 rename = "@underlyingSecurityID",
8374 default,
8375 deserialize_with = "deserialize_optional_string"
8376 )]
8377 pub underlying_security_id: Option<String>,
8378
8379 #[serde(
8381 rename = "@underlyingListingExchange",
8382 default,
8383 deserialize_with = "deserialize_optional_string"
8384 )]
8385 pub underlying_listing_exchange: Option<String>,
8386
8387 #[serde(
8389 rename = "@issuer",
8390 default,
8391 deserialize_with = "deserialize_optional_string"
8392 )]
8393 pub issuer: Option<String>,
8394
8395 #[serde(
8397 rename = "@multiplier",
8398 default,
8399 deserialize_with = "deserialize_optional_decimal"
8400 )]
8401 pub multiplier: Option<Decimal>,
8402
8403 #[serde(
8405 rename = "@strike",
8406 default,
8407 deserialize_with = "deserialize_optional_decimal"
8408 )]
8409 pub strike: Option<Decimal>,
8410
8411 #[serde(
8413 rename = "@expiry",
8414 default,
8415 deserialize_with = "deserialize_optional_date"
8416 )]
8417 pub expiry: Option<NaiveDate>,
8418
8419 #[serde(rename = "@putCall", default)]
8421 pub put_call: Option<PutCall>,
8422
8423 #[serde(
8425 rename = "@principalAdjustFactor",
8426 default,
8427 deserialize_with = "deserialize_optional_decimal"
8428 )]
8429 pub principal_adjust_factor: Option<Decimal>,
8430
8431 #[serde(
8433 rename = "@orderReference",
8434 default,
8435 deserialize_with = "deserialize_optional_string"
8436 )]
8437 pub order_reference: Option<String>,
8438
8439 #[serde(
8441 rename = "@brokerExecutionCharge",
8442 default,
8443 deserialize_with = "deserialize_optional_decimal"
8444 )]
8445 pub broker_execution_charge: Option<Decimal>,
8446
8447 #[serde(
8449 rename = "@brokerClearingCharge",
8450 default,
8451 deserialize_with = "deserialize_optional_decimal"
8452 )]
8453 pub broker_clearing_charge: Option<Decimal>,
8454
8455 #[serde(
8457 rename = "@thirdPartyExecutionCharge",
8458 default,
8459 deserialize_with = "deserialize_optional_decimal"
8460 )]
8461 pub third_party_execution_charge: Option<Decimal>,
8462
8463 #[serde(
8465 rename = "@thirdPartyClearingCharge",
8466 default,
8467 deserialize_with = "deserialize_optional_decimal"
8468 )]
8469 pub third_party_clearing_charge: Option<Decimal>,
8470
8471 #[serde(
8473 rename = "@thirdPartyRegulatoryCharge",
8474 default,
8475 deserialize_with = "deserialize_optional_decimal"
8476 )]
8477 pub third_party_regulatory_charge: Option<Decimal>,
8478
8479 #[serde(
8481 rename = "@regFINRATradingActivityFee",
8482 default,
8483 deserialize_with = "deserialize_optional_decimal"
8484 )]
8485 pub reg_finra_trading_activity_fee: Option<Decimal>,
8486
8487 #[serde(
8489 rename = "@regSection31TransactionFee",
8490 default,
8491 deserialize_with = "deserialize_optional_decimal"
8492 )]
8493 pub reg_section31_transaction_fee: Option<Decimal>,
8494
8495 #[serde(
8497 rename = "@regOther",
8498 default,
8499 deserialize_with = "deserialize_optional_decimal"
8500 )]
8501 pub reg_other: Option<Decimal>,
8502
8503 #[serde(
8505 rename = "@other",
8506 default,
8507 deserialize_with = "deserialize_optional_decimal"
8508 )]
8509 pub other: Option<Decimal>,
8510
8511 #[serde(
8513 rename = "@subCategory",
8514 default,
8515 deserialize_with = "deserialize_optional_string"
8516 )]
8517 pub sub_category: Option<String>,
8518
8519 #[serde(
8521 rename = "@figi",
8522 default,
8523 deserialize_with = "deserialize_optional_string"
8524 )]
8525 pub figi: Option<String>,
8526
8527 #[serde(
8529 rename = "@issuerCountryCode",
8530 default,
8531 deserialize_with = "deserialize_optional_string"
8532 )]
8533 pub issuer_country_code: Option<String>,
8534
8535 #[serde(
8537 rename = "@serialNumber",
8538 default,
8539 deserialize_with = "deserialize_optional_decimal"
8540 )]
8541 pub serial_number: Option<Decimal>,
8542
8543 #[serde(
8545 rename = "@deliveryType",
8546 default,
8547 deserialize_with = "deserialize_optional_decimal"
8548 )]
8549 pub delivery_type: Option<Decimal>,
8550
8551 #[serde(
8553 rename = "@commodityType",
8554 default,
8555 deserialize_with = "deserialize_optional_string"
8556 )]
8557 pub commodity_type: Option<String>,
8558
8559 #[serde(
8561 rename = "@fineness",
8562 default,
8563 deserialize_with = "deserialize_optional_decimal"
8564 )]
8565 pub fineness: Option<Decimal>,
8566
8567 #[serde(
8569 rename = "@weight",
8570 default,
8571 deserialize_with = "deserialize_optional_decimal"
8572 )]
8573 pub weight: Option<Decimal>,
8574}
8575
8576#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8578pub struct ClientFee {
8579 #[serde(
8581 rename = "@accountId",
8582 default,
8583 deserialize_with = "deserialize_optional_string"
8584 )]
8585 pub account_id: Option<String>,
8586
8587 #[serde(rename = "@acctAlias", default)]
8589 pub acct_alias: Option<String>,
8590
8591 #[serde(rename = "@model", default)]
8593 pub model: Option<String>,
8594
8595 #[serde(
8597 rename = "@date",
8598 default,
8599 deserialize_with = "deserialize_optional_date"
8600 )]
8601 pub date: Option<NaiveDate>,
8602
8603 #[serde(rename = "@currency", default)]
8605 pub currency: Option<String>,
8606
8607 #[serde(
8609 rename = "@revenue",
8610 default,
8611 deserialize_with = "deserialize_optional_decimal"
8612 )]
8613 pub revenue: Option<Decimal>,
8614
8615 #[serde(
8617 rename = "@expense",
8618 default,
8619 deserialize_with = "deserialize_optional_decimal"
8620 )]
8621 pub expense: Option<Decimal>,
8622
8623 #[serde(
8625 rename = "@net",
8626 default,
8627 deserialize_with = "deserialize_optional_decimal"
8628 )]
8629 pub net: Option<Decimal>,
8630
8631 #[serde(rename = "@description", default)]
8633 pub description: Option<String>,
8634
8635 #[serde(
8637 rename = "@fxRateToBase",
8638 default,
8639 deserialize_with = "deserialize_optional_decimal"
8640 )]
8641 pub fx_rate_to_base: Option<Decimal>,
8642
8643 #[serde(
8645 rename = "@feeType",
8646 default,
8647 deserialize_with = "deserialize_optional_string"
8648 )]
8649 pub fee_type: Option<String>,
8650
8651 #[serde(
8653 rename = "@expenseIndicator",
8654 default,
8655 deserialize_with = "deserialize_optional_string"
8656 )]
8657 pub expense_indicator: Option<String>,
8658
8659 #[serde(
8661 rename = "@revenueInBase",
8662 default,
8663 deserialize_with = "deserialize_optional_decimal"
8664 )]
8665 pub revenue_in_base: Option<Decimal>,
8666
8667 #[serde(
8669 rename = "@expenseInBase",
8670 default,
8671 deserialize_with = "deserialize_optional_decimal"
8672 )]
8673 pub expense_in_base: Option<Decimal>,
8674
8675 #[serde(
8677 rename = "@netInBase",
8678 default,
8679 deserialize_with = "deserialize_optional_decimal"
8680 )]
8681 pub net_in_base: Option<Decimal>,
8682
8683 #[serde(
8685 rename = "@tradeID",
8686 default,
8687 deserialize_with = "deserialize_optional_string"
8688 )]
8689 pub trade_id: Option<String>,
8690
8691 #[serde(
8693 rename = "@execID",
8694 default,
8695 deserialize_with = "deserialize_optional_string"
8696 )]
8697 pub exec_id: Option<String>,
8698
8699 #[serde(
8701 rename = "@levelOfDetail",
8702 default,
8703 deserialize_with = "deserialize_optional_string"
8704 )]
8705 pub level_of_detail: Option<String>,
8706
8707 #[serde(
8709 rename = "@assetCategory",
8710 default,
8711 deserialize_with = "deserialize_optional_string"
8712 )]
8713 pub asset_category: Option<String>,
8714
8715 #[serde(
8717 rename = "@settleDate",
8718 default,
8719 deserialize_with = "deserialize_optional_string"
8720 )]
8721 pub settle_date: Option<String>,
8722
8723 #[serde(
8725 rename = "@buySell",
8726 default,
8727 deserialize_with = "deserialize_optional_string"
8728 )]
8729 pub buy_sell: Option<String>,
8730
8731 #[serde(
8733 rename = "@quantity",
8734 default,
8735 deserialize_with = "deserialize_optional_string"
8736 )]
8737 pub quantity: Option<String>,
8738
8739 #[serde(
8741 rename = "@tradePrice",
8742 default,
8743 deserialize_with = "deserialize_optional_string"
8744 )]
8745 pub trade_price: Option<String>,
8746
8747 #[serde(
8749 rename = "@proceeds",
8750 default,
8751 deserialize_with = "deserialize_optional_string"
8752 )]
8753 pub proceeds: Option<String>,
8754
8755 #[serde(
8757 rename = "@symbol",
8758 default,
8759 deserialize_with = "deserialize_optional_string"
8760 )]
8761 pub symbol: Option<String>,
8762
8763 #[serde(
8765 rename = "@underlyingSymbol",
8766 default,
8767 deserialize_with = "deserialize_optional_string"
8768 )]
8769 pub underlying_symbol: Option<String>,
8770
8771 #[serde(
8773 rename = "@multiplier",
8774 default,
8775 deserialize_with = "deserialize_optional_string"
8776 )]
8777 pub multiplier: Option<String>,
8778
8779 #[serde(
8781 rename = "@underlyingSecurityID",
8782 default,
8783 deserialize_with = "deserialize_optional_string"
8784 )]
8785 pub underlying_security_id: Option<String>,
8786}
8787
8788#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8790pub struct ClientFeesDetail {
8791 #[serde(
8793 rename = "@accountId",
8794 default,
8795 deserialize_with = "deserialize_optional_string"
8796 )]
8797 pub account_id: Option<String>,
8798
8799 #[serde(rename = "@acctAlias", default)]
8801 pub acct_alias: Option<String>,
8802
8803 #[serde(rename = "@model", default)]
8805 pub model: Option<String>,
8806
8807 #[serde(
8809 rename = "@date",
8810 default,
8811 deserialize_with = "deserialize_optional_date"
8812 )]
8813 pub date: Option<NaiveDate>,
8814
8815 #[serde(rename = "@currency", default)]
8817 pub currency: Option<String>,
8818
8819 #[serde(rename = "@feeType", default)]
8821 pub fee_type: Option<String>,
8822
8823 #[serde(
8825 rename = "@revenue",
8826 default,
8827 deserialize_with = "deserialize_optional_decimal"
8828 )]
8829 pub revenue: Option<Decimal>,
8830
8831 #[serde(
8833 rename = "@expense",
8834 default,
8835 deserialize_with = "deserialize_optional_decimal"
8836 )]
8837 pub expense: Option<Decimal>,
8838
8839 #[serde(
8841 rename = "@net",
8842 default,
8843 deserialize_with = "deserialize_optional_decimal"
8844 )]
8845 pub net: Option<Decimal>,
8846
8847 #[serde(rename = "@description", default)]
8849 pub description: Option<String>,
8850
8851 #[serde(
8853 rename = "@fxRateToBase",
8854 default,
8855 deserialize_with = "deserialize_optional_decimal"
8856 )]
8857 pub fx_rate_to_base: Option<Decimal>,
8858
8859 #[serde(
8861 rename = "@tradeID",
8862 default,
8863 deserialize_with = "deserialize_optional_string"
8864 )]
8865 pub trade_id: Option<String>,
8866
8867 #[serde(
8869 rename = "@execID",
8870 default,
8871 deserialize_with = "deserialize_optional_string"
8872 )]
8873 pub exec_id: Option<String>,
8874
8875 #[serde(
8877 rename = "@totalRevenue",
8878 default,
8879 deserialize_with = "deserialize_optional_decimal"
8880 )]
8881 pub total_revenue: Option<Decimal>,
8882
8883 #[serde(
8885 rename = "@totalCommission",
8886 default,
8887 deserialize_with = "deserialize_optional_decimal"
8888 )]
8889 pub total_commission: Option<Decimal>,
8890
8891 #[serde(
8893 rename = "@brokerExecutionCharge",
8894 default,
8895 deserialize_with = "deserialize_optional_decimal"
8896 )]
8897 pub broker_execution_charge: Option<Decimal>,
8898
8899 #[serde(
8901 rename = "@clearingCharge",
8902 default,
8903 deserialize_with = "deserialize_optional_decimal"
8904 )]
8905 pub clearing_charge: Option<Decimal>,
8906
8907 #[serde(
8909 rename = "@thirdPartyExecutionCharge",
8910 default,
8911 deserialize_with = "deserialize_optional_decimal"
8912 )]
8913 pub third_party_execution_charge: Option<Decimal>,
8914
8915 #[serde(
8917 rename = "@thirdPartyRegulatoryCharge",
8918 default,
8919 deserialize_with = "deserialize_optional_decimal"
8920 )]
8921 pub third_party_regulatory_charge: Option<Decimal>,
8922
8923 #[serde(
8925 rename = "@regFINRATradingActivityFee",
8926 default,
8927 deserialize_with = "deserialize_optional_decimal"
8928 )]
8929 pub reg_finra_trading_activity_fee: Option<Decimal>,
8930
8931 #[serde(
8933 rename = "@regSection31TransactionFee",
8934 default,
8935 deserialize_with = "deserialize_optional_decimal"
8936 )]
8937 pub reg_section31_transaction_fee: Option<Decimal>,
8938
8939 #[serde(
8941 rename = "@regOther",
8942 default,
8943 deserialize_with = "deserialize_optional_decimal"
8944 )]
8945 pub reg_other: Option<Decimal>,
8946
8947 #[serde(
8949 rename = "@totalNet",
8950 default,
8951 deserialize_with = "deserialize_optional_decimal"
8952 )]
8953 pub total_net: Option<Decimal>,
8954
8955 #[serde(
8957 rename = "@totalNetInBase",
8958 default,
8959 deserialize_with = "deserialize_optional_decimal"
8960 )]
8961 pub total_net_in_base: Option<Decimal>,
8962
8963 #[serde(
8965 rename = "@levelOfDetail",
8966 default,
8967 deserialize_with = "deserialize_optional_string"
8968 )]
8969 pub level_of_detail: Option<String>,
8970
8971 #[serde(
8973 rename = "@other",
8974 default,
8975 deserialize_with = "deserialize_optional_decimal"
8976 )]
8977 pub other: Option<Decimal>,
8978}
8979
8980#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8986pub struct SLBActivity {
8987 #[serde(
8989 rename = "@accountId",
8990 default,
8991 deserialize_with = "deserialize_optional_string"
8992 )]
8993 pub account_id: Option<String>,
8994
8995 #[serde(rename = "@acctAlias", default)]
8997 pub acct_alias: Option<String>,
8998
8999 #[serde(rename = "@model", default)]
9001 pub model: Option<String>,
9002
9003 #[serde(rename = "@symbol", default)]
9005 pub symbol: Option<String>,
9006
9007 #[serde(rename = "@description", default)]
9009 pub description: Option<String>,
9010
9011 #[serde(rename = "@conid", default)]
9013 pub conid: Option<String>,
9014
9015 #[serde(rename = "@assetCategory", default)]
9017 pub asset_category: Option<AssetCategory>,
9018
9019 #[serde(
9021 rename = "@date",
9022 default,
9023 deserialize_with = "deserialize_optional_date"
9024 )]
9025 pub date: Option<NaiveDate>,
9026
9027 #[serde(rename = "@type", default)]
9029 pub activity_type: Option<String>,
9030
9031 #[serde(
9033 rename = "@quantity",
9034 default,
9035 deserialize_with = "deserialize_optional_decimal"
9036 )]
9037 pub quantity: Option<Decimal>,
9038
9039 #[serde(
9041 rename = "@collateralAmount",
9042 default,
9043 deserialize_with = "deserialize_optional_decimal"
9044 )]
9045 pub collateral_amount: Option<Decimal>,
9046
9047 #[serde(
9049 rename = "@feeRate",
9050 default,
9051 deserialize_with = "deserialize_optional_decimal"
9052 )]
9053 pub fee_rate: Option<Decimal>,
9054
9055 #[serde(
9057 rename = "@netLendFee",
9058 default,
9059 deserialize_with = "deserialize_optional_decimal"
9060 )]
9061 pub net_lend_fee: Option<Decimal>,
9062
9063 #[serde(rename = "@currency", default)]
9065 pub currency: Option<String>,
9066
9067 #[serde(
9069 rename = "@fxRateToBase",
9070 default,
9071 deserialize_with = "deserialize_optional_decimal"
9072 )]
9073 pub fx_rate_to_base: Option<Decimal>,
9074
9075 #[serde(
9077 rename = "@securityID",
9078 default,
9079 deserialize_with = "deserialize_optional_string"
9080 )]
9081 pub security_id: Option<String>,
9082
9083 #[serde(
9085 rename = "@securityIDType",
9086 default,
9087 deserialize_with = "deserialize_optional_string"
9088 )]
9089 pub security_id_type: Option<String>,
9090
9091 #[serde(
9093 rename = "@cusip",
9094 default,
9095 deserialize_with = "deserialize_optional_string"
9096 )]
9097 pub cusip: Option<String>,
9098
9099 #[serde(
9101 rename = "@isin",
9102 default,
9103 deserialize_with = "deserialize_optional_string"
9104 )]
9105 pub isin: Option<String>,
9106
9107 #[serde(
9109 rename = "@underlyingConid",
9110 default,
9111 deserialize_with = "deserialize_optional_string"
9112 )]
9113 pub underlying_conid: Option<String>,
9114
9115 #[serde(
9117 rename = "@underlyingSymbol",
9118 default,
9119 deserialize_with = "deserialize_optional_string"
9120 )]
9121 pub underlying_symbol: Option<String>,
9122
9123 #[serde(
9125 rename = "@issuer",
9126 default,
9127 deserialize_with = "deserialize_optional_string"
9128 )]
9129 pub issuer: Option<String>,
9130
9131 #[serde(
9133 rename = "@multiplier",
9134 default,
9135 deserialize_with = "deserialize_optional_decimal"
9136 )]
9137 pub multiplier: Option<Decimal>,
9138
9139 #[serde(
9141 rename = "@strike",
9142 default,
9143 deserialize_with = "deserialize_optional_decimal"
9144 )]
9145 pub strike: Option<Decimal>,
9146
9147 #[serde(
9149 rename = "@expiry",
9150 default,
9151 deserialize_with = "deserialize_optional_date"
9152 )]
9153 pub expiry: Option<NaiveDate>,
9154
9155 #[serde(rename = "@putCall", default)]
9157 pub put_call: Option<PutCall>,
9158
9159 #[serde(
9161 rename = "@principalAdjustFactor",
9162 default,
9163 deserialize_with = "deserialize_optional_decimal"
9164 )]
9165 pub principal_adjust_factor: Option<Decimal>,
9166
9167 #[serde(
9169 rename = "@slbTransactionId",
9170 default,
9171 deserialize_with = "deserialize_optional_string"
9172 )]
9173 pub slb_transaction_id: Option<String>,
9174
9175 #[serde(
9177 rename = "@activityDescription",
9178 default,
9179 deserialize_with = "deserialize_optional_string"
9180 )]
9181 pub activity_description: Option<String>,
9182
9183 #[serde(
9185 rename = "@exchange",
9186 default,
9187 deserialize_with = "deserialize_optional_string"
9188 )]
9189 pub exchange: Option<String>,
9190
9191 #[serde(
9193 rename = "@markQuantity",
9194 default,
9195 deserialize_with = "deserialize_optional_decimal"
9196 )]
9197 pub mark_quantity: Option<Decimal>,
9198
9199 #[serde(
9201 rename = "@markPriorPrice",
9202 default,
9203 deserialize_with = "deserialize_optional_decimal"
9204 )]
9205 pub mark_prior_price: Option<Decimal>,
9206
9207 #[serde(
9209 rename = "@markCurrentPrice",
9210 default,
9211 deserialize_with = "deserialize_optional_decimal"
9212 )]
9213 pub mark_current_price: Option<Decimal>,
9214
9215 #[serde(
9217 rename = "@subCategory",
9218 default,
9219 deserialize_with = "deserialize_optional_string"
9220 )]
9221 pub sub_category: Option<String>,
9222
9223 #[serde(
9225 rename = "@figi",
9226 default,
9227 deserialize_with = "deserialize_optional_string"
9228 )]
9229 pub figi: Option<String>,
9230
9231 #[serde(
9233 rename = "@listingExchange",
9234 default,
9235 deserialize_with = "deserialize_optional_string"
9236 )]
9237 pub listing_exchange: Option<String>,
9238
9239 #[serde(
9241 rename = "@underlyingSecurityID",
9242 default,
9243 deserialize_with = "deserialize_optional_string"
9244 )]
9245 pub underlying_security_id: Option<String>,
9246
9247 #[serde(
9249 rename = "@underlyingListingExchange",
9250 default,
9251 deserialize_with = "deserialize_optional_string"
9252 )]
9253 pub underlying_listing_exchange: Option<String>,
9254
9255 #[serde(
9257 rename = "@issuerCountryCode",
9258 default,
9259 deserialize_with = "deserialize_optional_string"
9260 )]
9261 pub issuer_country_code: Option<String>,
9262
9263 #[serde(
9265 rename = "@serialNumber",
9266 default,
9267 deserialize_with = "deserialize_optional_decimal"
9268 )]
9269 pub serial_number: Option<Decimal>,
9270
9271 #[serde(
9273 rename = "@deliveryType",
9274 default,
9275 deserialize_with = "deserialize_optional_decimal"
9276 )]
9277 pub delivery_type: Option<Decimal>,
9278
9279 #[serde(
9281 rename = "@commodityType",
9282 default,
9283 deserialize_with = "deserialize_optional_string"
9284 )]
9285 pub commodity_type: Option<String>,
9286
9287 #[serde(
9289 rename = "@fineness",
9290 default,
9291 deserialize_with = "deserialize_optional_decimal"
9292 )]
9293 pub fineness: Option<Decimal>,
9294
9295 #[serde(
9297 rename = "@weight",
9298 default,
9299 deserialize_with = "deserialize_optional_decimal"
9300 )]
9301 pub weight: Option<Decimal>,
9302}
9303
9304#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9306pub struct SLBFee {
9307 #[serde(
9309 rename = "@accountId",
9310 default,
9311 deserialize_with = "deserialize_optional_string"
9312 )]
9313 pub account_id: Option<String>,
9314
9315 #[serde(rename = "@acctAlias", default)]
9317 pub acct_alias: Option<String>,
9318
9319 #[serde(rename = "@model", default)]
9321 pub model: Option<String>,
9322
9323 #[serde(rename = "@symbol", default)]
9325 pub symbol: Option<String>,
9326
9327 #[serde(rename = "@description", default)]
9329 pub description: Option<String>,
9330
9331 #[serde(rename = "@conid", default)]
9333 pub conid: Option<String>,
9334
9335 #[serde(rename = "@assetCategory", default)]
9337 pub asset_category: Option<AssetCategory>,
9338
9339 #[serde(
9341 rename = "@valueDate",
9342 default,
9343 deserialize_with = "deserialize_optional_date"
9344 )]
9345 pub value_date: Option<NaiveDate>,
9346
9347 #[serde(
9349 rename = "@startDate",
9350 default,
9351 deserialize_with = "deserialize_optional_date"
9352 )]
9353 pub start_date: Option<NaiveDate>,
9354
9355 #[serde(
9357 rename = "@quantity",
9358 default,
9359 deserialize_with = "deserialize_optional_decimal"
9360 )]
9361 pub quantity: Option<Decimal>,
9362
9363 #[serde(
9365 rename = "@collateralAmount",
9366 default,
9367 deserialize_with = "deserialize_optional_decimal"
9368 )]
9369 pub collateral_amount: Option<Decimal>,
9370
9371 #[serde(
9373 rename = "@feeRate",
9374 default,
9375 deserialize_with = "deserialize_optional_decimal"
9376 )]
9377 pub fee_rate: Option<Decimal>,
9378
9379 #[serde(
9381 rename = "@fee",
9382 default,
9383 deserialize_with = "deserialize_optional_decimal"
9384 )]
9385 pub fee: Option<Decimal>,
9386
9387 #[serde(
9389 rename = "@carryCharge",
9390 default,
9391 deserialize_with = "deserialize_optional_decimal"
9392 )]
9393 pub carry_charge: Option<Decimal>,
9394
9395 #[serde(rename = "@currency", default)]
9397 pub currency: Option<String>,
9398
9399 #[serde(
9401 rename = "@fxRateToBase",
9402 default,
9403 deserialize_with = "deserialize_optional_decimal"
9404 )]
9405 pub fx_rate_to_base: Option<Decimal>,
9406}
9407
9408#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9410pub struct HardToBorrowDetail {
9411 #[serde(
9413 rename = "@accountId",
9414 default,
9415 deserialize_with = "deserialize_optional_string"
9416 )]
9417 pub account_id: Option<String>,
9418
9419 #[serde(rename = "@acctAlias", default)]
9421 pub acct_alias: Option<String>,
9422
9423 #[serde(rename = "@model", default)]
9425 pub model: Option<String>,
9426
9427 #[serde(rename = "@symbol", default)]
9429 pub symbol: Option<String>,
9430
9431 #[serde(rename = "@description", default)]
9433 pub description: Option<String>,
9434
9435 #[serde(rename = "@conid", default)]
9437 pub conid: Option<String>,
9438
9439 #[serde(rename = "@assetCategory", default)]
9441 pub asset_category: Option<AssetCategory>,
9442
9443 #[serde(
9445 rename = "@valueDate",
9446 default,
9447 deserialize_with = "deserialize_optional_date"
9448 )]
9449 pub value_date: Option<NaiveDate>,
9450
9451 #[serde(
9453 rename = "@quantity",
9454 default,
9455 deserialize_with = "deserialize_optional_decimal"
9456 )]
9457 pub quantity: Option<Decimal>,
9458
9459 #[serde(
9461 rename = "@price",
9462 default,
9463 deserialize_with = "deserialize_optional_decimal"
9464 )]
9465 pub price: Option<Decimal>,
9466
9467 #[serde(
9469 rename = "@value",
9470 default,
9471 deserialize_with = "deserialize_optional_decimal"
9472 )]
9473 pub value: Option<Decimal>,
9474
9475 #[serde(
9477 rename = "@borrowFeeRate",
9478 default,
9479 deserialize_with = "deserialize_optional_decimal"
9480 )]
9481 pub borrow_fee_rate: Option<Decimal>,
9482
9483 #[serde(
9485 rename = "@borrowFee",
9486 default,
9487 deserialize_with = "deserialize_optional_decimal"
9488 )]
9489 pub borrow_fee: Option<Decimal>,
9490
9491 #[serde(rename = "@currency", default)]
9493 pub currency: Option<String>,
9494
9495 #[serde(
9497 rename = "@fxRateToBase",
9498 default,
9499 deserialize_with = "deserialize_optional_decimal"
9500 )]
9501 pub fx_rate_to_base: Option<Decimal>,
9502
9503 #[serde(
9505 rename = "@securityID",
9506 default,
9507 deserialize_with = "deserialize_optional_string"
9508 )]
9509 pub security_id: Option<String>,
9510
9511 #[serde(
9513 rename = "@securityIDType",
9514 default,
9515 deserialize_with = "deserialize_optional_string"
9516 )]
9517 pub security_id_type: Option<String>,
9518
9519 #[serde(
9521 rename = "@cusip",
9522 default,
9523 deserialize_with = "deserialize_optional_string"
9524 )]
9525 pub cusip: Option<String>,
9526
9527 #[serde(
9529 rename = "@isin",
9530 default,
9531 deserialize_with = "deserialize_optional_string"
9532 )]
9533 pub isin: Option<String>,
9534
9535 #[serde(
9537 rename = "@listingExchange",
9538 default,
9539 deserialize_with = "deserialize_optional_string"
9540 )]
9541 pub listing_exchange: Option<String>,
9542
9543 #[serde(
9545 rename = "@underlyingConid",
9546 default,
9547 deserialize_with = "deserialize_optional_string"
9548 )]
9549 pub underlying_conid: Option<String>,
9550
9551 #[serde(
9553 rename = "@underlyingSymbol",
9554 default,
9555 deserialize_with = "deserialize_optional_string"
9556 )]
9557 pub underlying_symbol: Option<String>,
9558
9559 #[serde(
9561 rename = "@underlyingSecurityID",
9562 default,
9563 deserialize_with = "deserialize_optional_string"
9564 )]
9565 pub underlying_security_id: Option<String>,
9566
9567 #[serde(
9569 rename = "@underlyingListingExchange",
9570 default,
9571 deserialize_with = "deserialize_optional_string"
9572 )]
9573 pub underlying_listing_exchange: Option<String>,
9574
9575 #[serde(
9577 rename = "@issuer",
9578 default,
9579 deserialize_with = "deserialize_optional_string"
9580 )]
9581 pub issuer: Option<String>,
9582
9583 #[serde(
9585 rename = "@multiplier",
9586 default,
9587 deserialize_with = "deserialize_optional_decimal"
9588 )]
9589 pub multiplier: Option<Decimal>,
9590
9591 #[serde(
9593 rename = "@strike",
9594 default,
9595 deserialize_with = "deserialize_optional_decimal"
9596 )]
9597 pub strike: Option<Decimal>,
9598
9599 #[serde(
9601 rename = "@expiry",
9602 default,
9603 deserialize_with = "deserialize_optional_date"
9604 )]
9605 pub expiry: Option<NaiveDate>,
9606
9607 #[serde(rename = "@putCall", default)]
9609 pub put_call: Option<PutCall>,
9610
9611 #[serde(
9613 rename = "@principalAdjustFactor",
9614 default,
9615 deserialize_with = "deserialize_optional_decimal"
9616 )]
9617 pub principal_adjust_factor: Option<Decimal>,
9618
9619 #[serde(
9621 rename = "@code",
9622 default,
9623 deserialize_with = "deserialize_optional_string"
9624 )]
9625 pub code: Option<String>,
9626
9627 #[serde(
9629 rename = "@fromAcct",
9630 default,
9631 deserialize_with = "deserialize_optional_string"
9632 )]
9633 pub from_acct: Option<String>,
9634
9635 #[serde(
9637 rename = "@toAcct",
9638 default,
9639 deserialize_with = "deserialize_optional_string"
9640 )]
9641 pub to_acct: Option<String>,
9642}
9643
9644#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9650pub struct FxLot {
9651 #[serde(
9653 rename = "@accountId",
9654 default,
9655 deserialize_with = "deserialize_optional_string"
9656 )]
9657 pub account_id: Option<String>,
9658
9659 #[serde(rename = "@acctAlias", default)]
9661 pub acct_alias: Option<String>,
9662
9663 #[serde(rename = "@model", default)]
9665 pub model: Option<String>,
9666
9667 #[serde(rename = "@assetCategory", default)]
9669 pub asset_category: Option<String>,
9670
9671 #[serde(
9673 rename = "@reportDate",
9674 default,
9675 deserialize_with = "deserialize_optional_date"
9676 )]
9677 pub report_date: Option<NaiveDate>,
9678
9679 #[serde(rename = "@functionalCurrency", default)]
9681 pub functional_currency: Option<String>,
9682
9683 #[serde(rename = "@fxCurrency", default)]
9685 pub fx_currency: Option<String>,
9686
9687 #[serde(
9689 rename = "@quantity",
9690 default,
9691 deserialize_with = "deserialize_optional_decimal"
9692 )]
9693 pub quantity: Option<Decimal>,
9694
9695 #[serde(
9697 rename = "@costPrice",
9698 default,
9699 deserialize_with = "deserialize_optional_decimal"
9700 )]
9701 pub cost_price: Option<Decimal>,
9702
9703 #[serde(
9705 rename = "@costBasis",
9706 default,
9707 deserialize_with = "deserialize_optional_decimal"
9708 )]
9709 pub cost_basis: Option<Decimal>,
9710
9711 #[serde(
9713 rename = "@closePrice",
9714 default,
9715 deserialize_with = "deserialize_optional_decimal"
9716 )]
9717 pub close_price: Option<Decimal>,
9718
9719 #[serde(
9721 rename = "@value",
9722 default,
9723 deserialize_with = "deserialize_optional_decimal"
9724 )]
9725 pub value: Option<Decimal>,
9726
9727 #[serde(
9729 rename = "@unrealizedPL",
9730 default,
9731 deserialize_with = "deserialize_optional_decimal"
9732 )]
9733 pub unrealized_pl: Option<Decimal>,
9734
9735 #[serde(rename = "@levelOfDetail", default)]
9737 pub level_of_detail: Option<String>,
9738
9739 #[serde(
9741 rename = "@code",
9742 default,
9743 deserialize_with = "deserialize_optional_string"
9744 )]
9745 pub code: Option<String>,
9746
9747 #[serde(
9749 rename = "@lotDescription",
9750 default,
9751 deserialize_with = "deserialize_optional_string"
9752 )]
9753 pub lot_description: Option<String>,
9754
9755 #[serde(
9757 rename = "@lotOpenDateTime",
9758 default,
9759 deserialize_with = "deserialize_optional_string"
9760 )]
9761 pub lot_open_date_time: Option<String>,
9762}
9763
9764#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9770pub struct UnsettledTransfer {
9771 #[serde(
9773 rename = "@accountId",
9774 default,
9775 deserialize_with = "deserialize_optional_string"
9776 )]
9777 pub account_id: Option<String>,
9778
9779 #[serde(rename = "@acctAlias", default)]
9781 pub acct_alias: Option<String>,
9782
9783 #[serde(rename = "@model", default)]
9785 pub model: Option<String>,
9786
9787 #[serde(rename = "@symbol", default)]
9789 pub symbol: Option<String>,
9790
9791 #[serde(rename = "@description", default)]
9793 pub description: Option<String>,
9794
9795 #[serde(rename = "@conid", default)]
9797 pub conid: Option<String>,
9798
9799 #[serde(rename = "@assetCategory", default)]
9801 pub asset_category: Option<AssetCategory>,
9802
9803 #[serde(rename = "@direction", default)]
9805 pub direction: Option<String>,
9806
9807 #[serde(
9809 rename = "@date",
9810 default,
9811 deserialize_with = "deserialize_optional_date"
9812 )]
9813 pub date: Option<NaiveDate>,
9814
9815 #[serde(
9817 rename = "@expectedDate",
9818 default,
9819 deserialize_with = "deserialize_optional_date"
9820 )]
9821 pub expected_date: Option<NaiveDate>,
9822
9823 #[serde(
9825 rename = "@quantity",
9826 default,
9827 deserialize_with = "deserialize_optional_decimal"
9828 )]
9829 pub quantity: Option<Decimal>,
9830
9831 #[serde(rename = "@currency", default)]
9833 pub currency: Option<String>,
9834
9835 #[serde(
9837 rename = "@fxRateToBase",
9838 default,
9839 deserialize_with = "deserialize_optional_decimal"
9840 )]
9841 pub fx_rate_to_base: Option<Decimal>,
9842
9843 #[serde(
9845 rename = "@securityID",
9846 default,
9847 deserialize_with = "deserialize_optional_string"
9848 )]
9849 pub security_id: Option<String>,
9850
9851 #[serde(
9853 rename = "@cusip",
9854 default,
9855 deserialize_with = "deserialize_optional_string"
9856 )]
9857 pub cusip: Option<String>,
9858
9859 #[serde(
9861 rename = "@isin",
9862 default,
9863 deserialize_with = "deserialize_optional_string"
9864 )]
9865 pub isin: Option<String>,
9866
9867 #[serde(
9869 rename = "@sedol",
9870 default,
9871 deserialize_with = "deserialize_optional_string"
9872 )]
9873 pub sedol: Option<String>,
9874
9875 #[serde(
9877 rename = "@underlyingConid",
9878 default,
9879 deserialize_with = "deserialize_optional_string"
9880 )]
9881 pub underlying_conid: Option<String>,
9882
9883 #[serde(
9885 rename = "@stage",
9886 default,
9887 deserialize_with = "deserialize_optional_string"
9888 )]
9889 pub stage: Option<String>,
9890
9891 #[serde(
9893 rename = "@tradeDate",
9894 default,
9895 deserialize_with = "deserialize_optional_date"
9896 )]
9897 pub trade_date: Option<NaiveDate>,
9898
9899 #[serde(
9901 rename = "@targetSettlement",
9902 default,
9903 deserialize_with = "deserialize_optional_date"
9904 )]
9905 pub target_settlement: Option<NaiveDate>,
9906
9907 #[serde(
9909 rename = "@contra",
9910 default,
9911 deserialize_with = "deserialize_optional_string"
9912 )]
9913 pub contra: Option<String>,
9914
9915 #[serde(
9917 rename = "@tradePrice",
9918 default,
9919 deserialize_with = "deserialize_optional_decimal"
9920 )]
9921 pub trade_price: Option<Decimal>,
9922
9923 #[serde(
9925 rename = "@tradeAmount",
9926 default,
9927 deserialize_with = "deserialize_optional_decimal"
9928 )]
9929 pub trade_amount: Option<Decimal>,
9930
9931 #[serde(
9933 rename = "@tradeAmountInBase",
9934 default,
9935 deserialize_with = "deserialize_optional_decimal"
9936 )]
9937 pub trade_amount_in_base: Option<Decimal>,
9938
9939 #[serde(
9941 rename = "@transactionID",
9942 default,
9943 deserialize_with = "deserialize_optional_string"
9944 )]
9945 pub transaction_id: Option<String>,
9946}
9947
9948#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9950pub struct TradeTransfer {
9951 #[serde(
9953 rename = "@accountId",
9954 default,
9955 deserialize_with = "deserialize_optional_string"
9956 )]
9957 pub account_id: Option<String>,
9958
9959 #[serde(rename = "@acctAlias", default)]
9961 pub acct_alias: Option<String>,
9962
9963 #[serde(rename = "@model", default)]
9965 pub model: Option<String>,
9966
9967 #[serde(rename = "@symbol", default)]
9969 pub symbol: Option<String>,
9970
9971 #[serde(rename = "@description", default)]
9973 pub description: Option<String>,
9974
9975 #[serde(rename = "@conid", default)]
9977 pub conid: Option<String>,
9978
9979 #[serde(rename = "@assetCategory", default)]
9981 pub asset_category: Option<AssetCategory>,
9982
9983 #[serde(rename = "@transferType", default)]
9985 pub transfer_type: Option<String>,
9986
9987 #[serde(rename = "@direction", default)]
9989 pub direction: Option<String>,
9990
9991 #[serde(rename = "@deliveryType", default)]
9993 pub delivery_type: Option<String>,
9994
9995 #[serde(
9997 rename = "@quantity",
9998 default,
9999 deserialize_with = "deserialize_optional_decimal"
10000 )]
10001 pub quantity: Option<Decimal>,
10002
10003 #[serde(
10005 rename = "@transferPrice",
10006 default,
10007 deserialize_with = "deserialize_optional_decimal"
10008 )]
10009 pub transfer_price: Option<Decimal>,
10010
10011 #[serde(
10013 rename = "@date",
10014 default,
10015 deserialize_with = "deserialize_optional_date"
10016 )]
10017 pub date: Option<NaiveDate>,
10018
10019 #[serde(rename = "@executingBroker", default)]
10021 pub executing_broker: Option<String>,
10022
10023 #[serde(rename = "@currency", default)]
10025 pub currency: Option<String>,
10026
10027 #[serde(
10029 rename = "@fxRateToBase",
10030 default,
10031 deserialize_with = "deserialize_optional_decimal"
10032 )]
10033 pub fx_rate_to_base: Option<Decimal>,
10034
10035 #[serde(rename = "@transactionType", default)]
10037 pub transaction_type: Option<TradeType>,
10038
10039 #[serde(rename = "@openCloseIndicator", default)]
10041 pub open_close_indicator: Option<OpenClose>,
10042
10043 #[serde(rename = "@deliveredReceived", default)]
10045 pub delivered_received: Option<DeliveredReceived>,
10046
10047 #[serde(
10049 rename = "@cusip",
10050 default,
10051 deserialize_with = "deserialize_optional_string"
10052 )]
10053 pub cusip: Option<String>,
10054
10055 #[serde(
10057 rename = "@isin",
10058 default,
10059 deserialize_with = "deserialize_optional_string"
10060 )]
10061 pub isin: Option<String>,
10062
10063 #[serde(
10065 rename = "@underlyingConid",
10066 default,
10067 deserialize_with = "deserialize_optional_string"
10068 )]
10069 pub underlying_conid: Option<String>,
10070
10071 #[serde(
10073 rename = "@tradeID",
10074 default,
10075 deserialize_with = "deserialize_optional_string"
10076 )]
10077 pub trade_id: Option<String>,
10078
10079 #[serde(
10081 rename = "@reportDate",
10082 default,
10083 deserialize_with = "deserialize_optional_date"
10084 )]
10085 pub report_date: Option<NaiveDate>,
10086
10087 #[serde(
10089 rename = "@tradeDate",
10090 default,
10091 deserialize_with = "deserialize_optional_date"
10092 )]
10093 pub trade_date: Option<NaiveDate>,
10094
10095 #[serde(
10097 rename = "@tradeTime",
10098 default,
10099 deserialize_with = "deserialize_optional_string"
10100 )]
10101 pub trade_time: Option<String>,
10102
10103 #[serde(
10105 rename = "@settleDateTarget",
10106 default,
10107 deserialize_with = "deserialize_optional_date"
10108 )]
10109 pub settle_date_target: Option<NaiveDate>,
10110
10111 #[serde(
10113 rename = "@exchange",
10114 default,
10115 deserialize_with = "deserialize_optional_string"
10116 )]
10117 pub exchange: Option<String>,
10118
10119 #[serde(
10121 rename = "@tradePrice",
10122 default,
10123 deserialize_with = "deserialize_optional_decimal"
10124 )]
10125 pub trade_price: Option<Decimal>,
10126
10127 #[serde(
10129 rename = "@tradeMoney",
10130 default,
10131 deserialize_with = "deserialize_optional_decimal"
10132 )]
10133 pub trade_money: Option<Decimal>,
10134
10135 #[serde(
10137 rename = "@taxes",
10138 default,
10139 deserialize_with = "deserialize_optional_decimal"
10140 )]
10141 pub taxes: Option<Decimal>,
10142
10143 #[serde(
10145 rename = "@ibCommission",
10146 default,
10147 deserialize_with = "deserialize_optional_decimal"
10148 )]
10149 pub ib_commission: Option<Decimal>,
10150
10151 #[serde(
10153 rename = "@ibCommissionCurrency",
10154 default,
10155 deserialize_with = "deserialize_optional_string"
10156 )]
10157 pub ib_commission_currency: Option<String>,
10158
10159 #[serde(
10161 rename = "@closePrice",
10162 default,
10163 deserialize_with = "deserialize_optional_decimal"
10164 )]
10165 pub close_price: Option<Decimal>,
10166
10167 #[serde(
10169 rename = "@notes",
10170 default,
10171 deserialize_with = "deserialize_optional_string"
10172 )]
10173 pub notes: Option<String>,
10174
10175 #[serde(
10177 rename = "@cost",
10178 default,
10179 deserialize_with = "deserialize_optional_decimal"
10180 )]
10181 pub cost: Option<Decimal>,
10182
10183 #[serde(
10185 rename = "@fifoPnlRealized",
10186 default,
10187 deserialize_with = "deserialize_optional_decimal"
10188 )]
10189 pub fifo_pnl_realized: Option<Decimal>,
10190
10191 #[serde(
10193 rename = "@mtmPnl",
10194 default,
10195 deserialize_with = "deserialize_optional_decimal"
10196 )]
10197 pub mtm_pnl: Option<Decimal>,
10198
10199 #[serde(
10201 rename = "@brokerName",
10202 default,
10203 deserialize_with = "deserialize_optional_string"
10204 )]
10205 pub broker_name: Option<String>,
10206
10207 #[serde(
10209 rename = "@brokerAccount",
10210 default,
10211 deserialize_with = "deserialize_optional_string"
10212 )]
10213 pub broker_account: Option<String>,
10214
10215 #[serde(
10217 rename = "@awayBrokerCommission",
10218 default,
10219 deserialize_with = "deserialize_optional_decimal"
10220 )]
10221 pub away_broker_commission: Option<Decimal>,
10222
10223 #[serde(
10225 rename = "@regulatoryFee",
10226 default,
10227 deserialize_with = "deserialize_optional_decimal"
10228 )]
10229 pub regulatory_fee: Option<Decimal>,
10230
10231 #[serde(
10233 rename = "@netTradeMoney",
10234 default,
10235 deserialize_with = "deserialize_optional_decimal"
10236 )]
10237 pub net_trade_money: Option<Decimal>,
10238
10239 #[serde(
10241 rename = "@netTradeMoneyInBase",
10242 default,
10243 deserialize_with = "deserialize_optional_decimal"
10244 )]
10245 pub net_trade_money_in_base: Option<Decimal>,
10246
10247 #[serde(
10249 rename = "@netTradePrice",
10250 default,
10251 deserialize_with = "deserialize_optional_decimal"
10252 )]
10253 pub net_trade_price: Option<Decimal>,
10254
10255 #[serde(
10257 rename = "@multiplier",
10258 default,
10259 deserialize_with = "deserialize_optional_decimal"
10260 )]
10261 pub multiplier: Option<Decimal>,
10262
10263 #[serde(
10265 rename = "@sedol",
10266 default,
10267 deserialize_with = "deserialize_optional_string"
10268 )]
10269 pub sedol: Option<String>,
10270
10271 #[serde(
10273 rename = "@securityID",
10274 default,
10275 deserialize_with = "deserialize_optional_string"
10276 )]
10277 pub security_id: Option<String>,
10278
10279 #[serde(
10281 rename = "@underlyingSymbol",
10282 default,
10283 deserialize_with = "deserialize_optional_string"
10284 )]
10285 pub underlying_symbol: Option<String>,
10286
10287 #[serde(
10289 rename = "@issuer",
10290 default,
10291 deserialize_with = "deserialize_optional_string"
10292 )]
10293 pub issuer: Option<String>,
10294
10295 #[serde(
10297 rename = "@strike",
10298 default,
10299 deserialize_with = "deserialize_optional_decimal"
10300 )]
10301 pub strike: Option<Decimal>,
10302
10303 #[serde(
10305 rename = "@expiry",
10306 default,
10307 deserialize_with = "deserialize_optional_date"
10308 )]
10309 pub expiry: Option<NaiveDate>,
10310
10311 #[serde(rename = "@putCall", default)]
10313 pub put_call: Option<PutCall>,
10314
10315 #[serde(
10317 rename = "@principalAdjustFactor",
10318 default,
10319 deserialize_with = "deserialize_optional_decimal"
10320 )]
10321 pub principal_adjust_factor: Option<Decimal>,
10322
10323 #[serde(
10325 rename = "@proceeds",
10326 default,
10327 deserialize_with = "deserialize_optional_decimal"
10328 )]
10329 pub proceeds: Option<Decimal>,
10330
10331 #[serde(
10333 rename = "@fxPnl",
10334 default,
10335 deserialize_with = "deserialize_optional_decimal"
10336 )]
10337 pub fx_pnl: Option<Decimal>,
10338
10339 #[serde(
10341 rename = "@netCash",
10342 default,
10343 deserialize_with = "deserialize_optional_decimal"
10344 )]
10345 pub net_cash: Option<Decimal>,
10346
10347 #[serde(
10349 rename = "@origTradePrice",
10350 default,
10351 deserialize_with = "deserialize_optional_decimal"
10352 )]
10353 pub orig_trade_price: Option<Decimal>,
10354
10355 #[serde(
10357 rename = "@origTradeDate",
10358 default,
10359 deserialize_with = "deserialize_optional_date"
10360 )]
10361 pub orig_trade_date: Option<NaiveDate>,
10362
10363 #[serde(
10365 rename = "@origTradeID",
10366 default,
10367 deserialize_with = "deserialize_optional_string"
10368 )]
10369 pub orig_trade_id: Option<String>,
10370
10371 #[serde(
10373 rename = "@origOrderID",
10374 default,
10375 deserialize_with = "deserialize_optional_string"
10376 )]
10377 pub orig_order_id: Option<String>,
10378
10379 #[serde(
10381 rename = "@clearingFirmID",
10382 default,
10383 deserialize_with = "deserialize_optional_string"
10384 )]
10385 pub clearing_firm_id: Option<String>,
10386
10387 #[serde(
10389 rename = "@transactionID",
10390 default,
10391 deserialize_with = "deserialize_optional_string"
10392 )]
10393 pub transaction_id: Option<String>,
10394
10395 #[serde(
10397 rename = "@openDateTime",
10398 default,
10399 deserialize_with = "deserialize_optional_string"
10400 )]
10401 pub open_date_time: Option<String>,
10402
10403 #[serde(
10405 rename = "@holdingPeriodDateTime",
10406 default,
10407 deserialize_with = "deserialize_optional_string"
10408 )]
10409 pub holding_period_date_time: Option<String>,
10410
10411 #[serde(
10413 rename = "@whenRealized",
10414 default,
10415 deserialize_with = "deserialize_optional_string"
10416 )]
10417 pub when_realized: Option<String>,
10418
10419 #[serde(
10421 rename = "@whenReopened",
10422 default,
10423 deserialize_with = "deserialize_optional_string"
10424 )]
10425 pub when_reopened: Option<String>,
10426
10427 #[serde(
10429 rename = "@levelOfDetail",
10430 default,
10431 deserialize_with = "deserialize_optional_string"
10432 )]
10433 pub level_of_detail: Option<String>,
10434
10435 #[serde(
10437 rename = "@securityIDType",
10438 default,
10439 deserialize_with = "deserialize_optional_string"
10440 )]
10441 pub security_id_type: Option<String>,
10442}
10443
10444#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10450pub struct PriorPeriodPosition {
10451 #[serde(
10453 rename = "@accountId",
10454 default,
10455 deserialize_with = "deserialize_optional_string"
10456 )]
10457 pub account_id: Option<String>,
10458
10459 #[serde(rename = "@acctAlias", default)]
10461 pub acct_alias: Option<String>,
10462
10463 #[serde(rename = "@model", default)]
10465 pub model: Option<String>,
10466
10467 #[serde(rename = "@symbol", default)]
10469 pub symbol: Option<String>,
10470
10471 #[serde(rename = "@description", default)]
10473 pub description: Option<String>,
10474
10475 #[serde(rename = "@conid", default)]
10477 pub conid: Option<String>,
10478
10479 #[serde(rename = "@assetCategory", default)]
10481 pub asset_category: Option<AssetCategory>,
10482
10483 #[serde(
10485 rename = "@priorMtmPnl",
10486 default,
10487 deserialize_with = "deserialize_optional_decimal"
10488 )]
10489 pub prior_mtm_pnl: Option<Decimal>,
10490
10491 #[serde(
10493 rename = "@date",
10494 default,
10495 deserialize_with = "deserialize_optional_date"
10496 )]
10497 pub date: Option<NaiveDate>,
10498
10499 #[serde(
10501 rename = "@quantity",
10502 default,
10503 deserialize_with = "deserialize_optional_decimal"
10504 )]
10505 pub quantity: Option<Decimal>,
10506
10507 #[serde(
10509 rename = "@price",
10510 default,
10511 deserialize_with = "deserialize_optional_decimal"
10512 )]
10513 pub price: Option<Decimal>,
10514
10515 #[serde(rename = "@currency", default)]
10517 pub currency: Option<String>,
10518
10519 #[serde(
10521 rename = "@fxRateToBase",
10522 default,
10523 deserialize_with = "deserialize_optional_decimal"
10524 )]
10525 pub fx_rate_to_base: Option<Decimal>,
10526
10527 #[serde(
10529 rename = "@securityID",
10530 default,
10531 deserialize_with = "deserialize_optional_string"
10532 )]
10533 pub security_id: Option<String>,
10534
10535 #[serde(
10537 rename = "@cusip",
10538 default,
10539 deserialize_with = "deserialize_optional_string"
10540 )]
10541 pub cusip: Option<String>,
10542
10543 #[serde(
10545 rename = "@isin",
10546 default,
10547 deserialize_with = "deserialize_optional_string"
10548 )]
10549 pub isin: Option<String>,
10550
10551 #[serde(
10553 rename = "@listingExchange",
10554 default,
10555 deserialize_with = "deserialize_optional_string"
10556 )]
10557 pub listing_exchange: Option<String>,
10558
10559 #[serde(
10561 rename = "@underlyingConid",
10562 default,
10563 deserialize_with = "deserialize_optional_string"
10564 )]
10565 pub underlying_conid: Option<String>,
10566
10567 #[serde(
10569 rename = "@underlyingSecurityID",
10570 default,
10571 deserialize_with = "deserialize_optional_string"
10572 )]
10573 pub underlying_security_id: Option<String>,
10574
10575 #[serde(
10577 rename = "@underlyingListingExchange",
10578 default,
10579 deserialize_with = "deserialize_optional_string"
10580 )]
10581 pub underlying_listing_exchange: Option<String>,
10582
10583 #[serde(
10585 rename = "@sedol",
10586 default,
10587 deserialize_with = "deserialize_optional_string"
10588 )]
10589 pub sedol: Option<String>,
10590
10591 #[serde(
10593 rename = "@securityIDType",
10594 default,
10595 deserialize_with = "deserialize_optional_string"
10596 )]
10597 pub security_id_type: Option<String>,
10598
10599 #[serde(
10601 rename = "@underlyingSymbol",
10602 default,
10603 deserialize_with = "deserialize_optional_string"
10604 )]
10605 pub underlying_symbol: Option<String>,
10606
10607 #[serde(
10609 rename = "@issuer",
10610 default,
10611 deserialize_with = "deserialize_optional_string"
10612 )]
10613 pub issuer: Option<String>,
10614
10615 #[serde(
10617 rename = "@multiplier",
10618 default,
10619 deserialize_with = "deserialize_optional_decimal"
10620 )]
10621 pub multiplier: Option<Decimal>,
10622
10623 #[serde(
10625 rename = "@strike",
10626 default,
10627 deserialize_with = "deserialize_optional_decimal"
10628 )]
10629 pub strike: Option<Decimal>,
10630
10631 #[serde(
10633 rename = "@expiry",
10634 default,
10635 deserialize_with = "deserialize_optional_date"
10636 )]
10637 pub expiry: Option<NaiveDate>,
10638
10639 #[serde(rename = "@putCall", default)]
10641 pub put_call: Option<PutCall>,
10642
10643 #[serde(
10645 rename = "@principalAdjustFactor",
10646 default,
10647 deserialize_with = "deserialize_optional_decimal"
10648 )]
10649 pub principal_adjust_factor: Option<Decimal>,
10650
10651 #[serde(
10653 rename = "@subCategory",
10654 default,
10655 deserialize_with = "deserialize_optional_string"
10656 )]
10657 pub sub_category: Option<String>,
10658
10659 #[serde(
10661 rename = "@figi",
10662 default,
10663 deserialize_with = "deserialize_optional_string"
10664 )]
10665 pub figi: Option<String>,
10666
10667 #[serde(
10669 rename = "@issuerCountryCode",
10670 default,
10671 deserialize_with = "deserialize_optional_string"
10672 )]
10673 pub issuer_country_code: Option<String>,
10674
10675 #[serde(
10677 rename = "@serialNumber",
10678 default,
10679 deserialize_with = "deserialize_optional_decimal"
10680 )]
10681 pub serial_number: Option<Decimal>,
10682
10683 #[serde(
10685 rename = "@deliveryType",
10686 default,
10687 deserialize_with = "deserialize_optional_decimal"
10688 )]
10689 pub delivery_type: Option<Decimal>,
10690
10691 #[serde(
10693 rename = "@commodityType",
10694 default,
10695 deserialize_with = "deserialize_optional_string"
10696 )]
10697 pub commodity_type: Option<String>,
10698
10699 #[serde(
10701 rename = "@fineness",
10702 default,
10703 deserialize_with = "deserialize_optional_decimal"
10704 )]
10705 pub fineness: Option<Decimal>,
10706
10707 #[serde(
10709 rename = "@weight",
10710 default,
10711 deserialize_with = "deserialize_optional_decimal"
10712 )]
10713 pub weight: Option<Decimal>,
10714}
10715
10716#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10722pub struct TierInterestDetail {
10723 #[serde(
10725 rename = "@accountId",
10726 default,
10727 deserialize_with = "deserialize_optional_string"
10728 )]
10729 pub account_id: Option<String>,
10730
10731 #[serde(rename = "@acctAlias", default)]
10733 pub acct_alias: Option<String>,
10734
10735 #[serde(rename = "@model", default)]
10737 pub model: Option<String>,
10738
10739 #[serde(rename = "@currency", default)]
10741 pub currency: Option<String>,
10742
10743 #[serde(
10745 rename = "@fxRateToBase",
10746 default,
10747 deserialize_with = "deserialize_optional_decimal"
10748 )]
10749 pub fx_rate_to_base: Option<Decimal>,
10750
10751 #[serde(rename = "@interestType", default)]
10753 pub interest_type: Option<String>,
10754
10755 #[serde(
10757 rename = "@reportDate",
10758 default,
10759 deserialize_with = "deserialize_optional_date"
10760 )]
10761 pub report_date: Option<NaiveDate>,
10762
10763 #[serde(
10765 rename = "@valueDate",
10766 default,
10767 deserialize_with = "deserialize_optional_date"
10768 )]
10769 pub value_date: Option<NaiveDate>,
10770
10771 #[serde(rename = "@tierBreak", default)]
10773 pub tier_break: Option<String>,
10774
10775 #[serde(
10777 rename = "@balanceThreshold",
10778 default,
10779 deserialize_with = "deserialize_optional_decimal"
10780 )]
10781 pub balance_threshold: Option<Decimal>,
10782
10783 #[serde(
10785 rename = "@securitiesPrincipal",
10786 default,
10787 deserialize_with = "deserialize_optional_decimal"
10788 )]
10789 pub securities_principal: Option<Decimal>,
10790
10791 #[serde(
10793 rename = "@commoditiesPrincipal",
10794 default,
10795 deserialize_with = "deserialize_optional_decimal"
10796 )]
10797 pub commodities_principal: Option<Decimal>,
10798
10799 #[serde(
10801 rename = "@ibuklPrincipal",
10802 default,
10803 deserialize_with = "deserialize_optional_decimal"
10804 )]
10805 pub ibukl_principal: Option<Decimal>,
10806
10807 #[serde(
10809 rename = "@totalPrincipal",
10810 default,
10811 deserialize_with = "deserialize_optional_decimal"
10812 )]
10813 pub total_principal: Option<Decimal>,
10814
10815 #[serde(
10817 rename = "@rate",
10818 default,
10819 deserialize_with = "deserialize_optional_decimal"
10820 )]
10821 pub rate: Option<Decimal>,
10822
10823 #[serde(
10825 rename = "@securitiesInterest",
10826 default,
10827 deserialize_with = "deserialize_optional_decimal"
10828 )]
10829 pub securities_interest: Option<Decimal>,
10830
10831 #[serde(
10833 rename = "@commoditiesInterest",
10834 default,
10835 deserialize_with = "deserialize_optional_decimal"
10836 )]
10837 pub commodities_interest: Option<Decimal>,
10838
10839 #[serde(
10841 rename = "@ibuklInterest",
10842 default,
10843 deserialize_with = "deserialize_optional_decimal"
10844 )]
10845 pub ibukl_interest: Option<Decimal>,
10846
10847 #[serde(
10849 rename = "@totalInterest",
10850 default,
10851 deserialize_with = "deserialize_optional_decimal"
10852 )]
10853 pub total_interest: Option<Decimal>,
10854
10855 #[serde(rename = "@code", default)]
10857 pub code: Option<String>,
10858
10859 #[serde(rename = "@fromAcct", default)]
10861 pub from_acct: Option<String>,
10862
10863 #[serde(rename = "@toAcct", default)]
10865 pub to_acct: Option<String>,
10866
10867 #[serde(rename = "@marginBalance", default)]
10869 pub margin_balance: Option<String>,
10870
10871 #[serde(
10874 rename = "@date",
10875 default,
10876 deserialize_with = "deserialize_optional_date"
10877 )]
10878 pub date: Option<NaiveDate>,
10879
10880 #[serde(
10882 rename = "@fromDate",
10883 default,
10884 deserialize_with = "deserialize_optional_date"
10885 )]
10886 pub from_date: Option<NaiveDate>,
10887
10888 #[serde(
10890 rename = "@toDate",
10891 default,
10892 deserialize_with = "deserialize_optional_date"
10893 )]
10894 pub to_date: Option<NaiveDate>,
10895
10896 #[serde(
10898 rename = "@balance",
10899 default,
10900 deserialize_with = "deserialize_optional_decimal"
10901 )]
10902 pub balance: Option<Decimal>,
10903
10904 #[serde(
10906 rename = "@interestRate",
10907 default,
10908 deserialize_with = "deserialize_optional_decimal"
10909 )]
10910 pub interest_rate: Option<Decimal>,
10911
10912 #[serde(
10914 rename = "@interest",
10915 default,
10916 deserialize_with = "deserialize_optional_decimal"
10917 )]
10918 pub interest: Option<Decimal>,
10919}
10920
10921#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10927pub struct DebitCardActivity {
10928 #[serde(
10930 rename = "@accountId",
10931 default,
10932 deserialize_with = "deserialize_optional_string"
10933 )]
10934 pub account_id: Option<String>,
10935
10936 #[serde(rename = "@acctAlias", default)]
10938 pub acct_alias: Option<String>,
10939
10940 #[serde(rename = "@model", default)]
10942 pub model: Option<String>,
10943
10944 #[serde(
10946 rename = "@date",
10947 default,
10948 deserialize_with = "deserialize_optional_date"
10949 )]
10950 pub date: Option<NaiveDate>,
10951
10952 #[serde(rename = "@merchant", default)]
10954 pub merchant: Option<String>,
10955
10956 #[serde(rename = "@category", default)]
10958 pub category: Option<String>,
10959
10960 #[serde(rename = "@status", default)]
10962 pub status: Option<String>,
10963
10964 #[serde(rename = "@transactionType", default)]
10966 pub transaction_type: Option<String>,
10967
10968 #[serde(
10970 rename = "@amount",
10971 default,
10972 deserialize_with = "deserialize_optional_decimal"
10973 )]
10974 pub amount: Option<Decimal>,
10975
10976 #[serde(rename = "@currency", default)]
10978 pub currency: Option<String>,
10979
10980 #[serde(
10982 rename = "@fxRateToBase",
10983 default,
10984 deserialize_with = "deserialize_optional_decimal"
10985 )]
10986 pub fx_rate_to_base: Option<Decimal>,
10987
10988 #[serde(rename = "@assetCategory", default)]
10990 pub asset_category: Option<AssetCategory>,
10991
10992 #[serde(
10994 rename = "@reportDate",
10995 default,
10996 deserialize_with = "deserialize_optional_date"
10997 )]
10998 pub report_date: Option<NaiveDate>,
10999
11000 #[serde(
11002 rename = "@postingDate",
11003 default,
11004 deserialize_with = "deserialize_optional_date"
11005 )]
11006 pub posting_date: Option<NaiveDate>,
11007
11008 #[serde(
11010 rename = "@transactionDateTime",
11011 default,
11012 deserialize_with = "deserialize_optional_string"
11013 )]
11014 pub transaction_date_time: Option<String>,
11015
11016 #[serde(
11018 rename = "@merchantNameLocation",
11019 default,
11020 deserialize_with = "deserialize_optional_string"
11021 )]
11022 pub merchant_name_location: Option<String>,
11023}
11024
11025#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11027pub struct SalesTax {
11028 #[serde(
11030 rename = "@accountId",
11031 default,
11032 deserialize_with = "deserialize_optional_string"
11033 )]
11034 pub account_id: Option<String>,
11035
11036 #[serde(rename = "@acctAlias", default)]
11038 pub acct_alias: Option<String>,
11039
11040 #[serde(rename = "@model", default)]
11042 pub model: Option<String>,
11043
11044 #[serde(
11046 rename = "@date",
11047 default,
11048 deserialize_with = "deserialize_optional_date"
11049 )]
11050 pub date: Option<NaiveDate>,
11051
11052 #[serde(rename = "@symbol", default)]
11054 pub symbol: Option<String>,
11055
11056 #[serde(rename = "@description", default)]
11058 pub description: Option<String>,
11059
11060 #[serde(rename = "@conid", default)]
11062 pub conid: Option<String>,
11063
11064 #[serde(rename = "@taxType", default)]
11066 pub tax_type: Option<String>,
11067
11068 #[serde(
11070 rename = "@taxAmount",
11071 default,
11072 deserialize_with = "deserialize_optional_decimal"
11073 )]
11074 pub tax_amount: Option<Decimal>,
11075
11076 #[serde(
11078 rename = "@proceeds",
11079 default,
11080 deserialize_with = "deserialize_optional_decimal"
11081 )]
11082 pub proceeds: Option<Decimal>,
11083
11084 #[serde(rename = "@currency", default)]
11086 pub currency: Option<String>,
11087
11088 #[serde(
11090 rename = "@fxRateToBase",
11091 default,
11092 deserialize_with = "deserialize_optional_decimal"
11093 )]
11094 pub fx_rate_to_base: Option<Decimal>,
11095
11096 #[serde(rename = "@assetCategory", default)]
11098 pub asset_category: Option<AssetCategory>,
11099
11100 #[serde(
11102 rename = "@subCategory",
11103 default,
11104 deserialize_with = "deserialize_optional_string"
11105 )]
11106 pub sub_category: Option<String>,
11107
11108 #[serde(
11110 rename = "@securityID",
11111 default,
11112 deserialize_with = "deserialize_optional_string"
11113 )]
11114 pub security_id: Option<String>,
11115
11116 #[serde(
11118 rename = "@securityIDType",
11119 default,
11120 deserialize_with = "deserialize_optional_string"
11121 )]
11122 pub security_id_type: Option<String>,
11123
11124 #[serde(
11126 rename = "@cusip",
11127 default,
11128 deserialize_with = "deserialize_optional_string"
11129 )]
11130 pub cusip: Option<String>,
11131
11132 #[serde(
11134 rename = "@isin",
11135 default,
11136 deserialize_with = "deserialize_optional_string"
11137 )]
11138 pub isin: Option<String>,
11139
11140 #[serde(
11142 rename = "@listingExchange",
11143 default,
11144 deserialize_with = "deserialize_optional_string"
11145 )]
11146 pub listing_exchange: Option<String>,
11147
11148 #[serde(
11150 rename = "@underlyingConid",
11151 default,
11152 deserialize_with = "deserialize_optional_string"
11153 )]
11154 pub underlying_conid: Option<String>,
11155
11156 #[serde(
11158 rename = "@underlyingSecurityID",
11159 default,
11160 deserialize_with = "deserialize_optional_string"
11161 )]
11162 pub underlying_security_id: Option<String>,
11163
11164 #[serde(
11166 rename = "@underlyingSymbol",
11167 default,
11168 deserialize_with = "deserialize_optional_string"
11169 )]
11170 pub underlying_symbol: Option<String>,
11171
11172 #[serde(
11174 rename = "@underlyingListingExchange",
11175 default,
11176 deserialize_with = "deserialize_optional_string"
11177 )]
11178 pub underlying_listing_exchange: Option<String>,
11179
11180 #[serde(
11182 rename = "@issuer",
11183 default,
11184 deserialize_with = "deserialize_optional_string"
11185 )]
11186 pub issuer: Option<String>,
11187
11188 #[serde(
11190 rename = "@multiplier",
11191 default,
11192 deserialize_with = "deserialize_optional_decimal"
11193 )]
11194 pub multiplier: Option<Decimal>,
11195
11196 #[serde(
11198 rename = "@strike",
11199 default,
11200 deserialize_with = "deserialize_optional_decimal"
11201 )]
11202 pub strike: Option<Decimal>,
11203
11204 #[serde(
11206 rename = "@expiry",
11207 default,
11208 deserialize_with = "deserialize_optional_date"
11209 )]
11210 pub expiry: Option<NaiveDate>,
11211
11212 #[serde(rename = "@putCall", default)]
11214 pub put_call: Option<PutCall>,
11215
11216 #[serde(
11218 rename = "@principalAdjustFactor",
11219 default,
11220 deserialize_with = "deserialize_optional_decimal"
11221 )]
11222 pub principal_adjust_factor: Option<Decimal>,
11223
11224 #[serde(
11226 rename = "@country",
11227 default,
11228 deserialize_with = "deserialize_optional_string"
11229 )]
11230 pub country: Option<String>,
11231
11232 #[serde(
11234 rename = "@payer",
11235 default,
11236 deserialize_with = "deserialize_optional_string"
11237 )]
11238 pub payer: Option<String>,
11239
11240 #[serde(
11242 rename = "@taxableDescription",
11243 default,
11244 deserialize_with = "deserialize_optional_string"
11245 )]
11246 pub taxable_description: Option<String>,
11247
11248 #[serde(
11250 rename = "@taxableAmount",
11251 default,
11252 deserialize_with = "deserialize_optional_decimal"
11253 )]
11254 pub taxable_amount: Option<Decimal>,
11255
11256 #[serde(
11258 rename = "@taxRate",
11259 default,
11260 deserialize_with = "deserialize_optional_decimal"
11261 )]
11262 pub tax_rate: Option<Decimal>,
11263
11264 #[serde(
11266 rename = "@salesTax",
11267 default,
11268 deserialize_with = "deserialize_optional_decimal"
11269 )]
11270 pub sales_tax: Option<Decimal>,
11271
11272 #[serde(
11274 rename = "@taxableTransactionID",
11275 default,
11276 deserialize_with = "deserialize_optional_string"
11277 )]
11278 pub taxable_transaction_id: Option<String>,
11279
11280 #[serde(
11282 rename = "@transactionID",
11283 default,
11284 deserialize_with = "deserialize_optional_string"
11285 )]
11286 pub transaction_id: Option<String>,
11287
11288 #[serde(
11290 rename = "@serialNumber",
11291 default,
11292 deserialize_with = "deserialize_optional_string"
11293 )]
11294 pub serial_number: Option<String>,
11295
11296 #[serde(
11298 rename = "@deliveryType",
11299 default,
11300 deserialize_with = "deserialize_optional_string"
11301 )]
11302 pub delivery_type: Option<String>,
11303
11304 #[serde(
11306 rename = "@commodityType",
11307 default,
11308 deserialize_with = "deserialize_optional_string"
11309 )]
11310 pub commodity_type: Option<String>,
11311
11312 #[serde(
11314 rename = "@fineness",
11315 default,
11316 deserialize_with = "deserialize_optional_decimal"
11317 )]
11318 pub fineness: Option<Decimal>,
11319
11320 #[serde(
11322 rename = "@weight",
11323 default,
11324 deserialize_with = "deserialize_optional_string"
11325 )]
11326 pub weight: Option<String>,
11327
11328 #[serde(
11330 rename = "@code",
11331 default,
11332 deserialize_with = "deserialize_optional_string"
11333 )]
11334 pub code: Option<String>,
11335}
11336
11337#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11343pub struct SymbolSummary {
11344 #[serde(
11346 rename = "@accountId",
11347 default,
11348 deserialize_with = "deserialize_optional_string"
11349 )]
11350 pub account_id: Option<String>,
11351
11352 #[serde(rename = "@acctAlias", default)]
11354 pub acct_alias: Option<String>,
11355
11356 #[serde(rename = "@model", default)]
11358 pub model: Option<String>,
11359
11360 #[serde(rename = "@symbol", default)]
11362 pub symbol: Option<String>,
11363
11364 #[serde(rename = "@description", default)]
11366 pub description: Option<String>,
11367
11368 #[serde(rename = "@conid", default)]
11370 pub conid: Option<String>,
11371
11372 #[serde(rename = "@assetCategory", default)]
11374 pub asset_category: Option<AssetCategory>,
11375
11376 #[serde(
11378 rename = "@totalBuyQuantity",
11379 default,
11380 deserialize_with = "deserialize_optional_decimal"
11381 )]
11382 pub total_buy_quantity: Option<Decimal>,
11383
11384 #[serde(
11386 rename = "@totalSellQuantity",
11387 default,
11388 deserialize_with = "deserialize_optional_decimal"
11389 )]
11390 pub total_sell_quantity: Option<Decimal>,
11391
11392 #[serde(
11394 rename = "@totalBuyValue",
11395 default,
11396 deserialize_with = "deserialize_optional_decimal"
11397 )]
11398 pub total_buy_value: Option<Decimal>,
11399
11400 #[serde(
11402 rename = "@totalSellValue",
11403 default,
11404 deserialize_with = "deserialize_optional_decimal"
11405 )]
11406 pub total_sell_value: Option<Decimal>,
11407
11408 #[serde(
11410 rename = "@totalCommission",
11411 default,
11412 deserialize_with = "deserialize_optional_decimal"
11413 )]
11414 pub total_commission: Option<Decimal>,
11415
11416 #[serde(
11418 rename = "@realizedPnl",
11419 default,
11420 deserialize_with = "deserialize_optional_decimal"
11421 )]
11422 pub realized_pnl: Option<Decimal>,
11423
11424 #[serde(rename = "@currency", default)]
11426 pub currency: Option<String>,
11427
11428 #[serde(
11430 rename = "@securityID",
11431 default,
11432 deserialize_with = "deserialize_optional_string"
11433 )]
11434 pub security_id: Option<String>,
11435
11436 #[serde(
11438 rename = "@securityIDType",
11439 default,
11440 deserialize_with = "deserialize_optional_string"
11441 )]
11442 pub security_id_type: Option<String>,
11443
11444 #[serde(
11446 rename = "@cusip",
11447 default,
11448 deserialize_with = "deserialize_optional_string"
11449 )]
11450 pub cusip: Option<String>,
11451
11452 #[serde(
11454 rename = "@isin",
11455 default,
11456 deserialize_with = "deserialize_optional_string"
11457 )]
11458 pub isin: Option<String>,
11459
11460 #[serde(
11462 rename = "@listingExchange",
11463 default,
11464 deserialize_with = "deserialize_optional_string"
11465 )]
11466 pub listing_exchange: Option<String>,
11467
11468 #[serde(
11470 rename = "@underlyingConid",
11471 default,
11472 deserialize_with = "deserialize_optional_string"
11473 )]
11474 pub underlying_conid: Option<String>,
11475
11476 #[serde(
11478 rename = "@underlyingSymbol",
11479 default,
11480 deserialize_with = "deserialize_optional_string"
11481 )]
11482 pub underlying_symbol: Option<String>,
11483
11484 #[serde(
11486 rename = "@underlyingSecurityID",
11487 default,
11488 deserialize_with = "deserialize_optional_string"
11489 )]
11490 pub underlying_security_id: Option<String>,
11491
11492 #[serde(
11494 rename = "@underlyingListingExchange",
11495 default,
11496 deserialize_with = "deserialize_optional_string"
11497 )]
11498 pub underlying_listing_exchange: Option<String>,
11499
11500 #[serde(
11502 rename = "@issuer",
11503 default,
11504 deserialize_with = "deserialize_optional_string"
11505 )]
11506 pub issuer: Option<String>,
11507
11508 #[serde(
11510 rename = "@multiplier",
11511 default,
11512 deserialize_with = "deserialize_optional_decimal"
11513 )]
11514 pub multiplier: Option<Decimal>,
11515
11516 #[serde(
11518 rename = "@strike",
11519 default,
11520 deserialize_with = "deserialize_optional_decimal"
11521 )]
11522 pub strike: Option<Decimal>,
11523
11524 #[serde(
11526 rename = "@expiry",
11527 default,
11528 deserialize_with = "deserialize_optional_date"
11529 )]
11530 pub expiry: Option<NaiveDate>,
11531
11532 #[serde(rename = "@putCall", default)]
11534 pub put_call: Option<PutCall>,
11535
11536 #[serde(
11538 rename = "@principalAdjustFactor",
11539 default,
11540 deserialize_with = "deserialize_optional_decimal"
11541 )]
11542 pub principal_adjust_factor: Option<Decimal>,
11543
11544 #[serde(rename = "@transactionType", default)]
11546 pub transaction_type: Option<TradeType>,
11547
11548 #[serde(
11550 rename = "@tradeID",
11551 default,
11552 deserialize_with = "deserialize_optional_string"
11553 )]
11554 pub trade_id: Option<String>,
11555
11556 #[serde(
11558 rename = "@orderID",
11559 default,
11560 deserialize_with = "deserialize_optional_decimal"
11561 )]
11562 pub order_id: Option<Decimal>,
11563
11564 #[serde(
11566 rename = "@execID",
11567 default,
11568 deserialize_with = "deserialize_optional_string"
11569 )]
11570 pub exec_id: Option<String>,
11571
11572 #[serde(
11574 rename = "@brokerageOrderID",
11575 default,
11576 deserialize_with = "deserialize_optional_string"
11577 )]
11578 pub brokerage_order_id: Option<String>,
11579
11580 #[serde(
11582 rename = "@orderReference",
11583 default,
11584 deserialize_with = "deserialize_optional_string"
11585 )]
11586 pub order_reference: Option<String>,
11587
11588 #[serde(
11590 rename = "@volatilityOrderLink",
11591 default,
11592 deserialize_with = "deserialize_optional_string"
11593 )]
11594 pub volatility_order_link: Option<String>,
11595
11596 #[serde(
11598 rename = "@clearingFirmID",
11599 default,
11600 deserialize_with = "deserialize_optional_string"
11601 )]
11602 pub clearing_firm_id: Option<String>,
11603
11604 #[serde(
11606 rename = "@origTradePrice",
11607 default,
11608 deserialize_with = "deserialize_optional_decimal"
11609 )]
11610 pub orig_trade_price: Option<Decimal>,
11611
11612 #[serde(
11614 rename = "@origTradeDate",
11615 default,
11616 deserialize_with = "deserialize_optional_date"
11617 )]
11618 pub orig_trade_date: Option<NaiveDate>,
11619
11620 #[serde(
11622 rename = "@origTradeID",
11623 default,
11624 deserialize_with = "deserialize_optional_string"
11625 )]
11626 pub orig_trade_id: Option<String>,
11627
11628 #[serde(
11630 rename = "@orderTime",
11631 default,
11632 deserialize_with = "deserialize_optional_string"
11633 )]
11634 pub order_time: Option<String>,
11635
11636 #[serde(
11638 rename = "@dateTime",
11639 default,
11640 deserialize_with = "deserialize_optional_string"
11641 )]
11642 pub date_time: Option<String>,
11643
11644 #[serde(
11646 rename = "@reportDate",
11647 default,
11648 deserialize_with = "deserialize_optional_date"
11649 )]
11650 pub report_date: Option<NaiveDate>,
11651
11652 #[serde(
11654 rename = "@settleDate",
11655 default,
11656 deserialize_with = "deserialize_optional_date"
11657 )]
11658 pub settle_date: Option<NaiveDate>,
11659
11660 #[serde(
11662 rename = "@tradeDate",
11663 default,
11664 deserialize_with = "deserialize_optional_date"
11665 )]
11666 pub trade_date: Option<NaiveDate>,
11667
11668 #[serde(
11670 rename = "@exchange",
11671 default,
11672 deserialize_with = "deserialize_optional_string"
11673 )]
11674 pub exchange: Option<String>,
11675
11676 #[serde(rename = "@buySell", default)]
11678 pub buy_sell: Option<BuySell>,
11679
11680 #[serde(
11682 rename = "@quantity",
11683 default,
11684 deserialize_with = "deserialize_optional_decimal"
11685 )]
11686 pub quantity: Option<Decimal>,
11687
11688 #[serde(
11690 rename = "@price",
11691 default,
11692 deserialize_with = "deserialize_optional_decimal"
11693 )]
11694 pub price: Option<Decimal>,
11695
11696 #[serde(
11698 rename = "@amount",
11699 default,
11700 deserialize_with = "deserialize_optional_decimal"
11701 )]
11702 pub amount: Option<Decimal>,
11703
11704 #[serde(
11706 rename = "@proceeds",
11707 default,
11708 deserialize_with = "deserialize_optional_decimal"
11709 )]
11710 pub proceeds: Option<Decimal>,
11711
11712 #[serde(
11714 rename = "@commission",
11715 default,
11716 deserialize_with = "deserialize_optional_decimal"
11717 )]
11718 pub commission: Option<Decimal>,
11719
11720 #[serde(
11722 rename = "@brokerExecutionCommission",
11723 default,
11724 deserialize_with = "deserialize_optional_decimal"
11725 )]
11726 pub broker_execution_commission: Option<Decimal>,
11727
11728 #[serde(
11730 rename = "@brokerClearingCommission",
11731 default,
11732 deserialize_with = "deserialize_optional_decimal"
11733 )]
11734 pub broker_clearing_commission: Option<Decimal>,
11735
11736 #[serde(
11738 rename = "@thirdPartyExecutionCommission",
11739 default,
11740 deserialize_with = "deserialize_optional_decimal"
11741 )]
11742 pub third_party_execution_commission: Option<Decimal>,
11743
11744 #[serde(
11746 rename = "@thirdPartyClearingCommission",
11747 default,
11748 deserialize_with = "deserialize_optional_decimal"
11749 )]
11750 pub third_party_clearing_commission: Option<Decimal>,
11751
11752 #[serde(
11754 rename = "@thirdPartyRegulatoryCommission",
11755 default,
11756 deserialize_with = "deserialize_optional_decimal"
11757 )]
11758 pub third_party_regulatory_commission: Option<Decimal>,
11759
11760 #[serde(
11762 rename = "@otherCommission",
11763 default,
11764 deserialize_with = "deserialize_optional_decimal"
11765 )]
11766 pub other_commission: Option<Decimal>,
11767
11768 #[serde(
11770 rename = "@commissionCurrency",
11771 default,
11772 deserialize_with = "deserialize_optional_string"
11773 )]
11774 pub commission_currency: Option<String>,
11775
11776 #[serde(
11778 rename = "@tax",
11779 default,
11780 deserialize_with = "deserialize_optional_decimal"
11781 )]
11782 pub tax: Option<Decimal>,
11783
11784 #[serde(
11786 rename = "@code",
11787 default,
11788 deserialize_with = "deserialize_optional_string"
11789 )]
11790 pub code: Option<String>,
11791
11792 #[serde(rename = "@orderType", default)]
11794 pub order_type: Option<OrderType>,
11795
11796 #[serde(
11798 rename = "@levelOfDetail",
11799 default,
11800 deserialize_with = "deserialize_optional_string"
11801 )]
11802 pub level_of_detail: Option<String>,
11803
11804 #[serde(
11806 rename = "@traderID",
11807 default,
11808 deserialize_with = "deserialize_optional_string"
11809 )]
11810 pub trader_id: Option<String>,
11811
11812 #[serde(
11814 rename = "@isAPIOrder",
11815 default,
11816 deserialize_with = "deserialize_optional_bool"
11817 )]
11818 pub is_api_order: Option<bool>,
11819
11820 #[serde(
11822 rename = "@allocatedTo",
11823 default,
11824 deserialize_with = "deserialize_optional_string"
11825 )]
11826 pub allocated_to: Option<String>,
11827
11828 #[serde(
11830 rename = "@accruedInt",
11831 default,
11832 deserialize_with = "deserialize_optional_decimal"
11833 )]
11834 pub accrued_int: Option<Decimal>,
11835
11836 #[serde(
11838 rename = "@fxRateToBase",
11839 default,
11840 deserialize_with = "deserialize_optional_decimal"
11841 )]
11842 pub fx_rate_to_base: Option<Decimal>,
11843
11844 #[serde(
11846 rename = "@subCategory",
11847 default,
11848 deserialize_with = "deserialize_optional_string"
11849 )]
11850 pub sub_category: Option<String>,
11851
11852 #[serde(
11854 rename = "@figi",
11855 default,
11856 deserialize_with = "deserialize_optional_string"
11857 )]
11858 pub figi: Option<String>,
11859
11860 #[serde(
11862 rename = "@issuerCountryCode",
11863 default,
11864 deserialize_with = "deserialize_optional_string"
11865 )]
11866 pub issuer_country_code: Option<String>,
11867
11868 #[serde(
11870 rename = "@relatedTradeID",
11871 default,
11872 deserialize_with = "deserialize_optional_string"
11873 )]
11874 pub related_trade_id: Option<String>,
11875
11876 #[serde(
11878 rename = "@origTransactionID",
11879 default,
11880 deserialize_with = "deserialize_optional_string"
11881 )]
11882 pub orig_transaction_id: Option<String>,
11883
11884 #[serde(
11886 rename = "@relatedTransactionID",
11887 default,
11888 deserialize_with = "deserialize_optional_string"
11889 )]
11890 pub related_transaction_id: Option<String>,
11891
11892 #[serde(
11894 rename = "@positionActionID",
11895 default,
11896 deserialize_with = "deserialize_optional_string"
11897 )]
11898 pub position_action_id: Option<String>,
11899
11900 #[serde(
11902 rename = "@ibExecID",
11903 default,
11904 deserialize_with = "deserialize_optional_string"
11905 )]
11906 pub ib_exec_id: Option<String>,
11907
11908 #[serde(
11910 rename = "@extExecID",
11911 default,
11912 deserialize_with = "deserialize_optional_string"
11913 )]
11914 pub ext_exec_id: Option<String>,
11915
11916 #[serde(
11918 rename = "@exchOrderId",
11919 default,
11920 deserialize_with = "deserialize_optional_string"
11921 )]
11922 pub exch_order_id: Option<String>,
11923
11924 #[serde(
11926 rename = "@transactionID",
11927 default,
11928 deserialize_with = "deserialize_optional_string"
11929 )]
11930 pub transaction_id: Option<String>,
11931
11932 #[serde(
11934 rename = "@openDateTime",
11935 default,
11936 deserialize_with = "deserialize_optional_string"
11937 )]
11938 pub open_date_time: Option<String>,
11939
11940 #[serde(
11942 rename = "@holdingPeriodDateTime",
11943 default,
11944 deserialize_with = "deserialize_optional_string"
11945 )]
11946 pub holding_period_date_time: Option<String>,
11947
11948 #[serde(
11950 rename = "@settleDateTarget",
11951 default,
11952 deserialize_with = "deserialize_optional_date"
11953 )]
11954 pub settle_date_target: Option<NaiveDate>,
11955
11956 #[serde(
11958 rename = "@taxes",
11959 default,
11960 deserialize_with = "deserialize_optional_decimal"
11961 )]
11962 pub taxes: Option<Decimal>,
11963
11964 #[serde(
11966 rename = "@tradePrice",
11967 default,
11968 deserialize_with = "deserialize_optional_decimal"
11969 )]
11970 pub trade_price: Option<Decimal>,
11971
11972 #[serde(
11974 rename = "@tradeMoney",
11975 default,
11976 deserialize_with = "deserialize_optional_decimal"
11977 )]
11978 pub trade_money: Option<Decimal>,
11979
11980 #[serde(
11982 rename = "@changeInPrice",
11983 default,
11984 deserialize_with = "deserialize_optional_decimal"
11985 )]
11986 pub change_in_price: Option<Decimal>,
11987
11988 #[serde(
11990 rename = "@changeInQuantity",
11991 default,
11992 deserialize_with = "deserialize_optional_decimal"
11993 )]
11994 pub change_in_quantity: Option<Decimal>,
11995
11996 #[serde(
11998 rename = "@closePrice",
11999 default,
12000 deserialize_with = "deserialize_optional_decimal"
12001 )]
12002 pub close_price: Option<Decimal>,
12003
12004 #[serde(
12006 rename = "@commodityType",
12007 default,
12008 deserialize_with = "deserialize_optional_string"
12009 )]
12010 pub commodity_type: Option<String>,
12011
12012 #[serde(
12014 rename = "@cost",
12015 default,
12016 deserialize_with = "deserialize_optional_decimal"
12017 )]
12018 pub cost: Option<Decimal>,
12019
12020 #[serde(
12022 rename = "@deliveryType",
12023 default,
12024 deserialize_with = "deserialize_optional_string"
12025 )]
12026 pub delivery_type: Option<String>,
12027
12028 #[serde(
12030 rename = "@fifoPnlRealized",
12031 default,
12032 deserialize_with = "deserialize_optional_decimal"
12033 )]
12034 pub fifo_pnl_realized: Option<Decimal>,
12035
12036 #[serde(
12038 rename = "@fineness",
12039 default,
12040 deserialize_with = "deserialize_optional_decimal"
12041 )]
12042 pub fineness: Option<Decimal>,
12043
12044 #[serde(
12046 rename = "@ibCommission",
12047 default,
12048 deserialize_with = "deserialize_optional_decimal"
12049 )]
12050 pub ib_commission: Option<Decimal>,
12051
12052 #[serde(
12054 rename = "@ibCommissionCurrency",
12055 default,
12056 deserialize_with = "deserialize_optional_string"
12057 )]
12058 pub ib_commission_currency: Option<String>,
12059
12060 #[serde(
12062 rename = "@ibOrderID",
12063 default,
12064 deserialize_with = "deserialize_optional_string"
12065 )]
12066 pub ib_order_id: Option<String>,
12067
12068 #[serde(
12070 rename = "@initialInvestment",
12071 default,
12072 deserialize_with = "deserialize_optional_bool"
12073 )]
12074 pub initial_investment: Option<bool>,
12075
12076 #[serde(
12078 rename = "@mtmPnl",
12079 default,
12080 deserialize_with = "deserialize_optional_decimal"
12081 )]
12082 pub mtm_pnl: Option<Decimal>,
12083
12084 #[serde(
12086 rename = "@netCash",
12087 default,
12088 deserialize_with = "deserialize_optional_decimal"
12089 )]
12090 pub net_cash: Option<Decimal>,
12091
12092 #[serde(
12094 rename = "@netCashInBase",
12095 default,
12096 deserialize_with = "deserialize_optional_decimal"
12097 )]
12098 pub net_cash_in_base: Option<Decimal>,
12099
12100 #[serde(
12102 rename = "@notes",
12103 default,
12104 deserialize_with = "deserialize_optional_string"
12105 )]
12106 pub notes: Option<String>,
12107
12108 #[serde(rename = "@openCloseIndicator", default)]
12110 pub open_close_indicator: Option<OpenClose>,
12111
12112 #[serde(
12114 rename = "@origOrderID",
12115 default,
12116 deserialize_with = "deserialize_optional_string"
12117 )]
12118 pub orig_order_id: Option<String>,
12119
12120 #[serde(
12122 rename = "@rtn",
12123 default,
12124 deserialize_with = "deserialize_optional_string"
12125 )]
12126 pub rtn: Option<String>,
12127
12128 #[serde(
12130 rename = "@serialNumber",
12131 default,
12132 deserialize_with = "deserialize_optional_string"
12133 )]
12134 pub serial_number: Option<String>,
12135
12136 #[serde(
12138 rename = "@weight",
12139 default,
12140 deserialize_with = "deserialize_optional_string"
12141 )]
12142 pub weight: Option<String>,
12143
12144 #[serde(
12146 rename = "@whenRealized",
12147 default,
12148 deserialize_with = "deserialize_optional_string"
12149 )]
12150 pub when_realized: Option<String>,
12151
12152 #[serde(
12154 rename = "@whenReopened",
12155 default,
12156 deserialize_with = "deserialize_optional_string"
12157 )]
12158 pub when_reopened: Option<String>,
12159}
12160
12161#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
12163pub struct AssetSummary {
12164 #[serde(
12166 rename = "@accountId",
12167 default,
12168 deserialize_with = "deserialize_optional_string"
12169 )]
12170 pub account_id: Option<String>,
12171
12172 #[serde(rename = "@acctAlias", default)]
12174 pub acct_alias: Option<String>,
12175
12176 #[serde(rename = "@model", default)]
12178 pub model: Option<String>,
12179
12180 #[serde(rename = "@assetCategory", default)]
12182 pub asset_category: Option<AssetCategory>,
12183
12184 #[serde(
12186 rename = "@totalBuyQuantity",
12187 default,
12188 deserialize_with = "deserialize_optional_decimal"
12189 )]
12190 pub total_buy_quantity: Option<Decimal>,
12191
12192 #[serde(
12194 rename = "@totalSellQuantity",
12195 default,
12196 deserialize_with = "deserialize_optional_decimal"
12197 )]
12198 pub total_sell_quantity: Option<Decimal>,
12199
12200 #[serde(
12202 rename = "@totalBuyValue",
12203 default,
12204 deserialize_with = "deserialize_optional_decimal"
12205 )]
12206 pub total_buy_value: Option<Decimal>,
12207
12208 #[serde(
12210 rename = "@totalSellValue",
12211 default,
12212 deserialize_with = "deserialize_optional_decimal"
12213 )]
12214 pub total_sell_value: Option<Decimal>,
12215
12216 #[serde(
12218 rename = "@totalCommission",
12219 default,
12220 deserialize_with = "deserialize_optional_decimal"
12221 )]
12222 pub total_commission: Option<Decimal>,
12223
12224 #[serde(
12226 rename = "@realizedPnl",
12227 default,
12228 deserialize_with = "deserialize_optional_decimal"
12229 )]
12230 pub realized_pnl: Option<Decimal>,
12231
12232 #[serde(rename = "@currency", default)]
12234 pub currency: Option<String>,
12235
12236 #[serde(
12238 rename = "@symbol",
12239 default,
12240 deserialize_with = "deserialize_optional_string"
12241 )]
12242 pub symbol: Option<String>,
12243
12244 #[serde(
12246 rename = "@description",
12247 default,
12248 deserialize_with = "deserialize_optional_string"
12249 )]
12250 pub description: Option<String>,
12251
12252 #[serde(
12254 rename = "@conid",
12255 default,
12256 deserialize_with = "deserialize_optional_string"
12257 )]
12258 pub conid: Option<String>,
12259
12260 #[serde(
12262 rename = "@securityID",
12263 default,
12264 deserialize_with = "deserialize_optional_string"
12265 )]
12266 pub security_id: Option<String>,
12267
12268 #[serde(
12270 rename = "@securityIDType",
12271 default,
12272 deserialize_with = "deserialize_optional_string"
12273 )]
12274 pub security_id_type: Option<String>,
12275
12276 #[serde(
12278 rename = "@cusip",
12279 default,
12280 deserialize_with = "deserialize_optional_string"
12281 )]
12282 pub cusip: Option<String>,
12283
12284 #[serde(
12286 rename = "@isin",
12287 default,
12288 deserialize_with = "deserialize_optional_string"
12289 )]
12290 pub isin: Option<String>,
12291
12292 #[serde(
12294 rename = "@listingExchange",
12295 default,
12296 deserialize_with = "deserialize_optional_string"
12297 )]
12298 pub listing_exchange: Option<String>,
12299
12300 #[serde(
12302 rename = "@underlyingConid",
12303 default,
12304 deserialize_with = "deserialize_optional_string"
12305 )]
12306 pub underlying_conid: Option<String>,
12307
12308 #[serde(
12310 rename = "@underlyingSymbol",
12311 default,
12312 deserialize_with = "deserialize_optional_string"
12313 )]
12314 pub underlying_symbol: Option<String>,
12315
12316 #[serde(
12318 rename = "@underlyingSecurityID",
12319 default,
12320 deserialize_with = "deserialize_optional_string"
12321 )]
12322 pub underlying_security_id: Option<String>,
12323
12324 #[serde(
12326 rename = "@underlyingListingExchange",
12327 default,
12328 deserialize_with = "deserialize_optional_string"
12329 )]
12330 pub underlying_listing_exchange: Option<String>,
12331
12332 #[serde(
12334 rename = "@issuer",
12335 default,
12336 deserialize_with = "deserialize_optional_string"
12337 )]
12338 pub issuer: Option<String>,
12339
12340 #[serde(
12342 rename = "@multiplier",
12343 default,
12344 deserialize_with = "deserialize_optional_decimal"
12345 )]
12346 pub multiplier: Option<Decimal>,
12347
12348 #[serde(
12350 rename = "@strike",
12351 default,
12352 deserialize_with = "deserialize_optional_decimal"
12353 )]
12354 pub strike: Option<Decimal>,
12355
12356 #[serde(
12358 rename = "@expiry",
12359 default,
12360 deserialize_with = "deserialize_optional_date"
12361 )]
12362 pub expiry: Option<NaiveDate>,
12363
12364 #[serde(rename = "@putCall", default)]
12366 pub put_call: Option<PutCall>,
12367
12368 #[serde(
12370 rename = "@principalAdjustFactor",
12371 default,
12372 deserialize_with = "deserialize_optional_decimal"
12373 )]
12374 pub principal_adjust_factor: Option<Decimal>,
12375
12376 #[serde(rename = "@transactionType", default)]
12378 pub transaction_type: Option<TradeType>,
12379
12380 #[serde(
12382 rename = "@tradeID",
12383 default,
12384 deserialize_with = "deserialize_optional_string"
12385 )]
12386 pub trade_id: Option<String>,
12387
12388 #[serde(
12390 rename = "@orderID",
12391 default,
12392 deserialize_with = "deserialize_optional_decimal"
12393 )]
12394 pub order_id: Option<Decimal>,
12395
12396 #[serde(
12398 rename = "@execID",
12399 default,
12400 deserialize_with = "deserialize_optional_string"
12401 )]
12402 pub exec_id: Option<String>,
12403
12404 #[serde(
12406 rename = "@brokerageOrderID",
12407 default,
12408 deserialize_with = "deserialize_optional_string"
12409 )]
12410 pub brokerage_order_id: Option<String>,
12411
12412 #[serde(
12414 rename = "@orderReference",
12415 default,
12416 deserialize_with = "deserialize_optional_string"
12417 )]
12418 pub order_reference: Option<String>,
12419
12420 #[serde(
12422 rename = "@volatilityOrderLink",
12423 default,
12424 deserialize_with = "deserialize_optional_string"
12425 )]
12426 pub volatility_order_link: Option<String>,
12427
12428 #[serde(
12430 rename = "@clearingFirmID",
12431 default,
12432 deserialize_with = "deserialize_optional_string"
12433 )]
12434 pub clearing_firm_id: Option<String>,
12435
12436 #[serde(
12438 rename = "@origTradePrice",
12439 default,
12440 deserialize_with = "deserialize_optional_decimal"
12441 )]
12442 pub orig_trade_price: Option<Decimal>,
12443
12444 #[serde(
12446 rename = "@TradePrice",
12447 default,
12448 deserialize_with = "deserialize_optional_decimal"
12449 )]
12450 pub trade_price: Option<Decimal>,
12451
12452 #[serde(
12454 rename = "@tradeMoney",
12455 default,
12456 deserialize_with = "deserialize_optional_decimal"
12457 )]
12458 pub trade_money: Option<Decimal>,
12459
12460 #[serde(
12462 rename = "@taxes",
12463 default,
12464 deserialize_with = "deserialize_optional_decimal"
12465 )]
12466 pub taxes: Option<Decimal>,
12467
12468 #[serde(
12470 rename = "@origTradeDate",
12471 default,
12472 deserialize_with = "deserialize_optional_date"
12473 )]
12474 pub orig_trade_date: Option<NaiveDate>,
12475
12476 #[serde(
12478 rename = "@origTradeID",
12479 default,
12480 deserialize_with = "deserialize_optional_string"
12481 )]
12482 pub orig_trade_id: Option<String>,
12483
12484 #[serde(
12486 rename = "@tradePrice",
12487 default,
12488 deserialize_with = "deserialize_optional_decimal"
12489 )]
12490 pub trade_price_trad: Option<Decimal>,
12491
12492 #[serde(
12494 rename = "@orderTime",
12495 default,
12496 deserialize_with = "deserialize_optional_string"
12497 )]
12498 pub order_time: Option<String>,
12499
12500 #[serde(
12502 rename = "@exchOrderId",
12503 default,
12504 deserialize_with = "deserialize_optional_string"
12505 )]
12506 pub exch_order_id: Option<String>,
12507
12508 #[serde(
12510 rename = "@dateTime",
12511 default,
12512 deserialize_with = "deserialize_optional_string"
12513 )]
12514 pub date_time: Option<String>,
12515
12516 #[serde(
12518 rename = "@fxRateToBase",
12519 default,
12520 deserialize_with = "deserialize_optional_decimal"
12521 )]
12522 pub fx_rate_to_base: Option<Decimal>,
12523
12524 #[serde(
12526 rename = "@reportDate",
12527 default,
12528 deserialize_with = "deserialize_optional_date"
12529 )]
12530 pub report_date: Option<NaiveDate>,
12531
12532 #[serde(
12534 rename = "@ibExecID",
12535 default,
12536 deserialize_with = "deserialize_optional_string"
12537 )]
12538 pub ib_exec_id: Option<String>,
12539
12540 #[serde(
12542 rename = "@settleDateTarget",
12543 default,
12544 deserialize_with = "deserialize_optional_date"
12545 )]
12546 pub settle_date_target: Option<NaiveDate>,
12547
12548 #[serde(
12550 rename = "@cost",
12551 default,
12552 deserialize_with = "deserialize_optional_decimal"
12553 )]
12554 pub cost: Option<Decimal>,
12555
12556 #[serde(
12558 rename = "@extExecID",
12559 default,
12560 deserialize_with = "deserialize_optional_string"
12561 )]
12562 pub ext_exec_id: Option<String>,
12563
12564 #[serde(
12566 rename = "@openDateTime",
12567 default,
12568 deserialize_with = "deserialize_optional_string"
12569 )]
12570 pub open_date_time: Option<String>,
12571
12572 #[serde(
12574 rename = "@holdingPeriodDateTime",
12575 default,
12576 deserialize_with = "deserialize_optional_string"
12577 )]
12578 pub holding_period_date_time: Option<String>,
12579
12580 #[serde(
12582 rename = "@whenRealized",
12583 default,
12584 deserialize_with = "deserialize_optional_string"
12585 )]
12586 pub when_realized: Option<String>,
12587
12588 #[serde(
12590 rename = "@whenReopened",
12591 default,
12592 deserialize_with = "deserialize_optional_string"
12593 )]
12594 pub when_reopened: Option<String>,
12595
12596 #[serde(
12598 rename = "@changeInPrice",
12599 default,
12600 deserialize_with = "deserialize_optional_decimal"
12601 )]
12602 pub change_in_price: Option<Decimal>,
12603
12604 #[serde(
12606 rename = "@changeInQuantity",
12607 default,
12608 deserialize_with = "deserialize_optional_decimal"
12609 )]
12610 pub change_in_quantity: Option<Decimal>,
12611
12612 #[serde(
12614 rename = "@ibOrderID",
12615 default,
12616 deserialize_with = "deserialize_optional_string"
12617 )]
12618 pub ib_order_id: Option<String>,
12619
12620 #[serde(
12622 rename = "@origOrderID",
12623 default,
12624 deserialize_with = "deserialize_optional_string"
12625 )]
12626 pub orig_order_id: Option<String>,
12627
12628 #[serde(
12630 rename = "@transactionID",
12631 default,
12632 deserialize_with = "deserialize_optional_string"
12633 )]
12634 pub transaction_id: Option<String>,
12635
12636 #[serde(
12638 rename = "@tradeDate",
12639 default,
12640 deserialize_with = "deserialize_optional_date"
12641 )]
12642 pub trade_date: Option<NaiveDate>,
12643
12644 #[serde(rename = "@openCloseIndicator", default)]
12646 pub open_close_indicator: Option<OpenClose>,
12647
12648 #[serde(
12650 rename = "@notes",
12651 default,
12652 deserialize_with = "deserialize_optional_string"
12653 )]
12654 pub notes: Option<String>,
12655
12656 #[serde(
12658 rename = "@fxPnl",
12659 default,
12660 deserialize_with = "deserialize_optional_decimal"
12661 )]
12662 pub fx_pnl: Option<Decimal>,
12663
12664 #[serde(
12666 rename = "@mtmPnl",
12667 default,
12668 deserialize_with = "deserialize_optional_decimal"
12669 )]
12670 pub mtm_pnl: Option<Decimal>,
12671
12672 #[serde(
12674 rename = "@fifoPnlRealized",
12675 default,
12676 deserialize_with = "deserialize_optional_decimal"
12677 )]
12678 pub fifo_pnl_realized: Option<Decimal>,
12679
12680 #[serde(
12682 rename = "@closePrice",
12683 default,
12684 deserialize_with = "deserialize_optional_decimal"
12685 )]
12686 pub close_price: Option<Decimal>,
12687
12688 #[serde(
12690 rename = "@exchange",
12691 default,
12692 deserialize_with = "deserialize_optional_string"
12693 )]
12694 pub exchange: Option<String>,
12695
12696 #[serde(
12698 rename = "@ibCommission",
12699 default,
12700 deserialize_with = "deserialize_optional_decimal"
12701 )]
12702 pub ib_commission: Option<Decimal>,
12703
12704 #[serde(
12706 rename = "@ibCommissionCurrency",
12707 default,
12708 deserialize_with = "deserialize_optional_string"
12709 )]
12710 pub ib_commission_currency: Option<String>,
12711
12712 #[serde(
12714 rename = "@netCash",
12715 default,
12716 deserialize_with = "deserialize_optional_decimal"
12717 )]
12718 pub net_cash: Option<Decimal>,
12719
12720 #[serde(
12722 rename = "@netCashInBase",
12723 default,
12724 deserialize_with = "deserialize_optional_decimal"
12725 )]
12726 pub net_cash_in_base: Option<Decimal>,
12727
12728 #[serde(rename = "@buySell", default)]
12730 pub buy_sell: Option<BuySell>,
12731
12732 #[serde(
12734 rename = "@quantity",
12735 default,
12736 deserialize_with = "deserialize_optional_decimal"
12737 )]
12738 pub quantity: Option<Decimal>,
12739
12740 #[serde(
12742 rename = "@price",
12743 default,
12744 deserialize_with = "deserialize_optional_decimal"
12745 )]
12746 pub price: Option<Decimal>,
12747
12748 #[serde(
12750 rename = "@amount",
12751 default,
12752 deserialize_with = "deserialize_optional_decimal"
12753 )]
12754 pub amount: Option<Decimal>,
12755
12756 #[serde(
12758 rename = "@proceeds",
12759 default,
12760 deserialize_with = "deserialize_optional_decimal"
12761 )]
12762 pub proceeds: Option<Decimal>,
12763
12764 #[serde(
12766 rename = "@commission",
12767 default,
12768 deserialize_with = "deserialize_optional_decimal"
12769 )]
12770 pub commission: Option<Decimal>,
12771
12772 #[serde(
12774 rename = "@brokerExecutionCommission",
12775 default,
12776 deserialize_with = "deserialize_optional_decimal"
12777 )]
12778 pub broker_execution_commission: Option<Decimal>,
12779
12780 #[serde(
12782 rename = "@brokerClearingCommission",
12783 default,
12784 deserialize_with = "deserialize_optional_decimal"
12785 )]
12786 pub broker_clearing_commission: Option<Decimal>,
12787
12788 #[serde(
12790 rename = "@thirdPartyExecutionCommission",
12791 default,
12792 deserialize_with = "deserialize_optional_decimal"
12793 )]
12794 pub third_party_execution_commission: Option<Decimal>,
12795
12796 #[serde(
12798 rename = "@thirdPartyClearingCommission",
12799 default,
12800 deserialize_with = "deserialize_optional_decimal"
12801 )]
12802 pub third_party_clearing_commission: Option<Decimal>,
12803
12804 #[serde(
12806 rename = "@thirdPartyRegulatoryCommission",
12807 default,
12808 deserialize_with = "deserialize_optional_decimal"
12809 )]
12810 pub third_party_regulatory_commission: Option<Decimal>,
12811
12812 #[serde(
12814 rename = "@otherCommission",
12815 default,
12816 deserialize_with = "deserialize_optional_decimal"
12817 )]
12818 pub other_commission: Option<Decimal>,
12819
12820 #[serde(
12822 rename = "@commissionCurrency",
12823 default,
12824 deserialize_with = "deserialize_optional_string"
12825 )]
12826 pub commission_currency: Option<String>,
12827
12828 #[serde(
12830 rename = "@tax",
12831 default,
12832 deserialize_with = "deserialize_optional_decimal"
12833 )]
12834 pub tax: Option<Decimal>,
12835
12836 #[serde(
12838 rename = "@code",
12839 default,
12840 deserialize_with = "deserialize_optional_string"
12841 )]
12842 pub code: Option<String>,
12843
12844 #[serde(rename = "@orderType", default)]
12846 pub order_type: Option<OrderType>,
12847
12848 #[serde(
12850 rename = "@levelOfDetail",
12851 default,
12852 deserialize_with = "deserialize_optional_string"
12853 )]
12854 pub level_of_detail: Option<String>,
12855
12856 #[serde(
12858 rename = "@traderID",
12859 default,
12860 deserialize_with = "deserialize_optional_string"
12861 )]
12862 pub trader_id: Option<String>,
12863
12864 #[serde(
12866 rename = "@isAPIOrder",
12867 default,
12868 deserialize_with = "deserialize_optional_bool"
12869 )]
12870 pub is_api_order: Option<bool>,
12871
12872 #[serde(
12874 rename = "@allocatedTo",
12875 default,
12876 deserialize_with = "deserialize_optional_string"
12877 )]
12878 pub allocated_to: Option<String>,
12879
12880 #[serde(
12882 rename = "@accruedInt",
12883 default,
12884 deserialize_with = "deserialize_optional_decimal"
12885 )]
12886 pub accrued_int: Option<Decimal>,
12887
12888 #[serde(
12890 rename = "@deliveryType",
12891 default,
12892 deserialize_with = "deserialize_optional_string"
12893 )]
12894 pub delivery_type: Option<String>,
12895
12896 #[serde(
12898 rename = "@serialNumber",
12899 default,
12900 deserialize_with = "deserialize_optional_string"
12901 )]
12902 pub serial_number: Option<String>,
12903
12904 #[serde(
12906 rename = "@commodityType",
12907 default,
12908 deserialize_with = "deserialize_optional_string"
12909 )]
12910 pub commodity_type: Option<String>,
12911
12912 #[serde(
12914 rename = "@fineness",
12915 default,
12916 deserialize_with = "deserialize_optional_decimal"
12917 )]
12918 pub fineness: Option<Decimal>,
12919
12920 #[serde(
12922 rename = "@weight",
12923 default,
12924 deserialize_with = "deserialize_optional_string"
12925 )]
12926 pub weight: Option<String>,
12927
12928 #[serde(
12930 rename = "@subCategory",
12931 default,
12932 deserialize_with = "deserialize_optional_string"
12933 )]
12934 pub sub_category: Option<String>,
12935
12936 #[serde(
12938 rename = "@figi",
12939 default,
12940 deserialize_with = "deserialize_optional_string"
12941 )]
12942 pub figi: Option<String>,
12943
12944 #[serde(
12946 rename = "@issuerCountryCode",
12947 default,
12948 deserialize_with = "deserialize_optional_string"
12949 )]
12950 pub issuer_country_code: Option<String>,
12951
12952 #[serde(
12954 rename = "@relatedTradeID",
12955 default,
12956 deserialize_with = "deserialize_optional_string"
12957 )]
12958 pub related_trade_id: Option<String>,
12959
12960 #[serde(
12962 rename = "@origTransactionID",
12963 default,
12964 deserialize_with = "deserialize_optional_string"
12965 )]
12966 pub orig_transaction_id: Option<String>,
12967
12968 #[serde(
12970 rename = "@relatedTransactionID",
12971 default,
12972 deserialize_with = "deserialize_optional_string"
12973 )]
12974 pub related_transaction_id: Option<String>,
12975
12976 #[serde(
12978 rename = "@rtn",
12979 default,
12980 deserialize_with = "deserialize_optional_string"
12981 )]
12982 pub rtn: Option<String>,
12983
12984 #[serde(
12986 rename = "@initialInvestment",
12987 default,
12988 deserialize_with = "deserialize_optional_bool"
12989 )]
12990 pub initial_investment: Option<bool>,
12991
12992 #[serde(
12994 rename = "@positionActionID",
12995 default,
12996 deserialize_with = "deserialize_optional_string"
12997 )]
12998 pub position_action_id: Option<String>,
12999}
13000
13001#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
13003pub struct Order {
13004 #[serde(
13006 rename = "@accountId",
13007 default,
13008 deserialize_with = "deserialize_optional_string"
13009 )]
13010 pub account_id: Option<String>,
13011
13012 #[serde(rename = "@acctAlias", default)]
13014 pub acct_alias: Option<String>,
13015
13016 #[serde(rename = "@model", default)]
13018 pub model: Option<String>,
13019
13020 #[serde(rename = "@orderID", default)]
13022 pub order_id: Option<String>,
13023
13024 #[serde(rename = "@symbol", default)]
13026 pub symbol: Option<String>,
13027
13028 #[serde(rename = "@description", default)]
13030 pub description: Option<String>,
13031
13032 #[serde(rename = "@conid", default)]
13034 pub conid: Option<String>,
13035
13036 #[serde(rename = "@assetCategory", default)]
13038 pub asset_category: Option<AssetCategory>,
13039
13040 #[serde(rename = "@orderTime", default)]
13042 pub order_time: Option<String>,
13043
13044 #[serde(rename = "@orderType", default)]
13046 pub order_type: Option<String>,
13047
13048 #[serde(rename = "@side", default)]
13050 pub side: Option<String>,
13051
13052 #[serde(rename = "@tif", default)]
13054 pub tif: Option<String>,
13055
13056 #[serde(
13058 rename = "@orderQty",
13059 default,
13060 deserialize_with = "deserialize_optional_decimal"
13061 )]
13062 pub order_qty: Option<Decimal>,
13063
13064 #[serde(
13066 rename = "@limitPrice",
13067 default,
13068 deserialize_with = "deserialize_optional_decimal"
13069 )]
13070 pub limit_price: Option<Decimal>,
13071
13072 #[serde(
13074 rename = "@stopPrice",
13075 default,
13076 deserialize_with = "deserialize_optional_decimal"
13077 )]
13078 pub stop_price: Option<Decimal>,
13079
13080 #[serde(
13082 rename = "@filledQty",
13083 default,
13084 deserialize_with = "deserialize_optional_decimal"
13085 )]
13086 pub filled_qty: Option<Decimal>,
13087
13088 #[serde(
13090 rename = "@avgPrice",
13091 default,
13092 deserialize_with = "deserialize_optional_decimal"
13093 )]
13094 pub avg_price: Option<Decimal>,
13095
13096 #[serde(
13098 rename = "@remainingQty",
13099 default,
13100 deserialize_with = "deserialize_optional_decimal"
13101 )]
13102 pub remaining_qty: Option<Decimal>,
13103
13104 #[serde(rename = "@status", default)]
13106 pub status: Option<String>,
13107
13108 #[serde(rename = "@currency", default)]
13110 pub currency: Option<String>,
13111
13112 #[serde(
13114 rename = "@securityID",
13115 default,
13116 deserialize_with = "deserialize_optional_string"
13117 )]
13118 pub security_id: Option<String>,
13119
13120 #[serde(
13122 rename = "@securityIDType",
13123 default,
13124 deserialize_with = "deserialize_optional_string"
13125 )]
13126 pub security_id_type: Option<String>,
13127
13128 #[serde(
13130 rename = "@cusip",
13131 default,
13132 deserialize_with = "deserialize_optional_string"
13133 )]
13134 pub cusip: Option<String>,
13135
13136 #[serde(
13138 rename = "@isin",
13139 default,
13140 deserialize_with = "deserialize_optional_string"
13141 )]
13142 pub isin: Option<String>,
13143
13144 #[serde(
13146 rename = "@listingExchange",
13147 default,
13148 deserialize_with = "deserialize_optional_string"
13149 )]
13150 pub listing_exchange: Option<String>,
13151
13152 #[serde(
13154 rename = "@underlyingConid",
13155 default,
13156 deserialize_with = "deserialize_optional_string"
13157 )]
13158 pub underlying_conid: Option<String>,
13159
13160 #[serde(
13162 rename = "@underlyingSymbol",
13163 default,
13164 deserialize_with = "deserialize_optional_string"
13165 )]
13166 pub underlying_symbol: Option<String>,
13167
13168 #[serde(
13170 rename = "@underlyingSecurityID",
13171 default,
13172 deserialize_with = "deserialize_optional_string"
13173 )]
13174 pub underlying_security_id: Option<String>,
13175
13176 #[serde(
13178 rename = "@underlyingListingExchange",
13179 default,
13180 deserialize_with = "deserialize_optional_string"
13181 )]
13182 pub underlying_listing_exchange: Option<String>,
13183
13184 #[serde(
13186 rename = "@issuer",
13187 default,
13188 deserialize_with = "deserialize_optional_string"
13189 )]
13190 pub issuer: Option<String>,
13191
13192 #[serde(
13194 rename = "@multiplier",
13195 default,
13196 deserialize_with = "deserialize_optional_decimal"
13197 )]
13198 pub multiplier: Option<Decimal>,
13199
13200 #[serde(
13202 rename = "@strike",
13203 default,
13204 deserialize_with = "deserialize_optional_decimal"
13205 )]
13206 pub strike: Option<Decimal>,
13207
13208 #[serde(
13210 rename = "@expiry",
13211 default,
13212 deserialize_with = "deserialize_optional_date"
13213 )]
13214 pub expiry: Option<NaiveDate>,
13215
13216 #[serde(rename = "@putCall", default)]
13218 pub put_call: Option<PutCall>,
13219
13220 #[serde(
13222 rename = "@principalAdjustFactor",
13223 default,
13224 deserialize_with = "deserialize_optional_decimal"
13225 )]
13226 pub principal_adjust_factor: Option<Decimal>,
13227
13228 #[serde(rename = "@transactionType", default)]
13230 pub transaction_type: Option<TradeType>,
13231
13232 #[serde(
13234 rename = "@tradeID",
13235 default,
13236 deserialize_with = "deserialize_optional_string"
13237 )]
13238 pub trade_id: Option<String>,
13239
13240 #[serde(
13242 rename = "@execID",
13243 default,
13244 deserialize_with = "deserialize_optional_string"
13245 )]
13246 pub exec_id: Option<String>,
13247
13248 #[serde(
13250 rename = "@brokerageOrderID",
13251 default,
13252 deserialize_with = "deserialize_optional_string"
13253 )]
13254 pub brokerage_order_id: Option<String>,
13255
13256 #[serde(
13258 rename = "@orderReference",
13259 default,
13260 deserialize_with = "deserialize_optional_string"
13261 )]
13262 pub order_reference: Option<String>,
13263
13264 #[serde(
13266 rename = "@volatilityOrderLink",
13267 default,
13268 deserialize_with = "deserialize_optional_string"
13269 )]
13270 pub volatility_order_link: Option<String>,
13271
13272 #[serde(
13274 rename = "@clearingFirmID",
13275 default,
13276 deserialize_with = "deserialize_optional_string"
13277 )]
13278 pub clearing_firm_id: Option<String>,
13279
13280 #[serde(
13282 rename = "@origTradePrice",
13283 default,
13284 deserialize_with = "deserialize_optional_decimal"
13285 )]
13286 pub orig_trade_price: Option<Decimal>,
13287
13288 #[serde(
13290 rename = "@origTradeDate",
13291 default,
13292 deserialize_with = "deserialize_optional_date"
13293 )]
13294 pub orig_trade_date: Option<NaiveDate>,
13295
13296 #[serde(
13298 rename = "@origTradeID",
13299 default,
13300 deserialize_with = "deserialize_optional_string"
13301 )]
13302 pub orig_trade_id: Option<String>,
13303
13304 #[serde(
13306 rename = "@dateTime",
13307 default,
13308 deserialize_with = "deserialize_optional_string"
13309 )]
13310 pub date_time: Option<String>,
13311
13312 #[serde(
13314 rename = "@reportDate",
13315 default,
13316 deserialize_with = "deserialize_optional_date"
13317 )]
13318 pub report_date: Option<NaiveDate>,
13319
13320 #[serde(
13322 rename = "@settleDate",
13323 default,
13324 deserialize_with = "deserialize_optional_date"
13325 )]
13326 pub settle_date: Option<NaiveDate>,
13327
13328 #[serde(
13330 rename = "@tradeDate",
13331 default,
13332 deserialize_with = "deserialize_optional_date"
13333 )]
13334 pub trade_date: Option<NaiveDate>,
13335
13336 #[serde(
13338 rename = "@exchange",
13339 default,
13340 deserialize_with = "deserialize_optional_string"
13341 )]
13342 pub exchange: Option<String>,
13343
13344 #[serde(rename = "@buySell", default)]
13346 pub buy_sell: Option<BuySell>,
13347
13348 #[serde(
13350 rename = "@quantity",
13351 default,
13352 deserialize_with = "deserialize_optional_decimal"
13353 )]
13354 pub quantity: Option<Decimal>,
13355
13356 #[serde(
13358 rename = "@price",
13359 default,
13360 deserialize_with = "deserialize_optional_decimal"
13361 )]
13362 pub price: Option<Decimal>,
13363
13364 #[serde(
13366 rename = "@amount",
13367 default,
13368 deserialize_with = "deserialize_optional_decimal"
13369 )]
13370 pub amount: Option<Decimal>,
13371
13372 #[serde(
13374 rename = "@proceeds",
13375 default,
13376 deserialize_with = "deserialize_optional_decimal"
13377 )]
13378 pub proceeds: Option<Decimal>,
13379
13380 #[serde(
13382 rename = "@commission",
13383 default,
13384 deserialize_with = "deserialize_optional_decimal"
13385 )]
13386 pub commission: Option<Decimal>,
13387
13388 #[serde(
13390 rename = "@brokerExecutionCommission",
13391 default,
13392 deserialize_with = "deserialize_optional_decimal"
13393 )]
13394 pub broker_execution_commission: Option<Decimal>,
13395
13396 #[serde(
13398 rename = "@brokerClearingCommission",
13399 default,
13400 deserialize_with = "deserialize_optional_decimal"
13401 )]
13402 pub broker_clearing_commission: Option<Decimal>,
13403
13404 #[serde(
13406 rename = "@thirdPartyExecutionCommission",
13407 default,
13408 deserialize_with = "deserialize_optional_decimal"
13409 )]
13410 pub third_party_execution_commission: Option<Decimal>,
13411
13412 #[serde(
13414 rename = "@thirdPartyClearingCommission",
13415 default,
13416 deserialize_with = "deserialize_optional_decimal"
13417 )]
13418 pub third_party_clearing_commission: Option<Decimal>,
13419
13420 #[serde(
13422 rename = "@thirdPartyRegulatoryCommission",
13423 default,
13424 deserialize_with = "deserialize_optional_decimal"
13425 )]
13426 pub third_party_regulatory_commission: Option<Decimal>,
13427
13428 #[serde(
13430 rename = "@otherCommission",
13431 default,
13432 deserialize_with = "deserialize_optional_decimal"
13433 )]
13434 pub other_commission: Option<Decimal>,
13435
13436 #[serde(
13438 rename = "@commissionCurrency",
13439 default,
13440 deserialize_with = "deserialize_optional_string"
13441 )]
13442 pub commission_currency: Option<String>,
13443
13444 #[serde(
13446 rename = "@tax",
13447 default,
13448 deserialize_with = "deserialize_optional_decimal"
13449 )]
13450 pub tax: Option<Decimal>,
13451
13452 #[serde(
13454 rename = "@code",
13455 default,
13456 deserialize_with = "deserialize_optional_string"
13457 )]
13458 pub code: Option<String>,
13459
13460 #[serde(
13462 rename = "@levelOfDetail",
13463 default,
13464 deserialize_with = "deserialize_optional_string"
13465 )]
13466 pub level_of_detail: Option<String>,
13467
13468 #[serde(
13470 rename = "@traderID",
13471 default,
13472 deserialize_with = "deserialize_optional_string"
13473 )]
13474 pub trader_id: Option<String>,
13475
13476 #[serde(
13478 rename = "@isAPIOrder",
13479 default,
13480 deserialize_with = "deserialize_optional_bool"
13481 )]
13482 pub is_api_order: Option<bool>,
13483
13484 #[serde(
13486 rename = "@allocatedTo",
13487 default,
13488 deserialize_with = "deserialize_optional_string"
13489 )]
13490 pub allocated_to: Option<String>,
13491
13492 #[serde(
13494 rename = "@accruedInt",
13495 default,
13496 deserialize_with = "deserialize_optional_decimal"
13497 )]
13498 pub accrued_int: Option<Decimal>,
13499
13500 #[serde(
13502 rename = "@netCash",
13503 default,
13504 deserialize_with = "deserialize_optional_decimal"
13505 )]
13506 pub net_cash: Option<Decimal>,
13507
13508 #[serde(
13510 rename = "@tradePrice",
13511 default,
13512 deserialize_with = "deserialize_optional_decimal"
13513 )]
13514 pub trade_price: Option<Decimal>,
13515
13516 #[serde(
13518 rename = "@ibCommission",
13519 default,
13520 deserialize_with = "deserialize_optional_decimal"
13521 )]
13522 pub ib_commission: Option<Decimal>,
13523
13524 #[serde(
13526 rename = "@ibOrderID",
13527 default,
13528 deserialize_with = "deserialize_optional_string"
13529 )]
13530 pub ib_order_id: Option<String>,
13531
13532 #[serde(
13534 rename = "@fxRateToBase",
13535 default,
13536 deserialize_with = "deserialize_optional_decimal"
13537 )]
13538 pub fx_rate_to_base: Option<Decimal>,
13539
13540 #[serde(
13542 rename = "@settleDateTarget",
13543 default,
13544 deserialize_with = "deserialize_optional_date"
13545 )]
13546 pub settle_date_target: Option<NaiveDate>,
13547
13548 #[serde(
13550 rename = "@tradeMoney",
13551 default,
13552 deserialize_with = "deserialize_optional_decimal"
13553 )]
13554 pub trade_money: Option<Decimal>,
13555
13556 #[serde(
13558 rename = "@taxes",
13559 default,
13560 deserialize_with = "deserialize_optional_decimal"
13561 )]
13562 pub taxes: Option<Decimal>,
13563
13564 #[serde(
13566 rename = "@ibCommissionCurrency",
13567 default,
13568 deserialize_with = "deserialize_optional_string"
13569 )]
13570 pub ib_commission_currency: Option<String>,
13571
13572 #[serde(
13574 rename = "@closePrice",
13575 default,
13576 deserialize_with = "deserialize_optional_decimal"
13577 )]
13578 pub close_price: Option<Decimal>,
13579
13580 #[serde(rename = "@openCloseIndicator", default)]
13582 pub open_close_indicator: Option<OpenClose>,
13583
13584 #[serde(
13586 rename = "@notes",
13587 default,
13588 deserialize_with = "deserialize_optional_string"
13589 )]
13590 pub notes: Option<String>,
13591
13592 #[serde(
13594 rename = "@cost",
13595 default,
13596 deserialize_with = "deserialize_optional_decimal"
13597 )]
13598 pub cost: Option<Decimal>,
13599
13600 #[serde(
13602 rename = "@fifoPnlRealized",
13603 default,
13604 deserialize_with = "deserialize_optional_decimal"
13605 )]
13606 pub fifo_pnl_realized: Option<Decimal>,
13607
13608 #[serde(
13610 rename = "@fxPnl",
13611 default,
13612 deserialize_with = "deserialize_optional_decimal"
13613 )]
13614 pub fx_pnl: Option<Decimal>,
13615
13616 #[serde(
13618 rename = "@mtmPnl",
13619 default,
13620 deserialize_with = "deserialize_optional_decimal"
13621 )]
13622 pub mtm_pnl: Option<Decimal>,
13623
13624 #[serde(
13626 rename = "@origOrderID",
13627 default,
13628 deserialize_with = "deserialize_optional_string"
13629 )]
13630 pub orig_order_id: Option<String>,
13631
13632 #[serde(
13634 rename = "@transactionID",
13635 default,
13636 deserialize_with = "deserialize_optional_string"
13637 )]
13638 pub transaction_id: Option<String>,
13639
13640 #[serde(
13642 rename = "@ibExecID",
13643 default,
13644 deserialize_with = "deserialize_optional_string"
13645 )]
13646 pub ib_exec_id: Option<String>,
13647
13648 #[serde(
13650 rename = "@exchOrderId",
13651 default,
13652 deserialize_with = "deserialize_optional_string"
13653 )]
13654 pub exch_order_id: Option<String>,
13655
13656 #[serde(
13658 rename = "@extExecID",
13659 default,
13660 deserialize_with = "deserialize_optional_string"
13661 )]
13662 pub ext_exec_id: Option<String>,
13663
13664 #[serde(
13666 rename = "@openDateTime",
13667 default,
13668 deserialize_with = "deserialize_optional_string"
13669 )]
13670 pub open_date_time: Option<String>,
13671
13672 #[serde(
13674 rename = "@holdingPeriodDateTime",
13675 default,
13676 deserialize_with = "deserialize_optional_string"
13677 )]
13678 pub holding_period_date_time: Option<String>,
13679
13680 #[serde(
13682 rename = "@whenRealized",
13683 default,
13684 deserialize_with = "deserialize_optional_string"
13685 )]
13686 pub when_realized: Option<String>,
13687
13688 #[serde(
13690 rename = "@whenReopened",
13691 default,
13692 deserialize_with = "deserialize_optional_string"
13693 )]
13694 pub when_reopened: Option<String>,
13695
13696 #[serde(
13698 rename = "@changeInPrice",
13699 default,
13700 deserialize_with = "deserialize_optional_decimal"
13701 )]
13702 pub change_in_price: Option<Decimal>,
13703
13704 #[serde(
13706 rename = "@changeInQuantity",
13707 default,
13708 deserialize_with = "deserialize_optional_decimal"
13709 )]
13710 pub change_in_quantity: Option<Decimal>,
13711
13712 #[serde(
13714 rename = "@subCategory",
13715 default,
13716 deserialize_with = "deserialize_optional_string"
13717 )]
13718 pub sub_category: Option<String>,
13719
13720 #[serde(
13722 rename = "@figi",
13723 default,
13724 deserialize_with = "deserialize_optional_string"
13725 )]
13726 pub figi: Option<String>,
13727
13728 #[serde(
13730 rename = "@issuerCountryCode",
13731 default,
13732 deserialize_with = "deserialize_optional_string"
13733 )]
13734 pub issuer_country_code: Option<String>,
13735
13736 #[serde(
13738 rename = "@relatedTradeID",
13739 default,
13740 deserialize_with = "deserialize_optional_string"
13741 )]
13742 pub related_trade_id: Option<String>,
13743
13744 #[serde(
13746 rename = "@origTransactionID",
13747 default,
13748 deserialize_with = "deserialize_optional_string"
13749 )]
13750 pub orig_transaction_id: Option<String>,
13751
13752 #[serde(
13754 rename = "@relatedTransactionID",
13755 default,
13756 deserialize_with = "deserialize_optional_string"
13757 )]
13758 pub related_transaction_id: Option<String>,
13759
13760 #[serde(
13762 rename = "@rtn",
13763 default,
13764 deserialize_with = "deserialize_optional_string"
13765 )]
13766 pub rtn: Option<String>,
13767
13768 #[serde(
13770 rename = "@initialInvestment",
13771 default,
13772 deserialize_with = "deserialize_optional_bool"
13773 )]
13774 pub initial_investment: Option<bool>,
13775
13776 #[serde(
13778 rename = "@serialNumber",
13779 default,
13780 deserialize_with = "deserialize_optional_string"
13781 )]
13782 pub serial_number: Option<String>,
13783
13784 #[serde(
13786 rename = "@deliveryType",
13787 default,
13788 deserialize_with = "deserialize_optional_string"
13789 )]
13790 pub delivery_type: Option<String>,
13791
13792 #[serde(
13794 rename = "@commodityType",
13795 default,
13796 deserialize_with = "deserialize_optional_string"
13797 )]
13798 pub commodity_type: Option<String>,
13799
13800 #[serde(
13802 rename = "@fineness",
13803 default,
13804 deserialize_with = "deserialize_optional_decimal"
13805 )]
13806 pub fineness: Option<Decimal>,
13807
13808 #[serde(
13810 rename = "@weight",
13811 default,
13812 deserialize_with = "deserialize_optional_string"
13813 )]
13814 pub weight: Option<String>,
13815
13816 #[serde(
13818 rename = "@positionActionID",
13819 default,
13820 deserialize_with = "deserialize_optional_string"
13821 )]
13822 pub position_action_id: Option<String>,
13823}
13824
13825#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
13830pub struct NetStockPosition {
13831 #[serde(rename = "@assetCategory", default)]
13833 pub asset_category: Option<AssetCategory>,
13834
13835 #[serde(
13837 rename = "@accountId",
13838 default,
13839 deserialize_with = "deserialize_optional_string"
13840 )]
13841 pub account_id: Option<String>,
13842
13843 #[serde(
13845 rename = "@acctAlias",
13846 default,
13847 deserialize_with = "deserialize_optional_string"
13848 )]
13849 pub acct_alias: Option<String>,
13850
13851 #[serde(
13853 rename = "@model",
13854 default,
13855 deserialize_with = "deserialize_optional_string"
13856 )]
13857 pub model: Option<String>,
13858
13859 #[serde(
13861 rename = "@currency",
13862 default,
13863 deserialize_with = "deserialize_optional_string"
13864 )]
13865 pub currency: Option<String>,
13866
13867 #[serde(
13869 rename = "@symbol",
13870 default,
13871 deserialize_with = "deserialize_optional_string"
13872 )]
13873 pub symbol: Option<String>,
13874
13875 #[serde(
13877 rename = "@description",
13878 default,
13879 deserialize_with = "deserialize_optional_string"
13880 )]
13881 pub description: Option<String>,
13882
13883 #[serde(
13885 rename = "@conid",
13886 default,
13887 deserialize_with = "deserialize_optional_string"
13888 )]
13889 pub conid: Option<String>,
13890
13891 #[serde(
13893 rename = "@securityID",
13894 default,
13895 deserialize_with = "deserialize_optional_string"
13896 )]
13897 pub security_id: Option<String>,
13898
13899 #[serde(
13901 rename = "@securityIDType",
13902 default,
13903 deserialize_with = "deserialize_optional_string"
13904 )]
13905 pub security_id_type: Option<String>,
13906
13907 #[serde(
13909 rename = "@cusip",
13910 default,
13911 deserialize_with = "deserialize_optional_string"
13912 )]
13913 pub cusip: Option<String>,
13914
13915 #[serde(
13917 rename = "@isin",
13918 default,
13919 deserialize_with = "deserialize_optional_string"
13920 )]
13921 pub isin: Option<String>,
13922
13923 #[serde(
13925 rename = "@sedol",
13926 default,
13927 deserialize_with = "deserialize_optional_string"
13928 )]
13929 pub sedol: Option<String>,
13930
13931 #[serde(
13933 rename = "@listingExchange",
13934 default,
13935 deserialize_with = "deserialize_optional_string"
13936 )]
13937 pub listing_exchange: Option<String>,
13938
13939 #[serde(
13941 rename = "@underlyingConid",
13942 default,
13943 deserialize_with = "deserialize_optional_string"
13944 )]
13945 pub underlying_conid: Option<String>,
13946
13947 #[serde(
13949 rename = "@underlyingSymbol",
13950 default,
13951 deserialize_with = "deserialize_optional_string"
13952 )]
13953 pub underlying_symbol: Option<String>,
13954
13955 #[serde(
13957 rename = "@underlyingSecurityID",
13958 default,
13959 deserialize_with = "deserialize_optional_string"
13960 )]
13961 pub underlying_security_id: Option<String>,
13962
13963 #[serde(
13965 rename = "@underlyingListingExchange",
13966 default,
13967 deserialize_with = "deserialize_optional_string"
13968 )]
13969 pub underlying_listing_exchange: Option<String>,
13970
13971 #[serde(
13973 rename = "@issuer",
13974 default,
13975 deserialize_with = "deserialize_optional_string"
13976 )]
13977 pub issuer: Option<String>,
13978
13979 #[serde(
13981 rename = "@multiplier",
13982 default,
13983 deserialize_with = "deserialize_optional_decimal"
13984 )]
13985 pub multiplier: Option<Decimal>,
13986
13987 #[serde(
13989 rename = "@strike",
13990 default,
13991 deserialize_with = "deserialize_optional_decimal"
13992 )]
13993 pub strike: Option<Decimal>,
13994
13995 #[serde(
13997 rename = "@expiry",
13998 default,
13999 deserialize_with = "deserialize_optional_date"
14000 )]
14001 pub expiry: Option<NaiveDate>,
14002
14003 #[serde(rename = "@putCall", default)]
14005 pub put_call: Option<PutCall>,
14006
14007 #[serde(
14009 rename = "@principalAdjustFactor",
14010 default,
14011 deserialize_with = "deserialize_optional_decimal"
14012 )]
14013 pub principal_adjust_factor: Option<Decimal>,
14014
14015 #[serde(
14017 rename = "@reportDate",
14018 default,
14019 deserialize_with = "deserialize_optional_date"
14020 )]
14021 pub report_date: Option<NaiveDate>,
14022
14023 #[serde(
14025 rename = "@sharesAtIb",
14026 default,
14027 deserialize_with = "deserialize_optional_decimal"
14028 )]
14029 pub shares_at_ib: Option<Decimal>,
14030
14031 #[serde(
14033 rename = "@sharesBorrowed",
14034 default,
14035 deserialize_with = "deserialize_optional_decimal"
14036 )]
14037 pub shares_borrowed: Option<Decimal>,
14038
14039 #[serde(
14041 rename = "@sharesLent",
14042 default,
14043 deserialize_with = "deserialize_optional_decimal"
14044 )]
14045 pub shares_lent: Option<Decimal>,
14046
14047 #[serde(
14049 rename = "@netShares",
14050 default,
14051 deserialize_with = "deserialize_optional_decimal"
14052 )]
14053 pub net_shares: Option<Decimal>,
14054
14055 #[serde(
14057 rename = "@serialNumber",
14058 default,
14059 deserialize_with = "deserialize_optional_string"
14060 )]
14061 pub serial_number: Option<String>,
14062
14063 #[serde(
14065 rename = "@deliveryType",
14066 default,
14067 deserialize_with = "deserialize_optional_string"
14068 )]
14069 pub delivery_type: Option<String>,
14070
14071 #[serde(
14073 rename = "@commodityType",
14074 default,
14075 deserialize_with = "deserialize_optional_string"
14076 )]
14077 pub commodity_type: Option<String>,
14078
14079 #[serde(
14081 rename = "@fineness",
14082 default,
14083 deserialize_with = "deserialize_optional_decimal"
14084 )]
14085 pub fineness: Option<Decimal>,
14086
14087 #[serde(
14089 rename = "@weight",
14090 default,
14091 deserialize_with = "deserialize_optional_string"
14092 )]
14093 pub weight: Option<String>,
14094
14095 #[serde(
14097 rename = "@subCategory",
14098 default,
14099 deserialize_with = "deserialize_optional_string"
14100 )]
14101 pub sub_category: Option<String>,
14102
14103 #[serde(
14105 rename = "@figi",
14106 default,
14107 deserialize_with = "deserialize_optional_string"
14108 )]
14109 pub figi: Option<String>,
14110
14111 #[serde(
14113 rename = "@issuerCountryCode",
14114 default,
14115 deserialize_with = "deserialize_optional_string"
14116 )]
14117 pub issuer_country_code: Option<String>,
14118}
14119
14120#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14125pub struct TransactionTax {
14126 #[serde(
14128 rename = "@accountId",
14129 default,
14130 deserialize_with = "deserialize_optional_string"
14131 )]
14132 pub account_id: Option<String>,
14133
14134 #[serde(
14136 rename = "@acctAlias",
14137 default,
14138 deserialize_with = "deserialize_optional_string"
14139 )]
14140 pub acct_alias: Option<String>,
14141
14142 #[serde(
14144 rename = "@model",
14145 default,
14146 deserialize_with = "deserialize_optional_string"
14147 )]
14148 pub model: Option<String>,
14149
14150 #[serde(
14152 rename = "@currency",
14153 default,
14154 deserialize_with = "deserialize_optional_string"
14155 )]
14156 pub currency: Option<String>,
14157
14158 #[serde(
14160 rename = "@fxRateToBase",
14161 default,
14162 deserialize_with = "deserialize_optional_decimal"
14163 )]
14164 pub fx_rate_to_base: Option<Decimal>,
14165
14166 #[serde(rename = "@assetCategory", default)]
14168 pub asset_category: Option<AssetCategory>,
14169
14170 #[serde(
14172 rename = "@symbol",
14173 default,
14174 deserialize_with = "deserialize_optional_string"
14175 )]
14176 pub symbol: Option<String>,
14177
14178 #[serde(
14180 rename = "@description",
14181 default,
14182 deserialize_with = "deserialize_optional_string"
14183 )]
14184 pub description: Option<String>,
14185
14186 #[serde(
14188 rename = "@conid",
14189 default,
14190 deserialize_with = "deserialize_optional_string"
14191 )]
14192 pub conid: Option<String>,
14193
14194 #[serde(
14196 rename = "@securityID",
14197 default,
14198 deserialize_with = "deserialize_optional_string"
14199 )]
14200 pub security_id: Option<String>,
14201
14202 #[serde(
14204 rename = "@securityIDType",
14205 default,
14206 deserialize_with = "deserialize_optional_string"
14207 )]
14208 pub security_id_type: Option<String>,
14209
14210 #[serde(
14212 rename = "@cusip",
14213 default,
14214 deserialize_with = "deserialize_optional_string"
14215 )]
14216 pub cusip: Option<String>,
14217
14218 #[serde(
14220 rename = "@isin",
14221 default,
14222 deserialize_with = "deserialize_optional_string"
14223 )]
14224 pub isin: Option<String>,
14225
14226 #[serde(
14228 rename = "@listingExchange",
14229 default,
14230 deserialize_with = "deserialize_optional_string"
14231 )]
14232 pub listing_exchange: Option<String>,
14233
14234 #[serde(
14236 rename = "@underlyingConid",
14237 default,
14238 deserialize_with = "deserialize_optional_string"
14239 )]
14240 pub underlying_conid: Option<String>,
14241
14242 #[serde(
14244 rename = "@underlyingSecurityID",
14245 default,
14246 deserialize_with = "deserialize_optional_string"
14247 )]
14248 pub underlying_security_id: Option<String>,
14249
14250 #[serde(
14252 rename = "@underlyingSymbol",
14253 default,
14254 deserialize_with = "deserialize_optional_string"
14255 )]
14256 pub underlying_symbol: Option<String>,
14257
14258 #[serde(
14260 rename = "@underlyingListingExchange",
14261 default,
14262 deserialize_with = "deserialize_optional_string"
14263 )]
14264 pub underlying_listing_exchange: Option<String>,
14265
14266 #[serde(
14268 rename = "@issuer",
14269 default,
14270 deserialize_with = "deserialize_optional_string"
14271 )]
14272 pub issuer: Option<String>,
14273
14274 #[serde(
14276 rename = "@multiplier",
14277 default,
14278 deserialize_with = "deserialize_optional_decimal"
14279 )]
14280 pub multiplier: Option<Decimal>,
14281
14282 #[serde(
14284 rename = "@strike",
14285 default,
14286 deserialize_with = "deserialize_optional_decimal"
14287 )]
14288 pub strike: Option<Decimal>,
14289
14290 #[serde(
14292 rename = "@expiry",
14293 default,
14294 deserialize_with = "deserialize_optional_date"
14295 )]
14296 pub expiry: Option<NaiveDate>,
14297
14298 #[serde(rename = "@putCall", default)]
14300 pub put_call: Option<PutCall>,
14301
14302 #[serde(
14304 rename = "@principalAdjustFactor",
14305 default,
14306 deserialize_with = "deserialize_optional_decimal"
14307 )]
14308 pub principal_adjust_factor: Option<Decimal>,
14309
14310 #[serde(
14312 rename = "@date",
14313 default,
14314 deserialize_with = "deserialize_optional_string"
14315 )]
14316 pub date: Option<String>,
14317
14318 #[serde(
14320 rename = "@taxDescription",
14321 default,
14322 deserialize_with = "deserialize_optional_string"
14323 )]
14324 pub tax_description: Option<String>,
14325
14326 #[serde(
14328 rename = "@quantity",
14329 default,
14330 deserialize_with = "deserialize_optional_decimal"
14331 )]
14332 pub quantity: Option<Decimal>,
14333
14334 #[serde(
14336 rename = "@reportDate",
14337 default,
14338 deserialize_with = "deserialize_optional_date"
14339 )]
14340 pub report_date: Option<NaiveDate>,
14341
14342 #[serde(
14344 rename = "@taxAmount",
14345 default,
14346 deserialize_with = "deserialize_optional_decimal"
14347 )]
14348 pub tax_amount: Option<Decimal>,
14349
14350 #[serde(
14352 rename = "@tradeId",
14353 default,
14354 deserialize_with = "deserialize_optional_string"
14355 )]
14356 pub trade_id: Option<String>,
14357
14358 #[serde(
14360 rename = "@tradePrice",
14361 default,
14362 deserialize_with = "deserialize_optional_decimal"
14363 )]
14364 pub trade_price: Option<Decimal>,
14365
14366 #[serde(
14368 rename = "@source",
14369 default,
14370 deserialize_with = "deserialize_optional_string"
14371 )]
14372 pub source: Option<String>,
14373
14374 #[serde(
14376 rename = "@code",
14377 default,
14378 deserialize_with = "deserialize_optional_string"
14379 )]
14380 pub code: Option<String>,
14381
14382 #[serde(
14384 rename = "@levelOfDetail",
14385 default,
14386 deserialize_with = "deserialize_optional_string"
14387 )]
14388 pub level_of_detail: Option<String>,
14389}
14390
14391#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14396pub struct CFDCharge {
14397 #[serde(rename = "@assetCategory", default)]
14399 pub asset_category: Option<AssetCategory>,
14400
14401 #[serde(
14403 rename = "@accountId",
14404 default,
14405 deserialize_with = "deserialize_optional_string"
14406 )]
14407 pub account_id: Option<String>,
14408
14409 #[serde(
14411 rename = "@currency",
14412 default,
14413 deserialize_with = "deserialize_optional_string"
14414 )]
14415 pub currency: Option<String>,
14416
14417 #[serde(
14419 rename = "@fxRateToBase",
14420 default,
14421 deserialize_with = "deserialize_optional_decimal"
14422 )]
14423 pub fx_rate_to_base: Option<Decimal>,
14424
14425 #[serde(
14427 rename = "@description",
14428 default,
14429 deserialize_with = "deserialize_optional_string"
14430 )]
14431 pub description: Option<String>,
14432
14433 #[serde(
14435 rename = "@conid",
14436 default,
14437 deserialize_with = "deserialize_optional_string"
14438 )]
14439 pub conid: Option<String>,
14440
14441 #[serde(
14443 rename = "@securityID",
14444 default,
14445 deserialize_with = "deserialize_optional_string"
14446 )]
14447 pub security_id: Option<String>,
14448
14449 #[serde(
14451 rename = "@cusip",
14452 default,
14453 deserialize_with = "deserialize_optional_string"
14454 )]
14455 pub cusip: Option<String>,
14456
14457 #[serde(
14459 rename = "@isin",
14460 default,
14461 deserialize_with = "deserialize_optional_string"
14462 )]
14463 pub isin: Option<String>,
14464
14465 #[serde(
14467 rename = "@listingExchange",
14468 default,
14469 deserialize_with = "deserialize_optional_string"
14470 )]
14471 pub listing_exchange: Option<String>,
14472
14473 #[serde(
14475 rename = "@underlyingConid",
14476 default,
14477 deserialize_with = "deserialize_optional_string"
14478 )]
14479 pub underlying_conid: Option<String>,
14480
14481 #[serde(
14483 rename = "@underlyingSecurityID",
14484 default,
14485 deserialize_with = "deserialize_optional_string"
14486 )]
14487 pub underlying_security_id: Option<String>,
14488
14489 #[serde(
14491 rename = "@underlyingListingExchange",
14492 default,
14493 deserialize_with = "deserialize_optional_string"
14494 )]
14495 pub underlying_listing_exchange: Option<String>,
14496
14497 #[serde(
14499 rename = "@amount",
14500 default,
14501 deserialize_with = "deserialize_optional_decimal"
14502 )]
14503 pub amount: Option<Decimal>,
14504
14505 #[serde(
14507 rename = "@dateTime",
14508 default,
14509 deserialize_with = "deserialize_optional_string"
14510 )]
14511 pub date_time: Option<String>,
14512
14513 #[serde(
14515 rename = "@sedol",
14516 default,
14517 deserialize_with = "deserialize_optional_string"
14518 )]
14519 pub sedol: Option<String>,
14520
14521 #[serde(
14523 rename = "@symbol",
14524 default,
14525 deserialize_with = "deserialize_optional_string"
14526 )]
14527 pub symbol: Option<String>,
14528
14529 #[serde(
14531 rename = "@securityIDType",
14532 default,
14533 deserialize_with = "deserialize_optional_string"
14534 )]
14535 pub security_id_type: Option<String>,
14536
14537 #[serde(
14539 rename = "@underlyingSymbol",
14540 default,
14541 deserialize_with = "deserialize_optional_string"
14542 )]
14543 pub underlying_symbol: Option<String>,
14544
14545 #[serde(
14547 rename = "@issuer",
14548 default,
14549 deserialize_with = "deserialize_optional_string"
14550 )]
14551 pub issuer: Option<String>,
14552
14553 #[serde(
14555 rename = "@multiplier",
14556 default,
14557 deserialize_with = "deserialize_optional_decimal"
14558 )]
14559 pub multiplier: Option<Decimal>,
14560
14561 #[serde(
14563 rename = "@strike",
14564 default,
14565 deserialize_with = "deserialize_optional_decimal"
14566 )]
14567 pub strike: Option<Decimal>,
14568
14569 #[serde(
14571 rename = "@expiry",
14572 default,
14573 deserialize_with = "deserialize_optional_date"
14574 )]
14575 pub expiry: Option<NaiveDate>,
14576
14577 #[serde(rename = "@putCall", default)]
14579 pub put_call: Option<PutCall>,
14580
14581 #[serde(
14583 rename = "@principalAdjustFactor",
14584 default,
14585 deserialize_with = "deserialize_optional_decimal"
14586 )]
14587 pub principal_adjust_factor: Option<Decimal>,
14588
14589 #[serde(
14591 rename = "@tradeID",
14592 default,
14593 deserialize_with = "deserialize_optional_string"
14594 )]
14595 pub trade_id: Option<String>,
14596
14597 #[serde(
14599 rename = "@code",
14600 default,
14601 deserialize_with = "deserialize_optional_string"
14602 )]
14603 pub code: Option<String>,
14604
14605 #[serde(
14607 rename = "@transactionID",
14608 default,
14609 deserialize_with = "deserialize_optional_string"
14610 )]
14611 pub transaction_id: Option<String>,
14612
14613 #[serde(
14615 rename = "@reportDate",
14616 default,
14617 deserialize_with = "deserialize_optional_date"
14618 )]
14619 pub report_date: Option<NaiveDate>,
14620
14621 #[serde(
14623 rename = "@date",
14624 default,
14625 deserialize_with = "deserialize_optional_date"
14626 )]
14627 pub date: Option<NaiveDate>,
14628
14629 #[serde(
14631 rename = "@received",
14632 default,
14633 deserialize_with = "deserialize_optional_decimal"
14634 )]
14635 pub received: Option<Decimal>,
14636
14637 #[serde(
14639 rename = "@paid",
14640 default,
14641 deserialize_with = "deserialize_optional_decimal"
14642 )]
14643 pub paid: Option<Decimal>,
14644
14645 #[serde(
14647 rename = "@total",
14648 default,
14649 deserialize_with = "deserialize_optional_decimal"
14650 )]
14651 pub total: Option<Decimal>,
14652
14653 #[serde(
14655 rename = "@transactionId",
14656 default,
14657 deserialize_with = "deserialize_optional_string"
14658 )]
14659 pub transaction_id_lc: Option<String>,
14660
14661 #[serde(
14663 rename = "@activityDescription",
14664 default,
14665 deserialize_with = "deserialize_optional_string"
14666 )]
14667 pub activity_description: Option<String>,
14668
14669 #[serde(
14671 rename = "@clientReference",
14672 default,
14673 deserialize_with = "deserialize_optional_string"
14674 )]
14675 pub client_reference: Option<String>,
14676
14677 #[serde(
14679 rename = "@acctAlias",
14680 default,
14681 deserialize_with = "deserialize_optional_string"
14682 )]
14683 pub acct_alias: Option<String>,
14684
14685 #[serde(
14687 rename = "@model",
14688 default,
14689 deserialize_with = "deserialize_optional_string"
14690 )]
14691 pub model: Option<String>,
14692
14693 #[serde(
14695 rename = "@levelOfDetail",
14696 default,
14697 deserialize_with = "deserialize_optional_string"
14698 )]
14699 pub level_of_detail: Option<String>,
14700}
14701
14702#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14707pub struct SLBOpenContract {
14708 #[serde(
14710 rename = "@accountId",
14711 default,
14712 deserialize_with = "deserialize_optional_string"
14713 )]
14714 pub account_id: Option<String>,
14715
14716 #[serde(
14718 rename = "@acctAlias",
14719 default,
14720 deserialize_with = "deserialize_optional_string"
14721 )]
14722 pub acct_alias: Option<String>,
14723
14724 #[serde(
14726 rename = "@model",
14727 default,
14728 deserialize_with = "deserialize_optional_string"
14729 )]
14730 pub model: Option<String>,
14731
14732 #[serde(
14734 rename = "@currency",
14735 default,
14736 deserialize_with = "deserialize_optional_string"
14737 )]
14738 pub currency: Option<String>,
14739
14740 #[serde(
14742 rename = "@fxRateToBase",
14743 default,
14744 deserialize_with = "deserialize_optional_decimal"
14745 )]
14746 pub fx_rate_to_base: Option<Decimal>,
14747
14748 #[serde(
14750 rename = "@description",
14751 default,
14752 deserialize_with = "deserialize_optional_string"
14753 )]
14754 pub description: Option<String>,
14755
14756 #[serde(
14758 rename = "@conid",
14759 default,
14760 deserialize_with = "deserialize_optional_string"
14761 )]
14762 pub conid: Option<String>,
14763
14764 #[serde(
14766 rename = "@securityID",
14767 default,
14768 deserialize_with = "deserialize_optional_string"
14769 )]
14770 pub security_id: Option<String>,
14771
14772 #[serde(
14774 rename = "@cusip",
14775 default,
14776 deserialize_with = "deserialize_optional_string"
14777 )]
14778 pub cusip: Option<String>,
14779
14780 #[serde(
14782 rename = "@isin",
14783 default,
14784 deserialize_with = "deserialize_optional_string"
14785 )]
14786 pub isin: Option<String>,
14787
14788 #[serde(
14790 rename = "@assetCategory",
14791 default,
14792 deserialize_with = "deserialize_optional_string"
14793 )]
14794 pub asset_category: Option<String>,
14795
14796 #[serde(
14798 rename = "@subCategory",
14799 default,
14800 deserialize_with = "deserialize_optional_string"
14801 )]
14802 pub sub_category: Option<String>,
14803
14804 #[serde(
14806 rename = "@symbol",
14807 default,
14808 deserialize_with = "deserialize_optional_string"
14809 )]
14810 pub symbol: Option<String>,
14811
14812 #[serde(
14814 rename = "@securityIDType",
14815 default,
14816 deserialize_with = "deserialize_optional_string"
14817 )]
14818 pub security_id_type: Option<String>,
14819
14820 #[serde(
14822 rename = "@figi",
14823 default,
14824 deserialize_with = "deserialize_optional_string"
14825 )]
14826 pub figi: Option<String>,
14827
14828 #[serde(
14830 rename = "@listingExchange",
14831 default,
14832 deserialize_with = "deserialize_optional_string"
14833 )]
14834 pub listing_exchange: Option<String>,
14835
14836 #[serde(
14838 rename = "@underlyingConid",
14839 default,
14840 deserialize_with = "deserialize_optional_string"
14841 )]
14842 pub underlying_conid: Option<String>,
14843
14844 #[serde(
14846 rename = "@underlyingSymbol",
14847 default,
14848 deserialize_with = "deserialize_optional_string"
14849 )]
14850 pub underlying_symbol: Option<String>,
14851
14852 #[serde(
14854 rename = "@underlyingSecurityID",
14855 default,
14856 deserialize_with = "deserialize_optional_string"
14857 )]
14858 pub underlying_security_id: Option<String>,
14859
14860 #[serde(
14862 rename = "@underlyingListingExchange",
14863 default,
14864 deserialize_with = "deserialize_optional_string"
14865 )]
14866 pub underlying_listing_exchange: Option<String>,
14867
14868 #[serde(
14870 rename = "@issuer",
14871 default,
14872 deserialize_with = "deserialize_optional_string"
14873 )]
14874 pub issuer: Option<String>,
14875
14876 #[serde(
14878 rename = "@issuerCountryCode",
14879 default,
14880 deserialize_with = "deserialize_optional_string"
14881 )]
14882 pub issuer_country_code: Option<String>,
14883
14884 #[serde(
14886 rename = "@multiplier",
14887 default,
14888 deserialize_with = "deserialize_optional_decimal"
14889 )]
14890 pub multiplier: Option<Decimal>,
14891
14892 #[serde(
14894 rename = "@strike",
14895 default,
14896 deserialize_with = "deserialize_optional_decimal"
14897 )]
14898 pub strike: Option<Decimal>,
14899
14900 #[serde(
14902 rename = "@expiry",
14903 default,
14904 deserialize_with = "deserialize_optional_date"
14905 )]
14906 pub expiry: Option<NaiveDate>,
14907
14908 #[serde(rename = "@putCall", default)]
14910 pub put_call: Option<PutCall>,
14911
14912 #[serde(
14914 rename = "@principalAdjustFactor",
14915 default,
14916 deserialize_with = "deserialize_optional_decimal"
14917 )]
14918 pub principal_adjust_factor: Option<Decimal>,
14919
14920 #[serde(
14922 rename = "@date",
14923 default,
14924 deserialize_with = "deserialize_optional_date"
14925 )]
14926 pub date: Option<NaiveDate>,
14927
14928 #[serde(
14930 rename = "@type",
14931 default,
14932 deserialize_with = "deserialize_optional_string"
14933 )]
14934 pub r#type: Option<String>,
14935
14936 #[serde(
14938 rename = "@slbTransactionId",
14939 default,
14940 deserialize_with = "deserialize_optional_string"
14941 )]
14942 pub slb_transaction_id: Option<String>,
14943
14944 #[serde(
14946 rename = "@exchange",
14947 default,
14948 deserialize_with = "deserialize_optional_string"
14949 )]
14950 pub exchange: Option<String>,
14951
14952 #[serde(
14954 rename = "@quantity",
14955 default,
14956 deserialize_with = "deserialize_optional_decimal"
14957 )]
14958 pub quantity: Option<Decimal>,
14959
14960 #[serde(
14962 rename = "@excessQuantity",
14963 default,
14964 deserialize_with = "deserialize_optional_decimal"
14965 )]
14966 pub excess_quantity: Option<Decimal>,
14967
14968 #[serde(
14970 rename = "@feeRate",
14971 default,
14972 deserialize_with = "deserialize_optional_decimal"
14973 )]
14974 pub fee_rate: Option<Decimal>,
14975
14976 #[serde(
14978 rename = "@collateralAmount",
14979 default,
14980 deserialize_with = "deserialize_optional_decimal"
14981 )]
14982 pub collateral_amount: Option<Decimal>,
14983
14984 #[serde(
14986 rename = "@levelOfDetail",
14987 default,
14988 deserialize_with = "deserialize_optional_string"
14989 )]
14990 pub level_of_detail: Option<String>,
14991
14992 #[serde(
14994 rename = "@serialNumber",
14995 default,
14996 deserialize_with = "deserialize_optional_decimal"
14997 )]
14998 pub serial_number: Option<Decimal>,
14999
15000 #[serde(
15002 rename = "@deliveryType",
15003 default,
15004 deserialize_with = "deserialize_optional_decimal"
15005 )]
15006 pub delivery_type: Option<Decimal>,
15007
15008 #[serde(
15010 rename = "@commodityType",
15011 default,
15012 deserialize_with = "deserialize_optional_string"
15013 )]
15014 pub commodity_type: Option<String>,
15015
15016 #[serde(
15018 rename = "@fineness",
15019 default,
15020 deserialize_with = "deserialize_optional_decimal"
15021 )]
15022 pub fineness: Option<Decimal>,
15023
15024 #[serde(
15026 rename = "@weight",
15027 default,
15028 deserialize_with = "deserialize_optional_decimal"
15029 )]
15030 pub weight: Option<Decimal>,
15031}
15032
15033#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
15038pub struct StockGrantActivity {
15039 #[serde(
15041 rename = "@accountId",
15042 default,
15043 deserialize_with = "deserialize_optional_string"
15044 )]
15045 pub account_id: Option<String>,
15046
15047 #[serde(
15049 rename = "@acctAlias",
15050 default,
15051 deserialize_with = "deserialize_optional_string"
15052 )]
15053 pub acct_alias: Option<String>,
15054
15055 #[serde(
15057 rename = "@model",
15058 default,
15059 deserialize_with = "deserialize_optional_string"
15060 )]
15061 pub model: Option<String>,
15062
15063 #[serde(
15065 rename = "@currency",
15066 default,
15067 deserialize_with = "deserialize_optional_string"
15068 )]
15069 pub currency: Option<String>,
15070
15071 #[serde(
15073 rename = "@fxRateToBase",
15074 default,
15075 deserialize_with = "deserialize_optional_decimal"
15076 )]
15077 pub fx_rate_to_base: Option<Decimal>,
15078
15079 #[serde(rename = "@assetCategory", default)]
15081 pub asset_category: Option<AssetCategory>,
15082
15083 #[serde(
15085 rename = "@subCategory",
15086 default,
15087 deserialize_with = "deserialize_optional_string"
15088 )]
15089 pub sub_category: Option<String>,
15090
15091 #[serde(
15093 rename = "@symbol",
15094 default,
15095 deserialize_with = "deserialize_optional_string"
15096 )]
15097 pub symbol: Option<String>,
15098
15099 #[serde(
15101 rename = "@description",
15102 default,
15103 deserialize_with = "deserialize_optional_string"
15104 )]
15105 pub description: Option<String>,
15106
15107 #[serde(
15109 rename = "@conid",
15110 default,
15111 deserialize_with = "deserialize_optional_string"
15112 )]
15113 pub conid: Option<String>,
15114
15115 #[serde(
15117 rename = "@securityID",
15118 default,
15119 deserialize_with = "deserialize_optional_string"
15120 )]
15121 pub security_id: Option<String>,
15122
15123 #[serde(
15125 rename = "@securityIDType",
15126 default,
15127 deserialize_with = "deserialize_optional_string"
15128 )]
15129 pub security_id_type: Option<String>,
15130
15131 #[serde(
15133 rename = "@cusip",
15134 default,
15135 deserialize_with = "deserialize_optional_string"
15136 )]
15137 pub cusip: Option<String>,
15138
15139 #[serde(
15141 rename = "@isin",
15142 default,
15143 deserialize_with = "deserialize_optional_string"
15144 )]
15145 pub isin: Option<String>,
15146
15147 #[serde(
15149 rename = "@figi",
15150 default,
15151 deserialize_with = "deserialize_optional_string"
15152 )]
15153 pub figi: Option<String>,
15154
15155 #[serde(
15157 rename = "@listingExchange",
15158 default,
15159 deserialize_with = "deserialize_optional_string"
15160 )]
15161 pub listing_exchange: Option<String>,
15162
15163 #[serde(
15165 rename = "@underlyingConid",
15166 default,
15167 deserialize_with = "deserialize_optional_string"
15168 )]
15169 pub underlying_conid: Option<String>,
15170
15171 #[serde(
15173 rename = "@underlyingSymbol",
15174 default,
15175 deserialize_with = "deserialize_optional_string"
15176 )]
15177 pub underlying_symbol: Option<String>,
15178
15179 #[serde(
15181 rename = "@underlyingSecurityID",
15182 default,
15183 deserialize_with = "deserialize_optional_string"
15184 )]
15185 pub underlying_security_id: Option<String>,
15186
15187 #[serde(
15189 rename = "@underlyingListingExchange",
15190 default,
15191 deserialize_with = "deserialize_optional_string"
15192 )]
15193 pub underlying_listing_exchange: Option<String>,
15194
15195 #[serde(
15197 rename = "@issuer",
15198 default,
15199 deserialize_with = "deserialize_optional_string"
15200 )]
15201 pub issuer: Option<String>,
15202
15203 #[serde(
15205 rename = "@issuerCountryCode",
15206 default,
15207 deserialize_with = "deserialize_optional_string"
15208 )]
15209 pub issuer_country_code: Option<String>,
15210
15211 #[serde(
15213 rename = "@multiplier",
15214 default,
15215 deserialize_with = "deserialize_optional_decimal"
15216 )]
15217 pub multiplier: Option<Decimal>,
15218
15219 #[serde(
15221 rename = "@strike",
15222 default,
15223 deserialize_with = "deserialize_optional_decimal"
15224 )]
15225 pub strike: Option<Decimal>,
15226
15227 #[serde(
15229 rename = "@expiry",
15230 default,
15231 deserialize_with = "deserialize_optional_date"
15232 )]
15233 pub expiry: Option<NaiveDate>,
15234
15235 #[serde(rename = "@putCall", default)]
15237 pub put_call: Option<PutCall>,
15238
15239 #[serde(
15241 rename = "@principalAdjustFactor",
15242 default,
15243 deserialize_with = "deserialize_optional_decimal"
15244 )]
15245 pub principal_adjust_factor: Option<Decimal>,
15246
15247 #[serde(
15249 rename = "@reportDate",
15250 default,
15251 deserialize_with = "deserialize_optional_date"
15252 )]
15253 pub report_date: Option<NaiveDate>,
15254
15255 #[serde(
15257 rename = "@activityDescription",
15258 default,
15259 deserialize_with = "deserialize_optional_string"
15260 )]
15261 pub activity_description: Option<String>,
15262
15263 #[serde(
15265 rename = "@awardDate",
15266 default,
15267 deserialize_with = "deserialize_optional_date"
15268 )]
15269 pub award_date: Option<NaiveDate>,
15270
15271 #[serde(
15273 rename = "@vestingDate",
15274 default,
15275 deserialize_with = "deserialize_optional_date"
15276 )]
15277 pub vesting_date: Option<NaiveDate>,
15278
15279 #[serde(
15281 rename = "@quantity",
15282 default,
15283 deserialize_with = "deserialize_optional_decimal"
15284 )]
15285 pub quantity: Option<Decimal>,
15286
15287 #[serde(
15289 rename = "@price",
15290 default,
15291 deserialize_with = "deserialize_optional_decimal"
15292 )]
15293 pub price: Option<Decimal>,
15294
15295 #[serde(
15297 rename = "@value",
15298 default,
15299 deserialize_with = "deserialize_optional_decimal"
15300 )]
15301 pub value: Option<Decimal>,
15302
15303 #[serde(
15305 rename = "@serialNumber",
15306 default,
15307 deserialize_with = "deserialize_optional_string"
15308 )]
15309 pub serial_number: Option<String>,
15310
15311 #[serde(
15313 rename = "@deliveryType",
15314 default,
15315 deserialize_with = "deserialize_optional_string"
15316 )]
15317 pub delivery_type: Option<String>,
15318
15319 #[serde(
15321 rename = "@commodityType",
15322 default,
15323 deserialize_with = "deserialize_optional_string"
15324 )]
15325 pub commodity_type: Option<String>,
15326
15327 #[serde(
15329 rename = "@fineness",
15330 default,
15331 deserialize_with = "deserialize_optional_decimal"
15332 )]
15333 pub fineness: Option<Decimal>,
15334
15335 #[serde(
15337 rename = "@weight",
15338 default,
15339 deserialize_with = "deserialize_optional_decimal"
15340 )]
15341 pub weight: Option<Decimal>,
15342}