#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ViArbitrageStatus {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(int64, tag="2")]
pub basis_threshold_bp: i64,
#[prost(int32, tag="3")]
pub vi_stock_count: i32,
#[prost(int32, tag="4")]
pub trigger_count_today: i32,
#[prost(message, optional, tag="5")]
pub start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViStock {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub vi_session: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub vi_start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(int64, tag="4")]
pub krx_estimated_price: i64,
#[prost(string, tag="5")]
pub futures_symbol: ::prost::alloc::string::String,
#[prost(int64, optional, tag="6")]
pub nxt_price: ::core::option::Option<i64>,
#[prost(int64, optional, tag="7")]
pub futures_price: ::core::option::Option<i64>,
#[prost(int64, optional, tag="8")]
pub current_basis_bp: ::core::option::Option<i64>,
#[prost(int64, tag="9")]
pub elapsed_ms: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TriggerRecord {
#[prost(int64, tag="1")]
pub id: i64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub futures_symbol: ::prost::alloc::string::String,
#[prost(int64, tag="4")]
pub nxt_price: i64,
#[prost(int64, tag="5")]
pub futures_price: i64,
#[prost(int64, tag="6")]
pub basis_bp: i64,
#[prost(enumeration="TriggerDirection", tag="7")]
pub direction: i32,
#[prost(message, optional, tag="8")]
pub trigger_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(enumeration="TriggerResult", tag="9")]
pub result: i32,
#[prost(string, tag="10")]
pub error_message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViEvent {
#[prost(message, optional, tag="1")]
pub event_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(oneof="vi_event::Event", tags="2, 3, 4, 5")]
pub event: ::core::option::Option<vi_event::Event>,
}
pub mod vi_event {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Event {
#[prost(message, tag="2")]
ViEntered(super::ViEnteredEvent),
#[prost(message, tag="3")]
ViExited(super::ViExitedEvent),
#[prost(message, tag="4")]
Triggered(super::TriggeredEvent),
#[prost(message, tag="5")]
BasisWarning(super::BasisWarningEvent),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViEnteredEvent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub vi_session: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub krx_last_price: i64,
#[prost(string, tag="4")]
pub futures_symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ViExitedEvent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub duration_ms: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TriggeredEvent {
#[prost(message, optional, tag="1")]
pub trigger: ::core::option::Option<TriggerRecord>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BasisWarningEvent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub current_basis_bp: i64,
#[prost(int64, tag="3")]
pub threshold_bp: i64,
#[prost(double, tag="4")]
pub threshold_ratio: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BasisUpdate {
#[prost(message, optional, tag="1")]
pub update_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub nxt_price: i64,
#[prost(int64, tag="4")]
pub futures_price: i64,
#[prost(int64, tag="5")]
pub basis_bp: i64,
#[prost(double, tag="6")]
pub threshold_ratio: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetStatusRequest {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListViStocksRequest {
#[prost(int32, optional, tag="1")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="2")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListViStocksResponse {
#[prost(message, repeated, tag="1")]
pub vi_stocks: ::prost::alloc::vec::Vec<ViStock>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTriggerHistoryRequest {
#[prost(int32, optional, tag="1")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="2")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="3")]
pub start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(message, optional, tag="4")]
pub end_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(string, optional, tag="5")]
pub symbol: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTriggerHistoryResponse {
#[prost(message, repeated, tag="1")]
pub triggers: ::prost::alloc::vec::Vec<TriggerRecord>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
#[prost(int32, tag="3")]
pub total_count: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamViEventsRequest {
#[prost(string, repeated, tag="1")]
pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, optional, tag="2")]
pub include_basis_warning: ::core::option::Option<bool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamBasisRequest {
#[prost(string, repeated, tag="1")]
pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int32, optional, tag="2")]
pub min_interval_ms: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TriggerDirection {
Unspecified = 0,
Long = 1,
Short = 2,
}
impl TriggerDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
TriggerDirection::Unspecified => "TRIGGER_DIRECTION_UNSPECIFIED",
TriggerDirection::Long => "TRIGGER_DIRECTION_LONG",
TriggerDirection::Short => "TRIGGER_DIRECTION_SHORT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRIGGER_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
"TRIGGER_DIRECTION_LONG" => Some(Self::Long),
"TRIGGER_DIRECTION_SHORT" => Some(Self::Short),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TriggerResult {
Unspecified = 0,
Success = 1,
Failed = 2,
Skipped = 3,
}
impl TriggerResult {
pub fn as_str_name(&self) -> &'static str {
match self {
TriggerResult::Unspecified => "TRIGGER_RESULT_UNSPECIFIED",
TriggerResult::Success => "TRIGGER_RESULT_SUCCESS",
TriggerResult::Failed => "TRIGGER_RESULT_FAILED",
TriggerResult::Skipped => "TRIGGER_RESULT_SKIPPED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRIGGER_RESULT_UNSPECIFIED" => Some(Self::Unspecified),
"TRIGGER_RESULT_SUCCESS" => Some(Self::Success),
"TRIGGER_RESULT_FAILED" => Some(Self::Failed),
"TRIGGER_RESULT_SKIPPED" => Some(Self::Skipped),
_ => None,
}
}
}
include!("kdo.v1.vi_arbitrage.tonic.rs");
include!("kdo.v1.vi_arbitrage.serde.rs");