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}
57#[allow(clippy::derive_partial_eq_without_eq)]
59#[derive(Clone, Copy, PartialEq, ::prost::Message)]
60pub struct RegularSessionConfig {
61 #[prost(bool, tag="1")]
63 pub enabled: bool,
64 #[prost(double, tag="2")]
68 pub opposite_qty_ratio_threshold: f64,
69}
70#[allow(clippy::derive_partial_eq_without_eq)]
72#[derive(Clone, Copy, PartialEq, ::prost::Message)]
73pub struct AuctionSessionConfig {
74 #[prost(bool, tag="1")]
76 pub enabled: bool,
77 #[prost(double, tag="2")]
79 pub price_limit_pct: f64,
80 #[prost(double, tag="3")]
82 pub quantity_limit_pct: f64,
83}
84#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(Clone, Copy, PartialEq, ::prost::Message)]
95pub struct ServiceStatus {
96 #[prost(bool, tag="1")]
98 pub is_running: bool,
99 #[prost(enumeration="super::common::SessionId", tag="2")]
101 pub current_session: i32,
102 #[prost(uint32, tag="3")]
104 pub active_order_count: u32,
105 #[prost(uint32, tag="4")]
107 pub total_order_count: u32,
108}
109#[allow(clippy::derive_partial_eq_without_eq)]
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct AutoAmendEvent {
117 #[prost(oneof="auto_amend_event::Event", tags="1, 2, 3, 4, 5")]
118 pub event: ::core::option::Option<auto_amend_event::Event>,
119}
120pub mod auto_amend_event {
122 #[allow(clippy::derive_partial_eq_without_eq)]
123#[derive(Clone, PartialEq, ::prost::Oneof)]
124 pub enum Event {
125 #[prost(message, tag="1")]
126 Amended(super::AmendedEvent),
127 #[prost(message, tag="2")]
128 AmendFailed(super::AmendFailedEvent),
129 #[prost(message, tag="3")]
130 SessionChanged(super::SessionChangedEvent),
131 #[prost(message, tag="4")]
132 OrderRegistered(super::OrderRegisteredEvent),
133 #[prost(message, tag="5")]
134 OrderUnregistered(super::OrderUnregisteredEvent),
135 }
136}
137#[allow(clippy::derive_partial_eq_without_eq)]
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct AmendedEvent {
141 #[prost(uint64, tag="1")]
143 pub order_id: u64,
144 #[prost(string, tag="2")]
146 pub symbol: ::prost::alloc::string::String,
147 #[prost(enumeration="AmendAction", tag="3")]
149 pub action: i32,
150 #[prost(int64, tag="4")]
152 pub old_price: i64,
153 #[prost(int64, tag="5")]
155 pub new_price: i64,
156 #[prost(int64, tag="6")]
158 pub old_quantity: i64,
159 #[prost(int64, tag="7")]
161 pub new_quantity: i64,
162 #[prost(string, tag="8")]
164 pub reason: ::prost::alloc::string::String,
165}
166#[allow(clippy::derive_partial_eq_without_eq)]
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct AmendFailedEvent {
170 #[prost(uint64, tag="1")]
172 pub order_id: u64,
173 #[prost(string, tag="2")]
175 pub symbol: ::prost::alloc::string::String,
176 #[prost(string, tag="3")]
178 pub reason: ::prost::alloc::string::String,
179}
180#[allow(clippy::derive_partial_eq_without_eq)]
182#[derive(Clone, Copy, PartialEq, ::prost::Message)]
183pub struct SessionChangedEvent {
184 #[prost(enumeration="super::common::SessionId", tag="1")]
186 pub old_session: i32,
187 #[prost(enumeration="super::common::SessionId", tag="2")]
189 pub new_session: i32,
190}
191#[allow(clippy::derive_partial_eq_without_eq)]
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct OrderRegisteredEvent {
195 #[prost(uint64, tag="1")]
197 pub order_id: u64,
198 #[prost(string, tag="2")]
200 pub symbol: ::prost::alloc::string::String,
201 #[prost(enumeration="super::common::OrderSide", tag="3")]
203 pub side: i32,
204}
205#[allow(clippy::derive_partial_eq_without_eq)]
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct OrderUnregisteredEvent {
209 #[prost(uint64, tag="1")]
211 pub order_id: u64,
212 #[prost(string, tag="2")]
214 pub reason: ::prost::alloc::string::String,
215}
216#[allow(clippy::derive_partial_eq_without_eq)]
221#[derive(Clone, Copy, PartialEq, ::prost::Message)]
222pub struct GetAutoAmendOrderRequest {
223 #[prost(uint64, tag="1")]
225 pub order_id: u64,
226}
227#[allow(clippy::derive_partial_eq_without_eq)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct ListAutoAmendOrdersRequest {
230 #[prost(string, tag="1")]
232 pub symbol: ::prost::alloc::string::String,
233 #[prost(enumeration="super::common::OrderSide", tag="2")]
235 pub side: i32,
236 #[prost(bool, tag="3")]
238 pub active_only: bool,
239}
240#[allow(clippy::derive_partial_eq_without_eq)]
241#[derive(Clone, PartialEq, ::prost::Message)]
242pub struct ListAutoAmendOrdersResponse {
243 #[prost(message, repeated, tag="1")]
245 pub orders: ::prost::alloc::vec::Vec<AutoAmendOrder>,
246}
247#[allow(clippy::derive_partial_eq_without_eq)]
248#[derive(Clone, Copy, PartialEq, ::prost::Message)]
249pub struct UpdateConfigRequest {
250 #[prost(uint64, tag="1")]
252 pub order_id: u64,
253 #[prost(message, optional, tag="2")]
255 pub config: ::core::option::Option<AmendConfig>,
256}
257#[allow(clippy::derive_partial_eq_without_eq)]
258#[derive(Clone, PartialEq, ::prost::Message)]
259pub struct StreamEventsRequest {
260 #[prost(uint64, repeated, packed="false", tag="1")]
262 pub order_ids: ::prost::alloc::vec::Vec<u64>,
263}
264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
266#[repr(i32)]
267pub enum AmendAction {
268 Unspecified = 0,
269 ChangePrice = 1,
271 ChangeQuantity = 2,
273 ChangePriceAndQuantity = 3,
275}
276impl AmendAction {
277 pub fn as_str_name(&self) -> &'static str {
282 match self {
283 AmendAction::Unspecified => "AMEND_ACTION_UNSPECIFIED",
284 AmendAction::ChangePrice => "AMEND_ACTION_CHANGE_PRICE",
285 AmendAction::ChangeQuantity => "AMEND_ACTION_CHANGE_QUANTITY",
286 AmendAction::ChangePriceAndQuantity => "AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY",
287 }
288 }
289 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
291 match value {
292 "AMEND_ACTION_UNSPECIFIED" => Some(Self::Unspecified),
293 "AMEND_ACTION_CHANGE_PRICE" => Some(Self::ChangePrice),
294 "AMEND_ACTION_CHANGE_QUANTITY" => Some(Self::ChangeQuantity),
295 "AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY" => Some(Self::ChangePriceAndQuantity),
296 _ => None,
297 }
298 }
299}
300include!("kdo.v1.auto_amend.tonic.rs");
301include!("kdo.v1.auto_amend.serde.rs");
302