1#[allow(clippy::derive_partial_eq_without_eq)]
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct AutoAmendOrder {
11 #[prost(uint64, tag="1")]
13 pub order_id: u64,
14 #[prost(string, tag="2")]
16 pub symbol: ::prost::alloc::string::String,
17 #[prost(enumeration="super::common::OrderSide", tag="3")]
19 pub side: i32,
20 #[prost(string, tag="4")]
22 pub price: ::prost::alloc::string::String,
23 #[prost(int64, tag="5")]
25 pub quantity: i64,
26 #[prost(int64, tag="6")]
28 pub remaining_quantity: i64,
29 #[prost(message, optional, tag="7")]
31 pub config: ::core::option::Option<AmendConfig>,
32 #[prost(uint32, tag="8")]
34 pub amend_count: u32,
35 #[prost(int64, tag="9")]
37 pub last_amend_time_ms: i64,
38 #[prost(bool, tag="10")]
40 pub is_active: bool,
41}
42#[allow(clippy::derive_partial_eq_without_eq)]
48#[derive(Clone, Copy, PartialEq, ::prost::Message)]
49pub struct AmendConfig {
50 #[prost(message, optional, tag="1")]
52 pub regular_session: ::core::option::Option<RegularSessionConfig>,
53 #[prost(message, optional, tag="2")]
55 pub auction_session: ::core::option::Option<AuctionSessionConfig>,
56 #[prost(uint64, tag="3")]
58 pub initial_wait_ms: u64,
59}
60#[allow(clippy::derive_partial_eq_without_eq)]
62#[derive(Clone, Copy, PartialEq, ::prost::Message)]
63pub struct RegularSessionConfig {
64 #[prost(bool, tag="1")]
66 pub enabled: bool,
67 #[prost(double, tag="2")]
71 pub opposite_qty_ratio_threshold: f64,
72}
73#[allow(clippy::derive_partial_eq_without_eq)]
75#[derive(Clone, Copy, PartialEq, ::prost::Message)]
76pub struct AuctionSessionConfig {
77 #[prost(bool, tag="1")]
79 pub enabled: bool,
80 #[prost(double, tag="2")]
82 pub price_limit_pct: f64,
83 #[prost(double, tag="3")]
85 pub quantity_limit_pct: f64,
86}
87#[allow(clippy::derive_partial_eq_without_eq)]
97#[derive(Clone, Copy, PartialEq, ::prost::Message)]
98pub struct ServiceStatus {
99 #[prost(bool, tag="1")]
101 pub is_running: bool,
102 #[prost(enumeration="super::common::SessionId", tag="2")]
104 pub current_session: i32,
105 #[prost(uint32, tag="3")]
107 pub active_order_count: u32,
108 #[prost(uint32, tag="4")]
110 pub total_order_count: u32,
111}
112#[allow(clippy::derive_partial_eq_without_eq)]
118#[derive(Clone, PartialEq, ::prost::Message)]
119pub struct AutoAmendEvent {
120 #[prost(oneof="auto_amend_event::Event", tags="1, 2, 3, 4, 5")]
121 pub event: ::core::option::Option<auto_amend_event::Event>,
122}
123pub mod auto_amend_event {
125 #[allow(clippy::derive_partial_eq_without_eq)]
126#[derive(Clone, PartialEq, ::prost::Oneof)]
127 pub enum Event {
128 #[prost(message, tag="1")]
129 Amended(super::AmendedEvent),
130 #[prost(message, tag="2")]
131 AmendFailed(super::AmendFailedEvent),
132 #[prost(message, tag="3")]
133 SessionChanged(super::SessionChangedEvent),
134 #[prost(message, tag="4")]
135 OrderRegistered(super::OrderRegisteredEvent),
136 #[prost(message, tag="5")]
137 OrderUnregistered(super::OrderUnregisteredEvent),
138 }
139}
140#[allow(clippy::derive_partial_eq_without_eq)]
142#[derive(Clone, PartialEq, ::prost::Message)]
143pub struct AmendedEvent {
144 #[prost(uint64, tag="1")]
146 pub order_id: u64,
147 #[prost(string, tag="2")]
149 pub symbol: ::prost::alloc::string::String,
150 #[prost(enumeration="AmendAction", tag="3")]
152 pub action: i32,
153 #[prost(int64, tag="4")]
155 pub old_price: i64,
156 #[prost(int64, tag="5")]
158 pub new_price: i64,
159 #[prost(int64, tag="6")]
161 pub old_quantity: i64,
162 #[prost(int64, tag="7")]
164 pub new_quantity: i64,
165 #[prost(string, tag="8")]
167 pub reason: ::prost::alloc::string::String,
168}
169#[allow(clippy::derive_partial_eq_without_eq)]
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct AmendFailedEvent {
173 #[prost(uint64, tag="1")]
175 pub order_id: u64,
176 #[prost(string, tag="2")]
178 pub symbol: ::prost::alloc::string::String,
179 #[prost(string, tag="3")]
181 pub reason: ::prost::alloc::string::String,
182}
183#[allow(clippy::derive_partial_eq_without_eq)]
185#[derive(Clone, Copy, PartialEq, ::prost::Message)]
186pub struct SessionChangedEvent {
187 #[prost(enumeration="super::common::SessionId", tag="1")]
189 pub old_session: i32,
190 #[prost(enumeration="super::common::SessionId", tag="2")]
192 pub new_session: i32,
193}
194#[allow(clippy::derive_partial_eq_without_eq)]
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct OrderRegisteredEvent {
198 #[prost(uint64, tag="1")]
200 pub order_id: u64,
201 #[prost(string, tag="2")]
203 pub symbol: ::prost::alloc::string::String,
204 #[prost(enumeration="super::common::OrderSide", tag="3")]
206 pub side: i32,
207}
208#[allow(clippy::derive_partial_eq_without_eq)]
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct OrderUnregisteredEvent {
212 #[prost(uint64, tag="1")]
214 pub order_id: u64,
215 #[prost(string, tag="2")]
217 pub reason: ::prost::alloc::string::String,
218}
219#[allow(clippy::derive_partial_eq_without_eq)]
224#[derive(Clone, Copy, PartialEq, ::prost::Message)]
225pub struct GetAutoAmendOrderRequest {
226 #[prost(uint64, tag="1")]
228 pub order_id: u64,
229}
230#[allow(clippy::derive_partial_eq_without_eq)]
231#[derive(Clone, PartialEq, ::prost::Message)]
232pub struct ListAutoAmendOrdersRequest {
233 #[prost(string, tag="1")]
235 pub symbol: ::prost::alloc::string::String,
236 #[prost(enumeration="super::common::OrderSide", tag="2")]
238 pub side: i32,
239 #[prost(bool, tag="3")]
241 pub active_only: bool,
242}
243#[allow(clippy::derive_partial_eq_without_eq)]
244#[derive(Clone, PartialEq, ::prost::Message)]
245pub struct ListAutoAmendOrdersResponse {
246 #[prost(message, repeated, tag="1")]
248 pub orders: ::prost::alloc::vec::Vec<AutoAmendOrder>,
249}
250#[allow(clippy::derive_partial_eq_without_eq)]
251#[derive(Clone, Copy, PartialEq, ::prost::Message)]
252pub struct UpdateConfigRequest {
253 #[prost(uint64, tag="1")]
255 pub order_id: u64,
256 #[prost(message, optional, tag="2")]
258 pub config: ::core::option::Option<AmendConfig>,
259}
260#[allow(clippy::derive_partial_eq_without_eq)]
261#[derive(Clone, PartialEq, ::prost::Message)]
262pub struct StreamEventsRequest {
263 #[prost(uint64, repeated, packed="false", tag="1")]
265 pub order_ids: ::prost::alloc::vec::Vec<u64>,
266}
267#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
269#[repr(i32)]
270pub enum AmendAction {
271 Unspecified = 0,
272 ChangePrice = 1,
274 ChangeQuantity = 2,
276 ChangePriceAndQuantity = 3,
278}
279impl AmendAction {
280 pub fn as_str_name(&self) -> &'static str {
285 match self {
286 AmendAction::Unspecified => "AMEND_ACTION_UNSPECIFIED",
287 AmendAction::ChangePrice => "AMEND_ACTION_CHANGE_PRICE",
288 AmendAction::ChangeQuantity => "AMEND_ACTION_CHANGE_QUANTITY",
289 AmendAction::ChangePriceAndQuantity => "AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY",
290 }
291 }
292 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
294 match value {
295 "AMEND_ACTION_UNSPECIFIED" => Some(Self::Unspecified),
296 "AMEND_ACTION_CHANGE_PRICE" => Some(Self::ChangePrice),
297 "AMEND_ACTION_CHANGE_QUANTITY" => Some(Self::ChangeQuantity),
298 "AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY" => Some(Self::ChangePriceAndQuantity),
299 _ => None,
300 }
301 }
302}
303include!("kdo.v1.auto_amend.tonic.rs");
304include!("kdo.v1.auto_amend.serde.rs");
305