syntax = "proto3";

package tinkoff.public.invest.api.contract.v1;

option go_package = "./;investapi";
option java_package = "ru.tinkoff.piapi.contract.v1";
option java_multiple_files = true;
option csharp_namespace = "Tinkoff.InvestApi.V1";
option objc_class_prefix = "TIAPI";
option php_namespace = "Tinkoff\\Invest\\V1";

import "google/protobuf/timestamp.proto";
import "common.proto";


service InstrumentsService {/*Сервис предназначен для получения:</br>**1**. информации об инструментах;</br>**2**.
                            расписания торговых сессий;</br>**3**. календаря выплат купонов по облигациям;</br>**4**.
                            размера гарантийного обеспечения по фьючерсам;</br>**5**. дивидендов по ценной бумаге.*/

  //Метод получения расписания торгов торговых площадок.
  rpc TradingSchedules (TradingSchedulesRequest) returns (TradingSchedulesResponse);

  //Метод получения облигации по её идентификатору.
  rpc BondBy (InstrumentRequest) returns (BondResponse);

  //Метод получения списка облигаций.
  rpc Bonds (InstrumentsRequest) returns (BondsResponse);

  //Метод получения графика выплат купонов по облигации.
  rpc GetBondCoupons (GetBondCouponsRequest) returns (GetBondCouponsResponse);

  //Метод получения валюты по её идентификатору.
  rpc CurrencyBy (InstrumentRequest) returns (CurrencyResponse);

  //Метод получения списка валют.
  rpc Currencies (InstrumentsRequest) returns (CurrenciesResponse);

  //Метод получения инвестиционного фонда по его идентификатору.
  rpc EtfBy (InstrumentRequest) returns (EtfResponse);

  //Метод получения списка инвестиционных фондов.
  rpc Etfs (InstrumentsRequest) returns (EtfsResponse);

  //Метод получения фьючерса по его идентификатору.
  rpc FutureBy (InstrumentRequest) returns (FutureResponse);

  //Метод получения списка фьючерсов.
  rpc Futures (InstrumentsRequest) returns (FuturesResponse);

  //Метод получения опциона по его идентификатору.
  rpc OptionBy (InstrumentRequest) returns (OptionResponse);

  //Метод получения списка опционов.
  rpc Options (InstrumentsRequest) returns (OptionsResponse);

  //Метод получения акции по её идентификатору.
  rpc ShareBy (InstrumentRequest) returns (ShareResponse);

  //Метод получения списка акций.
  rpc Shares (InstrumentsRequest) returns (SharesResponse);

  //Метод получения накопленного купонного дохода по облигации.
  rpc GetAccruedInterests (GetAccruedInterestsRequest) returns (GetAccruedInterestsResponse);

  //Метод получения размера гарантийного обеспечения по фьючерсам.
  rpc GetFuturesMargin (GetFuturesMarginRequest) returns (GetFuturesMarginResponse);

  //Метод получения основной информации об инструменте.
  rpc GetInstrumentBy (InstrumentRequest) returns (InstrumentResponse);

  //Метод для получения событий выплаты дивидендов по инструменту.
  rpc GetDividends (GetDividendsRequest) returns (GetDividendsResponse);

  //Метод получения актива по его идентификатору.
  rpc GetAssetBy (AssetRequest) returns (AssetResponse);

  //Метод получения списка активов.
  rpc GetAssets (AssetsRequest) returns (AssetsResponse);

  //Метод получения списка избранных инструментов.
  rpc GetFavorites (GetFavoritesRequest) returns (GetFavoritesResponse);

  //Метод редактирования списка избранных инструментов.
  rpc EditFavorites (EditFavoritesRequest) returns (EditFavoritesResponse);

  //Метод получения списка стран.
  rpc GetCountries (GetCountriesRequest) returns (GetCountriesResponse);

  //Метод поиска инструмента.
  rpc FindInstrument (FindInstrumentRequest) returns (FindInstrumentResponse);

  //Метод получения списка брендов.
  rpc GetBrands(GetBrandsRequest) returns (GetBrandsResponse);

  //Метод получения бренда по его идентификатору.
  rpc GetBrandBy(GetBrandRequest) returns (Brand);
}

//Запрос расписания торгов.
message TradingSchedulesRequest {
  string exchange = 1; //Наименование биржи или расчетного календаря. </br>Если не передаётся, возвращается информация по всем доступным торговым площадкам.
  google.protobuf.Timestamp from = 2; //Начало периода по часовому поясу UTC.
  google.protobuf.Timestamp to = 3; //Окончание периода по часовому поясу UTC.
}

//Список торговых площадок.
message TradingSchedulesResponse {
  repeated TradingSchedule exchanges = 1; // Список торговых площадок и режимов торгов.
}

//Данные по торговой площадке.
message TradingSchedule {
  string exchange = 1; // Наименование торговой площадки.
  repeated TradingDay days = 2; // Массив с торговыми и неторговыми днями.
}

//Информация о времени торгов.
message TradingDay {
  reserved 5, 6;
  google.protobuf.Timestamp date = 1; // Дата.
  bool is_trading_day = 2; // Признак торгового дня на бирже.
  google.protobuf.Timestamp start_time = 3; // Время начала торгов по часовому поясу UTC.
  google.protobuf.Timestamp end_time = 4; // Время окончания торгов по часовому поясу UTC.
  google.protobuf.Timestamp opening_auction_start_time = 7; // Время начала аукциона открытия в часовом поясе UTC.
  google.protobuf.Timestamp closing_auction_end_time = 8; // Время окончания аукциона закрытия в часовом поясе UTC.
  google.protobuf.Timestamp evening_opening_auction_start_time = 9; // Время начала аукциона открытия вечерней сессии в часовом поясе UTC.
  google.protobuf.Timestamp evening_start_time = 10; // Время начала вечерней сессии в часовом поясе UTC.
  google.protobuf.Timestamp evening_end_time = 11; // Время окончания вечерней сессии в часовом поясе UTC.
  google.protobuf.Timestamp clearing_start_time = 12; // Время начала основного клиринга в часовом поясе UTC.
  google.protobuf.Timestamp clearing_end_time = 13; // Время окончания основного клиринга в часовом поясе UTC.
  google.protobuf.Timestamp premarket_start_time = 14; // Время начала премаркета в часовом поясе UTC.
  google.protobuf.Timestamp premarket_end_time = 15; // Время окончания премаркета в часовом поясе UTC.
}

