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 est_price: f32,
103 #[prost(int64, tag="10")]
105 pub est_volume: i64,
106 #[prost(enumeration="SessionId", tag="11")]
108 pub session_id: i32,
109}
110#[allow(clippy::derive_partial_eq_without_eq)]
112#[derive(Clone, PartialEq, ::prost::Message)]
113pub struct Order {
114 #[prost(string, tag="1")]
116 pub order_id: ::prost::alloc::string::String,
117 #[prost(enumeration="OrderType", tag="2")]
119 pub order_type: i32,
120 #[prost(string, tag="3")]
122 pub symbol: ::prost::alloc::string::String,
123 #[prost(float, tag="4")]
125 pub price: f32,
126 #[prost(int64, tag="5")]
128 pub quantity: i64,
129 #[prost(int64, tag="6")]
131 pub filled_quantity: i64,
132 #[prost(enumeration="OrderStatus", tag="7")]
134 pub status: i32,
135 #[prost(int64, tag="8")]
137 pub created_at: i64,
138 #[prost(int64, tag="9")]
140 pub updated_at: i64,
141}
142#[allow(clippy::derive_partial_eq_without_eq)]
144#[derive(Clone, PartialEq, ::prost::Message)]
145pub struct PlaceOrderRequest {
146 #[prost(enumeration="OrderType", tag="1")]
148 pub order_type: i32,
149 #[prost(string, tag="2")]
151 pub symbol: ::prost::alloc::string::String,
152 #[prost(int64, tag="3")]
154 pub price: i64,
155 #[prost(int64, tag="4")]
157 pub quantity: i64,
158}
159#[allow(clippy::derive_partial_eq_without_eq)]
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct PlaceOrderResponse {
163 #[prost(message, optional, tag="1")]
165 pub order: ::core::option::Option<Order>,
166}
167#[allow(clippy::derive_partial_eq_without_eq)]
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct CancelOrderRequest {
171 #[prost(string, tag="1")]
173 pub order_id: ::prost::alloc::string::String,
174}
175#[allow(clippy::derive_partial_eq_without_eq)]
177#[derive(Clone, PartialEq, ::prost::Message)]
178pub struct CancelOrderResponse {
179 #[prost(message, optional, tag="1")]
181 pub order: ::core::option::Option<Order>,
182}
183#[allow(clippy::derive_partial_eq_without_eq)]
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct CancelAllOrdersRequest {
187 #[prost(string, tag="1")]
189 pub symbol: ::prost::alloc::string::String,
190}
191#[allow(clippy::derive_partial_eq_without_eq)]
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct CancelAllOrdersResponse {
195 #[prost(int32, tag="1")]
197 pub cancelled_count: i32,
198 #[prost(message, repeated, tag="2")]
200 pub cancelled_orders: ::prost::alloc::vec::Vec<Order>,
201}
202#[allow(clippy::derive_partial_eq_without_eq)]
204#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct ListOrdersRequest {
206 #[prost(string, tag="1")]
208 pub filter: ::prost::alloc::string::String,
209 #[prost(int32, tag="2")]
211 pub page_size: i32,
212 #[prost(string, tag="3")]
213 pub page_token: ::prost::alloc::string::String,
214}
215#[allow(clippy::derive_partial_eq_without_eq)]
217#[derive(Clone, PartialEq, ::prost::Message)]
218pub struct ListOrdersResponse {
219 #[prost(message, repeated, tag="1")]
221 pub orders: ::prost::alloc::vec::Vec<Order>,
222 #[prost(string, tag="2")]
224 pub next_page_token: ::prost::alloc::string::String,
225}
226#[allow(clippy::derive_partial_eq_without_eq)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct StreamOrderUpdatesRequest {
230 #[prost(string, tag="1")]
232 pub filter: ::prost::alloc::string::String,
233}
234#[allow(clippy::derive_partial_eq_without_eq)]
236#[derive(Clone, PartialEq, ::prost::Message)]
237pub struct OrderUpdate {
238 #[prost(message, optional, tag="1")]
240 pub order: ::core::option::Option<Order>,
241 #[prost(enumeration="order_update::UpdateType", tag="2")]
242 pub update_type: i32,
243}
244pub mod order_update {
246 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
248 #[repr(i32)]
249 pub enum UpdateType {
250 Unspecified = 0,
252 Created = 1,
254 Updated = 2,
256 Filled = 3,
258 Cancelled = 4,
260 }
261 impl UpdateType {
262 pub fn as_str_name(&self) -> &'static str {
267 match self {
268 UpdateType::Unspecified => "UPDATE_TYPE_UNSPECIFIED",
269 UpdateType::Created => "CREATED",
270 UpdateType::Updated => "UPDATED",
271 UpdateType::Filled => "FILLED",
272 UpdateType::Cancelled => "CANCELLED",
273 }
274 }
275 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
277 match value {
278 "UPDATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
279 "CREATED" => Some(Self::Created),
280 "UPDATED" => Some(Self::Updated),
281 "FILLED" => Some(Self::Filled),
282 "CANCELLED" => Some(Self::Cancelled),
283 _ => None,
284 }
285 }
286 }
287}
288#[allow(clippy::derive_partial_eq_without_eq)]
290#[derive(Clone, Copy, PartialEq, ::prost::Message)]
291pub struct EtfLpConfig {
292 #[prost(double, tag="1")]
294 pub basis: f64,
295 #[prost(double, tag="2")]
297 pub offset: f64,
298 #[prost(int64, tag="3")]
300 pub quantity: i64,
301 #[prost(int64, tag="4")]
303 pub depth: i64,
304 #[prost(int64, tag="5")]
306 pub tick_size: i64,
307}
308#[allow(clippy::derive_partial_eq_without_eq)]
310#[derive(Clone, PartialEq, ::prost::Message)]
311pub struct StartEtfLpRequest {
312 #[prost(string, tag="1")]
314 pub etf: ::prost::alloc::string::String,
315 #[prost(message, optional, tag="2")]
317 pub config: ::core::option::Option<EtfLpConfig>,
318}
319#[allow(clippy::derive_partial_eq_without_eq)]
321#[derive(Clone, PartialEq, ::prost::Message)]
322pub struct StartEtfLpResponse {
323 #[prost(enumeration="EtfLpStatus", tag="1")]
325 pub status: i32,
326 #[prost(string, tag="2")]
328 pub message: ::prost::alloc::string::String,
329}
330#[allow(clippy::derive_partial_eq_without_eq)]
332#[derive(Clone, PartialEq, ::prost::Message)]
333pub struct StopEtfLpRequest {
334 #[prost(string, tag="1")]
336 pub etf: ::prost::alloc::string::String,
337}
338#[allow(clippy::derive_partial_eq_without_eq)]
340#[derive(Clone, PartialEq, ::prost::Message)]
341pub struct StopEtfLpResponse {
342 #[prost(enumeration="EtfLpStatus", tag="1")]
344 pub status: i32,
345 #[prost(string, tag="2")]
347 pub message: ::prost::alloc::string::String,
348}
349#[allow(clippy::derive_partial_eq_without_eq)]
351#[derive(Clone, PartialEq, ::prost::Message)]
352pub struct GetEtfLpStatusRequest {
353 #[prost(string, tag="1")]
355 pub etf: ::prost::alloc::string::String,
356}
357#[allow(clippy::derive_partial_eq_without_eq)]
359#[derive(Clone, Copy, PartialEq, ::prost::Message)]
360pub struct GetEtfLpStatusResponse {
361 #[prost(enumeration="EtfLpStatus", tag="1")]
363 pub status: i32,
364 #[prost(message, optional, tag="2")]
366 pub config: ::core::option::Option<EtfLpConfig>,
367 #[prost(int64, tag="3")]
369 pub started_at: i64,
370 #[prost(int64, tag="4")]
371 pub etf_price: i64,
372 #[prost(float, tag="5")]
373 pub future_price: f32,
374 #[prost(float, tag="6")]
375 pub etf_ref_price: f32,
376}
377#[allow(clippy::derive_partial_eq_without_eq)]
379#[derive(Clone, PartialEq, ::prost::Message)]
380pub struct UpdateEtfLpConfigRequest {
381 #[prost(string, tag="1")]
383 pub etf: ::prost::alloc::string::String,
384 #[prost(message, optional, tag="2")]
386 pub config: ::core::option::Option<EtfLpConfig>,
387}
388#[allow(clippy::derive_partial_eq_without_eq)]
390#[derive(Clone, PartialEq, ::prost::Message)]
391pub struct UpdateEtfLpConfigResponse {
392 #[prost(message, optional, tag="1")]
394 pub config: ::core::option::Option<EtfLpConfig>,
395 #[prost(string, tag="2")]
397 pub message: ::prost::alloc::string::String,
398}
399#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
401#[repr(i32)]
402pub enum SessionId {
403 Unspecified = 0,
405 Previous = 1,
407 Connected = 2,
409 OpeningOnePrice = 3,
411 OnePrice = 4,
413 ClosingOnePrice = 5,
415 ViOnePrice = 6,
417 ViOpeningOnePrice = 7,
419 ViClosingOnePrice = 8,
421 UnitTrade = 9,
423 PostMarket = 10,
425 AuctionBid = 11,
427 AuctionAsk = 12,
429 Suspended = 13,
431 Shutdown = 14,
433 Closed = 15,
435 Etc = 16,
437}
438impl SessionId {
439 pub fn as_str_name(&self) -> &'static str {
444 match self {
445 SessionId::Unspecified => "SESSION_ID_UNSPECIFIED",
446 SessionId::Previous => "PREVIOUS",
447 SessionId::Connected => "CONNECTED",
448 SessionId::OpeningOnePrice => "OPENING_ONE_PRICE",
449 SessionId::OnePrice => "ONE_PRICE",
450 SessionId::ClosingOnePrice => "CLOSING_ONE_PRICE",
451 SessionId::ViOnePrice => "VI_ONE_PRICE",
452 SessionId::ViOpeningOnePrice => "VI_OPENING_ONE_PRICE",
453 SessionId::ViClosingOnePrice => "VI_CLOSING_ONE_PRICE",
454 SessionId::UnitTrade => "UNIT_TRADE",
455 SessionId::PostMarket => "POST_MARKET",
456 SessionId::AuctionBid => "AUCTION_BID",
457 SessionId::AuctionAsk => "AUCTION_ASK",
458 SessionId::Suspended => "SUSPENDED",
459 SessionId::Shutdown => "SHUTDOWN",
460 SessionId::Closed => "CLOSED",
461 SessionId::Etc => "ETC",
462 }
463 }
464 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
466 match value {
467 "SESSION_ID_UNSPECIFIED" => Some(Self::Unspecified),
468 "PREVIOUS" => Some(Self::Previous),
469 "CONNECTED" => Some(Self::Connected),
470 "OPENING_ONE_PRICE" => Some(Self::OpeningOnePrice),
471 "ONE_PRICE" => Some(Self::OnePrice),
472 "CLOSING_ONE_PRICE" => Some(Self::ClosingOnePrice),
473 "VI_ONE_PRICE" => Some(Self::ViOnePrice),
474 "VI_OPENING_ONE_PRICE" => Some(Self::ViOpeningOnePrice),
475 "VI_CLOSING_ONE_PRICE" => Some(Self::ViClosingOnePrice),
476 "UNIT_TRADE" => Some(Self::UnitTrade),
477 "POST_MARKET" => Some(Self::PostMarket),
478 "AUCTION_BID" => Some(Self::AuctionBid),
479 "AUCTION_ASK" => Some(Self::AuctionAsk),
480 "SUSPENDED" => Some(Self::Suspended),
481 "SHUTDOWN" => Some(Self::Shutdown),
482 "CLOSED" => Some(Self::Closed),
483 "ETC" => Some(Self::Etc),
484 _ => None,
485 }
486 }
487}
488#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
490#[repr(i32)]
491pub enum OrderType {
492 Unspecified = 0,
494 Buy = 1,
496 Sell = 2,
498}
499impl OrderType {
500 pub fn as_str_name(&self) -> &'static str {
505 match self {
506 OrderType::Unspecified => "ORDER_TYPE_UNSPECIFIED",
507 OrderType::Buy => "BUY",
508 OrderType::Sell => "SELL",
509 }
510 }
511 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
513 match value {
514 "ORDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
515 "BUY" => Some(Self::Buy),
516 "SELL" => Some(Self::Sell),
517 _ => None,
518 }
519 }
520}
521#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
523#[repr(i32)]
524pub enum OrderStatus {
525 Unspecified = 0,
527 Pending = 1,
529 PartialFilled = 2,
531 Filled = 3,
533 Cancelled = 4,
535 Rejected = 5,
537}
538impl OrderStatus {
539 pub fn as_str_name(&self) -> &'static str {
544 match self {
545 OrderStatus::Unspecified => "ORDER_STATUS_UNSPECIFIED",
546 OrderStatus::Pending => "PENDING",
547 OrderStatus::PartialFilled => "PARTIAL_FILLED",
548 OrderStatus::Filled => "FILLED",
549 OrderStatus::Cancelled => "CANCELLED",
550 OrderStatus::Rejected => "REJECTED",
551 }
552 }
553 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
555 match value {
556 "ORDER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
557 "PENDING" => Some(Self::Pending),
558 "PARTIAL_FILLED" => Some(Self::PartialFilled),
559 "FILLED" => Some(Self::Filled),
560 "CANCELLED" => Some(Self::Cancelled),
561 "REJECTED" => Some(Self::Rejected),
562 _ => None,
563 }
564 }
565}
566#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
568#[repr(i32)]
569pub enum EtfLpStatus {
570 Unspecified = 0,
572 Stopped = 1,
574 Starting = 2,
576 Running = 3,
578 Error = 4,
580}
581impl EtfLpStatus {
582 pub fn as_str_name(&self) -> &'static str {
587 match self {
588 EtfLpStatus::Unspecified => "ETF_LP_STATUS_UNSPECIFIED",
589 EtfLpStatus::Stopped => "STOPPED",
590 EtfLpStatus::Starting => "STARTING",
591 EtfLpStatus::Running => "RUNNING",
592 EtfLpStatus::Error => "ERROR",
593 }
594 }
595 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
597 match value {
598 "ETF_LP_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
599 "STOPPED" => Some(Self::Stopped),
600 "STARTING" => Some(Self::Starting),
601 "RUNNING" => Some(Self::Running),
602 "ERROR" => Some(Self::Error),
603 _ => None,
604 }
605 }
606}
607include!("kdo.v1.market.tonic.rs");
608include!("kdo.v1.market.serde.rs");
609