1#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct StreamEtfOrderbookRequest {
7 #[prost(string, tag="1")]
9 pub etf: ::prost::alloc::string::String,
10 #[prost(string, tag="2")]
12 pub filter: ::prost::alloc::string::String,
13}
14#[allow(clippy::derive_partial_eq_without_eq)]
16#[derive(Clone, PartialEq, ::prost::Message)]
17pub struct StreamFuturesOrderbookRequest {
18 #[prost(string, tag="1")]
20 pub future: ::prost::alloc::string::String,
21 #[prost(string, tag="2")]
23 pub filter: ::prost::alloc::string::String,
24}
25#[allow(clippy::derive_partial_eq_without_eq)]
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct EtfOrderbookData {
29 #[prost(int64, repeated, tag="1")]
31 pub bid_prices: ::prost::alloc::vec::Vec<i64>,
32 #[prost(int64, repeated, tag="2")]
34 pub ask_prices: ::prost::alloc::vec::Vec<i64>,
35 #[prost(int64, repeated, tag="3")]
37 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
38 #[prost(int64, repeated, tag="4")]
40 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
41 #[prost(int64, repeated, tag="5")]
43 pub lp_bid_quantities: ::prost::alloc::vec::Vec<i64>,
44 #[prost(int64, repeated, tag="6")]
46 pub lp_ask_quantities: ::prost::alloc::vec::Vec<i64>,
47 #[prost(int64, tag="7")]
49 pub mid_price: i64,
50 #[prost(int64, tag="8")]
52 pub mid_ask_quantity: i64,
53 #[prost(int64, tag="9")]
55 pub mid_bid_quantity: i64,
56 #[prost(int64, tag="10")]
58 pub ask_quote_total_quantity: i64,
59 #[prost(int64, tag="11")]
61 pub bid_quote_total_quantity: i64,
62 #[prost(int64, tag="12")]
64 pub est_price: i64,
65 #[prost(int64, tag="13")]
67 pub est_volume: i64,
68 #[prost(enumeration="SessionId", tag="14")]
70 pub session_id: i32,
71}
72#[allow(clippy::derive_partial_eq_without_eq)]
74#[derive(Clone, PartialEq, ::prost::Message)]
75pub struct FuturesOrderbookData {
76 #[prost(float, repeated, tag="1")]
78 pub bid_prices: ::prost::alloc::vec::Vec<f32>,
79 #[prost(float, repeated, tag="2")]
81 pub ask_prices: ::prost::alloc::vec::Vec<f32>,
82 #[prost(int64, repeated, tag="3")]
84 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
85 #[prost(int64, repeated, tag="4")]
87 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
88 #[prost(int64, repeated, tag="5")]
90 pub bid_counts: ::prost::alloc::vec::Vec<i64>,
91 #[prost(int64, repeated, tag="6")]
93 pub ask_counts: ::prost::alloc::vec::Vec<i64>,
94 #[prost(int64, tag="7")]
96 pub ask_quote_total_quantity: i64,
97 #[prost(int64, tag="8")]
99 pub bid_quote_total_quantity: i64,
100 #[prost(float, tag="9")]
102 pub mid_price: f32,
103 #[prost(float, tag="10")]
105 pub est_price: f32,
106 #[prost(int64, tag="11")]
108 pub est_volume: i64,
109 #[prost(enumeration="SessionId", tag="12")]
111 pub session_id: i32,
112}
113#[allow(clippy::derive_partial_eq_without_eq)]
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct Order {
117 #[prost(string, tag="1")]
119 pub order_id: ::prost::alloc::string::String,
120 #[prost(enumeration="OrderType", tag="2")]
122 pub order_type: i32,
123 #[prost(string, tag="3")]
125 pub symbol: ::prost::alloc::string::String,
126 #[prost(float, tag="4")]
128 pub price: f32,
129 #[prost(int64, tag="5")]
131 pub quantity: i64,
132 #[prost(int64, tag="6")]
134 pub filled_quantity: i64,
135 #[prost(enumeration="OrderStatus", tag="7")]
137 pub status: i32,
138 #[prost(int64, tag="8")]
140 pub created_at: i64,
141 #[prost(int64, tag="9")]
143 pub updated_at: i64,
144}
145#[allow(clippy::derive_partial_eq_without_eq)]
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct PlaceOrderRequest {
149 #[prost(enumeration="OrderType", tag="1")]
151 pub order_type: i32,
152 #[prost(string, tag="2")]
154 pub symbol: ::prost::alloc::string::String,
155 #[prost(int64, tag="3")]
157 pub price: i64,
158 #[prost(int64, tag="4")]
160 pub quantity: i64,
161}
162#[allow(clippy::derive_partial_eq_without_eq)]
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct PlaceOrderResponse {
166 #[prost(message, optional, tag="1")]
168 pub order: ::core::option::Option<Order>,
169}
170#[allow(clippy::derive_partial_eq_without_eq)]
172#[derive(Clone, PartialEq, ::prost::Message)]
173pub struct CancelOrderRequest {
174 #[prost(string, tag="1")]
176 pub order_id: ::prost::alloc::string::String,
177}
178#[allow(clippy::derive_partial_eq_without_eq)]
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct CancelOrderResponse {
182 #[prost(message, optional, tag="1")]
184 pub order: ::core::option::Option<Order>,
185}
186#[allow(clippy::derive_partial_eq_without_eq)]
188#[derive(Clone, PartialEq, ::prost::Message)]
189pub struct CancelAllOrdersRequest {
190 #[prost(string, tag="1")]
192 pub symbol: ::prost::alloc::string::String,
193}
194#[allow(clippy::derive_partial_eq_without_eq)]
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct CancelAllOrdersResponse {
198 #[prost(int32, tag="1")]
200 pub cancelled_count: i32,
201 #[prost(message, repeated, tag="2")]
203 pub cancelled_orders: ::prost::alloc::vec::Vec<Order>,
204}
205#[allow(clippy::derive_partial_eq_without_eq)]
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct ListOrdersRequest {
209 #[prost(string, tag="1")]
211 pub filter: ::prost::alloc::string::String,
212 #[prost(int32, tag="2")]
214 pub page_size: i32,
215 #[prost(string, tag="3")]
216 pub page_token: ::prost::alloc::string::String,
217}
218#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct ListOrdersResponse {
222 #[prost(message, repeated, tag="1")]
224 pub orders: ::prost::alloc::vec::Vec<Order>,
225 #[prost(string, tag="2")]
227 pub next_page_token: ::prost::alloc::string::String,
228}
229#[allow(clippy::derive_partial_eq_without_eq)]
231#[derive(Clone, PartialEq, ::prost::Message)]
232pub struct StreamOrderUpdatesRequest {
233 #[prost(string, tag="1")]
235 pub filter: ::prost::alloc::string::String,
236}
237#[allow(clippy::derive_partial_eq_without_eq)]
239#[derive(Clone, PartialEq, ::prost::Message)]
240pub struct OrderUpdate {
241 #[prost(message, optional, tag="1")]
243 pub order: ::core::option::Option<Order>,
244 #[prost(enumeration="order_update::UpdateType", tag="2")]
245 pub update_type: i32,
246}
247pub mod order_update {
249 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
251 #[repr(i32)]
252 pub enum UpdateType {
253 Unspecified = 0,
255 Created = 1,
257 Updated = 2,
259 Filled = 3,
261 Cancelled = 4,
263 }
264 impl UpdateType {
265 pub fn as_str_name(&self) -> &'static str {
270 match self {
271 UpdateType::Unspecified => "UPDATE_TYPE_UNSPECIFIED",
272 UpdateType::Created => "CREATED",
273 UpdateType::Updated => "UPDATED",
274 UpdateType::Filled => "FILLED",
275 UpdateType::Cancelled => "CANCELLED",
276 }
277 }
278 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
280 match value {
281 "UPDATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
282 "CREATED" => Some(Self::Created),
283 "UPDATED" => Some(Self::Updated),
284 "FILLED" => Some(Self::Filled),
285 "CANCELLED" => Some(Self::Cancelled),
286 _ => None,
287 }
288 }
289 }
290}
291#[allow(clippy::derive_partial_eq_without_eq)]
292#[derive(Clone, PartialEq, ::prost::Message)]
293pub struct Symbol {
294 #[prost(string, tag="1")]
295 pub symbol: ::prost::alloc::string::String,
296 #[prost(string, tag="2")]
297 pub name: ::prost::alloc::string::String,
298}
299#[allow(clippy::derive_partial_eq_without_eq)]
301#[derive(Clone, PartialEq, ::prost::Message)]
302pub struct EtfLpConfig {
303 #[prost(message, optional, tag="1")]
305 pub etf_symbol: ::core::option::Option<Symbol>,
306 #[prost(message, optional, tag="2")]
308 pub future_symbol: ::core::option::Option<Symbol>,
309 #[prost(float, tag="3")]
311 pub basis: f32,
312 #[prost(float, tag="4")]
314 pub offset: f32,
315 #[prost(int64, tag="5")]
317 pub quantity: i64,
318 #[prost(int64, tag="6")]
320 pub depth: i64,
321 #[prost(int64, tag="7")]
323 pub tick_size: i64,
324}
325#[allow(clippy::derive_partial_eq_without_eq)]
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct StartEtfLpRequest {
329 #[prost(string, tag="1")]
331 pub etf: ::prost::alloc::string::String,
332 #[prost(message, optional, tag="2")]
334 pub config: ::core::option::Option<EtfLpConfig>,
335}
336#[allow(clippy::derive_partial_eq_without_eq)]
338#[derive(Clone, PartialEq, ::prost::Message)]
339pub struct StartEtfLpResponse {
340 #[prost(enumeration="EtfLpStatus", tag="1")]
342 pub status: i32,
343 #[prost(string, tag="2")]
345 pub message: ::prost::alloc::string::String,
346}
347#[allow(clippy::derive_partial_eq_without_eq)]
349#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct StopEtfLpRequest {
351 #[prost(string, tag="1")]
353 pub etf: ::prost::alloc::string::String,
354}
355#[allow(clippy::derive_partial_eq_without_eq)]
357#[derive(Clone, PartialEq, ::prost::Message)]
358pub struct StopEtfLpResponse {
359 #[prost(enumeration="EtfLpStatus", tag="1")]
361 pub status: i32,
362 #[prost(string, tag="2")]
364 pub message: ::prost::alloc::string::String,
365}
366#[allow(clippy::derive_partial_eq_without_eq)]
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct GetEtfLpStatusRequest {
370 #[prost(string, tag="1")]
372 pub etf: ::prost::alloc::string::String,
373}
374#[allow(clippy::derive_partial_eq_without_eq)]
376#[derive(Clone, PartialEq, ::prost::Message)]
377pub struct GetEtfLpStatusResponse {
378 #[prost(enumeration="EtfLpStatus", tag="1")]
380 pub status: i32,
381 #[prost(message, optional, tag="2")]
383 pub config: ::core::option::Option<EtfLpConfig>,
384 #[prost(int64, tag="3")]
386 pub started_at: i64,
387 #[prost(int64, tag="4")]
388 pub etf_price: i64,
389 #[prost(float, tag="5")]
390 pub future_price: f32,
391 #[prost(float, tag="6")]
392 pub etf_theo_price: f32,
393}
394#[allow(clippy::derive_partial_eq_without_eq)]
396#[derive(Clone, PartialEq, ::prost::Message)]
397pub struct UpdateEtfLpConfigRequest {
398 #[prost(string, tag="1")]
400 pub etf: ::prost::alloc::string::String,
401 #[prost(message, optional, tag="2")]
403 pub config: ::core::option::Option<EtfLpConfig>,
404}
405#[allow(clippy::derive_partial_eq_without_eq)]
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct UpdateEtfLpConfigResponse {
409 #[prost(message, optional, tag="1")]
411 pub config: ::core::option::Option<EtfLpConfig>,
412 #[prost(string, tag="2")]
414 pub message: ::prost::alloc::string::String,
415}
416#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
418#[repr(i32)]
419pub enum SessionId {
420 Unspecified = 0,
422 Previous = 1,
424 Connected = 2,
426 OpeningOnePrice = 3,
428 OnePrice = 4,
430 ClosingOnePrice = 5,
432 ViOnePrice = 6,
434 ViOpeningOnePrice = 7,
436 ViClosingOnePrice = 8,
438 UnitTrade = 9,
440 PostMarket = 10,
442 AuctionBid = 11,
444 AuctionAsk = 12,
446 Suspended = 13,
448 Shutdown = 14,
450 Closed = 15,
452 Etc = 16,
454}
455impl SessionId {
456 pub fn as_str_name(&self) -> &'static str {
461 match self {
462 SessionId::Unspecified => "SESSION_ID_UNSPECIFIED",
463 SessionId::Previous => "PREVIOUS",
464 SessionId::Connected => "CONNECTED",
465 SessionId::OpeningOnePrice => "OPENING_ONE_PRICE",
466 SessionId::OnePrice => "ONE_PRICE",
467 SessionId::ClosingOnePrice => "CLOSING_ONE_PRICE",
468 SessionId::ViOnePrice => "VI_ONE_PRICE",
469 SessionId::ViOpeningOnePrice => "VI_OPENING_ONE_PRICE",
470 SessionId::ViClosingOnePrice => "VI_CLOSING_ONE_PRICE",
471 SessionId::UnitTrade => "UNIT_TRADE",
472 SessionId::PostMarket => "POST_MARKET",
473 SessionId::AuctionBid => "AUCTION_BID",
474 SessionId::AuctionAsk => "AUCTION_ASK",
475 SessionId::Suspended => "SUSPENDED",
476 SessionId::Shutdown => "SHUTDOWN",
477 SessionId::Closed => "CLOSED",
478 SessionId::Etc => "ETC",
479 }
480 }
481 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
483 match value {
484 "SESSION_ID_UNSPECIFIED" => Some(Self::Unspecified),
485 "PREVIOUS" => Some(Self::Previous),
486 "CONNECTED" => Some(Self::Connected),
487 "OPENING_ONE_PRICE" => Some(Self::OpeningOnePrice),
488 "ONE_PRICE" => Some(Self::OnePrice),
489 "CLOSING_ONE_PRICE" => Some(Self::ClosingOnePrice),
490 "VI_ONE_PRICE" => Some(Self::ViOnePrice),
491 "VI_OPENING_ONE_PRICE" => Some(Self::ViOpeningOnePrice),
492 "VI_CLOSING_ONE_PRICE" => Some(Self::ViClosingOnePrice),
493 "UNIT_TRADE" => Some(Self::UnitTrade),
494 "POST_MARKET" => Some(Self::PostMarket),
495 "AUCTION_BID" => Some(Self::AuctionBid),
496 "AUCTION_ASK" => Some(Self::AuctionAsk),
497 "SUSPENDED" => Some(Self::Suspended),
498 "SHUTDOWN" => Some(Self::Shutdown),
499 "CLOSED" => Some(Self::Closed),
500 "ETC" => Some(Self::Etc),
501 _ => None,
502 }
503 }
504}
505#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
507#[repr(i32)]
508pub enum OrderType {
509 Unspecified = 0,
511 Buy = 1,
513 Sell = 2,
515}
516impl OrderType {
517 pub fn as_str_name(&self) -> &'static str {
522 match self {
523 OrderType::Unspecified => "ORDER_TYPE_UNSPECIFIED",
524 OrderType::Buy => "BUY",
525 OrderType::Sell => "SELL",
526 }
527 }
528 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
530 match value {
531 "ORDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
532 "BUY" => Some(Self::Buy),
533 "SELL" => Some(Self::Sell),
534 _ => None,
535 }
536 }
537}
538#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
540#[repr(i32)]
541pub enum OrderStatus {
542 Unspecified = 0,
544 Pending = 1,
546 PartialFilled = 2,
548 Filled = 3,
550 Cancelled = 4,
552 Rejected = 5,
554}
555impl OrderStatus {
556 pub fn as_str_name(&self) -> &'static str {
561 match self {
562 OrderStatus::Unspecified => "ORDER_STATUS_UNSPECIFIED",
563 OrderStatus::Pending => "PENDING",
564 OrderStatus::PartialFilled => "PARTIAL_FILLED",
565 OrderStatus::Filled => "FILLED",
566 OrderStatus::Cancelled => "CANCELLED",
567 OrderStatus::Rejected => "REJECTED",
568 }
569 }
570 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
572 match value {
573 "ORDER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
574 "PENDING" => Some(Self::Pending),
575 "PARTIAL_FILLED" => Some(Self::PartialFilled),
576 "FILLED" => Some(Self::Filled),
577 "CANCELLED" => Some(Self::Cancelled),
578 "REJECTED" => Some(Self::Rejected),
579 _ => None,
580 }
581 }
582}
583#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
585#[repr(i32)]
586pub enum EtfLpStatus {
587 Unspecified = 0,
589 Stopped = 1,
591 Starting = 2,
593 Running = 3,
595 Error = 4,
597}
598impl EtfLpStatus {
599 pub fn as_str_name(&self) -> &'static str {
604 match self {
605 EtfLpStatus::Unspecified => "ETF_LP_STATUS_UNSPECIFIED",
606 EtfLpStatus::Stopped => "STOPPED",
607 EtfLpStatus::Starting => "STARTING",
608 EtfLpStatus::Running => "RUNNING",
609 EtfLpStatus::Error => "ERROR",
610 }
611 }
612 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
614 match value {
615 "ETF_LP_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
616 "STOPPED" => Some(Self::Stopped),
617 "STARTING" => Some(Self::Starting),
618 "RUNNING" => Some(Self::Running),
619 "ERROR" => Some(Self::Error),
620 _ => None,
621 }
622 }
623}
624include!("kdo.v1.market.tonic.rs");
625include!("kdo.v1.market.serde.rs");
626