//Запрос получения инструмента по идентификатору.
message InstrumentRequest {
  InstrumentIdType id_type = 1; // Тип идентификатора инструмента. Возможные значения: figi, ticker. Подробнее об идентификации инструментов: [Идентификация инструментов](https://tinkoff.github.io/investAPI/faq_identification/)
  string class_code = 2; // Идентификатор class_code. Обязателен при id_type = ticker.
  string id = 3; // Идентификатор запрашиваемого инструмента.
}

//Запрос получения инструментов.
message InstrumentsRequest {
  InstrumentStatus instrument_status = 1; //Статус запрашиваемых инструментов. Возможные значения: [InstrumentStatus](#instrumentstatus)
}

//Информация об облигации.
message BondResponse {
  Bond instrument = 1; // Информация об облигации.
}

//Список облигаций.
message BondsResponse {
  repeated Bond instruments = 1; //Массив облигаций.
}

//Запрос купонов по облигации.
message GetBondCouponsRequest {
  string figi = 1; //Figi-идентификатор инструмента.
  google.protobuf.Timestamp from = 2; //Начало запрашиваемого периода в часовом поясе UTC. Фильтрация по coupon_date (дата выплаты купона)
  google.protobuf.Timestamp to = 3; //Окончание запрашиваемого периода в часовом поясе UTC. Фильтрация по coupon_date (дата выплаты купона)
}

//Купоны по облигации.
message GetBondCouponsResponse {
  repeated Coupon events = 1;
}

//Объект передачи информации о купоне облигации.
message Coupon {
  string figi = 1; //Figi-идентификатор инструмента.
  google.protobuf.Timestamp coupon_date = 2; //Дата выплаты купона.
  int64 coupon_number = 3; //Номер купона.
  google.protobuf.Timestamp fix_date = 4; //(Опционально) Дата фиксации реестра для выплаты купона.
  MoneyValue pay_one_bond = 5; //Выплата на одну облигацию.
  CouponType coupon_type = 6;  //Тип купона.
  google.protobuf.Timestamp coupon_start_date = 7; //Начало купонного периода.
  google.protobuf.Timestamp coupon_end_date = 8;   //Окончание купонного периода.
  int32 coupon_period = 9; //Купонный период в днях.
}

//Тип купонов.
enum CouponType {
  COUPON_TYPE_UNSPECIFIED = 0; //Неопределенное значение
  COUPON_TYPE_CONSTANT = 1;    //Постоянный
  COUPON_TYPE_FLOATING = 2;    //Плавающий
  COUPON_TYPE_DISCOUNT = 3;    //Дисконт
  COUPON_TYPE_MORTGAGE = 4;    //Ипотечный
  COUPON_TYPE_FIX = 5;         //Фиксированный
  COUPON_TYPE_VARIABLE = 6;    //Переменный
  COUPON_TYPE_OTHER = 7;       //Прочее
}

//Данные по валюте.
message CurrencyResponse {
  Currency instrument = 1; // Информация о валюте.
}

//Данные по валютам.
message CurrenciesResponse {
  repeated Currency instruments = 1; //Массив валют.
}

//Данные по фонду.
message EtfResponse {
  Etf instrument = 1; // Информация о фонде.
}

//Данные по фондам.
message EtfsResponse {
  repeated Etf instruments = 1; //Массив фондов.
}

//Данные по фьючерсу.
message FutureResponse {
  Future instrument = 1; // Информация о фьючерсу.
}

//Данные по фьючерсам.
message FuturesResponse {
  repeated Future instruments = 1; //Массив фьючерсов.
}

//Данные по опциону.
message OptionResponse {
  Option instrument = 1; // Информация по опциону.
}

//Данные по опционам.
message OptionsResponse {
  repeated Option instruments = 1; //Массив данных по опциону.
}

//Опцион.
message Option {
  string uid = 1; //Уникальный идентификатор инструмента.
  string position_uid = 2; //Уникальный идентификатор позиции.
  string ticker = 3; //Тикер инструмента.
  string class_code = 4; //Класс-код.
  string basic_asset_position_uid = 5; //Уникальный идентификатор позиции основного инструмента.

  SecurityTradingStatus trading_status = 21; //Текущий режим торгов инструмента.
  RealExchange real_exchange = 31; //Реальная площадка исполнения расчётов. Допустимые значения: [REAL_EXCHANGE_MOEX, REAL_EXCHANGE_RTS]
  OptionDirection direction = 41; //Направление опциона.
  OptionPaymentType payment_type = 42; //Тип расчетов по опциону.
  OptionStyle style = 43; //Стиль опциона.
  OptionSettlementType settlement_type = 44; //Способ исполнения опциона.

  string name = 101; //Название инструмента.
  string currency = 111; //Валюта.
  string settlement_currency = 112; //Валюта, в которой оценивается контракт.
  string asset_type = 131; //Тип актива.
  string basic_asset = 132; //Основной актив.
  string exchange = 141; //Биржа.
  string country_of_risk = 151; //Код страны рисков.
  string country_of_risk_name = 152; //Наименование страны рисков.
  string sector = 161; //Сектор экономики.

  int32 lot = 201; //Количество бумаг в лоте.
  Quotation basic_asset_size = 211; //Размер основного актива.
  Quotation klong = 221; //Коэффициент ставки риска длинной позиции по клиенту.
  Quotation kshort = 222; //Коэффициент ставки риска короткой позиции по клиенту.
  Quotation dlong = 223; //Ставка риска минимальной маржи лонг.
  Quotation dshort = 224; //Ставка риска минимальной маржи шорт.
  Quotation dlong_min = 225; //Ставка риска начальной маржи лонг.
  Quotation dshort_min = 226; //Ставка риска начальной маржи шорт.
  Quotation min_price_increment = 231; //Минимальный шаг цены.
  MoneyValue strike_price = 241; //Цена страйка.

  google.protobuf.Timestamp expiration_date = 301; //Дата истечения срока в формате UTC.
  google.protobuf.Timestamp first_trade_date = 311; //Дата начала обращения контракта в формате UTC.
  google.protobuf.Timestamp last_trade_date = 312; //Дата исполнения в формате UTC.
  google.protobuf.Timestamp first_1min_candle_date = 321; //Дата первой минутной свечи в формате UTC.
  google.protobuf.Timestamp first_1day_candle_date = 322; //Дата первой дневной свечи в формате UTC.

  bool short_enabled_flag = 401; //Признак доступности для операций шорт.
  bool for_iis_flag = 402; //Возможность покупки/продажи на ИИС.
  bool otc_flag = 403; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 404; //Признак доступности для покупки.
  bool sell_available_flag = 405; //Признак доступности для продажи.
  bool for_qual_investor_flag = 406; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 407; //Флаг отображающий доступность торговли инструментом по выходным.
  bool blocked_tca_flag = 408; //Флаг заблокированного ТКС.
  bool api_trade_available_flag = 409; //Параметр указывает на возможность торговать инструментом через API.
}

