rust_okx/api/sub_account/
responses.rs1use serde::Deserialize;
2
3use crate::NumberString;
4
5#[derive(Debug, Clone, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct SubAccountEntry {
10 #[serde(default)]
12 pub sub_acct: String,
13 #[serde(default)]
15 pub label: String,
16 #[serde(default)]
18 pub uid: String,
19 #[serde(default)]
21 pub ts: NumberString,
22 #[serde(default)]
24 pub enable: bool,
25 #[serde(default)]
27 pub can_trans_out: bool,
28 #[serde(default)]
30 pub g_auth: bool,
31 #[serde(default)]
33 pub mobile: String,
34 #[serde(default, rename = "type")]
36 pub sub_type: String,
37 #[serde(default)]
39 pub sub_acct_lv: String,
40 #[serde(default)]
42 pub first_lv_sub_acct: String,
43 #[serde(default)]
45 pub if_dma: bool,
46 #[serde(default)]
48 pub frozen_func: Vec<String>,
49}
50
51#[derive(Debug, Clone, Deserialize)]
53#[serde(rename_all = "camelCase")]
54#[non_exhaustive]
55pub struct SubAccountApiKey {
56 #[serde(default)]
58 pub sub_acct: String,
59 #[serde(default)]
61 pub label: String,
62 #[serde(default)]
64 pub api_key: String,
65 #[serde(default)]
67 pub secret_key: String,
68 #[serde(default)]
70 pub passphrase: String,
71 #[serde(default)]
73 pub perm: String,
74 #[serde(default)]
76 pub ip: String,
77 #[serde(default)]
79 pub ts: NumberString,
80}
81
82#[derive(Debug, Clone, Deserialize)]
84#[serde(rename_all = "camelCase")]
85#[non_exhaustive]
86pub struct SubAccountTradingBalanceDetail {
87 #[serde(default)]
89 pub ccy: String,
90 #[serde(default)]
92 pub avail_bal: NumberString,
93 #[serde(default)]
95 pub avail_eq: NumberString,
96 #[serde(default)]
98 pub cash_bal: NumberString,
99 #[serde(default)]
101 pub eq: NumberString,
102 #[serde(default)]
104 pub eq_usd: NumberString,
105 #[serde(default)]
107 pub dis_eq: NumberString,
108 #[serde(default)]
110 pub frozen_bal: NumberString,
111 #[serde(default)]
113 pub ord_frozen: NumberString,
114 #[serde(default)]
116 pub upl: NumberString,
117 #[serde(default)]
119 pub interest: NumberString,
120 #[serde(default)]
122 pub liab: NumberString,
123 #[serde(default)]
125 pub cross_liab: NumberString,
126 #[serde(default)]
128 pub iso_eq: NumberString,
129 #[serde(default)]
131 pub iso_liab: NumberString,
132 #[serde(default)]
134 pub u_time: NumberString,
135}
136
137#[derive(Debug, Clone, Deserialize)]
139#[serde(rename_all = "camelCase")]
140#[non_exhaustive]
141pub struct SubAccountTradingBalance {
142 #[serde(default)]
144 pub details: Vec<SubAccountTradingBalanceDetail>,
145 #[serde(default)]
147 pub adj_eq: NumberString,
148 #[serde(default)]
150 pub avail_eq: NumberString,
151 #[serde(default)]
153 pub total_eq: NumberString,
154 #[serde(default)]
156 pub imr: NumberString,
157 #[serde(default)]
159 pub mmr: NumberString,
160 #[serde(default)]
162 pub mgn_ratio: NumberString,
163 #[serde(default)]
165 pub iso_eq: NumberString,
166 #[serde(default)]
168 pub ord_froz: NumberString,
169 #[serde(default)]
171 pub notional_usd: NumberString,
172 #[serde(default)]
174 pub upl: NumberString,
175 #[serde(default)]
177 pub u_time: NumberString,
178}
179
180#[derive(Debug, Clone, Deserialize)]
182#[serde(rename_all = "camelCase")]
183#[non_exhaustive]
184pub struct SubAccountFundingBalance {
185 #[serde(default)]
187 pub ccy: String,
188 #[serde(default)]
190 pub avail_bal: NumberString,
191 #[serde(default)]
193 pub bal: NumberString,
194 #[serde(default)]
196 pub frozen_bal: NumberString,
197}
198
199#[derive(Debug, Clone, Deserialize)]
201#[serde(rename_all = "camelCase")]
202#[non_exhaustive]
203pub struct SubAccountMaxWithdrawal {
204 #[serde(default)]
206 pub ccy: String,
207 #[serde(default)]
209 pub max_wd: NumberString,
210 #[serde(default)]
212 pub max_wd_ex: NumberString,
213 #[serde(default)]
215 pub spot_offset_max_wd: NumberString,
216 #[serde(default)]
218 pub spot_offset_max_wd_ex: NumberString,
219}
220
221#[derive(Debug, Clone, Deserialize)]
223#[serde(rename_all = "camelCase")]
224#[non_exhaustive]
225pub struct SubAccountBill {
226 #[serde(default)]
228 pub bill_id: String,
229 #[serde(default, rename = "type")]
231 pub bill_type: String,
232 #[serde(default)]
234 pub ccy: String,
235 #[serde(default)]
237 pub amt: NumberString,
238 #[serde(default)]
240 pub sub_acct: String,
241 #[serde(default)]
243 pub ts: NumberString,
244}
245
246#[derive(Debug, Clone, Deserialize)]
248#[serde(rename_all = "camelCase")]
249#[non_exhaustive]
250pub struct ManagedSubAccountBill {
251 #[serde(default)]
253 pub bill_id: String,
254 #[serde(default, rename = "type")]
256 pub bill_type: String,
257 #[serde(default)]
259 pub ccy: String,
260 #[serde(default)]
262 pub amt: NumberString,
263 #[serde(default)]
265 pub sub_acct: String,
266 #[serde(default)]
268 pub sub_uid: String,
269 #[serde(default)]
271 pub ts: NumberString,
272}
273
274#[derive(Debug, Clone, Deserialize)]
276#[serde(rename_all = "camelCase")]
277#[non_exhaustive]
278pub struct SubAccountTransferResult {
279 #[serde(default)]
281 pub trans_id: String,
282}
283
284#[derive(Debug, Clone, Deserialize)]
286#[serde(rename_all = "camelCase")]
287#[non_exhaustive]
288pub struct SetTransferOutResult {
289 #[serde(default)]
291 pub sub_acct: String,
292 #[serde(default)]
294 pub can_trans_out: bool,
295}
296
297#[derive(Debug, Clone, Deserialize)]
299#[serde(rename_all = "camelCase")]
300#[non_exhaustive]
301pub struct EntrustSubAccount {
302 #[serde(default)]
304 pub sub_acct: String,
305}