1#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct EtfOrderbookData {
7 #[prost(string, repeated, tag="1")]
9 pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10 #[prost(string, repeated, tag="2")]
12 pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
13 #[prost(int64, repeated, tag="3")]
15 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
16 #[prost(int64, repeated, tag="4")]
18 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
19 #[prost(int64, repeated, tag="5")]
21 pub lp_bid_quantities: ::prost::alloc::vec::Vec<i64>,
22 #[prost(int64, repeated, tag="6")]
24 pub lp_ask_quantities: ::prost::alloc::vec::Vec<i64>,
25 #[prost(string, tag="7")]
27 pub mid_price: ::prost::alloc::string::String,
28 #[prost(int64, tag="8")]
30 pub mid_ask_quantity: i64,
31 #[prost(int64, tag="9")]
33 pub mid_bid_quantity: i64,
34 #[prost(int64, tag="10")]
36 pub ask_quote_total_quantity: i64,
37 #[prost(int64, tag="11")]
39 pub bid_quote_total_quantity: i64,
40 #[prost(string, tag="12")]
42 pub est_price: ::prost::alloc::string::String,
43 #[prost(int64, tag="13")]
45 pub est_volume: i64,
46 #[prost(enumeration="SessionId", tag="14")]
48 pub session_id: i32,
49}
50#[allow(clippy::derive_partial_eq_without_eq)]
52#[derive(Clone, PartialEq, ::prost::Message)]
53pub struct FuturesOrderbookData {
54 #[prost(string, repeated, tag="1")]
56 pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
57 #[prost(string, repeated, tag="2")]
59 pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
60 #[prost(int64, repeated, tag="3")]
62 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
63 #[prost(int64, repeated, tag="4")]
65 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
66 #[prost(int64, repeated, tag="5")]
68 pub bid_counts: ::prost::alloc::vec::Vec<i64>,
69 #[prost(int64, repeated, tag="6")]
71 pub ask_counts: ::prost::alloc::vec::Vec<i64>,
72 #[prost(int64, tag="7")]
74 pub ask_quote_total_quantity: i64,
75 #[prost(int64, tag="8")]
77 pub bid_quote_total_quantity: i64,
78 #[prost(string, tag="9")]
80 pub mid_price: ::prost::alloc::string::String,
81 #[prost(string, tag="10")]
83 pub est_price: ::prost::alloc::string::String,
84 #[prost(int64, tag="11")]
86 pub est_volume: i64,
87 #[prost(enumeration="SessionId", tag="12")]
89 pub session_id: i32,
90}
91#[allow(clippy::derive_partial_eq_without_eq)]
93#[derive(Clone, PartialEq, ::prost::Message)]
94pub struct Order {
95 #[prost(string, tag="1")]
97 pub order_id: ::prost::alloc::string::String,
98 #[prost(enumeration="OrderType", tag="2")]
100 pub order_type: i32,
101 #[prost(string, tag="3")]
103 pub symbol: ::prost::alloc::string::String,
104 #[prost(string, tag="4")]
106 pub price: ::prost::alloc::string::String,
107 #[prost(int64, tag="5")]
109 pub quantity: i64,
110 #[prost(int64, tag="6")]
112 pub filled_quantity: i64,
113 #[prost(enumeration="OrderStatus", tag="7")]
115 pub status: i32,
116 #[prost(int64, tag="8")]
118 pub created_at: i64,
119 #[prost(int64, tag="9")]
121 pub updated_at: i64,
122}
123#[allow(clippy::derive_partial_eq_without_eq)]
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct EtfNav {
126 #[prost(string, tag="1")]
127 pub name: ::prost::alloc::string::String,
128 #[prost(string, tag="2")]
129 pub etf_symbol: ::prost::alloc::string::String,
130 #[prost(string, tag="10")]
132 pub theory_nav: ::prost::alloc::string::String,
133 #[prost(string, tag="11")]
135 pub krx_nav: ::prost::alloc::string::String,
136}
137#[allow(clippy::derive_partial_eq_without_eq)]
141#[derive(Clone, PartialEq, ::prost::Message)]
142pub struct StreamEtfOrderbookRequest {
143 #[prost(string, tag="1")]
144 pub etf: ::prost::alloc::string::String,
145}
146#[allow(clippy::derive_partial_eq_without_eq)]
148#[derive(Clone, PartialEq, ::prost::Message)]
149pub struct StreamFuturesOrderbookRequest {
150 #[prost(string, tag="1")]
152 pub future: ::prost::alloc::string::String,
153}
154#[allow(clippy::derive_partial_eq_without_eq)]
155#[derive(Clone, PartialEq, ::prost::Message)]
156pub struct StreamEtfNavRequest {
157 #[prost(string, tag="1")]
158 pub etf: ::prost::alloc::string::String,
159}
160#[allow(clippy::derive_partial_eq_without_eq)]
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct PlaceOrderRequest {
164 #[prost(enumeration="OrderType", tag="1")]
166 pub order_type: i32,
167 #[prost(string, tag="2")]
169 pub symbol: ::prost::alloc::string::String,
170 #[prost(string, tag="3")]
172 pub price: ::prost::alloc::string::String,
173 #[prost(int64, tag="4")]
175 pub quantity: i64,
176}
177#[allow(clippy::derive_partial_eq_without_eq)]
179#[derive(Clone, PartialEq, ::prost::Message)]
180pub struct PlaceOrderResponse {
181 #[prost(message, optional, tag="1")]
183 pub order: ::core::option::Option<Order>,
184}
185#[allow(clippy::derive_partial_eq_without_eq)]
187#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct CancelOrderRequest {
189 #[prost(string, tag="1")]
191 pub order_id: ::prost::alloc::string::String,
192}
193#[allow(clippy::derive_partial_eq_without_eq)]
195#[derive(Clone, PartialEq, ::prost::Message)]
196pub struct CancelOrderResponse {
197 #[prost(message, optional, tag="1")]
199 pub order: ::core::option::Option<Order>,
200}
201#[allow(clippy::derive_partial_eq_without_eq)]
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct CancelAllOrdersRequest {
205 #[prost(string, tag="1")]
207 pub symbol: ::prost::alloc::string::String,
208}
209#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct CancelAllOrdersResponse {
213 #[prost(int32, tag="1")]
215 pub cancelled_count: i32,
216 #[prost(message, repeated, tag="2")]
218 pub cancelled_orders: ::prost::alloc::vec::Vec<Order>,
219}
220#[allow(clippy::derive_partial_eq_without_eq)]
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct ListOrdersRequest {
224 #[prost(string, tag="1")]
226 pub filter: ::prost::alloc::string::String,
227 #[prost(int32, tag="2")]
229 pub page_size: i32,
230 #[prost(string, tag="3")]
231 pub page_token: ::prost::alloc::string::String,
232}
233#[allow(clippy::derive_partial_eq_without_eq)]
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct ListOrdersResponse {
237 #[prost(message, repeated, tag="1")]
239 pub orders: ::prost::alloc::vec::Vec<Order>,
240 #[prost(string, tag="2")]
242 pub next_page_token: ::prost::alloc::string::String,
243}
244#[allow(clippy::derive_partial_eq_without_eq)]
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct GetUserOrderBookRequest {
248 #[prost(string, tag="1")]
249 pub etf: ::prost::alloc::string::String,
250 #[prost(string, tag="2")]
251 pub fund: ::prost::alloc::string::String,
252}
253#[allow(clippy::derive_partial_eq_without_eq)]
255#[derive(Clone, PartialEq, ::prost::Message)]
256pub struct UserOrderbookData {
257 #[prost(string, repeated, tag="1")]
259 pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
260 #[prost(string, repeated, tag="2")]
262 pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
263 #[prost(int64, repeated, tag="3")]
265 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
266 #[prost(int64, repeated, tag="4")]
268 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
269}
270#[allow(clippy::derive_partial_eq_without_eq)]
272#[derive(Clone, PartialEq, ::prost::Message)]
273pub struct AddRawMessagesSocketRequest {
274 #[prost(string, tag="1")]
276 pub multicast_address: ::prost::alloc::string::String,
277 #[prost(string, tag="2")]
279 pub multicast_interface: ::prost::alloc::string::String,
280 #[prost(uint32, tag="3")]
282 pub port: u32,
283 #[prost(uint32, tag="4")]
285 pub buffer_size: u32,
286}
287#[allow(clippy::derive_partial_eq_without_eq)]
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct AddRawMessagesSocketResponse {
291 #[prost(bool, tag="1")]
293 pub success: bool,
294 #[prost(string, tag="2")]
296 pub error_message: ::prost::alloc::string::String,
297}
298#[allow(clippy::derive_partial_eq_without_eq)]
300#[derive(Clone, PartialEq, ::prost::Message)]
301pub struct StreamRawMessagesRequest {
302 #[prost(string, repeated, tag="1")]
304 pub socket_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
305 #[prost(uint32, tag="2")]
307 pub buffer_size: u32,
308}
309#[allow(clippy::derive_partial_eq_without_eq)]
311#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct RawMarketMessage {
313 #[prost(bytes="vec", tag="1")]
315 pub data: ::prost::alloc::vec::Vec<u8>,
316 #[prost(int64, tag="2")]
318 pub receive_timestamp_ns: i64,
319 #[prost(uint64, tag="3")]
321 pub sequence_number: u64,
322}
323#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
325#[repr(i32)]
326pub enum SessionId {
327 Unspecified = 0,
329 Previous = 1,
331 Connected = 2,
333 OpeningOnePrice = 3,
335 OnePrice = 4,
337 ClosingOnePrice = 5,
339 ViOnePrice = 6,
341 ViOpeningOnePrice = 7,
343 ViClosingOnePrice = 8,
345 UnitTrade = 9,
347 PostMarket = 10,
349 AuctionBid = 11,
351 AuctionAsk = 12,
353 Suspended = 13,
355 Shutdown = 14,
357 Closed = 15,
359 Etc = 16,
361}
362impl SessionId {
363 pub fn as_str_name(&self) -> &'static str {
368 match self {
369 SessionId::Unspecified => "SESSION_ID_UNSPECIFIED",
370 SessionId::Previous => "PREVIOUS",
371 SessionId::Connected => "CONNECTED",
372 SessionId::OpeningOnePrice => "OPENING_ONE_PRICE",
373 SessionId::OnePrice => "ONE_PRICE",
374 SessionId::ClosingOnePrice => "CLOSING_ONE_PRICE",
375 SessionId::ViOnePrice => "VI_ONE_PRICE",
376 SessionId::ViOpeningOnePrice => "VI_OPENING_ONE_PRICE",
377 SessionId::ViClosingOnePrice => "VI_CLOSING_ONE_PRICE",
378 SessionId::UnitTrade => "UNIT_TRADE",
379 SessionId::PostMarket => "POST_MARKET",
380 SessionId::AuctionBid => "AUCTION_BID",
381 SessionId::AuctionAsk => "AUCTION_ASK",
382 SessionId::Suspended => "SUSPENDED",
383 SessionId::Shutdown => "SHUTDOWN",
384 SessionId::Closed => "CLOSED",
385 SessionId::Etc => "ETC",
386 }
387 }
388 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
390 match value {
391 "SESSION_ID_UNSPECIFIED" => Some(Self::Unspecified),
392 "PREVIOUS" => Some(Self::Previous),
393 "CONNECTED" => Some(Self::Connected),
394 "OPENING_ONE_PRICE" => Some(Self::OpeningOnePrice),
395 "ONE_PRICE" => Some(Self::OnePrice),
396 "CLOSING_ONE_PRICE" => Some(Self::ClosingOnePrice),
397 "VI_ONE_PRICE" => Some(Self::ViOnePrice),
398 "VI_OPENING_ONE_PRICE" => Some(Self::ViOpeningOnePrice),
399 "VI_CLOSING_ONE_PRICE" => Some(Self::ViClosingOnePrice),
400 "UNIT_TRADE" => Some(Self::UnitTrade),
401 "POST_MARKET" => Some(Self::PostMarket),
402 "AUCTION_BID" => Some(Self::AuctionBid),
403 "AUCTION_ASK" => Some(Self::AuctionAsk),
404 "SUSPENDED" => Some(Self::Suspended),
405 "SHUTDOWN" => Some(Self::Shutdown),
406 "CLOSED" => Some(Self::Closed),
407 "ETC" => Some(Self::Etc),
408 _ => None,
409 }
410 }
411}
412#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414#[repr(i32)]
415pub enum OrderType {
416 Unspecified = 0,
418 Buy = 1,
420 Sell = 2,
422}
423impl OrderType {
424 pub fn as_str_name(&self) -> &'static str {
429 match self {
430 OrderType::Unspecified => "ORDER_TYPE_UNSPECIFIED",
431 OrderType::Buy => "BUY",
432 OrderType::Sell => "SELL",
433 }
434 }
435 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
437 match value {
438 "ORDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
439 "BUY" => Some(Self::Buy),
440 "SELL" => Some(Self::Sell),
441 _ => None,
442 }
443 }
444}
445#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
447#[repr(i32)]
448pub enum OrderStatus {
449 Unspecified = 0,
451 Pending = 1,
453 PartialFilled = 2,
455 Filled = 3,
457 Cancelled = 4,
459 Rejected = 5,
461}
462impl OrderStatus {
463 pub fn as_str_name(&self) -> &'static str {
468 match self {
469 OrderStatus::Unspecified => "ORDER_STATUS_UNSPECIFIED",
470 OrderStatus::Pending => "PENDING",
471 OrderStatus::PartialFilled => "PARTIAL_FILLED",
472 OrderStatus::Filled => "FILLED",
473 OrderStatus::Cancelled => "CANCELLED",
474 OrderStatus::Rejected => "REJECTED",
475 }
476 }
477 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
479 match value {
480 "ORDER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
481 "PENDING" => Some(Self::Pending),
482 "PARTIAL_FILLED" => Some(Self::PartialFilled),
483 "FILLED" => Some(Self::Filled),
484 "CANCELLED" => Some(Self::Cancelled),
485 "REJECTED" => Some(Self::Rejected),
486 _ => None,
487 }
488 }
489}
490include!("kdo.v1.market.tonic.rs");
491include!("kdo.v1.market.serde.rs");
492