//Тип опциона по направлению сделки.
enum OptionDirection {
  OPTION_DIRECTION_UNSPECIFIED = 0; //Тип не определен.
  OPTION_DIRECTION_PUT = 1; //Опцион на продажу.
  OPTION_DIRECTION_CALL = 2; //Опцион на покупку.
}

//Тип расчетов по опциону.
enum OptionPaymentType {
  OPTION_PAYMENT_TYPE_UNSPECIFIED = 0; //Тип не определен.
  OPTION_PAYMENT_TYPE_PREMIUM = 1; //Опционы с использованием премии в расчетах.
  OPTION_PAYMENT_TYPE_MARGINAL = 2; //Маржируемые опционы.
}

//Тип опциона по стилю.
enum OptionStyle {
  OPTION_STYLE_UNSPECIFIED = 0; //Тип не определен.
  OPTION_STYLE_AMERICAN = 1;  //Американский опцион.
  OPTION_STYLE_EUROPEAN = 2; //Европейский опцион.
}

//Тип опциона по способу исполнения.
enum OptionSettlementType {
  OPTION_EXECUTION_TYPE_UNSPECIFIED = 0; //Тип не определен.
  OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY = 1; // Поставочный тип опциона.
  OPTION_EXECUTION_TYPE_CASH_SETTLEMENT = 2; //Расчетный тип опциона.
}

//Данные по акции.
message ShareResponse {
  Share instrument = 1; // Информация об акции.
}

//Данные по акциям.
message SharesResponse {
  repeated Share instruments = 1; //Массив акций.
}

//Объект передачи информации об облигации.
message Bond {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код (секция торгов).
  string isin = 4; //Isin-идентификатор инструмента.
  int32 lot = 5; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 6; //Валюта расчётов.

  Quotation klong = 7; //Коэффициент ставки риска длинной позиции по инструменту.
  Quotation kshort = 8; //Коэффициент ставки риска короткой позиции по инструменту.
  Quotation dlong = 9; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 10; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 11; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 12; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 13; //Признак доступности для операций в шорт.
  string name = 15; //Название инструмента.
  string exchange = 16; //Торговая площадка.

  int32 coupon_quantity_per_year = 17; //Количество выплат по купонам в год.
  google.protobuf.Timestamp maturity_date = 18; //Дата погашения облигации в часовом поясе UTC.
  MoneyValue nominal = 19; //Номинал облигации.
  MoneyValue initial_nominal = 20; //Первоначальный номинал облигации.

  google.protobuf.Timestamp state_reg_date = 21; //Дата выпуска облигации в часовом поясе UTC.
  google.protobuf.Timestamp placement_date = 22; //Дата размещения в часовом поясе UTC.
  MoneyValue placement_price = 23; //Цена размещения.
  MoneyValue aci_value = 24; //Значение НКД (накопленного купонного дохода) на дату.

  string country_of_risk = 25; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 26; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string sector = 27; //Сектор экономики.
  string issue_kind = 28; //Форма выпуска. Возможные значения: </br>**documentary** — документарная; </br>**non_documentary** — бездокументарная.
  int64 issue_size = 29; //Размер выпуска.
  int64 issue_size_plan = 30; //Плановый размер выпуска.

  SecurityTradingStatus trading_status = 31; //Текущий режим торгов инструмента.
  bool otc_flag = 32; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 33; //Признак доступности для покупки.
  bool sell_available_flag = 34; //Признак доступности для продажи.
  bool floating_coupon_flag = 35; //Признак облигации с плавающим купоном.
  bool perpetual_flag = 36; //Признак бессрочной облигации.
  bool amortization_flag = 37; //Признак облигации с амортизацией долга.
  Quotation min_price_increment = 38; //Шаг цены.
  bool api_trade_available_flag = 39; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 40; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 41; //Реальная площадка исполнения расчётов.
  string position_uid = 42; //Уникальный идентификатор позиции инструмента.

  bool for_iis_flag = 51; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 52; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 53; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 54; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 61; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 62; //Дата первой дневной свечи.
}

