1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct AcceptNonLpQuoteParams {
9 pub rfq_id: String,
10}
11
12pub type AcceptNonLpQuoteResponse = AcceptNonLpQuoteResult;
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
17#[serde(rename_all = "camelCase")]
18pub struct AcceptNonLpQuoteResult {
19 pub rfq_id: Option<String>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct CancelAllQuotesParams {}
26
27pub type CancelAllQuotesResponse = Vec<CancelAllQuotesResultItem>;
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct CancelAllQuotesResultItem {
34 pub rfq_id: Option<String>,
35 pub quote_id: Option<String>,
36 pub quote_link_id: Option<String>,
37 pub code: Option<String>,
38 pub msg: Option<String>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct CancelAllRfqsParams {}
45
46pub type CancelAllRfqsResponse = Vec<CancelAllRfqsResult>;
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub struct CancelAllRfqsResult {
53 pub rfq_id: Option<String>,
54 pub rfq_link_id: Option<String>,
55 pub code: Option<String>,
56 pub msg: Option<String>,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(rename_all = "camelCase")]
62pub struct CancelQuoteParams {
63 #[serde(skip_serializing_if = "Option::is_none")]
64 pub quote_id: Option<String>,
65 #[serde(skip_serializing_if = "Option::is_none")]
66 pub rfq_id: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
68 pub quote_link_id: Option<String>,
69}
70
71pub type CancelQuoteResponse = CancelQuoteResult;
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(rename_all = "camelCase")]
77pub struct CancelQuoteResult {
78 pub rfq_id: Option<String>,
79 pub quote_id: Option<String>,
80 pub quote_link_id: Option<String>,
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(rename_all = "camelCase")]
86pub struct CancelRfqParams {
87 #[serde(skip_serializing_if = "Option::is_none")]
88 pub rfq_id: Option<String>,
89 #[serde(skip_serializing_if = "Option::is_none")]
90 pub rfq_link_id: Option<String>,
91}
92
93pub type CancelRfqResponse = CancelRfqResult;
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
98#[serde(rename_all = "camelCase")]
99pub struct CancelRfqResult {
100 pub rfq_id: Option<String>,
101 pub rfq_link_id: Option<String>,
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
106#[serde(rename_all = "camelCase")]
107pub struct CreateQuoteParams {
108 pub rfq_id: String,
109 #[serde(skip_serializing_if = "Option::is_none")]
110 pub quote_link_id: Option<String>,
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub anonymous: Option<bool>,
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub expire_in: Option<i64>,
115 #[serde(skip_serializing_if = "Option::is_none")]
116 pub quote_buy_list: Option<Vec<QuoteLeg>>,
117 #[serde(skip_serializing_if = "Option::is_none")]
118 pub quote_sell_list: Option<Vec<QuoteLeg>>,
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
123#[serde(rename_all = "camelCase")]
124pub struct QuoteLeg {
125 pub category: String,
126 pub symbol: String,
127 pub price: String,
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub qty: Option<String>,
130}
131
132pub type CreateQuoteResponse = CreateQuoteResult;
134
135#[derive(Debug, Clone, Serialize, Deserialize)]
137#[serde(rename_all = "camelCase")]
138pub struct CreateQuoteResult {
139 pub rfq_id: Option<String>,
140 pub quote_id: Option<String>,
141 pub quote_link_id: Option<String>,
142 pub expires_at: Option<String>,
143 pub desk_code: Option<String>,
144 pub status: Option<String>,
145}
146
147#[derive(Debug, Clone, Serialize, Deserialize)]
149#[serde(rename_all = "camelCase")]
150pub struct CreateRfqParams {
151 pub counterparties: Vec<String>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub rfq_link_id: Option<String>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 pub anonymous: Option<bool>,
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub strategy_type: Option<String>,
158 pub list: Vec<CreateRfqLeg>,
159}
160
161#[derive(Debug, Clone, Serialize, Deserialize)]
163#[serde(rename_all = "camelCase")]
164pub struct CreateRfqLeg {
165 pub category: String,
166 pub symbol: String,
167 pub side: String,
168 pub qty: String,
169}
170
171pub type CreateRfqResponse = CreateRfqResult;
173
174#[derive(Debug, Clone, Serialize, Deserialize)]
176#[serde(rename_all = "camelCase")]
177pub struct CreateRfqResult {
178 pub rfq_id: Option<String>,
179 pub rfq_link_id: Option<String>,
180 pub status: Option<String>,
181 pub expires_at: Option<String>,
182 pub desk_code: Option<String>,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize)]
187#[serde(rename_all = "camelCase")]
188pub struct ExecuteQuoteParams {
189 pub rfq_id: String,
190 pub quote_id: String,
191 pub quote_side: String,
192}
193
194pub type ExecuteQuoteResponse = ExecuteQuoteResult;
196
197#[derive(Debug, Clone, Serialize, Deserialize)]
199#[serde(rename_all = "camelCase")]
200pub struct ExecuteQuoteResult {
201 pub rfq_id: Option<String>,
202 pub rfq_link_id: Option<String>,
203 pub quote_id: Option<String>,
204 pub status: Option<String>,
205}
206
207pub type GetPublicTradesResponse = GetPublicTradesResult;
209
210#[derive(Debug, Clone, Serialize, Deserialize)]
212#[serde(rename_all = "camelCase")]
213pub struct GetPublicTradesResult {
214 pub cursor: Option<String>,
215 pub list: Option<Vec<PublicTrade>>,
216}
217
218#[derive(Debug, Clone, Serialize, Deserialize)]
220#[serde(rename_all = "camelCase")]
221pub struct PublicTrade {
222 pub rfq_id: Option<String>,
223 pub strategy_type: Option<String>,
224 pub created_at: Option<String>,
225 pub updated_at: Option<String>,
226 pub legs: Option<Vec<PublicTradeLeg>>,
227}
228
229#[derive(Debug, Clone, Serialize, Deserialize)]
231#[serde(rename_all = "camelCase")]
232pub struct PublicTradeLeg {
233 pub category: Option<String>,
234 pub symbol: Option<String>,
235 pub side: Option<String>,
236 pub price: Option<String>,
237 pub qty: Option<String>,
238 pub mark_price: Option<String>,
239}
240
241pub type GetQuotesRealtimeResponse = GetQuotesRealtimeResult;
243
244#[derive(Debug, Clone, Serialize, Deserialize)]
246#[serde(rename_all = "camelCase")]
247pub struct GetQuotesRealtimeResult {
248 pub list: Option<Vec<QuoteRealtimeItem>>,
249}
250
251#[derive(Debug, Clone, Serialize, Deserialize)]
253#[serde(rename_all = "camelCase")]
254pub struct QuoteRealtimeItem {
255 pub rfq_id: Option<String>,
256 pub rfq_link_id: Option<String>,
257 pub quote_id: Option<String>,
258 pub quote_link_id: Option<String>,
259 pub expires_at: Option<String>,
260 pub status: Option<String>,
261 pub desk_code: Option<String>,
262 pub exec_quote_side: Option<String>,
263 pub created_at: Option<String>,
264 pub updated_at: Option<String>,
265 pub quote_buy_list: Option<Vec<QuoteItemLeg>>,
266 pub quote_sell_list: Option<Vec<QuoteItemLeg>>,
267}
268
269#[derive(Debug, Clone, Serialize, Deserialize)]
271#[serde(rename_all = "camelCase")]
272pub struct QuoteItemLeg {
273 pub category: Option<String>,
274 pub symbol: Option<String>,
275 pub price: Option<String>,
276 pub qty: Option<String>,
277}
278
279pub type GetQuotesResponse = GetQuotesResult;
281
282#[derive(Debug, Clone, Serialize, Deserialize)]
284#[serde(rename_all = "camelCase")]
285pub struct GetQuotesResult {
286 pub cursor: Option<String>,
287 pub list: Option<Vec<QuoteItem>>,
288}
289
290#[derive(Debug, Clone, Serialize, Deserialize)]
292#[serde(rename_all = "camelCase")]
293pub struct QuoteItem {
294 pub rfq_id: Option<String>,
295 pub rfq_link_id: Option<String>,
296 pub quote_id: Option<String>,
297 pub quote_link_id: Option<String>,
298 pub expires_at: Option<String>,
299 pub desk_code: Option<String>,
300 pub status: Option<String>,
301 pub exec_quote_side: Option<String>,
302 pub created_at: Option<String>,
303 pub updated_at: Option<String>,
304 pub quote_buy_list: Option<Vec<QuoteItemLeg>>,
305 pub quote_sell_list: Option<Vec<QuoteItemLeg>>,
306}
307
308pub type GetRfqConfigResponse = GetRfqConfigResult;
310
311#[derive(Debug, Clone, Serialize, Deserialize)]
313#[serde(rename_all = "camelCase")]
314pub struct GetRfqConfigResult {
315 pub desk_code: Option<String>,
316 pub max_legs: Option<i32>,
317 #[serde(rename = "maxLP")]
318 pub max_lp: Option<i32>,
319 pub max_active_rfq: Option<i32>,
320 pub rfq_expire_time: Option<i32>,
321 pub min_limit_qty_spot_order: Option<i64>,
322 pub min_limit_qty_contract_order: Option<i64>,
323 pub min_limit_qty_option_order: Option<i64>,
324 pub strategy_types: Option<Vec<RfqStrategyType>>,
325 pub counterparties: Option<Vec<RfqCounterparty>>,
326}
327
328#[derive(Debug, Clone, Serialize, Deserialize)]
330#[serde(rename_all = "camelCase")]
331pub struct RfqStrategyType {
332 pub strategy_name: Option<String>,
333}
334
335#[derive(Debug, Clone, Serialize, Deserialize)]
337#[serde(rename_all = "camelCase")]
338pub struct RfqCounterparty {
339 pub trader_name: Option<String>,
340 pub desk_code: Option<String>,
341 #[serde(rename = "type")]
342 pub type_: Option<String>,
343}
344
345pub type GetRfqsRealtimeResponse = GetRfqsRealtimeResult;
347
348#[derive(Debug, Clone, Serialize, Deserialize)]
350#[serde(rename_all = "camelCase")]
351pub struct GetRfqsRealtimeResult {
352 pub list: Option<Vec<GetRfqsRealtimeItem>>,
353}
354
355#[derive(Debug, Clone, Serialize, Deserialize)]
357#[serde(rename_all = "camelCase")]
358pub struct GetRfqsRealtimeItem {
359 pub rfq_id: Option<String>,
360 pub rfq_link_id: Option<String>,
361 pub counterparties: Option<Vec<String>>,
362 pub expires_at: Option<String>,
363 pub strategy_type: Option<String>,
364 pub status: Option<String>,
365 pub accept_other_quote_status: Option<String>,
366 pub desk_code: Option<String>,
367 pub created_at: Option<String>,
368 pub updated_at: Option<String>,
369 pub legs: Option<Vec<GetRfqsRealtimeLeg>>,
370}
371
372#[derive(Debug, Clone, Serialize, Deserialize)]
374#[serde(rename_all = "camelCase")]
375pub struct GetRfqsRealtimeLeg {
376 pub category: Option<String>,
377 pub symbol: Option<String>,
378 pub side: Option<String>,
379 pub qty: Option<String>,
380}
381
382pub type GetRfqsResponse = GetRfqsResult;
384
385#[derive(Debug, Clone, Serialize, Deserialize)]
387#[serde(rename_all = "camelCase")]
388pub struct GetRfqsResult {
389 pub cursor: Option<String>,
390 pub list: Option<Vec<GetRfqsListItem>>,
391}
392
393#[derive(Debug, Clone, Serialize, Deserialize)]
395#[serde(rename_all = "camelCase")]
396pub struct GetRfqsListItem {
397 pub rfq_id: Option<String>,
398 pub rfq_link_id: Option<String>,
399 pub counterparties: Option<Vec<String>>,
400 pub strategy_type: Option<String>,
401 pub expires_at: Option<String>,
402 pub status: Option<String>,
403 pub accept_other_quote_status: Option<String>,
404 pub desk_code: Option<String>,
405 pub created_at: Option<String>,
406 pub updated_at: Option<String>,
407 pub legs: Option<Vec<GetRfqsLeg>>,
408}
409
410#[derive(Debug, Clone, Serialize, Deserialize)]
412#[serde(rename_all = "camelCase")]
413pub struct GetRfqsLeg {
414 pub category: Option<String>,
415 pub symbol: Option<String>,
416 pub side: Option<String>,
417 pub qty: Option<String>,
418}
419
420pub type GetTradeHistoryResponse = GetTradeHistoryResult;
422
423#[derive(Debug, Clone, Serialize, Deserialize)]
425#[serde(rename_all = "camelCase")]
426pub struct GetTradeHistoryResult {
427 pub cursor: Option<String>,
428 pub list: Option<Vec<GetTradeHistoryTrade>>,
429}
430
431#[derive(Debug, Clone, Serialize, Deserialize)]
433#[serde(rename_all = "camelCase")]
434pub struct GetTradeHistoryTrade {
435 pub rfq_id: Option<String>,
436 pub rfq_link_id: Option<String>,
437 pub quote_id: Option<String>,
438 pub quote_link_id: Option<String>,
439 pub quote_side: Option<String>,
440 pub strategy_type: Option<String>,
441 pub status: Option<String>,
442 pub rfq_desk_code: Option<String>,
443 pub quote_desk_code: Option<String>,
444 pub created_at: Option<String>,
445 pub updated_at: Option<String>,
446 pub legs: Option<Vec<GetTradeHistoryLeg>>,
447}
448
449#[derive(Debug, Clone, Serialize, Deserialize)]
451#[serde(rename_all = "camelCase")]
452pub struct GetTradeHistoryLeg {
453 pub category: Option<String>,
454 pub order_id: Option<String>,
455 pub symbol: Option<String>,
456 pub side: Option<String>,
457 pub price: Option<String>,
458 pub qty: Option<String>,
459 pub mark_price: Option<String>,
460 pub exec_fee: Option<String>,
461 pub exec_id: Option<String>,
462 pub result_code: Option<i32>,
463 pub result_message: Option<String>,
464 pub reject_party: Option<String>,
465}
466
467#[derive(Debug, Clone, Serialize, Deserialize)]
469#[serde(rename_all = "camelCase")]
470pub struct CancelAllRfqsResultItem {
471 pub rfq_id: Option<String>,
472 pub rfq_link_id: Option<String>,
473 pub code: Option<String>,
474 pub msg: Option<String>,
475}
476
477#[derive(Debug, Clone, Serialize, Deserialize)]
479#[serde(rename_all = "camelCase")]
480pub struct PublicTradeItem {
481 pub rfq_id: Option<String>,
482 pub strategy_type: Option<String>,
483 pub created_at: Option<String>,
484 pub updated_at: Option<String>,
485 pub legs: Option<Vec<PublicTradeLeg>>,
486}
487
488#[derive(Debug, Clone, Serialize, Deserialize)]
490#[serde(rename_all = "camelCase")]
491pub struct StrategyType {
492 pub strategy_name: Option<String>,
493}
494
495#[derive(Debug, Clone, Serialize, Deserialize)]
497#[serde(rename_all = "camelCase")]
498pub struct Counterparty {
499 pub trader_name: Option<String>,
500 pub desk_code: Option<String>,
501 #[serde(rename = "type")]
502 pub type_: Option<String>,
503}
504
505#[derive(Debug, Clone, Serialize, Deserialize)]
507#[serde(rename_all = "camelCase")]
508pub struct RfqRealtimeItem {
509 pub rfq_id: Option<String>,
510 pub rfq_link_id: Option<String>,
511 pub counterparties: Option<Vec<String>>,
512 pub expires_at: Option<String>,
513 pub strategy_type: Option<String>,
514 pub status: Option<String>,
515 pub accept_other_quote_status: Option<String>,
516 pub desk_code: Option<String>,
517 pub created_at: Option<String>,
518 pub updated_at: Option<String>,
519 pub legs: Option<Vec<RfqRealtimeLeg>>,
520}
521
522#[derive(Debug, Clone, Serialize, Deserialize)]
524#[serde(rename_all = "camelCase")]
525pub struct RfqRealtimeLeg {
526 pub category: Option<String>,
527 pub symbol: Option<String>,
528 pub side: Option<String>,
529 pub qty: Option<String>,
530}
531
532#[derive(Debug, Clone, Serialize, Deserialize)]
534#[serde(rename_all = "camelCase")]
535pub struct RfqItem {
536 pub rfq_id: Option<String>,
537 pub rfq_link_id: Option<String>,
538 pub counterparties: Option<Vec<String>>,
539 pub strategy_type: Option<String>,
540 pub expires_at: Option<String>,
541 pub status: Option<String>,
542 pub accept_other_quote_status: Option<String>,
543 pub desk_code: Option<String>,
544 pub created_at: Option<String>,
545 pub updated_at: Option<String>,
546 pub legs: Option<Vec<RfqLeg>>,
547}
548
549#[derive(Debug, Clone, Serialize, Deserialize)]
551#[serde(rename_all = "camelCase")]
552pub struct RfqLeg {
553 pub category: Option<String>,
554 pub symbol: Option<String>,
555 pub side: Option<String>,
556 pub qty: Option<String>,
557}
558
559#[derive(Debug, Clone, Serialize, Deserialize)]
561#[serde(rename_all = "camelCase")]
562pub struct TradeHistoryItem {
563 pub rfq_id: Option<String>,
564 pub rfq_link_id: Option<String>,
565 pub quote_id: Option<String>,
566 pub quote_link_id: Option<String>,
567 pub quote_side: Option<String>,
568 pub strategy_type: Option<String>,
569 pub status: Option<String>,
570 pub rfq_desk_code: Option<String>,
571 pub quote_desk_code: Option<String>,
572 pub created_at: Option<String>,
573 pub updated_at: Option<String>,
574 pub legs: Option<Vec<TradeHistoryLeg>>,
575}
576
577#[derive(Debug, Clone, Serialize, Deserialize)]
579#[serde(rename_all = "camelCase")]
580pub struct TradeHistoryLeg {
581 pub category: Option<String>,
582 pub order_id: Option<String>,
583 pub symbol: Option<String>,
584 pub side: Option<String>,
585 pub price: Option<String>,
586 pub qty: Option<String>,
587 pub mark_price: Option<String>,
588 pub exec_fee: Option<String>,
589 pub exec_id: Option<String>,
590 pub result_code: Option<i32>,
591 pub result_message: Option<String>,
592 pub reject_party: Option<String>,
593}
594
595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
601pub struct GetQuotesParams {
602 pub rfq_id: Option<String>,
603 pub quote_id: Option<String>,
604 pub quote_link_id: Option<String>,
605 pub trader_type: Option<String>,
606 pub status: Option<String>,
607 pub limit: Option<u32>,
608 pub cursor: Option<String>,
609}
610
611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
615pub struct GetTradeHistoryParams {
616 pub rfq_id: Option<String>,
617 pub rfq_link_id: Option<String>,
618 pub quote_id: Option<String>,
619 pub quote_link_id: Option<String>,
620 pub trader_type: Option<String>,
621 pub status: Option<String>,
622 pub limit: Option<u32>,
623 pub cursor: Option<String>,
624}