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(double, tag="1")]
95 pub bid_offset: f64,
96 #[prost(double, tag="2")]
97 pub ask_offset: f64,
98 #[prost(double, tag="3")]
100 pub min_offset: f64,
101 #[prost(double, tag="4")]
102 pub max_offset: f64,
103 #[prost(bool, tag="7")]
105 pub time_adjustment_enabled: bool,
106 #[prost(uint64, tag="8")]
107 pub adjustment_interval_secs: u64,
108 #[prost(double, tag="9")]
109 pub adjustment_step: f64,
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(double, tag="20")]
120 pub position_adjustment_step: f64,
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(string, tag="1")]
303 pub symbol: ::prost::alloc::string::String,
304 #[prost(string, tag="2")]
306 pub fund_code: ::prost::alloc::string::String,
307 #[prost(oneof="update_etf_lp_request::Update", tags="3, 4, 5")]
309 pub update: ::core::option::Option<update_etf_lp_request::Update>,
310}
311pub mod update_etf_lp_request {
313 #[allow(clippy::derive_partial_eq_without_eq)]
315#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
316 pub enum Update {
317 #[prost(int64, tag="3")]
319 Quantity(i64),
320 #[prost(uint32, tag="4")]
322 Depth(u32),
323 #[prost(message, tag="5")]
325 Offset(super::EtfLpOffset),
326 }
327}
328#[allow(clippy::derive_partial_eq_without_eq)]
330#[derive(Clone, PartialEq, ::prost::Message)]
331pub struct GetEtfLpStatusRequest {
332 #[prost(string, tag="1")]
333 pub etf: ::prost::alloc::string::String,
334 #[prost(string, tag="2")]
335 pub fund: ::prost::alloc::string::String,
336}
337#[allow(clippy::derive_partial_eq_without_eq)]
339#[derive(Clone, PartialEq, ::prost::Message)]
340pub struct StreamEtfLpStatusUpdateRequest {
341 #[prost(string, tag="1")]
342 pub etf: ::prost::alloc::string::String,
343 #[prost(string, tag="2")]
344 pub fund: ::prost::alloc::string::String,
345}
346#[allow(clippy::derive_partial_eq_without_eq)]
348#[derive(Clone, PartialEq, ::prost::Message)]
349pub struct StartEtfLpRequest {
350 #[prost(string, tag="1")]
351 pub etf: ::prost::alloc::string::String,
352 #[prost(string, tag="2")]
353 pub fund: ::prost::alloc::string::String,
354}
355#[allow(clippy::derive_partial_eq_without_eq)]
357#[derive(Clone, PartialEq, ::prost::Message)]
358pub struct StartEtfLpResponse {
359 #[prost(message, optional, tag="1")]
361 pub status: ::core::option::Option<EtfLpStatus>,
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 StopEtfLpRequest {
370 #[prost(string, tag="1")]
371 pub etf: ::prost::alloc::string::String,
372 #[prost(string, tag="2")]
373 pub fund: ::prost::alloc::string::String,
374}
375#[allow(clippy::derive_partial_eq_without_eq)]
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct StopEtfLpResponse {
379 #[prost(message, optional, tag="1")]
381 pub status: ::core::option::Option<EtfLpStatus>,
382 #[prost(string, tag="2")]
384 pub message: ::prost::alloc::string::String,
385}
386#[allow(clippy::derive_partial_eq_without_eq)]
388#[derive(Clone, PartialEq, ::prost::Message)]
389pub struct StreamLpEventsRequest {
390 #[prost(string, tag="1")]
391 pub etf: ::prost::alloc::string::String,
392 #[prost(string, tag="2")]
393 pub fund: ::prost::alloc::string::String,
394}
395#[allow(clippy::derive_partial_eq_without_eq)]
397#[derive(Clone, PartialEq, ::prost::Message)]
398pub struct GetUserOrderBookRequest {
399 #[prost(string, tag="1")]
400 pub etf: ::prost::alloc::string::String,
401 #[prost(string, tag="2")]
402 pub fund: ::prost::alloc::string::String,
403}
404#[allow(clippy::derive_partial_eq_without_eq)]
406#[derive(Clone, PartialEq, ::prost::Message)]
407pub struct UserOrderbookData {
408 #[prost(string, repeated, tag="1")]
410 pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
411 #[prost(string, repeated, tag="2")]
413 pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
414 #[prost(int64, repeated, tag="3")]
416 pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
417 #[prost(int64, repeated, tag="4")]
419 pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
420}
421#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
423#[repr(i32)]
424pub enum PositionAdjustmentStrategy {
425 Unspecified = 0,
426 Avoidance = 1,
428 Turnover = 2,
430 All = 10,
432}
433impl PositionAdjustmentStrategy {
434 pub fn as_str_name(&self) -> &'static str {
439 match self {
440 PositionAdjustmentStrategy::Unspecified => "POSITION_ADJUSTMENT_STRATEGY_UNSPECIFIED",
441 PositionAdjustmentStrategy::Avoidance => "POSITION_ADJUSTMENT_STRATEGY_AVOIDANCE",
442 PositionAdjustmentStrategy::Turnover => "POSITION_ADJUSTMENT_STRATEGY_TURNOVER",
443 PositionAdjustmentStrategy::All => "POSITION_ADJUSTMENT_STRATEGY_ALL",
444 }
445 }
446 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
448 match value {
449 "POSITION_ADJUSTMENT_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
450 "POSITION_ADJUSTMENT_STRATEGY_AVOIDANCE" => Some(Self::Avoidance),
451 "POSITION_ADJUSTMENT_STRATEGY_TURNOVER" => Some(Self::Turnover),
452 "POSITION_ADJUSTMENT_STRATEGY_ALL" => Some(Self::All),
453 _ => None,
454 }
455 }
456}
457#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
459#[repr(i32)]
460pub enum EtfLpState {
461 Unspecified = 0,
462 Idle = 1,
463 Running = 2,
464 Stopping = 3,
465 Error = 4,
466}
467impl EtfLpState {
468 pub fn as_str_name(&self) -> &'static str {
473 match self {
474 EtfLpState::Unspecified => "ETF_LP_STATE_UNSPECIFIED",
475 EtfLpState::Idle => "ETF_LP_STATE_IDLE",
476 EtfLpState::Running => "ETF_LP_STATE_RUNNING",
477 EtfLpState::Stopping => "ETF_LP_STATE_STOPPING",
478 EtfLpState::Error => "ETF_LP_STATE_ERROR",
479 }
480 }
481 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
483 match value {
484 "ETF_LP_STATE_UNSPECIFIED" => Some(Self::Unspecified),
485 "ETF_LP_STATE_IDLE" => Some(Self::Idle),
486 "ETF_LP_STATE_RUNNING" => Some(Self::Running),
487 "ETF_LP_STATE_STOPPING" => Some(Self::Stopping),
488 "ETF_LP_STATE_ERROR" => Some(Self::Error),
489 _ => None,
490 }
491 }
492}
493include!("kdo.v1.lp.tonic.rs");
494include!("kdo.v1.lp.serde.rs");
495