//Объект передачи информации о валюте.
message Currency {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код (секция торгов).
  string isin = 4; //Isin-идентификатор инструмента.
  int32 lot = 5; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 6; //Валюта расчётов.

  Quotation klong = 7; //Коэффициент ставки риска длинной позиции по инструменту.
  Quotation kshort = 8; //Коэффициент ставки риска короткой позиции по инструменту.
  Quotation dlong = 9; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 10; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 11; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 12; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 13; //Признак доступности для операций в шорт.
  string name = 15; //Название инструмента.
  string exchange = 16; //Торговая площадка.

  MoneyValue nominal = 17; //Номинал.

  string country_of_risk = 18; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 19; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.

  SecurityTradingStatus trading_status = 20; //Текущий режим торгов инструмента.
  bool otc_flag = 21; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 22; //Признак доступности для покупки.
  bool sell_available_flag = 23; //Признак доступности для продажи.
  string iso_currency_name = 24; //Строковый ISO-код валюты.
  Quotation min_price_increment = 25; //Шаг цены.
  bool api_trade_available_flag = 26; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 27; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 28; //Реальная площадка исполнения расчётов.
  string position_uid = 29; //Уникальный идентификатор позиции инструмента.

  bool for_iis_flag = 41; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 52; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 53; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 54; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 56; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 57; //Дата первой дневной свечи.
}

//Объект передачи информации об инвестиционном фонде.
message Etf {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2; //Тикер инструмента.
  string class_code = 3; //Класс-код (секция торгов).
  string isin = 4; //Isin-идентификатор инструмента.
  int32 lot = 5; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 6; //Валюта расчётов.

  Quotation klong = 7; //Коэффициент ставки риска длинной позиции по инструменту.
  Quotation kshort = 8; //Коэффициент ставки риска короткой позиции по инструменту.
  Quotation dlong = 9; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 10; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 11; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 12; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 13; //Признак доступности для операций в шорт.
  string name = 15; //Название инструмента.
  string exchange = 16; //Торговая площадка.

  Quotation fixed_commission = 17; //Размер фиксированной комиссии фонда.
  string focus_type = 18; //Возможные значения: </br>**equity** — акции;</br>**fixed_income** — облигации;</br>**mixed_allocation** — смешанный;</br>**money_market** — денежный рынок;</br>**real_estate** — недвижимость;</br>**commodity** — товары;</br>**specialty** — специальный;</br>**private_equity** — private equity;</br>**alternative_investment** — альтернативные инвестиции.
  google.protobuf.Timestamp released_date = 19; //Дата выпуска в часовом поясе UTC.
  Quotation num_shares = 20; //Количество акций фонда в обращении.

  string country_of_risk = 21; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 22; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string sector = 23; //Сектор экономики.
  string rebalancing_freq = 24; //Частота ребалансировки.

  SecurityTradingStatus trading_status = 25; //Текущий режим торгов инструмента.
  bool otc_flag = 26; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 27; //Признак доступности для покупки.
  bool sell_available_flag = 28; //Признак доступности для продажи.
  Quotation min_price_increment = 29; //Шаг цены.
  bool api_trade_available_flag = 30; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 31; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 32; //Реальная площадка исполнения расчётов.
  string position_uid = 33; //Уникальный идентификатор позиции инструмента.

  bool for_iis_flag = 41; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 42; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 43; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 44; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 56; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 57; //Дата первой дневной свечи.
}

//Объект передачи информации о фьючерсе.
message Future {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код (секция торгов).
  int32 lot = 4; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 5; //Валюта расчётов.

  Quotation klong = 6; //Коэффициент ставки риска длинной позиции по клиенту.
  Quotation kshort = 7; //Коэффициент ставки риска короткой позиции по клиенту.
  Quotation dlong = 8; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 9; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 10; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 11; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 12; //Признак доступности для операций шорт.
  string name = 13; //Название инструмента.
  string exchange = 14; //Торговая площадка.

  google.protobuf.Timestamp first_trade_date = 15; //Дата начала обращения контракта в часовом поясе UTC.
  google.protobuf.Timestamp last_trade_date = 16; //Дата в часовом поясе UTC, до которой возможно проведение операций с фьючерсом.
  string futures_type = 17; //Тип фьючерса. Возможные значения: </br>**physical_delivery** — физические поставки; </br>**cash_settlement** — денежный эквивалент.
  string asset_type = 18; //Тип актива. Возможные значения: </br>**commodity** — товар; </br>**currency** — валюта; </br>**security** — ценная бумага; </br>**index** — индекс.
  string basic_asset = 19;  //Основной актив.
  Quotation basic_asset_size = 20;  //Размер основного актива.

  string country_of_risk = 21; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 22; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string sector = 23; //Сектор экономики.
  google.protobuf.Timestamp expiration_date = 24; //Дата истечения срока в часов поясе UTC.

  SecurityTradingStatus trading_status = 25; //Текущий режим торгов инструмента.
  bool otc_flag = 26; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 27; //Признак доступности для покупки.
  bool sell_available_flag = 28; //Признак доступности для продажи.
  Quotation min_price_increment = 29; //Шаг цены.
  bool api_trade_available_flag = 30; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 31; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 32; //Реальная площадка исполнения расчётов.
  string position_uid = 33; //Уникальный идентификатор позиции инструмента.
  string basic_asset_position_uid = 34; //Уникальный идентификатор позиции основного инструмента.

  bool for_iis_flag = 41; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 42; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 43; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 44; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 56; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 57; //Дата первой дневной свечи.
}

