rust_okx/api/account/responses/
risk.rs1use serde::Deserialize;
2
3use crate::model::NumberString;
4
5#[derive(Debug, Clone, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct LoanRecord {
10 #[serde(default)]
12 pub avail_loan: String,
13 #[serde(default)]
15 pub avg_rate: String,
16 #[serde(default)]
18 pub ccy: String,
19 #[serde(default)]
21 pub interest: NumberString,
22 #[serde(default)]
24 pub loan_quota: NumberString,
25 #[serde(default)]
27 pub pos_loan: String,
28 #[serde(default)]
30 pub rate: NumberString,
31 #[serde(default)]
33 pub surplus_lmt: NumberString,
34 #[serde(default)]
36 pub used_lmt: NumberString,
37 #[serde(default)]
39 pub used_loan: String,
40 #[serde(default)]
42 pub interest_free_liab: String,
43 #[serde(default)]
45 pub potential_borrowing_amt: String,
46}
47
48#[derive(Debug, Clone, Deserialize)]
50#[serde(rename_all = "camelCase")]
51#[non_exhaustive]
52pub struct RiskState {
53 #[serde(default)]
55 pub debt: NumberString,
56 #[serde(default)]
58 pub interest: NumberString,
59 #[serde(default)]
61 pub loan_alloc: String,
62 #[serde(default)]
64 pub next_discount_time: NumberString,
65 #[serde(default)]
67 pub next_interest_time: NumberString,
68 #[serde(default)]
70 pub records: Vec<LoanRecord>,
71}
72
73#[derive(Debug, Clone, Deserialize)]
75#[serde(rename_all = "camelCase")]
76#[non_exhaustive]
77pub struct SimulatedMargin {
78 #[serde(default)]
80 pub imr: NumberString,
81 #[serde(default)]
83 pub mmr: NumberString,
84 #[serde(default)]
86 pub mr: NumberString,
87 #[serde(default)]
89 pub notional_usd: NumberString,
90 #[serde(default)]
92 pub details: Vec<SimulatedMarginDetail>,
93}
94
95#[derive(Debug, Clone, Deserialize)]
97#[serde(rename_all = "camelCase")]
98#[non_exhaustive]
99pub struct SimulatedMarginDetail {
100 #[serde(default)]
102 pub inst_id: String,
103 #[serde(default)]
105 pub pos: NumberString,
106 #[serde(default)]
108 pub imr: NumberString,
109 #[serde(default)]
111 pub mmr: NumberString,
112 #[serde(default)]
114 pub upl: NumberString,
115}
116
117#[derive(Debug, Clone, Deserialize)]
119#[serde(rename_all = "camelCase")]
120#[non_exhaustive]
121pub struct Greek {
122 #[serde(default)]
124 pub ccy: String,
125 #[serde(rename = "deltaBS", default)]
127 pub delta_bs: NumberString,
128 #[serde(rename = "deltaPA", default)]
130 pub delta_pa: NumberString,
131 #[serde(rename = "gammaBS", default)]
133 pub gamma_bs: NumberString,
134 #[serde(rename = "thetaBS", default)]
136 pub theta_bs: NumberString,
137 #[serde(rename = "vegaBS", default)]
139 pub vega_bs: NumberString,
140}
141
142#[derive(Debug, Clone, Deserialize)]
144#[serde(rename_all = "camelCase")]
145#[non_exhaustive]
146pub struct AccountPositionTier {
147 #[serde(default)]
149 pub inst_type: String,
150 #[serde(default)]
152 pub uly: String,
153 #[serde(default)]
155 pub inst_family: String,
156 #[serde(default)]
158 pub pos_type: String,
159 #[serde(default)]
161 pub min_sz: NumberString,
162 #[serde(default)]
164 pub max_sz: NumberString,
165}
166
167#[derive(Debug, Clone, Deserialize)]
169#[serde(rename_all = "camelCase")]
170#[non_exhaustive]
171pub struct PositionBuilderResult {
172 #[serde(default)]
174 pub acct_lv: String,
175 #[serde(default)]
177 pub adj_eq: NumberString,
178 #[serde(default)]
180 pub imr: NumberString,
181 #[serde(default)]
183 pub mmr: NumberString,
184 #[serde(default)]
186 pub mr: NumberString,
187 #[serde(default)]
189 pub pos_data: Vec<PositionBuilderPosition>,
190 #[serde(default)]
192 pub asset_data: Vec<PositionBuilderAsset>,
193}
194
195#[derive(Debug, Clone, Deserialize)]
197#[serde(rename_all = "camelCase")]
198#[non_exhaustive]
199pub struct PositionBuilderPosition {
200 #[serde(default)]
202 pub inst_type: String,
203 #[serde(default)]
205 pub inst_id: String,
206 #[serde(default)]
208 pub pos: NumberString,
209 #[serde(default)]
211 pub avg_px: NumberString,
212 #[serde(default)]
214 pub upl: NumberString,
215}
216
217#[derive(Debug, Clone, Deserialize)]
219#[serde(rename_all = "camelCase")]
220#[non_exhaustive]
221pub struct PositionBuilderAsset {
222 #[serde(default)]
224 pub ccy: String,
225 #[serde(default)]
227 pub eq: NumberString,
228}