1#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct EtfLp {
7 #[prost(string, tag="1")]
9 pub symbol: ::prost::alloc::string::String,
10 #[prost(string, tag="2")]
12 pub fund_code: ::prost::alloc::string::String,
13 #[prost(int64, tag="6")]
15 pub basis: i64,
16 #[prost(int64, tag="7")]
18 pub quantity: i64,
19 #[prost(uint32, tag="8")]
21 pub depth: u32,
22 #[prost(int64, tag="9")]
24 pub tick_size: i64,
25 #[prost(message, optional, tag="10")]
27 pub offset: ::core::option::Option<EtfLpOffset>,
28}
29#[allow(clippy::derive_partial_eq_without_eq)]
33#[derive(Clone, PartialEq, ::prost::Message)]
34pub struct EtfLpStatus {
35 #[prost(string, tag="1")]
37 pub etf_symbol: ::prost::alloc::string::String,
38 #[prost(string, tag="2")]
40 pub fund_code: ::prost::alloc::string::String,
41 #[prost(int64, tag="6")]
43 pub basis: i64,
44 #[prost(int64, tag="7")]
46 pub quantity: i64,
47 #[prost(enumeration="EtfLpState", tag="8")]
49 pub state: i32,
50 #[prost(message, optional, tag="9")]
52 pub pricing: ::core::option::Option<LpPricing>,
53 #[prost(message, optional, tag="10")]
55 pub fill_statistics: ::core::option::Option<FillStatistics>,
56 #[prost(message, optional, tag="11")]
58 pub offset: ::core::option::Option<EtfLpOffset>,
59}
60#[allow(clippy::derive_partial_eq_without_eq)]
62#[derive(Clone, PartialEq, ::prost::Message)]
63pub struct EtfLpStatusUpdate {
64 #[prost(string, tag="1")]
66 pub etf_symbol: ::prost::alloc::string::String,
67 #[prost(string, tag="2")]
69 pub fund_code: ::prost::alloc::string::String,
70 #[prost(int64, optional, tag="6")]
72 pub basis: ::core::option::Option<i64>,
73 #[prost(int64, optional, tag="7")]
75 pub quantity: ::core::option::Option<i64>,
76 #[prost(enumeration="EtfLpState", optional, tag="8")]
78 pub state: ::core::option::Option<i32>,
79 #[prost(message, optional, tag="9")]
81 pub pricing: ::core::option::Option<LpPricing>,
82 #[prost(message, optional, tag="10")]
84 pub fill_statistics: ::core::option::Option<FillStatistics>,
85 #[prost(message, optional, tag="11")]
87 pub offset: ::core::option::Option<EtfLpOffset>,
88}
89#[allow(clippy::derive_partial_eq_without_eq)]
91#[derive(Clone, Copy, PartialEq, ::prost::Message)]
92pub struct EtfLpOffset {
93 #[prost(int64, tag="1")]
95 pub bid_offset: i64,
96 #[prost(int64, tag="2")]
97 pub ask_offset: i64,
98 #[prost(int64, tag="3")]
100 pub min_offset: i64,
101 #[prost(int64, tag="4")]
102 pub max_offset: i64,
103 #[prost(bool, tag="7")]
105 pub time_adjustment_enabled: bool,
106 #[prost(uint64, tag="8")]
107 pub adjustment_interval_secs: u64,
108 #[prost(float, tag="9")]
109 pub adjustment_step: f32,
110 #[prost(bool, tag="10")]
111 pub reset_on_fill: bool,
112 #[prost(bool, tag="17")]
114 pub position_adjustment_enabled: bool,
115 #[prost(enumeration="PositionAdjustmentStrategy", tag="18")]
116 pub position_strategy: i32,
117 #[prost(int64, tag="19")]
118 pub position_threshold: i64,
119 #[prost(float, tag="20")]
120 pub position_adjustment_step: f32,
121}
122#[allow(clippy::derive_partial_eq_without_eq)]
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct FillStatistics {
126 #[prost(int64, tag="1")]
128 pub buy_filled_quantity: i64,
129 #[prost(int64, tag="2")]
131 pub sell_filled_quantity: i64,
132 #[prost(string, tag="3")]
134 pub buy_total_amount: ::prost::alloc::string::String,
135 #[prost(string, tag="4")]
137 pub sell_total_amount: ::prost::alloc::string::String,
138}
139#[allow(clippy::derive_partial_eq_without_eq)]
141#[derive(Clone, Copy, PartialEq, ::prost::Message)]
142pub struct OrderStats {
143 #[prost(uint64, tag="1")]
145 pub total_orders_sent: u64,
146 #[prost(uint64, tag="2")]
148 pub orders_accepted: u64,
149 #[prost(uint64, tag="3")]
151 pub orders_rejected: u64,
152 #[prost(uint64, tag="4")]
154 pub orders_filled: u64,
155 #[prost(int64, tag="5")]
157 pub total_filled_quantity: i64,
158 #[prost(int64, tag="6")]
160 pub daily_filled_quantity: i64,
161}
162#[allow(clippy::derive_partial_eq_without_eq)]
179#[derive(Clone, Copy, PartialEq, ::prost::Message)]
180pub struct TimeFrameStatus {
181 #[prost(uint64, tag="1")]
183 pub window_seconds: u64,
184 #[prost(uint32, tag="2")]
186 pub current_count: u32,
187 #[prost(uint32, tag="3")]
189 pub max_orders: u32,
190 #[prost(double, tag="4")]
192 pub usage_percent: f64,
193}
194#[allow(clippy::derive_partial_eq_without_eq)]
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct LpPricing {
198 #[prost(string, tag="1")]
200 pub etf_price: ::prost::alloc::string::String,
201 #[prost(string, tag="3")]
206 pub etf_nav: ::prost::alloc::string::String,
207}
208#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct GetEtfLpRequest {
213 #[prost(string, tag="1")]
214 pub etf: ::prost::alloc::string::String,
215 #[prost(string, tag="2")]
216 pub fund: ::prost::alloc::string::String,
217}
218#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct ListEtfLpsRequest {
222 #[prost(uint32, optional, tag="1")]
224 pub page_size: ::core::option::Option<u32>,
225 #[prost(string, optional, tag="2")]
227 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
228 #[prost(string, tag="3")]
238 pub filter: ::prost::alloc::string::String,
239}
240#[allow(clippy::derive_partial_eq_without_eq)]
241#[derive(Clone, PartialEq, ::prost::Message)]
242pub struct ListEtfLpsResponse {
243 #[prost(message, repeated, tag="1")]
245 pub etf_lps: ::prost::alloc::vec::Vec<EtfLp>,
246 #[prost(string, tag="2")]
248 pub next_page_token: ::prost::alloc::string::String,
249}
250#[allow(clippy::derive_partial_eq_without_eq)]
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct ListEtfLpStatusesRequest {
253 #[prost(uint32, optional, tag="1")]
255 pub page_size: ::core::option::Option<u32>,
256 #[prost(string, optional, tag="2")]
258 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
259 #[prost(string, tag="3")]
276 pub filter: ::prost::alloc::string::String,
277 #[prost(string, tag="5")]
285 pub order_by: ::prost::alloc::string::String,
286}
287#[allow(clippy::derive_partial_eq_without_eq)]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct ListEtfLpStatusesResponse {
290 #[prost(message, repeated, tag="1")]
292 pub etf_lp_statuses: ::prost::alloc::vec::Vec<EtfLpStatus>,
293 #[prost(string, tag="2")]
295 pub next_page_token: ::prost::alloc::string::String,
296}
297#[allow(clippy::derive_partial_eq_without_eq)]
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct UpdateEtfLpRequest {
301 #[prost(message, optional, tag="1")]
302 pub lp: ::core::option::Option<EtfLp>,
303 #[prost(message, optional, tag="2")]
304 pub update_mask: ::core::option::Option<super::super::super::google::protobuf::FieldMask>,
305}
306#[allow(clippy::derive_partial_eq_without_eq)]
308#[derive(Clone, PartialEq, ::prost::Message)]
309pub struct GetEtfLpStatusRequest {
310 #[prost(string, tag="1")]
311 pub etf: ::prost::alloc::string::String,
312 #[prost(string, tag="2")]
313 pub fund: ::prost::alloc::string::String,
314}
315#[allow(clippy::derive_partial_eq_without_eq)]
317#[derive(Clone, PartialEq, ::prost::Message)]
318pub struct StreamEtfLpStatusUpdateRequest {
319 #[prost(string, tag="1")]
320 pub etf: ::prost::alloc::string::String,
321 #[prost(string, tag="2")]
322 pub fund: ::prost::alloc::string::String,
323}
324#[allow(clippy::derive_partial_eq_without_eq)]
326#[derive(Clone, PartialEq, ::prost::Message)]
327pub struct StartEtfLpRequest {
328 #[prost(string, tag="1")]
329 pub etf: ::prost::alloc::string::String,
330 #[prost(string, tag="2")]
331 pub fund: ::prost::alloc::string::String,
332}
333#[allow(clippy::derive_partial_eq_without_eq)]
335#[derive(Clone, PartialEq, ::prost::Message)]
336pub struct StartEtfLpResponse {
337 #[prost(message, optional, tag="1")]
339 pub status: ::core::option::Option<EtfLpStatus>,
340 #[prost(string, tag="2")]
342 pub message: ::prost::alloc::string::String,
343}
344#[allow(clippy::derive_partial_eq_without_eq)]
346#[derive(Clone, PartialEq, ::prost::Message)]
347pub struct StopEtfLpRequest {
348 #[prost(string, tag="1")]
349 pub etf: ::prost::alloc::string::String,
350 #[prost(string, tag="2")]
351 pub fund: ::prost::alloc::string::String,
352}
353#[allow(clippy::derive_partial_eq_without_eq)]
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct StopEtfLpResponse {
357 #[prost(message, optional, tag="1")]
359 pub status: ::core::option::Option<EtfLpStatus>,
360 #[prost(string, tag="2")]
362 pub message: ::prost::alloc::string::String,
363}
364#[allow(clippy::derive_partial_eq_without_eq)]
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct StreamLpEventsRequest {
368 #[prost(string, tag="1")]
369 pub etf: ::prost::alloc::string::String,
370 #[prost(string, tag="2")]
371 pub fund: ::prost::alloc::string::String,
372}
373#[allow(clippy::derive_partial_eq_without_eq)]
375#[derive(Clone, PartialEq, ::prost::Message)]
376pub struct EtfLpEvent {
377 #[prost(string, tag="1")]
379 pub symbol: ::prost::alloc::string::String,
380 #[prost(enumeration="TaskType", tag="2")]
382 pub task_type: i32,
383 #[prost(enumeration="LpEventType", tag="3")]
385 pub r#type: i32,
386 #[prost(string, tag="4")]
388 pub message: ::prost::alloc::string::String,
389 #[prost(message, optional, tag="5")]
391 pub timestamp: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
392 #[prost(enumeration="LpEventLevel", tag="6")]
394 pub level: i32,
395}
396#[allow(clippy::derive_partial_eq_without_eq)]
398#[derive(Clone, PartialEq, ::prost::Message)]
399pub struct GetUserOrderBookRequest {
400 #[prost(string, tag="1")]
401 pub etf: ::prost::alloc::string::String,
402 #[prost(string, tag="2")]
403 pub fund: ::prost::alloc::string::String,
404}
405#[allow(clippy::derive_partial_eq_without_eq)]
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct UserOrderbookData {
409 #[prost(string, repeated, tag="1")]
411 pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
412 #[prost(string, repeated, tag="2")]
414 pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
415 #[prost(int64, repeated, tag="3")]
417 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
418 #[prost(int64, repeated, tag="4")]
420 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
421}
422#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
424#[repr(i32)]
425pub enum PositionAdjustmentStrategy {
426 Unspecified = 0,
427 Avoidance = 1,
429 Turnover = 2,
431 All = 10,
433}
434impl PositionAdjustmentStrategy {
435 pub fn as_str_name(&self) -> &'static str {
440 match self {
441 PositionAdjustmentStrategy::Unspecified => "POSITION_ADJUSTMENT_STRATEGY_UNSPECIFIED",
442 PositionAdjustmentStrategy::Avoidance => "POSITION_ADJUSTMENT_STRATEGY_AVOIDANCE",
443 PositionAdjustmentStrategy::Turnover => "POSITION_ADJUSTMENT_STRATEGY_TURNOVER",
444 PositionAdjustmentStrategy::All => "POSITION_ADJUSTMENT_STRATEGY_ALL",
445 }
446 }
447 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
449 match value {
450 "POSITION_ADJUSTMENT_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
451 "POSITION_ADJUSTMENT_STRATEGY_AVOIDANCE" => Some(Self::Avoidance),
452 "POSITION_ADJUSTMENT_STRATEGY_TURNOVER" => Some(Self::Turnover),
453 "POSITION_ADJUSTMENT_STRATEGY_ALL" => Some(Self::All),
454 _ => None,
455 }
456 }
457}
458#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
460#[repr(i32)]
461pub enum EtfLpState {
462 Unspecified = 0,
463 Idle = 1,
464 Running = 2,
465 Stopping = 3,
466 Error = 4,
467}
468impl EtfLpState {
469 pub fn as_str_name(&self) -> &'static str {
474 match self {
475 EtfLpState::Unspecified => "ETF_LP_STATE_UNSPECIFIED",
476 EtfLpState::Idle => "ETF_LP_STATE_IDLE",
477 EtfLpState::Running => "ETF_LP_STATE_RUNNING",
478 EtfLpState::Stopping => "ETF_LP_STATE_STOPPING",
479 EtfLpState::Error => "ETF_LP_STATE_ERROR",
480 }
481 }
482 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
484 match value {
485 "ETF_LP_STATE_UNSPECIFIED" => Some(Self::Unspecified),
486 "ETF_LP_STATE_IDLE" => Some(Self::Idle),
487 "ETF_LP_STATE_RUNNING" => Some(Self::Running),
488 "ETF_LP_STATE_STOPPING" => Some(Self::Stopping),
489 "ETF_LP_STATE_ERROR" => Some(Self::Error),
490 _ => None,
491 }
492 }
493}
494#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
496#[repr(i32)]
497pub enum TaskType {
498 Unspecified = 0,
499 Quote = 1,
500 Hedge = 2,
501}
502impl TaskType {
503 pub fn as_str_name(&self) -> &'static str {
508 match self {
509 TaskType::Unspecified => "TASK_TYPE_UNSPECIFIED",
510 TaskType::Quote => "TASK_TYPE_QUOTE",
511 TaskType::Hedge => "TASK_TYPE_HEDGE",
512 }
513 }
514 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
516 match value {
517 "TASK_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
518 "TASK_TYPE_QUOTE" => Some(Self::Quote),
519 "TASK_TYPE_HEDGE" => Some(Self::Hedge),
520 _ => None,
521 }
522 }
523}
524#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
526#[repr(i32)]
527pub enum LpEventType {
528 Unspecified = 0,
529 Initialization = 1,
531 PriceUpdate = 2,
533 OrderSubmit = 3,
535 OrderProcessing = 4,
537 NavCalculation = 5,
539 OrderBookUpdate = 6,
541 OrderLimitExceeded = 7,
543 FundLimitExceeded = 8,
545 StockInventoryExceeded = 9,
547 SystemError = 12,
549 MarketSession = 13,
551 FundUpdate = 14,
553 OffsetAdjustmentTimeStrategy = 15,
555 OffsetAdjustmentPositionStrategy = 16,
557}
558impl LpEventType {
559 pub fn as_str_name(&self) -> &'static str {
564 match self {
565 LpEventType::Unspecified => "LP_EVENT_TYPE_UNSPECIFIED",
566 LpEventType::Initialization => "LP_EVENT_TYPE_INITIALIZATION",
567 LpEventType::PriceUpdate => "LP_EVENT_TYPE_PRICE_UPDATE",
568 LpEventType::OrderSubmit => "LP_EVENT_TYPE_ORDER_SUBMIT",
569 LpEventType::OrderProcessing => "LP_EVENT_TYPE_ORDER_PROCESSING",
570 LpEventType::NavCalculation => "LP_EVENT_TYPE_NAV_CALCULATION",
571 LpEventType::OrderBookUpdate => "LP_EVENT_TYPE_ORDER_BOOK_UPDATE",
572 LpEventType::OrderLimitExceeded => "LP_EVENT_TYPE_ORDER_LIMIT_EXCEEDED",
573 LpEventType::FundLimitExceeded => "LP_EVENT_TYPE_FUND_LIMIT_EXCEEDED",
574 LpEventType::StockInventoryExceeded => "LP_EVENT_TYPE_STOCK_INVENTORY_EXCEEDED",
575 LpEventType::SystemError => "LP_EVENT_TYPE_SYSTEM_ERROR",
576 LpEventType::MarketSession => "LP_EVENT_TYPE_MARKET_SESSION",
577 LpEventType::FundUpdate => "LP_EVENT_TYPE_FUND_UPDATE",
578 LpEventType::OffsetAdjustmentTimeStrategy => "LP_EVENT_TYPE_OFFSET_ADJUSTMENT_TIME_STRATEGY",
579 LpEventType::OffsetAdjustmentPositionStrategy => "LP_EVENT_TYPE_OFFSET_ADJUSTMENT_POSITION_STRATEGY",
580 }
581 }
582 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
584 match value {
585 "LP_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
586 "LP_EVENT_TYPE_INITIALIZATION" => Some(Self::Initialization),
587 "LP_EVENT_TYPE_PRICE_UPDATE" => Some(Self::PriceUpdate),
588 "LP_EVENT_TYPE_ORDER_SUBMIT" => Some(Self::OrderSubmit),
589 "LP_EVENT_TYPE_ORDER_PROCESSING" => Some(Self::OrderProcessing),
590 "LP_EVENT_TYPE_NAV_CALCULATION" => Some(Self::NavCalculation),
591 "LP_EVENT_TYPE_ORDER_BOOK_UPDATE" => Some(Self::OrderBookUpdate),
592 "LP_EVENT_TYPE_ORDER_LIMIT_EXCEEDED" => Some(Self::OrderLimitExceeded),
593 "LP_EVENT_TYPE_FUND_LIMIT_EXCEEDED" => Some(Self::FundLimitExceeded),
594 "LP_EVENT_TYPE_STOCK_INVENTORY_EXCEEDED" => Some(Self::StockInventoryExceeded),
595 "LP_EVENT_TYPE_SYSTEM_ERROR" => Some(Self::SystemError),
596 "LP_EVENT_TYPE_MARKET_SESSION" => Some(Self::MarketSession),
597 "LP_EVENT_TYPE_FUND_UPDATE" => Some(Self::FundUpdate),
598 "LP_EVENT_TYPE_OFFSET_ADJUSTMENT_TIME_STRATEGY" => Some(Self::OffsetAdjustmentTimeStrategy),
599 "LP_EVENT_TYPE_OFFSET_ADJUSTMENT_POSITION_STRATEGY" => Some(Self::OffsetAdjustmentPositionStrategy),
600 _ => None,
601 }
602 }
603}
604#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
606#[repr(i32)]
607pub enum LpEventLevel {
608 Unspecified = 0,
609 Debug = 1,
611 Info = 2,
613 Warning = 3,
615 Error = 4,
617 Critical = 5,
619}
620impl LpEventLevel {
621 pub fn as_str_name(&self) -> &'static str {
626 match self {
627 LpEventLevel::Unspecified => "LP_EVENT_LEVEL_UNSPECIFIED",
628 LpEventLevel::Debug => "LP_EVENT_LEVEL_DEBUG",
629 LpEventLevel::Info => "LP_EVENT_LEVEL_INFO",
630 LpEventLevel::Warning => "LP_EVENT_LEVEL_WARNING",
631 LpEventLevel::Error => "LP_EVENT_LEVEL_ERROR",
632 LpEventLevel::Critical => "LP_EVENT_LEVEL_CRITICAL",
633 }
634 }
635 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
637 match value {
638 "LP_EVENT_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
639 "LP_EVENT_LEVEL_DEBUG" => Some(Self::Debug),
640 "LP_EVENT_LEVEL_INFO" => Some(Self::Info),
641 "LP_EVENT_LEVEL_WARNING" => Some(Self::Warning),
642 "LP_EVENT_LEVEL_ERROR" => Some(Self::Error),
643 "LP_EVENT_LEVEL_CRITICAL" => Some(Self::Critical),
644 _ => None,
645 }
646 }
647}
648include!("kdo.v1.lp.tonic.rs");
649include!("kdo.v1.lp.serde.rs");
650