//Объект передачи информации об акции.
message Share {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код (секция торгов).
  string isin = 4; //Isin-идентификатор инструмента.
  int32 lot = 5; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 6; //Валюта расчётов.

  Quotation klong = 7; //Коэффициент ставки риска длинной позиции по инструменту.
  Quotation kshort = 8; //Коэффициент ставки риска короткой позиции по инструменту.
  Quotation dlong = 9; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 10; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 11; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 12; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 13; //Признак доступности для операций в шорт.
  string name = 15; //Название инструмента.
  string exchange = 16; //Торговая площадка.

  google.protobuf.Timestamp  ipo_date = 17; //Дата IPO акции в часовом поясе UTC.
  int64 issue_size = 18; //Размер выпуска.

  string country_of_risk = 19; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 20; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string sector = 21; //Сектор экономики.
  int64 issue_size_plan = 22; //Плановый размер выпуска.
  MoneyValue nominal = 23; //Номинал.

  SecurityTradingStatus trading_status = 25; //Текущий режим торгов инструмента.
  bool otc_flag = 26; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 27; //Признак доступности для покупки.
  bool sell_available_flag = 28; //Признак доступности для продажи.
  bool div_yield_flag = 29; //Признак наличия дивидендной доходности.
  ShareType share_type = 30; //Тип акции. Возможные значения: [ShareType](https://tinkoff.github.io/investAPI/instruments#sharetype)
  Quotation min_price_increment = 31; //Шаг цены.
  bool api_trade_available_flag = 32; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 33; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 34; //Реальная площадка исполнения расчётов.
  string position_uid = 35; //Уникальный идентификатор позиции инструмента.

  bool for_iis_flag = 46; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 47; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 48; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 49; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 56; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 57; //Дата первой дневной свечи.
}

//Запрос НКД по облигации
message GetAccruedInterestsRequest {
  string figi = 1; //Figi-идентификатор инструмента.
  google.protobuf.Timestamp from = 2; //Начало запрашиваемого периода в часовом поясе UTC.
  google.protobuf.Timestamp to = 3; //Окончание запрашиваемого периода в часовом поясе UTC.
}

//НКД облигации
message GetAccruedInterestsResponse {
  repeated AccruedInterest accrued_interests = 1; //Массив операций начисления купонов.
}

//Операция начисления купонов.
message AccruedInterest {
  google.protobuf.Timestamp date = 1; //Дата и время выплаты в часовом поясе UTC.
  Quotation value = 2; //Величина выплаты.
  Quotation value_percent = 3; //Величина выплаты в процентах от номинала.
  Quotation nominal = 4; //Номинал облигации.
}

//Запрос информации о фьючерсе
message GetFuturesMarginRequest {
  string figi = 1; // Идентификатор инструмента.
}

//Данные по фьючерсу
message GetFuturesMarginResponse {
  MoneyValue initial_margin_on_buy = 1; //Гарантийное обеспечение при покупке.
  MoneyValue initial_margin_on_sell = 2; //Гарантийное обеспечение при продаже.
  Quotation min_price_increment = 3; //Шаг цены.
  Quotation min_price_increment_amount = 4; //Стоимость шага цены.
}

//Тип идентификатора инструмента. Подробнее об идентификации инструментов: [Идентификация инструментов](https://tinkoff.github.io/investAPI/faq_identification/)
enum InstrumentIdType {
  INSTRUMENT_ID_UNSPECIFIED = 0; //Значение не определено.
  INSTRUMENT_ID_TYPE_FIGI = 1; //Figi.
  INSTRUMENT_ID_TYPE_TICKER = 2; //Ticker.
  INSTRUMENT_ID_TYPE_UID = 3; //Уникальный идентификатор.
  INSTRUMENT_ID_TYPE_POSITION_UID = 4; //Идентификатор позиции.
}

//Статус запрашиваемых инструментов.
enum InstrumentStatus {
  INSTRUMENT_STATUS_UNSPECIFIED = 0; //Значение не определено.
  INSTRUMENT_STATUS_BASE = 1; //Базовый список инструментов (по умолчанию). Инструменты доступные для торговли через TINKOFF INVEST API.
  INSTRUMENT_STATUS_ALL = 2; //Список всех инструментов.
}

//Данные по инструменту.
message InstrumentResponse {
  Instrument instrument = 1; // Основная информация об инструменте.
}

//Объект передачи основной информации об инструменте.
message Instrument {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код инструмента.
  string isin = 4; //Isin-идентификатор инструмента.
  int32 lot = 5; //Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру *lot*. Подробнее: [лот](https://tinkoff.github.io/investAPI/glossary#lot)
  string currency = 6; //Валюта расчётов.

  Quotation klong = 7; //Коэффициент ставки риска длинной позиции по инструменту.
  Quotation kshort = 8; //Коэффициент ставки риска короткой позиции по инструменту.
  Quotation dlong = 9; //Ставка риска минимальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort = 10; //Ставка риска минимальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  Quotation dlong_min = 11; //Ставка риска начальной маржи в лонг. Подробнее: [ставка риска в лонг](https://help.tinkoff.ru/margin-trade/long/risk-rate/)
  Quotation dshort_min = 12; //Ставка риска начальной маржи в шорт. Подробнее: [ставка риска в шорт](https://help.tinkoff.ru/margin-trade/short/risk-rate/)
  bool short_enabled_flag = 13; //Признак доступности для операций в шорт.
  string name = 14; //Название инструмента.
  string exchange = 15; //Торговая площадка.

  string country_of_risk = 16; //Код страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string country_of_risk_name = 17; //Наименование страны риска, т.е. страны, в которой компания ведёт основной бизнес.
  string instrument_type = 18; //Тип инструмента.

  SecurityTradingStatus trading_status = 19; //Текущий режим торгов инструмента.
  bool otc_flag = 20; //Признак внебиржевой ценной бумаги.
  bool buy_available_flag = 21; //Признак доступности для покупки.
  bool sell_available_flag = 22; //Признак доступности для продажи.
  Quotation min_price_increment = 23; //Шаг цены.
  bool api_trade_available_flag = 24; //Параметр указывает на возможность торговать инструментом через API.

  string uid = 25; //Уникальный идентификатор инструмента.
  RealExchange real_exchange = 26; //Реальная площадка исполнения расчётов.
  string position_uid = 27; //Уникальный идентификатор позиции инструмента.

  bool for_iis_flag = 36; //Признак доступности для ИИС.
  bool for_qual_investor_flag = 37; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 38; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 39; //Флаг заблокированного ТКС
  google.protobuf.Timestamp first_1min_candle_date = 56; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 57; //Дата первой дневной свечи.
}

