#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoAmendOrder {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="super::common::OrderSide", tag="3")]
pub side: i32,
#[prost(string, tag="4")]
pub price: ::prost::alloc::string::String,
#[prost(int64, tag="5")]
pub quantity: i64,
#[prost(int64, tag="6")]
pub remaining_quantity: i64,
#[prost(message, optional, tag="7")]
pub config: ::core::option::Option<AmendConfig>,
#[prost(uint32, tag="8")]
pub amend_count: u32,
#[prost(int64, tag="9")]
pub last_amend_time_ms: i64,
#[prost(bool, tag="10")]
pub is_active: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AmendConfig {
#[prost(message, optional, tag="1")]
pub regular_session: ::core::option::Option<RegularSessionConfig>,
#[prost(message, optional, tag="2")]
pub auction_session: ::core::option::Option<AuctionSessionConfig>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RegularSessionConfig {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(double, tag="2")]
pub opposite_qty_ratio_threshold: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AuctionSessionConfig {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(double, tag="2")]
pub price_limit_pct: f64,
#[prost(double, tag="3")]
pub quantity_limit_pct: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ServiceStatus {
#[prost(bool, tag="1")]
pub is_running: bool,
#[prost(enumeration="super::common::TradingSession", tag="2")]
pub current_session: i32,
#[prost(uint32, tag="3")]
pub active_order_count: u32,
#[prost(uint32, tag="4")]
pub total_order_count: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoAmendEvent {
#[prost(oneof="auto_amend_event::Event", tags="1, 2, 3, 4, 5")]
pub event: ::core::option::Option<auto_amend_event::Event>,
}
pub mod auto_amend_event {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Event {
#[prost(message, tag="1")]
Amended(super::AmendedEvent),
#[prost(message, tag="2")]
AmendFailed(super::AmendFailedEvent),
#[prost(message, tag="3")]
SessionChanged(super::SessionChangedEvent),
#[prost(message, tag="4")]
OrderRegistered(super::OrderRegisteredEvent),
#[prost(message, tag="5")]
OrderUnregistered(super::OrderUnregisteredEvent),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AmendedEvent {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="AmendAction", tag="3")]
pub action: i32,
#[prost(int64, tag="4")]
pub old_price: i64,
#[prost(int64, tag="5")]
pub new_price: i64,
#[prost(int64, tag="6")]
pub old_quantity: i64,
#[prost(int64, tag="7")]
pub new_quantity: i64,
#[prost(string, tag="8")]
pub reason: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AmendFailedEvent {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub reason: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SessionChangedEvent {
#[prost(enumeration="super::common::TradingSession", tag="1")]
pub old_session: i32,
#[prost(enumeration="super::common::TradingSession", tag="2")]
pub new_session: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderRegisteredEvent {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="super::common::OrderSide", tag="3")]
pub side: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderUnregisteredEvent {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(string, tag="2")]
pub reason: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetAutoAmendOrderRequest {
#[prost(uint64, tag="1")]
pub order_id: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListAutoAmendOrdersRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="super::common::OrderSide", tag="2")]
pub side: i32,
#[prost(bool, tag="3")]
pub active_only: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListAutoAmendOrdersResponse {
#[prost(message, repeated, tag="1")]
pub orders: ::prost::alloc::vec::Vec<AutoAmendOrder>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UpdateConfigRequest {
#[prost(uint64, tag="1")]
pub order_id: u64,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<AmendConfig>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamEventsRequest {
#[prost(uint64, repeated, packed="false", tag="1")]
pub order_ids: ::prost::alloc::vec::Vec<u64>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AmendAction {
Unspecified = 0,
ChangePrice = 1,
ChangeQuantity = 2,
ChangePriceAndQuantity = 3,
}
impl AmendAction {
pub fn as_str_name(&self) -> &'static str {
match self {
AmendAction::Unspecified => "AMEND_ACTION_UNSPECIFIED",
AmendAction::ChangePrice => "AMEND_ACTION_CHANGE_PRICE",
AmendAction::ChangeQuantity => "AMEND_ACTION_CHANGE_QUANTITY",
AmendAction::ChangePriceAndQuantity => "AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AMEND_ACTION_UNSPECIFIED" => Some(Self::Unspecified),
"AMEND_ACTION_CHANGE_PRICE" => Some(Self::ChangePrice),
"AMEND_ACTION_CHANGE_QUANTITY" => Some(Self::ChangeQuantity),
"AMEND_ACTION_CHANGE_PRICE_AND_QUANTITY" => Some(Self::ChangePriceAndQuantity),
_ => None,
}
}
}
include!("kdo.v1.auto_amend.tonic.rs");
include!("kdo.v1.auto_amend.serde.rs");