#![allow(clippy::tabs_in_doc_comments)]
#![allow(clippy::large_enum_variant)]
#![allow(clippy::enum_variant_names)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MoneyValue {
#[prost(string, tag = "1")]
pub currency: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub units: i64,
#[prost(int32, tag = "3")]
pub nano: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Quotation {
#[prost(int64, tag = "1")]
pub units: i64,
#[prost(int32, tag = "2")]
pub nano: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ping {
#[prost(message, optional, tag = "1")]
pub time: ::core::option::Option<::prost_types::Timestamp>,
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum InstrumentType {
Unspecified = 0,
Bond = 1,
Share = 2,
Currency = 3,
Etf = 4,
Futures = 5,
Sp = 6,
Option = 7,
ClearingCertificate = 8,
}
impl InstrumentType {
pub fn as_str_name(&self) -> &'static str {
match self {
InstrumentType::Unspecified => "INSTRUMENT_TYPE_UNSPECIFIED",
InstrumentType::Bond => "INSTRUMENT_TYPE_BOND",
InstrumentType::Share => "INSTRUMENT_TYPE_SHARE",
InstrumentType::Currency => "INSTRUMENT_TYPE_CURRENCY",
InstrumentType::Etf => "INSTRUMENT_TYPE_ETF",
InstrumentType::Futures => "INSTRUMENT_TYPE_FUTURES",
InstrumentType::Sp => "INSTRUMENT_TYPE_SP",
InstrumentType::Option => "INSTRUMENT_TYPE_OPTION",
InstrumentType::ClearingCertificate => {
"INSTRUMENT_TYPE_CLEARING_CERTIFICATE"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"INSTRUMENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"INSTRUMENT_TYPE_BOND" => Some(Self::Bond),
"INSTRUMENT_TYPE_SHARE" => Some(Self::Share),
"INSTRUMENT_TYPE_CURRENCY" => Some(Self::Currency),
"INSTRUMENT_TYPE_ETF" => Some(Self::Etf),
"INSTRUMENT_TYPE_FUTURES" => Some(Self::Futures),
"INSTRUMENT_TYPE_SP" => Some(Self::Sp),
"INSTRUMENT_TYPE_OPTION" => Some(Self::Option),
"INSTRUMENT_TYPE_CLEARING_CERTIFICATE" => {
Some(Self::ClearingCertificate)
}
_ => None,
}
}
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum SecurityTradingStatus {
Unspecified = 0,
NotAvailableForTrading = 1,
OpeningPeriod = 2,
ClosingPeriod = 3,
BreakInTrading = 4,
NormalTrading = 5,
ClosingAuction = 6,
DarkPoolAuction = 7,
DiscreteAuction = 8,
OpeningAuctionPeriod = 9,
TradingAtClosingAuctionPrice = 10,
SessionAssigned = 11,
SessionClose = 12,
SessionOpen = 13,
DealerNormalTrading = 14,
DealerBreakInTrading = 15,
DealerNotAvailableForTrading = 16,
}
impl SecurityTradingStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
SecurityTradingStatus::Unspecified => {
"SECURITY_TRADING_STATUS_UNSPECIFIED"
}
SecurityTradingStatus::NotAvailableForTrading => {
"SECURITY_TRADING_STATUS_NOT_AVAILABLE_FOR_TRADING"
}
SecurityTradingStatus::OpeningPeriod => {
"SECURITY_TRADING_STATUS_OPENING_PERIOD"
}
SecurityTradingStatus::ClosingPeriod => {
"SECURITY_TRADING_STATUS_CLOSING_PERIOD"
}
SecurityTradingStatus::BreakInTrading => {
"SECURITY_TRADING_STATUS_BREAK_IN_TRADING"
}
SecurityTradingStatus::NormalTrading => {
"SECURITY_TRADING_STATUS_NORMAL_TRADING"
}
SecurityTradingStatus::ClosingAuction => {
"SECURITY_TRADING_STATUS_CLOSING_AUCTION"
}
SecurityTradingStatus::DarkPoolAuction => {
"SECURITY_TRADING_STATUS_DARK_POOL_AUCTION"
}
SecurityTradingStatus::DiscreteAuction => {
"SECURITY_TRADING_STATUS_DISCRETE_AUCTION"
}
SecurityTradingStatus::OpeningAuctionPeriod => {
"SECURITY_TRADING_STATUS_OPENING_AUCTION_PERIOD"
}
SecurityTradingStatus::TradingAtClosingAuctionPrice => {
"SECURITY_TRADING_STATUS_TRADING_AT_CLOSING_AUCTION_PRICE"
}
SecurityTradingStatus::SessionAssigned => {
"SECURITY_TRADING_STATUS_SESSION_ASSIGNED"
}
SecurityTradingStatus::SessionClose => {
"SECURITY_TRADING_STATUS_SESSION_CLOSE"
}
SecurityTradingStatus::SessionOpen => {
"SECURITY_TRADING_STATUS_SESSION_OPEN"
}
SecurityTradingStatus::DealerNormalTrading => {
"SECURITY_TRADING_STATUS_DEALER_NORMAL_TRADING"
}
SecurityTradingStatus::DealerBreakInTrading => {
"SECURITY_TRADING_STATUS_DEALER_BREAK_IN_TRADING"
}
SecurityTradingStatus::DealerNotAvailableForTrading => {
"SECURITY_TRADING_STATUS_DEALER_NOT_AVAILABLE_FOR_TRADING"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SECURITY_TRADING_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"SECURITY_TRADING_STATUS_NOT_AVAILABLE_FOR_TRADING" => {
Some(Self::NotAvailableForTrading)
}
"SECURITY_TRADING_STATUS_OPENING_PERIOD" => {
Some(Self::OpeningPeriod)
}
"SECURITY_TRADING_STATUS_CLOSING_PERIOD" => {
Some(Self::ClosingPeriod)
}
"SECURITY_TRADING_STATUS_BREAK_IN_TRADING" => {
Some(Self::BreakInTrading)
}
"SECURITY_TRADING_STATUS_NORMAL_TRADING" => {
Some(Self::NormalTrading)
}
"SECURITY_TRADING_STATUS_CLOSING_AUCTION" => {
Some(Self::ClosingAuction)
}
"SECURITY_TRADING_STATUS_DARK_POOL_AUCTION" => {
Some(Self::DarkPoolAuction)
}
"SECURITY_TRADING_STATUS_DISCRETE_AUCTION" => {
Some(Self::DiscreteAuction)
}
"SECURITY_TRADING_STATUS_OPENING_AUCTION_PERIOD" => {
Some(Self::OpeningAuctionPeriod)
}
"SECURITY_TRADING_STATUS_TRADING_AT_CLOSING_AUCTION_PRICE" => {
Some(Self::TradingAtClosingAuctionPrice)
}
"SECURITY_TRADING_STATUS_SESSION_ASSIGNED" => {
Some(Self::SessionAssigned)
}
"SECURITY_TRADING_STATUS_SESSION_CLOSE" => {
Some(Self::SessionClose)
}
"SECURITY_TRADING_STATUS_SESSION_OPEN" => Some(Self::SessionOpen),
"SECURITY_TRADING_STATUS_DEALER_NORMAL_TRADING" => {
Some(Self::DealerNormalTrading)
}
"SECURITY_TRADING_STATUS_DEALER_BREAK_IN_TRADING" => {
Some(Self::DealerBreakInTrading)
}
"SECURITY_TRADING_STATUS_DEALER_NOT_AVAILABLE_FOR_TRADING" => {
Some(Self::DealerNotAvailableForTrading)
}
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationsRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub from: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "3")]
pub to: ::core::option::Option<::prost_types::Timestamp>,
#[prost(enumeration = "OperationState", tag = "4")]
pub state: i32,
#[prost(string, tag = "5")]
pub figi: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationsResponse {
#[prost(message, repeated, tag = "1")]
pub operations: ::prost::alloc::vec::Vec<Operation>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Operation {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub parent_operation_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub currency: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub payment: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "5")]
pub price: ::core::option::Option<MoneyValue>,
#[prost(enumeration = "OperationState", tag = "6")]
pub state: i32,
#[prost(int64, tag = "7")]
pub quantity: i64,
#[prost(int64, tag = "8")]
pub quantity_rest: i64,
#[prost(string, tag = "9")]
pub figi: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub instrument_type: ::prost::alloc::string::String,
#[prost(message, optional, tag = "11")]
pub date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "12")]
pub r#type: ::prost::alloc::string::String,
#[prost(enumeration = "OperationType", tag = "13")]
pub operation_type: i32,
#[prost(message, repeated, tag = "14")]
pub trades: ::prost::alloc::vec::Vec<OperationTrade>,
#[prost(string, tag = "16")]
pub asset_uid: ::prost::alloc::string::String,
#[prost(string, tag = "17")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "18")]
pub instrument_uid: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationTrade {
#[prost(string, tag = "1")]
pub trade_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub date_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(int64, tag = "3")]
pub quantity: i64,
#[prost(message, optional, tag = "4")]
pub price: ::core::option::Option<MoneyValue>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(enumeration = "portfolio_request::CurrencyRequest", tag = "2")]
pub currency: i32,
}
pub mod portfolio_request {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum CurrencyRequest {
Rub = 0,
Usd = 1,
Eur = 2,
}
impl CurrencyRequest {
pub fn as_str_name(&self) -> &'static str {
match self {
CurrencyRequest::Rub => "RUB",
CurrencyRequest::Usd => "USD",
CurrencyRequest::Eur => "EUR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RUB" => Some(Self::Rub),
"USD" => Some(Self::Usd),
"EUR" => Some(Self::Eur),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioResponse {
#[prost(message, optional, tag = "1")]
pub total_amount_shares: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "2")]
pub total_amount_bonds: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "3")]
pub total_amount_etf: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "4")]
pub total_amount_currencies: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "5")]
pub total_amount_futures: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "6")]
pub expected_yield: ::core::option::Option<Quotation>,
#[prost(message, repeated, tag = "7")]
pub positions: ::prost::alloc::vec::Vec<PortfolioPosition>,
#[prost(string, tag = "8")]
pub account_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "9")]
pub total_amount_options: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "10")]
pub total_amount_sp: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "11")]
pub total_amount_portfolio: ::core::option::Option<MoneyValue>,
#[prost(message, repeated, tag = "12")]
pub virtual_positions: ::prost::alloc::vec::Vec<VirtualPortfolioPosition>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsResponse {
#[prost(message, repeated, tag = "1")]
pub money: ::prost::alloc::vec::Vec<MoneyValue>,
#[prost(message, repeated, tag = "2")]
pub blocked: ::prost::alloc::vec::Vec<MoneyValue>,
#[prost(message, repeated, tag = "3")]
pub securities: ::prost::alloc::vec::Vec<PositionsSecurities>,
#[prost(bool, tag = "4")]
pub limits_loading_in_progress: bool,
#[prost(message, repeated, tag = "5")]
pub futures: ::prost::alloc::vec::Vec<PositionsFutures>,
#[prost(message, repeated, tag = "6")]
pub options: ::prost::alloc::vec::Vec<PositionsOptions>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WithdrawLimitsRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WithdrawLimitsResponse {
#[prost(message, repeated, tag = "1")]
pub money: ::prost::alloc::vec::Vec<MoneyValue>,
#[prost(message, repeated, tag = "2")]
pub blocked: ::prost::alloc::vec::Vec<MoneyValue>,
#[prost(message, repeated, tag = "3")]
pub blocked_guarantee: ::prost::alloc::vec::Vec<MoneyValue>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioPosition {
#[prost(string, tag = "1")]
pub figi: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub instrument_type: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub quantity: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "4")]
pub average_position_price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "5")]
pub expected_yield: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "6")]
pub current_nkd: ::core::option::Option<MoneyValue>,
#[deprecated]
#[prost(message, optional, tag = "7")]
pub average_position_price_pt: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "8")]
pub current_price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "9")]
pub average_position_price_fifo: ::core::option::Option<MoneyValue>,
#[deprecated]
#[prost(message, optional, tag = "10")]
pub quantity_lots: ::core::option::Option<Quotation>,
#[prost(bool, tag = "21")]
pub blocked: bool,
#[prost(message, optional, tag = "22")]
pub blocked_lots: ::core::option::Option<Quotation>,
#[prost(string, tag = "24")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "25")]
pub instrument_uid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "26")]
pub var_margin: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "27")]
pub expected_yield_fifo: ::core::option::Option<Quotation>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VirtualPortfolioPosition {
#[prost(string, tag = "1")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub instrument_uid: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub figi: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub instrument_type: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub quantity: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "6")]
pub average_position_price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "7")]
pub expected_yield: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "8")]
pub expected_yield_fifo: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "9")]
pub expire_date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "10")]
pub current_price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "11")]
pub average_position_price_fifo: ::core::option::Option<MoneyValue>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsSecurities {
#[prost(string, tag = "1")]
pub figi: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub blocked: i64,
#[prost(int64, tag = "3")]
pub balance: i64,
#[prost(string, tag = "4")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub instrument_uid: ::prost::alloc::string::String,
#[prost(bool, tag = "11")]
pub exchange_blocked: bool,
#[prost(string, tag = "16")]
pub instrument_type: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsFutures {
#[prost(string, tag = "1")]
pub figi: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub blocked: i64,
#[prost(int64, tag = "3")]
pub balance: i64,
#[prost(string, tag = "4")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub instrument_uid: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsOptions {
#[prost(string, tag = "1")]
pub position_uid: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub instrument_uid: ::prost::alloc::string::String,
#[prost(int64, tag = "11")]
pub blocked: i64,
#[prost(int64, tag = "21")]
pub balance: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrokerReportRequest {
#[prost(oneof = "broker_report_request::Payload", tags = "1, 2")]
pub payload: ::core::option::Option<broker_report_request::Payload>,
}
pub mod broker_report_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
GenerateBrokerReportRequest(super::GenerateBrokerReportRequest),
#[prost(message, tag = "2")]
GetBrokerReportRequest(super::GetBrokerReportRequest),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrokerReportResponse {
#[prost(oneof = "broker_report_response::Payload", tags = "1, 2")]
pub payload: ::core::option::Option<broker_report_response::Payload>,
}
pub mod broker_report_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
GenerateBrokerReportResponse(super::GenerateBrokerReportResponse),
#[prost(message, tag = "2")]
GetBrokerReportResponse(super::GetBrokerReportResponse),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerateBrokerReportRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub from: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "3")]
pub to: ::core::option::Option<::prost_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerateBrokerReportResponse {
#[prost(string, tag = "1")]
pub task_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBrokerReportRequest {
#[prost(string, tag = "1")]
pub task_id: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBrokerReportResponse {
#[prost(message, repeated, tag = "1")]
pub broker_report: ::prost::alloc::vec::Vec<BrokerReport>,
#[prost(int32, tag = "2")]
pub items_count: i32,
#[prost(int32, tag = "3")]
pub pages_count: i32,
#[prost(int32, tag = "4")]
pub page: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrokerReport {
#[prost(string, tag = "1")]
pub trade_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub order_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub figi: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub execute_sign: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub trade_datetime: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "6")]
pub exchange: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub class_code: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub direction: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub ticker: ::prost::alloc::string::String,
#[prost(message, optional, tag = "11")]
pub price: ::core::option::Option<MoneyValue>,
#[prost(int64, tag = "12")]
pub quantity: i64,
#[prost(message, optional, tag = "13")]
pub order_amount: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "14")]
pub aci_value: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "15")]
pub total_order_amount: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "16")]
pub broker_commission: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "17")]
pub exchange_commission: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "18")]
pub exchange_clearing_commission: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "19")]
pub repo_rate: ::core::option::Option<Quotation>,
#[prost(string, tag = "20")]
pub party: ::prost::alloc::string::String,
#[prost(message, optional, tag = "21")]
pub clear_value_date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "22")]
pub sec_value_date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "23")]
pub broker_status: ::prost::alloc::string::String,
#[prost(string, tag = "24")]
pub separate_agreement_type: ::prost::alloc::string::String,
#[prost(string, tag = "25")]
pub separate_agreement_number: ::prost::alloc::string::String,
#[prost(string, tag = "26")]
pub separate_agreement_date: ::prost::alloc::string::String,
#[prost(string, tag = "27")]
pub delivery_type: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDividendsForeignIssuerRequest {
#[prost(
oneof = "get_dividends_foreign_issuer_request::Payload",
tags = "1, 2"
)]
pub payload:
::core::option::Option<get_dividends_foreign_issuer_request::Payload>,
}
pub mod get_dividends_foreign_issuer_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
GenerateDivForeignIssuerReport(
super::GenerateDividendsForeignIssuerReportRequest,
),
#[prost(message, tag = "2")]
GetDivForeignIssuerReport(
super::GetDividendsForeignIssuerReportRequest,
),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDividendsForeignIssuerResponse {
#[prost(
oneof = "get_dividends_foreign_issuer_response::Payload",
tags = "1, 2"
)]
pub payload: ::core::option::Option<
get_dividends_foreign_issuer_response::Payload,
>,
}
pub mod get_dividends_foreign_issuer_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
GenerateDivForeignIssuerReportResponse(
super::GenerateDividendsForeignIssuerReportResponse,
),
#[prost(message, tag = "2")]
DivForeignIssuerReport(
super::GetDividendsForeignIssuerReportResponse,
),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerateDividendsForeignIssuerReportRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub from: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "3")]
pub to: ::core::option::Option<::prost_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDividendsForeignIssuerReportRequest {
#[prost(string, tag = "1")]
pub task_id: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerateDividendsForeignIssuerReportResponse {
#[prost(string, tag = "1")]
pub task_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDividendsForeignIssuerReportResponse {
#[prost(message, repeated, tag = "1")]
pub dividends_foreign_issuer_report:
::prost::alloc::vec::Vec<DividendsForeignIssuerReport>,
#[prost(int32, tag = "2")]
pub items_count: i32,
#[prost(int32, tag = "3")]
pub pages_count: i32,
#[prost(int32, tag = "4")]
pub page: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DividendsForeignIssuerReport {
#[prost(message, optional, tag = "1")]
pub record_date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "2")]
pub payment_date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "3")]
pub security_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub isin: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub issuer_country: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub quantity: i64,
#[prost(message, optional, tag = "7")]
pub dividend: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "8")]
pub external_commission: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "9")]
pub dividend_gross: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "10")]
pub tax: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "11")]
pub dividend_amount: ::core::option::Option<Quotation>,
#[prost(string, tag = "12")]
pub currency: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioStreamRequest {
#[prost(string, repeated, tag = "1")]
pub accounts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioStreamResponse {
#[prost(oneof = "portfolio_stream_response::Payload", tags = "1, 2, 3")]
pub payload: ::core::option::Option<portfolio_stream_response::Payload>,
}
pub mod portfolio_stream_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
Subscriptions(super::PortfolioSubscriptionResult),
#[prost(message, tag = "2")]
Portfolio(super::PortfolioResponse),
#[prost(message, tag = "3")]
Ping(super::Ping),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioSubscriptionResult {
#[prost(message, repeated, tag = "1")]
pub accounts: ::prost::alloc::vec::Vec<AccountSubscriptionStatus>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AccountSubscriptionStatus {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(enumeration = "PortfolioSubscriptionStatus", tag = "6")]
pub subscription_status: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOperationsByCursorRequest {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub instrument_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub from: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "7")]
pub to: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "11")]
pub cursor: ::prost::alloc::string::String,
#[prost(int32, tag = "12")]
pub limit: i32,
#[prost(enumeration = "OperationType", repeated, tag = "13")]
pub operation_types: ::prost::alloc::vec::Vec<i32>,
#[prost(enumeration = "OperationState", tag = "14")]
pub state: i32,
#[prost(bool, tag = "15")]
pub without_commissions: bool,
#[prost(bool, tag = "16")]
pub without_trades: bool,
#[prost(bool, tag = "17")]
pub without_overnights: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOperationsByCursorResponse {
#[prost(bool, tag = "1")]
pub has_next: bool,
#[prost(string, tag = "2")]
pub next_cursor: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "6")]
pub items: ::prost::alloc::vec::Vec<OperationItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationItem {
#[prost(string, tag = "1")]
pub cursor: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub broker_account_id: ::prost::alloc::string::String,
#[prost(string, tag = "16")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "17")]
pub parent_operation_id: ::prost::alloc::string::String,
#[prost(string, tag = "18")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "21")]
pub date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(enumeration = "OperationType", tag = "22")]
pub r#type: i32,
#[prost(string, tag = "23")]
pub description: ::prost::alloc::string::String,
#[prost(enumeration = "OperationState", tag = "24")]
pub state: i32,
#[prost(string, tag = "31")]
pub instrument_uid: ::prost::alloc::string::String,
#[prost(string, tag = "32")]
pub figi: ::prost::alloc::string::String,
#[prost(string, tag = "33")]
pub instrument_type: ::prost::alloc::string::String,
#[prost(enumeration = "InstrumentType", tag = "34")]
pub instrument_kind: i32,
#[prost(string, tag = "35")]
pub position_uid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "41")]
pub payment: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "42")]
pub price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "43")]
pub commission: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "44")]
pub r#yield: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "45")]
pub yield_relative: ::core::option::Option<Quotation>,
#[prost(message, optional, tag = "46")]
pub accrued_int: ::core::option::Option<MoneyValue>,
#[prost(int64, tag = "51")]
pub quantity: i64,
#[prost(int64, tag = "52")]
pub quantity_rest: i64,
#[prost(int64, tag = "53")]
pub quantity_done: i64,
#[prost(message, optional, tag = "56")]
pub cancel_date_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "57")]
pub cancel_reason: ::prost::alloc::string::String,
#[prost(message, optional, tag = "61")]
pub trades_info: ::core::option::Option<OperationItemTrades>,
#[prost(string, tag = "64")]
pub asset_uid: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationItemTrades {
#[prost(message, repeated, tag = "6")]
pub trades: ::prost::alloc::vec::Vec<OperationItemTrade>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationItemTrade {
#[prost(string, tag = "1")]
pub num: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub date: ::core::option::Option<::prost_types::Timestamp>,
#[prost(int64, tag = "11")]
pub quantity: i64,
#[prost(message, optional, tag = "16")]
pub price: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "21")]
pub r#yield: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "22")]
pub yield_relative: ::core::option::Option<Quotation>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsStreamRequest {
#[prost(string, repeated, tag = "1")]
pub accounts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsStreamResponse {
#[prost(oneof = "positions_stream_response::Payload", tags = "1, 2, 3")]
pub payload: ::core::option::Option<positions_stream_response::Payload>,
}
pub mod positions_stream_response {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag = "1")]
Subscriptions(super::PositionsSubscriptionResult),
#[prost(message, tag = "2")]
Position(super::PositionData),
#[prost(message, tag = "3")]
Ping(super::Ping),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsSubscriptionResult {
#[prost(message, repeated, tag = "1")]
pub accounts: ::prost::alloc::vec::Vec<PositionsSubscriptionStatus>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsSubscriptionStatus {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(enumeration = "PositionsAccountSubscriptionStatus", tag = "6")]
pub subscription_status: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionData {
#[prost(string, tag = "1")]
pub account_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub money: ::prost::alloc::vec::Vec<PositionsMoney>,
#[prost(message, repeated, tag = "3")]
pub securities: ::prost::alloc::vec::Vec<PositionsSecurities>,
#[prost(message, repeated, tag = "4")]
pub futures: ::prost::alloc::vec::Vec<PositionsFutures>,
#[prost(message, repeated, tag = "5")]
pub options: ::prost::alloc::vec::Vec<PositionsOptions>,
#[prost(message, optional, tag = "6")]
pub date: ::core::option::Option<::prost_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionsMoney {
#[prost(message, optional, tag = "1")]
pub available_value: ::core::option::Option<MoneyValue>,
#[prost(message, optional, tag = "2")]
pub blocked_value: ::core::option::Option<MoneyValue>,
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum OperationState {
Unspecified = 0,
Executed = 1,
Canceled = 2,
Progress = 3,
}
impl OperationState {
pub fn as_str_name(&self) -> &'static str {
match self {
OperationState::Unspecified => "OPERATION_STATE_UNSPECIFIED",
OperationState::Executed => "OPERATION_STATE_EXECUTED",
OperationState::Canceled => "OPERATION_STATE_CANCELED",
OperationState::Progress => "OPERATION_STATE_PROGRESS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OPERATION_STATE_UNSPECIFIED" => Some(Self::Unspecified),
"OPERATION_STATE_EXECUTED" => Some(Self::Executed),
"OPERATION_STATE_CANCELED" => Some(Self::Canceled),
"OPERATION_STATE_PROGRESS" => Some(Self::Progress),
_ => None,
}
}
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum OperationType {
Unspecified = 0,
Input = 1,
BondTax = 2,
OutputSecurities = 3,
Overnight = 4,
Tax = 5,
BondRepaymentFull = 6,
SellCard = 7,
DividendTax = 8,
Output = 9,
BondRepayment = 10,
TaxCorrection = 11,
ServiceFee = 12,
BenefitTax = 13,
MarginFee = 14,
Buy = 15,
BuyCard = 16,
InputSecurities = 17,
SellMargin = 18,
BrokerFee = 19,
BuyMargin = 20,
Dividend = 21,
Sell = 22,
Coupon = 23,
SuccessFee = 24,
DividendTransfer = 25,
AccruingVarmargin = 26,
WritingOffVarmargin = 27,
DeliveryBuy = 28,
DeliverySell = 29,
TrackMfee = 30,
TrackPfee = 31,
TaxProgressive = 32,
BondTaxProgressive = 33,
DividendTaxProgressive = 34,
BenefitTaxProgressive = 35,
TaxCorrectionProgressive = 36,
TaxRepoProgressive = 37,
TaxRepo = 38,
TaxRepoHold = 39,
TaxRepoRefund = 40,
TaxRepoHoldProgressive = 41,
TaxRepoRefundProgressive = 42,
DivExt = 43,
TaxCorrectionCoupon = 44,
CashFee = 45,
OutFee = 46,
OutStampDuty = 47,
OutputSwift = 50,
InputSwift = 51,
OutputAcquiring = 53,
InputAcquiring = 54,
OutputPenalty = 55,
AdviceFee = 56,
TransIisBs = 57,
TransBsBs = 58,
OutMulti = 59,
InpMulti = 60,
OverPlacement = 61,
OverCom = 62,
OverIncome = 63,
OptionExpiration = 64,
}
impl OperationType {
pub fn as_str_name(&self) -> &'static str {
match self {
OperationType::Unspecified => "OPERATION_TYPE_UNSPECIFIED",
OperationType::Input => "OPERATION_TYPE_INPUT",
OperationType::BondTax => "OPERATION_TYPE_BOND_TAX",
OperationType::OutputSecurities => {
"OPERATION_TYPE_OUTPUT_SECURITIES"
}
OperationType::Overnight => "OPERATION_TYPE_OVERNIGHT",
OperationType::Tax => "OPERATION_TYPE_TAX",
OperationType::BondRepaymentFull => {
"OPERATION_TYPE_BOND_REPAYMENT_FULL"
}
OperationType::SellCard => "OPERATION_TYPE_SELL_CARD",
OperationType::DividendTax => "OPERATION_TYPE_DIVIDEND_TAX",
OperationType::Output => "OPERATION_TYPE_OUTPUT",
OperationType::BondRepayment => "OPERATION_TYPE_BOND_REPAYMENT",
OperationType::TaxCorrection => "OPERATION_TYPE_TAX_CORRECTION",
OperationType::ServiceFee => "OPERATION_TYPE_SERVICE_FEE",
OperationType::BenefitTax => "OPERATION_TYPE_BENEFIT_TAX",
OperationType::MarginFee => "OPERATION_TYPE_MARGIN_FEE",
OperationType::Buy => "OPERATION_TYPE_BUY",
OperationType::BuyCard => "OPERATION_TYPE_BUY_CARD",
OperationType::InputSecurities => {
"OPERATION_TYPE_INPUT_SECURITIES"
}
OperationType::SellMargin => "OPERATION_TYPE_SELL_MARGIN",
OperationType::BrokerFee => "OPERATION_TYPE_BROKER_FEE",
OperationType::BuyMargin => "OPERATION_TYPE_BUY_MARGIN",
OperationType::Dividend => "OPERATION_TYPE_DIVIDEND",
OperationType::Sell => "OPERATION_TYPE_SELL",
OperationType::Coupon => "OPERATION_TYPE_COUPON",
OperationType::SuccessFee => "OPERATION_TYPE_SUCCESS_FEE",
OperationType::DividendTransfer => {
"OPERATION_TYPE_DIVIDEND_TRANSFER"
}
OperationType::AccruingVarmargin => {
"OPERATION_TYPE_ACCRUING_VARMARGIN"
}
OperationType::WritingOffVarmargin => {
"OPERATION_TYPE_WRITING_OFF_VARMARGIN"
}
OperationType::DeliveryBuy => "OPERATION_TYPE_DELIVERY_BUY",
OperationType::DeliverySell => "OPERATION_TYPE_DELIVERY_SELL",
OperationType::TrackMfee => "OPERATION_TYPE_TRACK_MFEE",
OperationType::TrackPfee => "OPERATION_TYPE_TRACK_PFEE",
OperationType::TaxProgressive => "OPERATION_TYPE_TAX_PROGRESSIVE",
OperationType::BondTaxProgressive => {
"OPERATION_TYPE_BOND_TAX_PROGRESSIVE"
}
OperationType::DividendTaxProgressive => {
"OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE"
}
OperationType::BenefitTaxProgressive => {
"OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE"
}
OperationType::TaxCorrectionProgressive => {
"OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE"
}
OperationType::TaxRepoProgressive => {
"OPERATION_TYPE_TAX_REPO_PROGRESSIVE"
}
OperationType::TaxRepo => "OPERATION_TYPE_TAX_REPO",
OperationType::TaxRepoHold => "OPERATION_TYPE_TAX_REPO_HOLD",
OperationType::TaxRepoRefund => "OPERATION_TYPE_TAX_REPO_REFUND",
OperationType::TaxRepoHoldProgressive => {
"OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE"
}
OperationType::TaxRepoRefundProgressive => {
"OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE"
}
OperationType::DivExt => "OPERATION_TYPE_DIV_EXT",
OperationType::TaxCorrectionCoupon => {
"OPERATION_TYPE_TAX_CORRECTION_COUPON"
}
OperationType::CashFee => "OPERATION_TYPE_CASH_FEE",
OperationType::OutFee => "OPERATION_TYPE_OUT_FEE",
OperationType::OutStampDuty => "OPERATION_TYPE_OUT_STAMP_DUTY",
OperationType::OutputSwift => "OPERATION_TYPE_OUTPUT_SWIFT",
OperationType::InputSwift => "OPERATION_TYPE_INPUT_SWIFT",
OperationType::OutputAcquiring => {
"OPERATION_TYPE_OUTPUT_ACQUIRING"
}
OperationType::InputAcquiring => "OPERATION_TYPE_INPUT_ACQUIRING",
OperationType::OutputPenalty => "OPERATION_TYPE_OUTPUT_PENALTY",
OperationType::AdviceFee => "OPERATION_TYPE_ADVICE_FEE",
OperationType::TransIisBs => "OPERATION_TYPE_TRANS_IIS_BS",
OperationType::TransBsBs => "OPERATION_TYPE_TRANS_BS_BS",
OperationType::OutMulti => "OPERATION_TYPE_OUT_MULTI",
OperationType::InpMulti => "OPERATION_TYPE_INP_MULTI",
OperationType::OverPlacement => "OPERATION_TYPE_OVER_PLACEMENT",
OperationType::OverCom => "OPERATION_TYPE_OVER_COM",
OperationType::OverIncome => "OPERATION_TYPE_OVER_INCOME",
OperationType::OptionExpiration => {
"OPERATION_TYPE_OPTION_EXPIRATION"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OPERATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"OPERATION_TYPE_INPUT" => Some(Self::Input),
"OPERATION_TYPE_BOND_TAX" => Some(Self::BondTax),
"OPERATION_TYPE_OUTPUT_SECURITIES" => {
Some(Self::OutputSecurities)
}
"OPERATION_TYPE_OVERNIGHT" => Some(Self::Overnight),
"OPERATION_TYPE_TAX" => Some(Self::Tax),
"OPERATION_TYPE_BOND_REPAYMENT_FULL" => {
Some(Self::BondRepaymentFull)
}
"OPERATION_TYPE_SELL_CARD" => Some(Self::SellCard),
"OPERATION_TYPE_DIVIDEND_TAX" => Some(Self::DividendTax),
"OPERATION_TYPE_OUTPUT" => Some(Self::Output),
"OPERATION_TYPE_BOND_REPAYMENT" => Some(Self::BondRepayment),
"OPERATION_TYPE_TAX_CORRECTION" => Some(Self::TaxCorrection),
"OPERATION_TYPE_SERVICE_FEE" => Some(Self::ServiceFee),
"OPERATION_TYPE_BENEFIT_TAX" => Some(Self::BenefitTax),
"OPERATION_TYPE_MARGIN_FEE" => Some(Self::MarginFee),
"OPERATION_TYPE_BUY" => Some(Self::Buy),
"OPERATION_TYPE_BUY_CARD" => Some(Self::BuyCard),
"OPERATION_TYPE_INPUT_SECURITIES" => Some(Self::InputSecurities),
"OPERATION_TYPE_SELL_MARGIN" => Some(Self::SellMargin),
"OPERATION_TYPE_BROKER_FEE" => Some(Self::BrokerFee),
"OPERATION_TYPE_BUY_MARGIN" => Some(Self::BuyMargin),
"OPERATION_TYPE_DIVIDEND" => Some(Self::Dividend),
"OPERATION_TYPE_SELL" => Some(Self::Sell),
"OPERATION_TYPE_COUPON" => Some(Self::Coupon),
"OPERATION_TYPE_SUCCESS_FEE" => Some(Self::SuccessFee),
"OPERATION_TYPE_DIVIDEND_TRANSFER" => {
Some(Self::DividendTransfer)
}
"OPERATION_TYPE_ACCRUING_VARMARGIN" => {
Some(Self::AccruingVarmargin)
}
"OPERATION_TYPE_WRITING_OFF_VARMARGIN" => {
Some(Self::WritingOffVarmargin)
}
"OPERATION_TYPE_DELIVERY_BUY" => Some(Self::DeliveryBuy),
"OPERATION_TYPE_DELIVERY_SELL" => Some(Self::DeliverySell),
"OPERATION_TYPE_TRACK_MFEE" => Some(Self::TrackMfee),
"OPERATION_TYPE_TRACK_PFEE" => Some(Self::TrackPfee),
"OPERATION_TYPE_TAX_PROGRESSIVE" => Some(Self::TaxProgressive),
"OPERATION_TYPE_BOND_TAX_PROGRESSIVE" => {
Some(Self::BondTaxProgressive)
}
"OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE" => {
Some(Self::DividendTaxProgressive)
}
"OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE" => {
Some(Self::BenefitTaxProgressive)
}
"OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE" => {
Some(Self::TaxCorrectionProgressive)
}
"OPERATION_TYPE_TAX_REPO_PROGRESSIVE" => {
Some(Self::TaxRepoProgressive)
}
"OPERATION_TYPE_TAX_REPO" => Some(Self::TaxRepo),
"OPERATION_TYPE_TAX_REPO_HOLD" => Some(Self::TaxRepoHold),
"OPERATION_TYPE_TAX_REPO_REFUND" => Some(Self::TaxRepoRefund),
"OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE" => {
Some(Self::TaxRepoHoldProgressive)
}
"OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE" => {
Some(Self::TaxRepoRefundProgressive)
}
"OPERATION_TYPE_DIV_EXT" => Some(Self::DivExt),
"OPERATION_TYPE_TAX_CORRECTION_COUPON" => {
Some(Self::TaxCorrectionCoupon)
}
"OPERATION_TYPE_CASH_FEE" => Some(Self::CashFee),
"OPERATION_TYPE_OUT_FEE" => Some(Self::OutFee),
"OPERATION_TYPE_OUT_STAMP_DUTY" => Some(Self::OutStampDuty),
"OPERATION_TYPE_OUTPUT_SWIFT" => Some(Self::OutputSwift),
"OPERATION_TYPE_INPUT_SWIFT" => Some(Self::InputSwift),
"OPERATION_TYPE_OUTPUT_ACQUIRING" => Some(Self::OutputAcquiring),
"OPERATION_TYPE_INPUT_ACQUIRING" => Some(Self::InputAcquiring),
"OPERATION_TYPE_OUTPUT_PENALTY" => Some(Self::OutputPenalty),
"OPERATION_TYPE_ADVICE_FEE" => Some(Self::AdviceFee),
"OPERATION_TYPE_TRANS_IIS_BS" => Some(Self::TransIisBs),
"OPERATION_TYPE_TRANS_BS_BS" => Some(Self::TransBsBs),
"OPERATION_TYPE_OUT_MULTI" => Some(Self::OutMulti),
"OPERATION_TYPE_INP_MULTI" => Some(Self::InpMulti),
"OPERATION_TYPE_OVER_PLACEMENT" => Some(Self::OverPlacement),
"OPERATION_TYPE_OVER_COM" => Some(Self::OverCom),
"OPERATION_TYPE_OVER_INCOME" => Some(Self::OverIncome),
"OPERATION_TYPE_OPTION_EXPIRATION" => {
Some(Self::OptionExpiration)
}
_ => None,
}
}
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum PortfolioSubscriptionStatus {
Unspecified = 0,
Success = 1,
AccountNotFound = 2,
InternalError = 3,
}
impl PortfolioSubscriptionStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
PortfolioSubscriptionStatus::Unspecified => {
"PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED"
}
PortfolioSubscriptionStatus::Success => {
"PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS"
}
PortfolioSubscriptionStatus::AccountNotFound => {
"PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND"
}
PortfolioSubscriptionStatus::InternalError => {
"PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED" => {
Some(Self::Unspecified)
}
"PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS" => Some(Self::Success),
"PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND" => {
Some(Self::AccountNotFound)
}
"PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR" => {
Some(Self::InternalError)
}
_ => None,
}
}
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration,
)]
#[repr(i32)]
pub enum PositionsAccountSubscriptionStatus {
PositionsSubscriptionStatusUnspecified = 0,
PositionsSubscriptionStatusSuccess = 1,
PositionsSubscriptionStatusAccountNotFound = 2,
PositionsSubscriptionStatusInternalError = 3,
}
impl PositionsAccountSubscriptionStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
PositionsAccountSubscriptionStatus::PositionsSubscriptionStatusUnspecified => {
"POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED"
}
PositionsAccountSubscriptionStatus::PositionsSubscriptionStatusSuccess => {
"POSITIONS_SUBSCRIPTION_STATUS_SUCCESS"
}
PositionsAccountSubscriptionStatus::PositionsSubscriptionStatusAccountNotFound => {
"POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND"
}
PositionsAccountSubscriptionStatus::PositionsSubscriptionStatusInternalError => {
"POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED" => {
Some(Self::PositionsSubscriptionStatusUnspecified)
}
"POSITIONS_SUBSCRIPTION_STATUS_SUCCESS" => {
Some(Self::PositionsSubscriptionStatusSuccess)
}
"POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND" => {
Some(Self::PositionsSubscriptionStatusAccountNotFound)
}
"POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR" => {
Some(Self::PositionsSubscriptionStatusInternalError)
}
_ => None,
}
}
}
pub mod operations_service_client {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::let_unit_value
)]
use tonic::codegen::http::Uri;
use tonic::codegen::*;
#[derive(Debug, Clone)]
pub struct OperationsServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl OperationsServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(
dst: D,
) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn =
tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> OperationsServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> OperationsServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T:
tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<
tonic::body::BoxBody,
>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
OperationsServiceClient::new(InterceptedService::new(
inner,
interceptor,
))
}
#[must_use]
pub fn send_compressed(
mut self,
encoding: CompressionEncoding,
) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(
mut self,
encoding: CompressionEncoding,
) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_operations(
&mut self,
request: impl tonic::IntoRequest<super::OperationsRequest>,
) -> Result<tonic::Response<super::OperationsResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetOperations",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_portfolio(
&mut self,
request: impl tonic::IntoRequest<super::PortfolioRequest>,
) -> Result<tonic::Response<super::PortfolioResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetPortfolio",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_positions(
&mut self,
request: impl tonic::IntoRequest<super::PositionsRequest>,
) -> Result<tonic::Response<super::PositionsResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetPositions",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_withdraw_limits(
&mut self,
request: impl tonic::IntoRequest<super::WithdrawLimitsRequest>,
) -> Result<
tonic::Response<super::WithdrawLimitsResponse>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetWithdrawLimits",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_broker_report(
&mut self,
request: impl tonic::IntoRequest<super::BrokerReportRequest>,
) -> Result<tonic::Response<super::BrokerReportResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetBrokerReport",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_dividends_foreign_issuer(
&mut self,
request: impl tonic::IntoRequest<
super::GetDividendsForeignIssuerRequest,
>,
) -> Result<
tonic::Response<super::GetDividendsForeignIssuerResponse>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetDividendsForeignIssuer",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_operations_by_cursor(
&mut self,
request: impl tonic::IntoRequest<super::GetOperationsByCursorRequest>,
) -> Result<
tonic::Response<super::GetOperationsByCursorResponse>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsService/GetOperationsByCursor",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod operations_stream_service_client {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::let_unit_value
)]
use tonic::codegen::http::Uri;
use tonic::codegen::*;
#[derive(Debug, Clone)]
pub struct OperationsStreamServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl OperationsStreamServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(
dst: D,
) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn =
tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> OperationsStreamServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> OperationsStreamServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T:
tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<
tonic::body::BoxBody,
>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
OperationsStreamServiceClient::new(InterceptedService::new(
inner,
interceptor,
))
}
#[must_use]
pub fn send_compressed(
mut self,
encoding: CompressionEncoding,
) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(
mut self,
encoding: CompressionEncoding,
) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn portfolio_stream(
&mut self,
request: impl tonic::IntoRequest<super::PortfolioStreamRequest>,
) -> Result<
tonic::Response<
tonic::codec::Streaming<super::PortfolioStreamResponse>,
>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsStreamService/PortfolioStream",
);
self.inner
.server_streaming(request.into_request(), path, codec)
.await
}
pub async fn positions_stream(
&mut self,
request: impl tonic::IntoRequest<super::PositionsStreamRequest>,
) -> Result<
tonic::Response<
tonic::codec::Streaming<super::PositionsStreamResponse>,
>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/tinkoff.public.invest.api.contract.v1.OperationsStreamService/PositionsStream",
);
self.inner
.server_streaming(request.into_request(), path, codec)
.await
}
}
}