//Запрос дивидендов.
message GetDividendsRequest {
  string figi = 1; //Figi-идентификатор инструмента.
  google.protobuf.Timestamp from = 2; //Начало запрашиваемого периода в часовом поясе UTC. Фильтрация происходит по параметру *record_date* (дата фиксации реестра).
  google.protobuf.Timestamp to = 3; //Окончание запрашиваемого периода в часовом поясе UTC. Фильтрация происходит по параметру *record_date* (дата фиксации реестра).
}

//Дивиденды.
message GetDividendsResponse {
  repeated Dividend dividends = 1;
}

//Информация о выплате.
message Dividend {
  MoneyValue dividend_net = 1; //Величина дивиденда на 1 ценную бумагу (включая валюту).
  google.protobuf.Timestamp payment_date = 2; //Дата фактических выплат в часовом поясе UTC.
  google.protobuf.Timestamp declared_date = 3; //Дата объявления дивидендов в часовом поясе UTC.
  google.protobuf.Timestamp last_buy_date = 4; //Последний день (включительно) покупки для получения выплаты в часовом поясе UTC.
  string dividend_type = 5; //Тип выплаты. Возможные значения: Regular Cash – регулярные выплаты, Cancelled – выплата отменена, Daily Accrual – ежедневное начисление, Return of Capital – возврат капитала, прочие типы выплат.
  google.protobuf.Timestamp record_date = 6;  //Дата фиксации реестра в часовом поясе UTC.
  string regularity = 7; //Регулярность выплаты. Возможные значения: Annual – ежегодная, Semi-Anl – каждые полгода, прочие типы выплат.
  MoneyValue close_price = 8; //Цена закрытия инструмента на момент ex_dividend_date.
  Quotation yield_value = 9; //Величина доходности.
  google.protobuf.Timestamp created_at = 10; //Дата и время создания записи в часовом поясе UTC.
}

//Тип акций.
enum ShareType {
  SHARE_TYPE_UNSPECIFIED = 0; //Значение не определено.
  SHARE_TYPE_COMMON = 1; //Обыкновенная
  SHARE_TYPE_PREFERRED = 2; //Привилегированная
  SHARE_TYPE_ADR = 3; //Американские депозитарные расписки
  SHARE_TYPE_GDR = 4; //Глобальные депозитарные расписки
  SHARE_TYPE_MLP = 5; //Товарищество с ограниченной ответственностью
  SHARE_TYPE_NY_REG_SHRS = 6; //Акции из реестра Нью-Йорка
  SHARE_TYPE_CLOSED_END_FUND = 7; //Закрытый инвестиционный фонд
  SHARE_TYPE_REIT = 8; //Траст недвижимости
}

//Запрос актива по идентификатору.
message AssetRequest {
  string id = 1; //uid-идентификатор актива.
}

//Данные по активу.
message AssetResponse {
  AssetFull asset = 1; //Актив.
}

//Запрос списка активов.
message AssetsRequest {
}

//Список активов.
message AssetsResponse {
  repeated Asset assets = 1; //Активы.
}

message AssetFull {
  string uid = 1; //Уникальный идентификатор актива.
  AssetType type = 2; //Тип актива.
  string name = 3; //Наименование актива.
  string name_brief = 4; //Короткое наименование актива.
  string description = 5; //Описание актива.
  google.protobuf.Timestamp deleted_at = 6; //Дата и время удаления актива.
  repeated string required_tests = 7; //Тестирование клиентов.
  oneof ext {
    AssetCurrency currency = 8; //Валюта. Обязательно и заполняется только для type = "ASSET_TYPE_CURRENCY".
    AssetSecurity security = 9; //Ценная бумага. Обязательно и заполняется только для type = "ASSET_TYPE_SECURITY".
  }
  string gos_reg_code = 10; //Номер государственной регистрации.
  string cfi = 11; //Код CFI.
  string code_nsd = 12; //Код НРД инструмента.
  string status = 13; //Статус актива.
  Brand brand = 14; //Бренд.
  google.protobuf.Timestamp updated_at = 15; //Дата и время последнего обновления записи.
  string br_code = 16; //Код типа ц.б. по классификации Банка России.
  string br_code_name = 17; //Наименование кода типа ц.б. по классификации Банка России.
  repeated AssetInstrument instruments = 18; //Массив идентификаторов инструментов.
}

//Информация об активе.
message Asset {
  string uid = 1; //Уникальный идентификатор актива.
  AssetType type = 2; //Тип актива.
  string name = 3; //Наименование актива.
  repeated AssetInstrument instruments = 4; //Массив идентификаторов инструментов.
}

//Тип актива.
enum AssetType {
  ASSET_TYPE_UNSPECIFIED = 0; //Тип не определён.
  ASSET_TYPE_CURRENCY = 1; //Валюта.
  ASSET_TYPE_COMMODITY = 2; //Товар.
  ASSET_TYPE_INDEX = 3; //Индекс.
  ASSET_TYPE_SECURITY = 4; //Ценная бумага.
}

//Валюта.
message AssetCurrency {
  string base_currency = 1; //ISO-код валюты.
}

//Ценная бумага.
message AssetSecurity {
  string isin = 1; //ISIN-идентификатор ценной бумаги.
  string type = 2; //Тип ценной бумаги.
  oneof ext {
    AssetShare share = 3; //Акция. Заполняется только для акций (тип актива asset.type = "ASSET_TYPE_SECURITY" и security.type = share).
    AssetBond bond = 4; //Облигация. Заполняется только для облигаций (тип актива asset.type = "ASSET_TYPE_SECURITY" и security.type = bond).
    AssetStructuredProduct sp = 5; //Структурная нота. Заполняется только для структурных продуктов (тип актива asset.type = "ASSET_TYPE_SECURITY" и security.type = sp).
    AssetEtf etf = 6; // Фонд. Заполняется только для фондов (тип актива asset.type = "ASSET_TYPE_SECURITY" и security.type = etf).
    AssetClearingCertificate clearing_certificate = 7; // Клиринговый сертификат участия. Заполняется только для клиринговых сертификатов (тип актива asset.type = "ASSET_TYPE_SECURITY" и security.type = clearing_certificate).
  }
}

