ids-apis 1.0.448

IDS APIs in Rust
Documentation
// @generated
// This file is @generated by prost-build.
// ============================================================================
// Messages
// ============================================================================

/// 시간 프레임별 주문 제한 설정
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TimeFrameLimit {
    /// 시간 윈도우 (초)
    #[prost(uint32, tag="1")]
    pub window_seconds: u32,
    /// 최대 주문 건수
    #[prost(uint32, tag="2")]
    pub max_orders: u32,
}
/// OrderLimiter 설정 (전역 싱글톤)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderLimiterConfig {
    /// 활성화 여부
    #[prost(bool, optional, tag="1")]
    pub enabled: ::core::option::Option<bool>,
    /// 단일 주문 수량 한도 (i64)
    #[prost(int64, optional, tag="3")]
    pub single_order_limit: ::core::option::Option<i64>,
    /// 시간 프레임별 주문 건수 제한 목록
    /// 설정 시 기존 목록을 전체 교체
    #[prost(message, repeated, tag="4")]
    pub time_frame_limits: ::prost::alloc::vec::Vec<TimeFrameLimit>,
}
/// 시간 프레임별 주문 건수 현황
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TimeFrameStatus {
    /// 시간 윈도우 (초)
    #[prost(uint32, tag="1")]
    pub window_seconds: u32,
    /// 현재 윈도우 내 주문 건수
    #[prost(uint32, tag="2")]
    pub current_count: u32,
    /// 최대 주문 건수
    #[prost(uint32, tag="3")]
    pub max_orders: u32,
}
/// 전역 OrderLimiter 현황
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderLimiterStatus {
    /// 활성화 여부
    #[prost(bool, tag="3")]
    pub enabled: bool,
    /// 시간 프레임별 주문 건수 현황
    #[prost(message, repeated, tag="6")]
    pub time_frame_statuses: ::prost::alloc::vec::Vec<TimeFrameStatus>,
    /// 대상 펀드코드 (4자리 문자열)
    #[prost(string, tag="7")]
    pub fund_code: ::prost::alloc::string::String,
    /// 대상 심볼 (ETF 또는 선물)
    #[prost(string, tag="8")]
    pub etf_symbol: ::prost::alloc::string::String,
}
// ============================================================================
// Request/Response Messages
// ============================================================================

/// UpdateOrderLimiterConfig
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateOrderLimiterConfigRequest {
    /// 업데이트할 설정
    #[prost(message, optional, tag="3")]
    pub config: ::core::option::Option<OrderLimiterConfig>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateOrderLimiterConfigResponse {
    /// 업데이트된 대상 수
    #[prost(uint32, tag="1")]
    pub updated_count: u32,
    /// 메시지
    #[prost(string, tag="2")]
    pub message: ::prost::alloc::string::String,
}
/// StreamOrderLimiterStatus
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StreamOrderLimiterStatusRequest {
}
// ============================================================================
// TurnoverLimit — (symbol, fund_code, window_secs) 별 N초 슬라이딩 윈도우 gross 체결금액 서킷브레이커
// ============================================================================

/// 체결금액 서킷브레이커 설정.
/// 키는 (symbol, fund_code, window_secs) 3-튜플 — 같은 (fund, symbol)에 여러 시간창(예: 1초/60초)
/// 한도를 동시에 걸 수 있다. N초 윈도우 동안 gross 체결금액(체결가×수량, 매수+매도 합산)이
/// max_amount 이상이면 해당 LP 를 정지시킨다.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TurnoverLimit {
    /// 대상 심볼. ETF/선물 심볼을 지정하면 그 종목만 집계한다.
    /// 특수값 "*"(와일드카드)를 쓰면 해당 fund 의 "모든 종목 체결 합산"에 대해 한도를 걸며,
    /// 초과 시 그 펀드의 활성 LP 전체가 정지된다. (심볼별 한도와 펀드 전체 한도를 동시에 둘 수 있다.)
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 4자리 펀드코드
    #[prost(string, tag="2")]
    pub fund_code: ::prost::alloc::string::String,
    /// 활성화 여부
    #[prost(bool, tag="3")]
    pub enabled: bool,
    /// 슬라이딩 윈도우 (초). (symbol, fund_code)와 함께 복합키를 이루어 창별로 별도 설정된다.
    #[prost(uint32, tag="4")]
    pub window_secs: u32,
    /// 윈도우 gross 체결금액 상한 (원). 0=비활성
    #[prost(int64, tag="5")]
    pub max_amount: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateTurnoverLimitRequest {
    #[prost(message, optional, tag="1")]
    pub limit: ::core::option::Option<TurnoverLimit>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTurnoverLimitRequest {
    /// 대상 심볼. 펀드 전체 한도는 "*"(와일드카드)로 조회한다.
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub fund_code: ::prost::alloc::string::String,
    /// 조회할 시간창(초). 키가 (symbol, fund_code, window_secs) 이므로 창을 특정한다.
    #[prost(uint32, tag="3")]
    pub window_secs: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ListTurnoverLimitsRequest {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTurnoverLimitsResponse {
    #[prost(message, repeated, tag="1")]
    pub limits: ::prost::alloc::vec::Vec<TurnoverLimit>,
}
include!("kdo.v1.order_limit.tonic.rs");
include!("kdo.v1.order_limit.serde.rs");
// @@protoc_insertion_point(module)