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