1use serde::{Deserialize, Serialize};
17use strum::{AsRefStr, Display, EnumIter, EnumString};
18
19#[derive(
21 Clone,
22 Debug,
23 Display,
24 PartialEq,
25 Eq,
26 Hash,
27 AsRefStr,
28 EnumIter,
29 EnumString,
30 Serialize,
31 Deserialize,
32)]
33#[serde(rename_all = "camelCase")]
34pub enum OKXWsErrorType {
35 Error,
37 SubscriptionError,
39 UnsubscriptionError,
41 AuthenticationError,
43 RateLimit,
45}
46
47#[derive(
49 Clone,
50 Debug,
51 Display,
52 PartialEq,
53 Eq,
54 Hash,
55 AsRefStr,
56 EnumIter,
57 EnumString,
58 Serialize,
59 Deserialize,
60)]
61#[serde(rename_all = "kebab-case")]
62pub enum OKXWsOperation {
63 Subscribe,
65 Unsubscribe,
67 Order,
69 CancelOrder,
71 AmendOrder,
73 BatchOrders,
75 BatchCancelOrders,
77 BatchAmendOrders,
79 MassCancel,
81}
82
83#[derive(
84 Clone,
85 Debug,
86 Display,
87 PartialEq,
88 Eq,
89 Hash,
90 AsRefStr,
91 EnumIter,
92 EnumString,
93 Serialize,
94 Deserialize,
95)]
96#[serde(rename_all = "camelCase")]
97pub enum OKXSubscriptionEvent {
98 Subscribe,
99 Unsubscribe,
100}
101
102#[derive(
103 Clone,
104 Debug,
105 Display,
106 PartialEq,
107 Eq,
108 Hash,
109 AsRefStr,
110 EnumIter,
111 EnumString,
112 Serialize,
113 Deserialize,
114)]
115pub enum OKXWsChannel {
116 #[serde(rename = "instruments")]
118 Instruments,
119 #[serde(rename = "tickers")]
120 Tickers,
121 #[serde(rename = "open-interest")]
122 OpenInterest,
123 #[serde(rename = "trades")]
124 Trades,
125 #[serde(rename = "trades-all")]
126 TradesAll,
127 #[serde(rename = "estimated-price")]
128 EstimatedPrice,
129 #[serde(rename = "mark-price")]
130 MarkPrice,
131 #[serde(rename = "price-limit")]
132 PriceLimit,
133 #[serde(rename = "books")]
134 Books, #[serde(rename = "books5")]
136 Books5,
137 #[serde(rename = "books50-l2-tbt")]
138 Books50Tbt,
139 #[serde(rename = "books-l2-tbt")]
140 BooksTbt,
141 #[serde(rename = "bbo-tbt")]
142 BboTbt,
143 #[serde(rename = "opt-summary")]
144 OptionSummary,
145 #[serde(rename = "funding-rate")]
146 FundingRate,
147 #[serde(rename = "index-tickers")]
148 IndexTickers,
149 #[serde(rename = "status")]
150 Status,
151 #[serde(rename = "account")]
153 Account,
154 #[serde(rename = "orders")]
159 Orders,
160 #[serde(rename = "fills")]
161 Fills,
162 #[serde(rename = "candle1s")]
197 Candle1Second,
198 #[serde(rename = "candle1m")]
199 Candle1Minute,
200 #[serde(rename = "candle3m")]
201 Candle3Minute,
202 #[serde(rename = "candle5m")]
203 Candle5Minute,
204 #[serde(rename = "candle15m")]
205 Candle15Minute,
206 #[serde(rename = "candle30m")]
207 Candle30Minute,
208 #[serde(rename = "candle1H")]
209 Candle1Hour,
210 #[serde(rename = "candle2H")]
211 Candle2Hour,
212 #[serde(rename = "candle4H")]
213 Candle4Hour,
214 #[serde(rename = "candle6H")]
215 Candle6Hour,
216 #[serde(rename = "candle12H")]
217 Candle12Hour,
218 #[serde(rename = "candle1D")]
219 Candle1Day,
220 #[serde(rename = "candle2D")]
221 Candle2Day,
222 #[serde(rename = "candle3D")]
223 Candle3Day,
224 #[serde(rename = "candle5D")]
225 Candle5Day,
226 #[serde(rename = "candle1W")]
227 Candle1Week,
228 #[serde(rename = "candle1M")]
229 Candle1Month,
230 #[serde(rename = "candle3M")]
231 Candle3Month,
232 #[serde(rename = "candle6M")]
233 Candle6Month,
234 #[serde(rename = "candle1Y")]
235 Candle1Year,
236
237 #[serde(rename = "mark-price-candle1s")]
239 MarkPriceCandle1Second,
240 #[serde(rename = "mark-price-candle1m")]
241 MarkPriceCandle1Minute,
242 #[serde(rename = "mark-price-candle3m")]
243 MarkPriceCandle3Minute,
244 #[serde(rename = "mark-price-candle5m")]
245 MarkPriceCandle5Minute,
246 #[serde(rename = "mark-price-candle15m")]
247 MarkPriceCandle15Minute,
248 #[serde(rename = "mark-price-candle30m")]
249 MarkPriceCandle30Minute,
250 #[serde(rename = "mark-price-candle1H")]
251 MarkPriceCandle1Hour,
252 #[serde(rename = "mark-price-candle2H")]
253 MarkPriceCandle2Hour,
254 #[serde(rename = "mark-price-candle4H")]
255 MarkPriceCandle4Hour,
256 #[serde(rename = "mark-price-candle6H")]
257 MarkPriceCandle6Hour,
258 #[serde(rename = "mark-price-candle12H")]
259 MarkPriceCandle12Hour,
260 #[serde(rename = "mark-price-candle1D")]
261 MarkPriceCandle1Day,
262 #[serde(rename = "mark-price-candle2D")]
263 MarkPriceCandle2Day,
264 #[serde(rename = "mark-price-candle3D")]
265 MarkPriceCandle3Day,
266 #[serde(rename = "mark-price-candle5D")]
267 MarkPriceCandle5Day,
268 #[serde(rename = "mark-price-candle1W")]
269 MarkPriceCandle1Week,
270 #[serde(rename = "mark-price-candle1M")]
271 MarkPriceCandle1Month,
272 #[serde(rename = "mark-price-candle3M")]
273 MarkPriceCandle3Month,
274}