#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Portfolio {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub id: i32,
#[prost(string, tag="3")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub description: ::prost::alloc::string::String,
#[prost(bool, tag="5")]
pub is_active: bool,
#[prost(message, optional, tag="6")]
pub create_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(message, optional, tag="7")]
pub update_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioPnL {
#[prost(string, tag="1")]
pub portfolio: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub portfolio_id: i32,
#[prost(string, tag="3")]
pub portfolio_name: ::prost::alloc::string::String,
#[prost(int64, tag="4")]
pub realized_pnl: i64,
#[prost(int64, tag="5")]
pub unrealized_pnl: i64,
#[prost(int64, tag="6")]
pub trading_cost: i64,
#[prost(int64, tag="7")]
pub net_pnl: i64,
#[prost(int32, tag="8")]
pub fund_count: i32,
#[prost(int32, tag="9")]
pub hedge_group_count: i32,
#[prost(message, repeated, tag="10")]
pub symbol_pnls: ::prost::alloc::vec::Vec<SymbolPnLDetail>,
#[prost(message, optional, tag="11")]
pub timestamp: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SymbolPnLDetail {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(double, tag="2")]
pub quantity: f64,
#[prost(double, tag="3")]
pub average_entry_price: f64,
#[prost(double, tag="4")]
pub current_price: f64,
#[prost(int64, tag="5")]
pub unrealized_pnl: i64,
#[prost(int64, tag="6")]
pub realized_pnl: i64,
#[prost(int64, tag="7")]
pub trading_cost: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioExposure {
#[prost(string, tag="1")]
pub portfolio: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub portfolio_id: i32,
#[prost(message, repeated, tag="3")]
pub positions: ::prost::alloc::vec::Vec<SymbolPosition>,
#[prost(message, repeated, tag="4")]
pub fund_positions: ::prost::alloc::vec::Vec<FundSymbolPosition>,
#[prost(int64, tag="5")]
pub realized_pnl: i64,
#[prost(int64, tag="6")]
pub unrealized_pnl: i64,
#[prost(int64, tag="7")]
pub trading_cost: i64,
#[prost(int64, tag="8")]
pub net_pnl: i64,
#[prost(int64, tag="9")]
pub total_net_quantity: i64,
#[prost(int64, tag="10")]
pub total_exposure_amount: i64,
#[prost(message, optional, tag="11")]
pub net_exposures: ::core::option::Option<NetExposures>,
#[prost(message, optional, tag="15")]
pub last_update: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SymbolPosition {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="7")]
pub bid_quantity: i64,
#[prost(int64, tag="8")]
pub ask_quantity: i64,
#[prost(int64, tag="2")]
pub net_quantity: i64,
#[prost(double, tag="9")]
pub bid_average_cost: f64,
#[prost(double, tag="10")]
pub ask_average_cost: f64,
#[prost(double, tag="4")]
pub current_price: f64,
#[prost(int64, tag="5")]
pub unrealized_pnl: i64,
#[prost(int64, tag="6")]
pub exposure_amount: i64,
#[prost(int64, tag="11")]
pub realized_pnl: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FundSymbolPosition {
#[prost(string, tag="1")]
pub fund_code: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="7")]
pub bid_quantity: i64,
#[prost(int64, tag="8")]
pub ask_quantity: i64,
#[prost(double, tag="9")]
pub bid_average_cost: f64,
#[prost(double, tag="10")]
pub ask_average_cost: f64,
#[prost(double, tag="5")]
pub current_price: f64,
#[prost(int64, tag="6")]
pub unrealized_pnl: i64,
#[prost(int64, tag="11")]
pub realized_pnl: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NetExposures {
#[prost(message, repeated, tag="1")]
pub exposures: ::prost::alloc::vec::Vec<NetExposure>,
#[prost(float, tag="2")]
pub total_quantity: f32,
#[prost(int64, tag="3")]
pub total_exposure: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NetExposure {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(double, tag="2")]
pub net_quantity: f64,
#[prost(double, tag="3")]
pub current_price: f64,
#[prost(int64, tag="4")]
pub exposure_amount: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HedgeGroupSummary {
#[prost(int32, tag="1")]
pub id: i32,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub hedge_method: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub trigger_condition: ::prost::alloc::string::String,
#[prost(int32, tag="5")]
pub fund_count: i32,
#[prost(bool, tag="6")]
pub is_active: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FundSummary {
#[prost(string, tag="1")]
pub code: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(int32, tag="3")]
pub hedge_group_id: i32,
#[prost(string, tag="4")]
pub hedge_group_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExposureSnapshot {
#[prost(string, tag="1")]
pub snapshot_id: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub portfolio_id: i32,
#[prost(string, optional, tag="3")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag="4")]
pub positions: ::prost::alloc::vec::Vec<SnapshotSymbolPosition>,
#[prost(message, repeated, tag="5")]
pub fund_positions: ::prost::alloc::vec::Vec<SnapshotFundSymbolPosition>,
#[prost(message, optional, tag="6")]
pub created_at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SnapshotSymbolPosition {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub bid_quantity: i64,
#[prost(int64, tag="3")]
pub ask_quantity: i64,
#[prost(int64, tag="4")]
pub net_quantity: i64,
#[prost(double, tag="5")]
pub bid_average_cost: f64,
#[prost(double, tag="6")]
pub ask_average_cost: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SnapshotFundSymbolPosition {
#[prost(string, tag="1")]
pub fund_code: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub bid_quantity: i64,
#[prost(int64, tag="4")]
pub ask_quantity: i64,
#[prost(int64, tag="5")]
pub net_quantity: i64,
#[prost(double, tag="6")]
pub bid_average_cost: f64,
#[prost(double, tag="7")]
pub ask_average_cost: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionChange {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub snapshot_bid_quantity: i64,
#[prost(int64, tag="3")]
pub snapshot_ask_quantity: i64,
#[prost(int64, tag="4")]
pub snapshot_net_quantity: i64,
#[prost(double, tag="5")]
pub snapshot_bid_average_cost: f64,
#[prost(double, tag="6")]
pub snapshot_ask_average_cost: f64,
#[prost(int64, tag="7")]
pub current_bid_quantity: i64,
#[prost(int64, tag="8")]
pub current_ask_quantity: i64,
#[prost(int64, tag="9")]
pub current_net_quantity: i64,
#[prost(double, tag="10")]
pub current_bid_average_cost: f64,
#[prost(double, tag="11")]
pub current_ask_average_cost: f64,
#[prost(int64, tag="12")]
pub bid_quantity_change: i64,
#[prost(int64, tag="13")]
pub ask_quantity_change: i64,
#[prost(int64, tag="14")]
pub net_quantity_change: i64,
#[prost(double, tag="15")]
pub bid_average_cost_change: f64,
#[prost(double, tag="16")]
pub ask_average_cost_change: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FundPositionChange {
#[prost(string, tag="1")]
pub fund_code: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub snapshot_bid_quantity: i64,
#[prost(int64, tag="4")]
pub snapshot_ask_quantity: i64,
#[prost(int64, tag="5")]
pub snapshot_net_quantity: i64,
#[prost(double, tag="6")]
pub snapshot_bid_average_cost: f64,
#[prost(double, tag="7")]
pub snapshot_ask_average_cost: f64,
#[prost(int64, tag="8")]
pub current_bid_quantity: i64,
#[prost(int64, tag="9")]
pub current_ask_quantity: i64,
#[prost(int64, tag="10")]
pub current_net_quantity: i64,
#[prost(double, tag="11")]
pub current_bid_average_cost: f64,
#[prost(double, tag="12")]
pub current_ask_average_cost: f64,
#[prost(int64, tag="13")]
pub bid_quantity_change: i64,
#[prost(int64, tag="14")]
pub ask_quantity_change: i64,
#[prost(int64, tag="15")]
pub net_quantity_change: i64,
#[prost(double, tag="16")]
pub bid_average_cost_change: f64,
#[prost(double, tag="17")]
pub ask_average_cost_change: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExposureChanges {
#[prost(message, optional, tag="1")]
pub snapshot: ::core::option::Option<ExposureSnapshot>,
#[prost(message, repeated, tag="2")]
pub position_changes: ::prost::alloc::vec::Vec<PositionChange>,
#[prost(message, repeated, tag="3")]
pub fund_position_changes: ::prost::alloc::vec::Vec<FundPositionChange>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPortfolioRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPortfoliosRequest {
#[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(string, tag="3")]
pub filter: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPortfoliosResponse {
#[prost(message, repeated, tag="1")]
pub portfolios: ::prost::alloc::vec::Vec<Portfolio>,
#[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 CreatePortfolioRequest {
#[prost(message, optional, tag="1")]
pub portfolio: ::core::option::Option<Portfolio>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdatePortfolioRequest {
#[prost(message, optional, tag="1")]
pub portfolio: ::core::option::Option<Portfolio>,
#[prost(message, optional, tag="2")]
pub update_mask: ::core::option::Option<super::super::super::google::protobuf::FieldMask>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeletePortfolioRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPortfolioPnLRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPortfolioExposureRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPortfolioHedgeGroupsRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, optional, tag="2")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="3")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPortfolioHedgeGroupsResponse {
#[prost(message, repeated, tag="1")]
pub hedge_groups: ::prost::alloc::vec::Vec<HedgeGroupSummary>,
#[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 ListPortfolioFundsRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, optional, tag="2")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="3")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPortfolioFundsResponse {
#[prost(message, repeated, tag="1")]
pub funds: ::prost::alloc::vec::Vec<FundSummary>,
#[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 CreateExposureSnapshotRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, optional, tag="2")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetExposureSnapshotRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListExposureSnapshotsRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, optional, tag="2")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="3")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="4")]
pub start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(message, optional, tag="5")]
pub end_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListExposureSnapshotsResponse {
#[prost(message, repeated, tag="1")]
pub snapshots: ::prost::alloc::vec::Vec<ExposureSnapshot>,
#[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 GetExposureChangesRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteExposureSnapshotRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
include!("kdo.v1.portfolio.tonic.rs");
include!("kdo.v1.portfolio.serde.rs");