//Акция.
message AssetShare {
  ShareType type = 1; //Тип акции.
  Quotation issue_size = 2; //Объем выпуска (шт.).
  Quotation nominal = 3; //Номинал.
  string nominal_currency = 4; //Валюта номинала.
  string primary_index = 5; //Индекс (Bloomberg).
  Quotation dividend_rate = 6; //Ставка дивиденда (для привилегированных акций).
  string preferred_share_type = 7; //Тип привилегированных акций.
  google.protobuf.Timestamp ipo_date = 8; //Дата IPO.
  google.protobuf.Timestamp registry_date = 9; //Дата регистрации.
  bool div_yield_flag = 10; //Признак наличия дивидендной доходности.
  string issue_kind = 11; //Форма выпуска ФИ.
  google.protobuf.Timestamp placement_date = 12; //Дата размещения акции.
  string repres_isin = 13; //ISIN базового актива.
  Quotation issue_size_plan = 14; //Объявленное количество шт.
  Quotation total_float = 15; //Количество акций в свободном обращении.
}

//Облигация.
message AssetBond {
  Quotation current_nominal = 1; //Текущий номинал.
  string borrow_name = 2; //Наименование заемщика.
  Quotation issue_size = 3; //Объем эмиссии облигации (стоимость).
  Quotation nominal = 4 ; //Номинал облигации.
  string nominal_currency = 5; //Валюта номинала.
  string issue_kind = 6; //Форма выпуска облигации.
  string interest_kind = 7; //Форма дохода облигации.
  int32 coupon_quantity_per_year = 8; //Количество выплат в год.
  bool indexed_nominal_flag = 9; //Признак облигации с индексируемым номиналом.
  bool subordinated_flag = 10; //Признак субординированной облигации.
  bool collateral_flag = 11; //Признак обеспеченной облигации.
  bool tax_free_flag = 12; //Признак показывает, что купоны облигации не облагаются налогом (для mass market).
  bool amortization_flag = 13; //Признак облигации с амортизацией долга.
  bool floating_coupon_flag = 14; //Признак облигации с плавающим купоном.
  bool perpetual_flag = 15; //Признак бессрочной облигации.
  google.protobuf.Timestamp maturity_date = 16; //Дата погашения облигации.
  string return_condition = 17; //Описание и условия получения дополнительного дохода.
  google.protobuf.Timestamp state_reg_date = 18; //Дата выпуска облигации.
  google.protobuf.Timestamp placement_date = 19; //Дата размещения облигации.
  Quotation placement_price = 20; //Цена размещения облигации.
  Quotation issue_size_plan = 21; //Объявленное количество шт.
}

//Структурная нота.
message AssetStructuredProduct {
  string borrow_name = 1; //Наименование заемщика.
  Quotation nominal = 2; //Номинал.
  string nominal_currency = 3; //Валюта номинала.
  StructuredProductType type = 4; //Тип структурной ноты.
  string logic_portfolio = 5; //Стратегия портфеля.
  AssetType asset_type = 6; //Тип базового актива.
  string basic_asset = 7; //Вид базового актива в зависимости от типа базового актива.
  Quotation safety_barrier = 8; //Барьер сохранности (в процентах).
  google.protobuf.Timestamp maturity_date = 9; //Дата погашения.
  Quotation issue_size_plan = 10; //Объявленное количество шт.
  Quotation issue_size = 11; //Объем размещения.
  google.protobuf.Timestamp placement_date = 12; //Дата размещения ноты.
  string issue_kind = 13; //Форма выпуска.
}

//Тип структурной ноты.
enum StructuredProductType {
  SP_TYPE_UNSPECIFIED = 0; //Тип не определён.
  SP_TYPE_DELIVERABLE = 1; //Поставочный.
  SP_TYPE_NON_DELIVERABLE = 2; //Беспоставочный.
}

//Фонд.
message AssetEtf {
  Quotation total_expense = 1; //Суммарные расходы фонда (в %).
  Quotation hurdle_rate = 2; //Барьерная ставка доходности после которой фонд имеет право на perfomance fee (в процентах).
  Quotation performance_fee = 3; //Комиссия за успешные результаты фонда (в процентах).
  Quotation fixed_commission = 4; //Фиксированная комиссия за управление (в процентах).
  string payment_type = 5; //Тип распределения доходов от выплат по бумагам.
  bool watermark_flag = 6; //Признак необходимости выхода фонда в плюс для получения комиссии.
  Quotation buy_premium = 7; //Премия (надбавка к цене) при покупке доли в фонде (в процентах).
  Quotation sell_discount = 8; //Ставка дисконта (вычет из цены) при продаже доли в фонде (в процентах).
  bool rebalancing_flag = 9; //Признак ребалансируемости портфеля фонда.
  string rebalancing_freq = 10; //Периодичность ребалансировки.
  string management_type = 11; //Тип управления.
  string primary_index = 12; //Индекс, который реплицирует (старается копировать) фонд.
  string focus_type = 13; //База ETF.
  bool leveraged_flag = 14; //Признак использования заемных активов (плечо).
  Quotation num_share = 15; //Количество акций в обращении.
  bool ucits_flag = 16; //Признак обязательства по отчетности перед регулятором.
  google.protobuf.Timestamp released_date = 17; //Дата выпуска.
  string  description = 18; //Описание фонда.
  string primary_index_description = 19; //Описание индекса, за которым следует фонд.
  string primary_index_company = 20; //Основные компании, в которые вкладывается фонд.
  Quotation index_recovery_period = 21; //Срок восстановления индекса (после просадки).
  string inav_code = 22; //IVAV-код.
  bool div_yield_flag = 23; //Признак наличия дивидендной доходности.
  Quotation expense_commission = 24; //Комиссия на покрытие расходов фонда (в процентах).
  Quotation primary_index_tracking_error = 25; //Ошибка следования за индексом (в процентах).
  string rebalancing_plan = 26; //Плановая ребалансировка портфеля.
  string tax_rate = 27; //Ставки налогообложения дивидендов и купонов.
  repeated google.protobuf.Timestamp rebalancing_dates = 28; //Даты ребалансировок.
  string issue_kind = 29; //Форма выпуска.
  Quotation nominal = 30; //Номинал.
  string nominal_currency = 31; //Валюта номинала.
}

