#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Etf {
#[prost(uint64, tag="1")]
pub id: u64,
#[prost(string, tag="2")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub code: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub prev_close_nav: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub last_price: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub last_ask_inav: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub last_bid_inav: ::prost::alloc::string::String,
#[prost(map="string, message", tag="10")]
pub constituents: ::std::collections::HashMap<::prost::alloc::string::String, EtfPdfConstituent>,
#[prost(int64, tag="11")]
pub creation_unit: i64,
#[prost(enumeration="ReplicationMethod", tag="12")]
pub replication_method: i32,
#[prost(int64, tag="13")]
pub tick_size: i64,
#[prost(int64, tag="14")]
pub listed_quantity: i64,
#[prost(float, tag="15")]
pub leverage: f32,
#[prost(bool, tag="16")]
pub tradable: bool,
#[prost(bool, tag="17")]
pub short_sellable: bool,
#[prost(message, optional, tag="18")]
pub tracking_asset: ::core::option::Option<UnderlyingAsset>,
#[prost(bool, tag="23")]
pub cash_creditable: bool,
#[prost(int64, tag="24")]
pub cash_creation_amount: i64,
#[prost(map="string, message", tag="25")]
pub conversions: ::std::collections::HashMap<::prost::alloc::string::String, Conversion>,
#[prost(string, tag="26")]
pub unit_delta: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EtfConstituent {
#[prost(oneof="etf_constituent::ConstituentType", tags="1, 2, 3")]
pub constituent_type: ::core::option::Option<etf_constituent::ConstituentType>,
}
pub mod etf_constituent {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ConstituentType {
#[prost(message, tag="1")]
Stock(super::StockConstituent),
#[prost(message, tag="2")]
Futures(super::FuturesConstituent),
#[prost(message, tag="3")]
Cash(super::CashConstituent),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StockConstituent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub last_price: ::prost::alloc::string::String,
#[prost(int64, tag="4")]
pub quantity: i64,
#[prost(int64, tag="5")]
pub last_valuation: i64,
#[prost(int64, tag="6")]
pub notional_amount: i64,
#[prost(uint32, tag="7")]
pub num_members: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FuturesConstituent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub last_price: ::prost::alloc::string::String,
#[prost(float, tag="4")]
pub quantity: f32,
#[prost(double, tag="5")]
pub multiple: f64,
#[prost(int64, tag="6")]
pub last_valuation: i64,
#[prost(int64, tag="7")]
pub notional_amount: i64,
#[prost(uint32, tag="8")]
pub num_members: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CashConstituent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub prev_valuation: i64,
#[prost(uint32, tag="3")]
pub num_members: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EtfPdfConstituent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration="super::common::ProductType", tag="3")]
pub product_type: i32,
#[prost(string, tag="4")]
pub quantity: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Conversion {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="super::common::ProductType", tag="2")]
pub product_type: i32,
#[prost(double, tag="3")]
pub ratio_per_cu: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnderlyingAsset {
#[prost(oneof="underlying_asset::Asset", tags="1, 2, 3, 4")]
pub asset: ::core::option::Option<underlying_asset::Asset>,
}
pub mod underlying_asset {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Asset {
#[prost(message, tag="1")]
Future(super::UnderlyingFuture),
#[prost(message, tag="2")]
FixedIncome(super::UnderlyingFixedIncome),
#[prost(message, tag="3")]
Commodity(super::UnderlyingCommodity),
#[prost(message, tag="4")]
Currency(super::UnderlyingCurrency),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnderlyingFuture {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub multiple: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub last_ask_price: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub last_bid_price: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnderlyingFixedIncome {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnderlyingCommodity {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnderlyingCurrency {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEtfRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEtfsRequest {
#[prost(uint32, optional, tag="1")]
pub page_size: ::core::option::Option<u32>,
#[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 ListEtfsResponse {
#[prost(message, repeated, tag="1")]
pub etfs: ::prost::alloc::vec::Vec<Etf>,
#[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 GetEtfTickImpactRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub constituent_symbol: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub base_price: ::prost::alloc::string::String,
#[prost(int32, tag="4")]
pub tick_range: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EtfTickImpact {
#[prost(string, tag="1")]
pub etf_symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub constituent_symbol: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub current_nav: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub current_price: ::prost::alloc::string::String,
#[prost(message, repeated, tag="5")]
pub points: ::prost::alloc::vec::Vec<TickNavPoint>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TickNavPoint {
#[prost(int32, tag="1")]
pub tick_offset: i32,
#[prost(string, tag="2")]
pub price: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub nav: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateEtfUnitDeltaRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub unit_delta: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateRedeemEtfRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub fund: ::prost::alloc::string::String,
#[prost(int64, tag="3")]
pub quantity: i64,
#[prost(bool, tag="4")]
pub is_creation: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalcEtfUnitPriceRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub pricing: ::core::option::Option<super::common::EtfPricing>,
#[prost(enumeration="super::common::OrderSide", tag="3")]
pub etf_side: i32,
#[prost(int64, tag="4")]
pub etf_quantity: i64,
#[prost(string, tag="5")]
pub etf_price: ::prost::alloc::string::String,
#[prost(enumeration="super::common::OrderSide", tag="6")]
pub hedge_side: i32,
#[prost(int64, tag="7")]
pub hedge_quantity: i64,
#[prost(string, tag="8")]
pub hedge_price: ::prost::alloc::string::String,
#[prost(string, optional, tag="9")]
pub target_unit_price: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalcEtfUnitPriceResponse {
#[prost(string, tag="1")]
pub unit_price: ::prost::alloc::string::String,
#[prost(string, optional, tag="2")]
pub pnl: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEtfConstituentsRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub pricing: ::core::option::Option<super::common::EtfPricing>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEtfConstituentsResponse {
#[prost(map="string, message", tag="1")]
pub constituents: ::std::collections::HashMap<::prost::alloc::string::String, EtfPdfConstituent>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEtfPricingStateRequest {
#[prost(string, tag="1")]
pub etf: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub pricing: ::core::option::Option<super::common::EtfPricing>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEtfPricingStateResponse {
#[prost(string, tag="1")]
pub pricing_kind: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub unit_delta: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub prev_nav: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub leverage: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub cash_per_share: ::prost::alloc::string::String,
#[prost(int64, tag="6")]
pub creation_unit: i64,
#[prost(double, optional, tag="10")]
pub stock_ratio: ::core::option::Option<f64>,
#[prost(string, optional, tag="11")]
pub constituent_adjusted_prev_nav: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="12")]
pub actual_leverage_l: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="13")]
pub prev_index: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="14")]
pub prev_future: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ReplicationMethod {
Unspecified = 0,
Active = 1,
Physical = 2,
Synthetic = 3,
}
impl ReplicationMethod {
pub fn as_str_name(&self) -> &'static str {
match self {
ReplicationMethod::Unspecified => "REPLICATION_METHOD_UNSPECIFIED",
ReplicationMethod::Active => "REPLICATION_METHOD_ACTIVE",
ReplicationMethod::Physical => "REPLICATION_METHOD_PHYSICAL",
ReplicationMethod::Synthetic => "REPLICATION_METHOD_SYNTHETIC",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REPLICATION_METHOD_UNSPECIFIED" => Some(Self::Unspecified),
"REPLICATION_METHOD_ACTIVE" => Some(Self::Active),
"REPLICATION_METHOD_PHYSICAL" => Some(Self::Physical),
"REPLICATION_METHOD_SYNTHETIC" => Some(Self::Synthetic),
_ => None,
}
}
}
include!("kdo.v1.etf.tonic.rs");
include!("kdo.v1.etf.serde.rs");