//Клиринговый сертификат участия.
message AssetClearingCertificate {
  Quotation nominal = 1; //Номинал.
  string nominal_currency = 2; //Валюта номинала.
}

//Бренд.
message Brand {
  string uid = 1; //uid идентификатор бренда.
  string name = 2; //Наименование бренда.
  string description = 3; //Описание.
  string info = 4; //Информация о бренде.
  string company = 5; //Компания.
  string sector = 6; //Сектор.
  string country_of_risk = 7; //Код страны риска.
  string country_of_risk_name = 8; //Наименование страны риска.
}

//Идентификаторы инструмента.
message AssetInstrument {
  string uid = 1; //uid идентификатор инструмента.
  string figi = 2; //figi идентификатор инструмента.
  string instrument_type = 3; //Тип инструмента.
  string ticker = 4; //Тикер инструмента.
  string class_code = 5; //Класс-код (секция торгов).
  repeated InstrumentLink links = 6; //Массив связанных инструментов.
}

//Связь с другим инструментом.
message InstrumentLink {
  string type = 1; //Тип связи.
  string instrument_uid = 2; //uid идентификатор связанного инструмента.
}

//Запрос списка избранных инструментов, входные параметры не требуются.
message GetFavoritesRequest {
}

//В ответ передаётся список избранных инструментов в качестве массива.
message GetFavoritesResponse {
  repeated FavoriteInstrument favorite_instruments = 1; //Массив инструментов
}

//Массив избранных инструментов.
message FavoriteInstrument {
  string figi = 1; //Figi-идентификатор инструмента.
  string ticker = 2;  //Тикер инструмента.
  string class_code = 3; //Класс-код инструмента.
  string isin = 4; //Isin-идентификатор инструмента.
  string instrument_type = 11; //Тип инструмента.
  bool otc_flag = 16; //Признак внебиржевой ценной бумаги.
  bool api_trade_available_flag = 17; //Параметр указывает на возможность торговать инструментом через API.
}

//Запрос редактирования списка избранных инструментов.
message EditFavoritesRequest {
  repeated EditFavoritesRequestInstrument instruments = 1; //Массив инструментов.
  EditFavoritesActionType action_type = 6; //Тип действия со списком.
}

//Массив инструментов для редактирования списка избранных инструментов.
message EditFavoritesRequestInstrument {
  string figi = 1; //Figi-идентификатор инструмента.
}

//Тип действия со списком избранных инструментов.
enum EditFavoritesActionType {
  EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED = 0; //Тип не определён.
  EDIT_FAVORITES_ACTION_TYPE_ADD = 1; //Добавить в список.
  EDIT_FAVORITES_ACTION_TYPE_DEL = 2; //Удалить из списка.
}

//Результат редактирования списка избранных инструментов.
message EditFavoritesResponse {
  repeated FavoriteInstrument favorite_instruments = 1; //Массив инструментов
}

//Реальная площадка исполнения расчётов.
enum RealExchange {
  REAL_EXCHANGE_UNSPECIFIED = 0; //Тип не определён.
  REAL_EXCHANGE_MOEX = 1; //Московская биржа.
  REAL_EXCHANGE_RTS = 2; //Санкт-Петербургская биржа.
  REAL_EXCHANGE_OTC = 3; //Внебиржевой инструмент.
}

//Запрос справочника стран.
message GetCountriesRequest {}

//Справочник стран.
message GetCountriesResponse {
  repeated CountryResponse countries = 1; //Массив стран.
}

//Данные о стране.
message CountryResponse {
  string alfa_two = 1; //Двухбуквенный код страны.
  string alfa_three = 2; //Трёхбуквенный код страны.
  string name = 3; //Наименование страны.
  string name_brief = 4; //Краткое наименование страны.
}

//Запрос на поиск инструментов.
message FindInstrumentRequest {
  string query = 1; //Строка поиска.
}

//Результат поиска инструментов.
message FindInstrumentResponse {
  repeated InstrumentShort instruments = 1; //Массив инструментов, удовлетворяющих условиям поиска.
}

//Краткая информация об инструменте.
message InstrumentShort {
  string isin = 1; //Isin инструмента.
  string figi = 2; //Figi инструмента.
  string ticker = 3; //Ticker инструмента.
  string class_code = 4; //ClassCode инструмента.
  string instrument_type = 5; //Тип инструмента.
  string name = 6; //Название инструмента.
  string uid = 7; //Уникальный идентификатор инструмента.
  string position_uid = 8; //Уникальный идентификатор позиции инструмента.
  bool api_trade_available_flag = 11; //Параметр указывает на возможность торговать инструментом через API.
  bool for_iis_flag = 12; //Признак доступности для ИИС.
  google.protobuf.Timestamp first_1min_candle_date = 26; //Дата первой минутной свечи.
  google.protobuf.Timestamp first_1day_candle_date = 27; //Дата первой дневной свечи.
  bool for_qual_investor_flag = 28; //Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов.
  bool weekend_flag = 29; //Флаг отображающий доступность торговли инструментом по выходным
  bool blocked_tca_flag = 30; //Флаг заблокированного ТКС
}

//Запрос списка брендов.
message GetBrandsRequest {}

//Запрос бренда.
message GetBrandRequest {
  string id = 1; //Uid-идентификатор бренда.
}

//Список брендов.
message GetBrandsResponse {
  repeated Brand brands = 1; //Массив брендов.
}
