/* eslint-disable */ import Long from 'long'; import * as _m0 from 'protobufjs/minimal'; import { SecurityTradingStatus, RealExchange, InstrumentType, InstrumentStatus, Quotation, MoneyValue, BrandData, Page, PageResponse, instrumentStatusFromJSON, instrumentStatusToJSON, securityTradingStatusFromJSON, realExchangeFromJSON, securityTradingStatusToJSON, realExchangeToJSON, instrumentTypeFromJSON, instrumentTypeToJSON, } from './common'; import { Timestamp } from './google/protobuf/timestamp'; export const protobufPackage = 'tinkoff.public.invest.api.contract.v1'; /** Тип купонов. */ export enum CouponType { /** COUPON_TYPE_UNSPECIFIED - Неопределенное значение. */ COUPON_TYPE_UNSPECIFIED = 0, /** COUPON_TYPE_CONSTANT - Постоянный. */ COUPON_TYPE_CONSTANT = 1, /** COUPON_TYPE_FLOATING - Плавающий. */ COUPON_TYPE_FLOATING = 2, /** COUPON_TYPE_DISCOUNT - Дисконт. */ COUPON_TYPE_DISCOUNT = 3, /** COUPON_TYPE_MORTGAGE - Ипотечный. */ COUPON_TYPE_MORTGAGE = 4, /** COUPON_TYPE_FIX - Фиксированный. */ COUPON_TYPE_FIX = 5, /** COUPON_TYPE_VARIABLE - Переменный. */ COUPON_TYPE_VARIABLE = 6, /** COUPON_TYPE_OTHER - Прочее. */ COUPON_TYPE_OTHER = 7, UNRECOGNIZED = -1, } export function couponTypeFromJSON(object: any): CouponType { switch (object) { case 0: case 'COUPON_TYPE_UNSPECIFIED': return CouponType.COUPON_TYPE_UNSPECIFIED; case 1: case 'COUPON_TYPE_CONSTANT': return CouponType.COUPON_TYPE_CONSTANT; case 2: case 'COUPON_TYPE_FLOATING': return CouponType.COUPON_TYPE_FLOATING; case 3: case 'COUPON_TYPE_DISCOUNT': return CouponType.COUPON_TYPE_DISCOUNT; case 4: case 'COUPON_TYPE_MORTGAGE': return CouponType.COUPON_TYPE_MORTGAGE; case 5: case 'COUPON_TYPE_FIX': return CouponType.COUPON_TYPE_FIX; case 6: case 'COUPON_TYPE_VARIABLE': return CouponType.COUPON_TYPE_VARIABLE; case 7: case 'COUPON_TYPE_OTHER': return CouponType.COUPON_TYPE_OTHER; case -1: case 'UNRECOGNIZED': default: return CouponType.UNRECOGNIZED; } } export function couponTypeToJSON(object: CouponType): string { switch (object) { case CouponType.COUPON_TYPE_UNSPECIFIED: return 'COUPON_TYPE_UNSPECIFIED'; case CouponType.COUPON_TYPE_CONSTANT: return 'COUPON_TYPE_CONSTANT'; case CouponType.COUPON_TYPE_FLOATING: return 'COUPON_TYPE_FLOATING'; case CouponType.COUPON_TYPE_DISCOUNT: return 'COUPON_TYPE_DISCOUNT'; case CouponType.COUPON_TYPE_MORTGAGE: return 'COUPON_TYPE_MORTGAGE'; case CouponType.COUPON_TYPE_FIX: return 'COUPON_TYPE_FIX'; case CouponType.COUPON_TYPE_VARIABLE: return 'COUPON_TYPE_VARIABLE'; case CouponType.COUPON_TYPE_OTHER: return 'COUPON_TYPE_OTHER'; default: return 'UNKNOWN'; } } /** Тип опциона по направлению сделки. */ export enum OptionDirection { /** OPTION_DIRECTION_UNSPECIFIED - Тип не определен. */ OPTION_DIRECTION_UNSPECIFIED = 0, /** OPTION_DIRECTION_PUT - Опцион на продажу. */ OPTION_DIRECTION_PUT = 1, /** OPTION_DIRECTION_CALL - Опцион на покупку. */ OPTION_DIRECTION_CALL = 2, UNRECOGNIZED = -1, } export function optionDirectionFromJSON(object: any): OptionDirection { switch (object) { case 0: case 'OPTION_DIRECTION_UNSPECIFIED': return OptionDirection.OPTION_DIRECTION_UNSPECIFIED; case 1: case 'OPTION_DIRECTION_PUT': return OptionDirection.OPTION_DIRECTION_PUT; case 2: case 'OPTION_DIRECTION_CALL': return OptionDirection.OPTION_DIRECTION_CALL; case -1: case 'UNRECOGNIZED': default: return OptionDirection.UNRECOGNIZED; } } export function optionDirectionToJSON(object: OptionDirection): string { switch (object) { case OptionDirection.OPTION_DIRECTION_UNSPECIFIED: return 'OPTION_DIRECTION_UNSPECIFIED'; case OptionDirection.OPTION_DIRECTION_PUT: return 'OPTION_DIRECTION_PUT'; case OptionDirection.OPTION_DIRECTION_CALL: return 'OPTION_DIRECTION_CALL'; default: return 'UNKNOWN'; } } /** Тип расчетов по опциону. */ export enum OptionPaymentType { /** OPTION_PAYMENT_TYPE_UNSPECIFIED - Тип не определен. */ OPTION_PAYMENT_TYPE_UNSPECIFIED = 0, /** OPTION_PAYMENT_TYPE_PREMIUM - Опционы с использованием премии в расчетах. */ OPTION_PAYMENT_TYPE_PREMIUM = 1, /** OPTION_PAYMENT_TYPE_MARGINAL - Маржируемые опционы. */ OPTION_PAYMENT_TYPE_MARGINAL = 2, UNRECOGNIZED = -1, } export function optionPaymentTypeFromJSON(object: any): OptionPaymentType { switch (object) { case 0: case 'OPTION_PAYMENT_TYPE_UNSPECIFIED': return OptionPaymentType.OPTION_PAYMENT_TYPE_UNSPECIFIED; case 1: case 'OPTION_PAYMENT_TYPE_PREMIUM': return OptionPaymentType.OPTION_PAYMENT_TYPE_PREMIUM; case 2: case 'OPTION_PAYMENT_TYPE_MARGINAL': return OptionPaymentType.OPTION_PAYMENT_TYPE_MARGINAL; case -1: case 'UNRECOGNIZED': default: return OptionPaymentType.UNRECOGNIZED; } } export function optionPaymentTypeToJSON(object: OptionPaymentType): string { switch (object) { case OptionPaymentType.OPTION_PAYMENT_TYPE_UNSPECIFIED: return 'OPTION_PAYMENT_TYPE_UNSPECIFIED'; case OptionPaymentType.OPTION_PAYMENT_TYPE_PREMIUM: return 'OPTION_PAYMENT_TYPE_PREMIUM'; case OptionPaymentType.OPTION_PAYMENT_TYPE_MARGINAL: return 'OPTION_PAYMENT_TYPE_MARGINAL'; default: return 'UNKNOWN'; } } /** Тип опциона по стилю. */ export enum OptionStyle { /** OPTION_STYLE_UNSPECIFIED - Тип не определен. */ OPTION_STYLE_UNSPECIFIED = 0, /** OPTION_STYLE_AMERICAN - Американский опцион. */ OPTION_STYLE_AMERICAN = 1, /** OPTION_STYLE_EUROPEAN - Европейский опцион. */ OPTION_STYLE_EUROPEAN = 2, UNRECOGNIZED = -1, } export function optionStyleFromJSON(object: any): OptionStyle { switch (object) { case 0: case 'OPTION_STYLE_UNSPECIFIED': return OptionStyle.OPTION_STYLE_UNSPECIFIED; case 1: case 'OPTION_STYLE_AMERICAN': return OptionStyle.OPTION_STYLE_AMERICAN; case 2: case 'OPTION_STYLE_EUROPEAN': return OptionStyle.OPTION_STYLE_EUROPEAN; case -1: case 'UNRECOGNIZED': default: return OptionStyle.UNRECOGNIZED; } } export function optionStyleToJSON(object: OptionStyle): string { switch (object) { case OptionStyle.OPTION_STYLE_UNSPECIFIED: return 'OPTION_STYLE_UNSPECIFIED'; case OptionStyle.OPTION_STYLE_AMERICAN: return 'OPTION_STYLE_AMERICAN'; case OptionStyle.OPTION_STYLE_EUROPEAN: return 'OPTION_STYLE_EUROPEAN'; default: return 'UNKNOWN'; } } /** Тип опциона по способу исполнения. */ export enum OptionSettlementType { /** OPTION_EXECUTION_TYPE_UNSPECIFIED - Тип не определен. */ OPTION_EXECUTION_TYPE_UNSPECIFIED = 0, /** OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY - Поставочный тип опциона. */ OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY = 1, /** OPTION_EXECUTION_TYPE_CASH_SETTLEMENT - Расчетный тип опциона. */ OPTION_EXECUTION_TYPE_CASH_SETTLEMENT = 2, UNRECOGNIZED = -1, } export function optionSettlementTypeFromJSON(object: any): OptionSettlementType { switch (object) { case 0: case 'OPTION_EXECUTION_TYPE_UNSPECIFIED': return OptionSettlementType.OPTION_EXECUTION_TYPE_UNSPECIFIED; case 1: case 'OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY': return OptionSettlementType.OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY; case 2: case 'OPTION_EXECUTION_TYPE_CASH_SETTLEMENT': return OptionSettlementType.OPTION_EXECUTION_TYPE_CASH_SETTLEMENT; case -1: case 'UNRECOGNIZED': default: return OptionSettlementType.UNRECOGNIZED; } } export function optionSettlementTypeToJSON(object: OptionSettlementType): string { switch (object) { case OptionSettlementType.OPTION_EXECUTION_TYPE_UNSPECIFIED: return 'OPTION_EXECUTION_TYPE_UNSPECIFIED'; case OptionSettlementType.OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY: return 'OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY'; case OptionSettlementType.OPTION_EXECUTION_TYPE_CASH_SETTLEMENT: return 'OPTION_EXECUTION_TYPE_CASH_SETTLEMENT'; default: return 'UNKNOWN'; } } /** Тип идентификатора инструмента. [Подробнее об идентификации инструментов](/invest/intro/intro/faq_identification). */ export enum InstrumentIdType { /** INSTRUMENT_ID_UNSPECIFIED - Значение не определено. */ INSTRUMENT_ID_UNSPECIFIED = 0, /** INSTRUMENT_ID_TYPE_FIGI - FIGI. */ INSTRUMENT_ID_TYPE_FIGI = 1, /** INSTRUMENT_ID_TYPE_TICKER - Ticker. */ INSTRUMENT_ID_TYPE_TICKER = 2, /** INSTRUMENT_ID_TYPE_UID - Уникальный идентификатор. */ INSTRUMENT_ID_TYPE_UID = 3, /** INSTRUMENT_ID_TYPE_POSITION_UID - Идентификатор позиции. */ INSTRUMENT_ID_TYPE_POSITION_UID = 4, /** INSTRUMENT_ID_TYPE_ID - Универсальный тип идентификатора инструмента. */ INSTRUMENT_ID_TYPE_ID = 5, UNRECOGNIZED = -1, } export function instrumentIdTypeFromJSON(object: any): InstrumentIdType { switch (object) { case 0: case 'INSTRUMENT_ID_UNSPECIFIED': return InstrumentIdType.INSTRUMENT_ID_UNSPECIFIED; case 1: case 'INSTRUMENT_ID_TYPE_FIGI': return InstrumentIdType.INSTRUMENT_ID_TYPE_FIGI; case 2: case 'INSTRUMENT_ID_TYPE_TICKER': return InstrumentIdType.INSTRUMENT_ID_TYPE_TICKER; case 3: case 'INSTRUMENT_ID_TYPE_UID': return InstrumentIdType.INSTRUMENT_ID_TYPE_UID; case 4: case 'INSTRUMENT_ID_TYPE_POSITION_UID': return InstrumentIdType.INSTRUMENT_ID_TYPE_POSITION_UID; case 5: case 'INSTRUMENT_ID_TYPE_ID': return InstrumentIdType.INSTRUMENT_ID_TYPE_ID; case -1: case 'UNRECOGNIZED': default: return InstrumentIdType.UNRECOGNIZED; } } export function instrumentIdTypeToJSON(object: InstrumentIdType): string { switch (object) { case InstrumentIdType.INSTRUMENT_ID_UNSPECIFIED: return 'INSTRUMENT_ID_UNSPECIFIED'; case InstrumentIdType.INSTRUMENT_ID_TYPE_FIGI: return 'INSTRUMENT_ID_TYPE_FIGI'; case InstrumentIdType.INSTRUMENT_ID_TYPE_TICKER: return 'INSTRUMENT_ID_TYPE_TICKER'; case InstrumentIdType.INSTRUMENT_ID_TYPE_UID: return 'INSTRUMENT_ID_TYPE_UID'; case InstrumentIdType.INSTRUMENT_ID_TYPE_POSITION_UID: return 'INSTRUMENT_ID_TYPE_POSITION_UID'; case InstrumentIdType.INSTRUMENT_ID_TYPE_ID: return 'INSTRUMENT_ID_TYPE_ID'; default: return 'UNKNOWN'; } } /** Тип акций. */ export enum ShareType { /** SHARE_TYPE_UNSPECIFIED - Значение не определено. */ SHARE_TYPE_UNSPECIFIED = 0, /** SHARE_TYPE_COMMON - Обыкновенная. */ SHARE_TYPE_COMMON = 1, /** SHARE_TYPE_PREFERRED - Привилегированная. */ SHARE_TYPE_PREFERRED = 2, /** SHARE_TYPE_ADR - Американские депозитарные расписки. */ SHARE_TYPE_ADR = 3, /** SHARE_TYPE_GDR - Глобальные депозитарные расписки. */ SHARE_TYPE_GDR = 4, /** SHARE_TYPE_MLP - Товарищество с ограниченной ответственностью. */ SHARE_TYPE_MLP = 5, /** SHARE_TYPE_NY_REG_SHRS - Акции из реестра Нью-Йорка. */ SHARE_TYPE_NY_REG_SHRS = 6, /** SHARE_TYPE_CLOSED_END_FUND - Закрытый инвестиционный фонд. */ SHARE_TYPE_CLOSED_END_FUND = 7, /** SHARE_TYPE_REIT - Траст недвижимости. */ SHARE_TYPE_REIT = 8, UNRECOGNIZED = -1, } export function shareTypeFromJSON(object: any): ShareType { switch (object) { case 0: case 'SHARE_TYPE_UNSPECIFIED': return ShareType.SHARE_TYPE_UNSPECIFIED; case 1: case 'SHARE_TYPE_COMMON': return ShareType.SHARE_TYPE_COMMON; case 2: case 'SHARE_TYPE_PREFERRED': return ShareType.SHARE_TYPE_PREFERRED; case 3: case 'SHARE_TYPE_ADR': return ShareType.SHARE_TYPE_ADR; case 4: case 'SHARE_TYPE_GDR': return ShareType.SHARE_TYPE_GDR; case 5: case 'SHARE_TYPE_MLP': return ShareType.SHARE_TYPE_MLP; case 6: case 'SHARE_TYPE_NY_REG_SHRS': return ShareType.SHARE_TYPE_NY_REG_SHRS; case 7: case 'SHARE_TYPE_CLOSED_END_FUND': return ShareType.SHARE_TYPE_CLOSED_END_FUND; case 8: case 'SHARE_TYPE_REIT': return ShareType.SHARE_TYPE_REIT; case -1: case 'UNRECOGNIZED': default: return ShareType.UNRECOGNIZED; } } export function shareTypeToJSON(object: ShareType): string { switch (object) { case ShareType.SHARE_TYPE_UNSPECIFIED: return 'SHARE_TYPE_UNSPECIFIED'; case ShareType.SHARE_TYPE_COMMON: return 'SHARE_TYPE_COMMON'; case ShareType.SHARE_TYPE_PREFERRED: return 'SHARE_TYPE_PREFERRED'; case ShareType.SHARE_TYPE_ADR: return 'SHARE_TYPE_ADR'; case ShareType.SHARE_TYPE_GDR: return 'SHARE_TYPE_GDR'; case ShareType.SHARE_TYPE_MLP: return 'SHARE_TYPE_MLP'; case ShareType.SHARE_TYPE_NY_REG_SHRS: return 'SHARE_TYPE_NY_REG_SHRS'; case ShareType.SHARE_TYPE_CLOSED_END_FUND: return 'SHARE_TYPE_CLOSED_END_FUND'; case ShareType.SHARE_TYPE_REIT: return 'SHARE_TYPE_REIT'; default: return 'UNKNOWN'; } } /** Тип актива. */ export enum AssetType { /** ASSET_TYPE_UNSPECIFIED - Тип не определен. */ ASSET_TYPE_UNSPECIFIED = 0, /** ASSET_TYPE_CURRENCY - Валюта. */ ASSET_TYPE_CURRENCY = 1, /** ASSET_TYPE_COMMODITY - Товар. */ ASSET_TYPE_COMMODITY = 2, /** ASSET_TYPE_INDEX - Индекс. */ ASSET_TYPE_INDEX = 3, /** ASSET_TYPE_SECURITY - Ценная бумага. */ ASSET_TYPE_SECURITY = 4, UNRECOGNIZED = -1, } export function assetTypeFromJSON(object: any): AssetType { switch (object) { case 0: case 'ASSET_TYPE_UNSPECIFIED': return AssetType.ASSET_TYPE_UNSPECIFIED; case 1: case 'ASSET_TYPE_CURRENCY': return AssetType.ASSET_TYPE_CURRENCY; case 2: case 'ASSET_TYPE_COMMODITY': return AssetType.ASSET_TYPE_COMMODITY; case 3: case 'ASSET_TYPE_INDEX': return AssetType.ASSET_TYPE_INDEX; case 4: case 'ASSET_TYPE_SECURITY': return AssetType.ASSET_TYPE_SECURITY; case -1: case 'UNRECOGNIZED': default: return AssetType.UNRECOGNIZED; } } export function assetTypeToJSON(object: AssetType): string { switch (object) { case AssetType.ASSET_TYPE_UNSPECIFIED: return 'ASSET_TYPE_UNSPECIFIED'; case AssetType.ASSET_TYPE_CURRENCY: return 'ASSET_TYPE_CURRENCY'; case AssetType.ASSET_TYPE_COMMODITY: return 'ASSET_TYPE_COMMODITY'; case AssetType.ASSET_TYPE_INDEX: return 'ASSET_TYPE_INDEX'; case AssetType.ASSET_TYPE_SECURITY: return 'ASSET_TYPE_SECURITY'; default: return 'UNKNOWN'; } } /** Тип структурной ноты. */ export enum StructuredProductType { /** SP_TYPE_UNSPECIFIED - Тип не определен. */ SP_TYPE_UNSPECIFIED = 0, /** SP_TYPE_DELIVERABLE - Поставочный. */ SP_TYPE_DELIVERABLE = 1, /** SP_TYPE_NON_DELIVERABLE - Беспоставочный. */ SP_TYPE_NON_DELIVERABLE = 2, UNRECOGNIZED = -1, } export function structuredProductTypeFromJSON(object: any): StructuredProductType { switch (object) { case 0: case 'SP_TYPE_UNSPECIFIED': return StructuredProductType.SP_TYPE_UNSPECIFIED; case 1: case 'SP_TYPE_DELIVERABLE': return StructuredProductType.SP_TYPE_DELIVERABLE; case 2: case 'SP_TYPE_NON_DELIVERABLE': return StructuredProductType.SP_TYPE_NON_DELIVERABLE; case -1: case 'UNRECOGNIZED': default: return StructuredProductType.UNRECOGNIZED; } } export function structuredProductTypeToJSON(object: StructuredProductType): string { switch (object) { case StructuredProductType.SP_TYPE_UNSPECIFIED: return 'SP_TYPE_UNSPECIFIED'; case StructuredProductType.SP_TYPE_DELIVERABLE: return 'SP_TYPE_DELIVERABLE'; case StructuredProductType.SP_TYPE_NON_DELIVERABLE: return 'SP_TYPE_NON_DELIVERABLE'; default: return 'UNKNOWN'; } } /** Тип действия со списком избранных инструментов. */ export enum EditFavoritesActionType { /** EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED - Тип не определен. */ EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED = 0, /** EDIT_FAVORITES_ACTION_TYPE_ADD - Добавить в список. */ EDIT_FAVORITES_ACTION_TYPE_ADD = 1, /** EDIT_FAVORITES_ACTION_TYPE_DEL - Удалить из списка. */ EDIT_FAVORITES_ACTION_TYPE_DEL = 2, UNRECOGNIZED = -1, } export function editFavoritesActionTypeFromJSON(object: any): EditFavoritesActionType { switch (object) { case 0: case 'EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED': return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED; case 1: case 'EDIT_FAVORITES_ACTION_TYPE_ADD': return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_ADD; case 2: case 'EDIT_FAVORITES_ACTION_TYPE_DEL': return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_DEL; case -1: case 'UNRECOGNIZED': default: return EditFavoritesActionType.UNRECOGNIZED; } } export function editFavoritesActionTypeToJSON(object: EditFavoritesActionType): string { switch (object) { case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED: return 'EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED'; case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_ADD: return 'EDIT_FAVORITES_ACTION_TYPE_ADD'; case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_DEL: return 'EDIT_FAVORITES_ACTION_TYPE_DEL'; default: return 'UNKNOWN'; } } export enum Recommendation { /** RECOMMENDATION_UNSPECIFIED - Не определено. */ RECOMMENDATION_UNSPECIFIED = 0, /** RECOMMENDATION_BUY - Покупать. */ RECOMMENDATION_BUY = 1, /** RECOMMENDATION_HOLD - Держать. */ RECOMMENDATION_HOLD = 2, /** RECOMMENDATION_SELL - Продавать. */ RECOMMENDATION_SELL = 3, UNRECOGNIZED = -1, } export function recommendationFromJSON(object: any): Recommendation { switch (object) { case 0: case 'RECOMMENDATION_UNSPECIFIED': return Recommendation.RECOMMENDATION_UNSPECIFIED; case 1: case 'RECOMMENDATION_BUY': return Recommendation.RECOMMENDATION_BUY; case 2: case 'RECOMMENDATION_HOLD': return Recommendation.RECOMMENDATION_HOLD; case 3: case 'RECOMMENDATION_SELL': return Recommendation.RECOMMENDATION_SELL; case -1: case 'UNRECOGNIZED': default: return Recommendation.UNRECOGNIZED; } } export function recommendationToJSON(object: Recommendation): string { switch (object) { case Recommendation.RECOMMENDATION_UNSPECIFIED: return 'RECOMMENDATION_UNSPECIFIED'; case Recommendation.RECOMMENDATION_BUY: return 'RECOMMENDATION_BUY'; case Recommendation.RECOMMENDATION_HOLD: return 'RECOMMENDATION_HOLD'; case Recommendation.RECOMMENDATION_SELL: return 'RECOMMENDATION_SELL'; default: return 'UNKNOWN'; } } /** Уровень риска облигации. */ export enum RiskLevel { /** RISK_LEVEL_UNSPECIFIED - Не указан. */ RISK_LEVEL_UNSPECIFIED = 0, /** RISK_LEVEL_LOW - Низкий уровень риска. */ RISK_LEVEL_LOW = 1, /** RISK_LEVEL_MODERATE - Средний уровень риска. */ RISK_LEVEL_MODERATE = 2, /** RISK_LEVEL_HIGH - Высокий уровень риска. */ RISK_LEVEL_HIGH = 3, UNRECOGNIZED = -1, } export function riskLevelFromJSON(object: any): RiskLevel { switch (object) { case 0: case 'RISK_LEVEL_UNSPECIFIED': return RiskLevel.RISK_LEVEL_UNSPECIFIED; case 1: case 'RISK_LEVEL_LOW': return RiskLevel.RISK_LEVEL_LOW; case 2: case 'RISK_LEVEL_MODERATE': return RiskLevel.RISK_LEVEL_MODERATE; case 3: case 'RISK_LEVEL_HIGH': return RiskLevel.RISK_LEVEL_HIGH; case -1: case 'UNRECOGNIZED': default: return RiskLevel.UNRECOGNIZED; } } export function riskLevelToJSON(object: RiskLevel): string { switch (object) { case RiskLevel.RISK_LEVEL_UNSPECIFIED: return 'RISK_LEVEL_UNSPECIFIED'; case RiskLevel.RISK_LEVEL_LOW: return 'RISK_LEVEL_LOW'; case RiskLevel.RISK_LEVEL_MODERATE: return 'RISK_LEVEL_MODERATE'; case RiskLevel.RISK_LEVEL_HIGH: return 'RISK_LEVEL_HIGH'; default: return 'UNKNOWN'; } } export enum BondType { /** BOND_TYPE_UNSPECIFIED - Тип облигации не определен. */ BOND_TYPE_UNSPECIFIED = 0, /** BOND_TYPE_REPLACED - Замещающая облигация. */ BOND_TYPE_REPLACED = 1, UNRECOGNIZED = -1, } export function bondTypeFromJSON(object: any): BondType { switch (object) { case 0: case 'BOND_TYPE_UNSPECIFIED': return BondType.BOND_TYPE_UNSPECIFIED; case 1: case 'BOND_TYPE_REPLACED': return BondType.BOND_TYPE_REPLACED; case -1: case 'UNRECOGNIZED': default: return BondType.UNRECOGNIZED; } } export function bondTypeToJSON(object: BondType): string { switch (object) { case BondType.BOND_TYPE_UNSPECIFIED: return 'BOND_TYPE_UNSPECIFIED'; case BondType.BOND_TYPE_REPLACED: return 'BOND_TYPE_REPLACED'; default: return 'UNKNOWN'; } } /** Площадка торговли. */ export enum InstrumentExchangeType { /** INSTRUMENT_EXCHANGE_UNSPECIFIED - Площадка торговли не определена. */ INSTRUMENT_EXCHANGE_UNSPECIFIED = 0, /** INSTRUMENT_EXCHANGE_DEALER - Бумага, торгуемая у дилера. */ INSTRUMENT_EXCHANGE_DEALER = 1, UNRECOGNIZED = -1, } export function instrumentExchangeTypeFromJSON(object: any): InstrumentExchangeType { switch (object) { case 0: case 'INSTRUMENT_EXCHANGE_UNSPECIFIED': return InstrumentExchangeType.INSTRUMENT_EXCHANGE_UNSPECIFIED; case 1: case 'INSTRUMENT_EXCHANGE_DEALER': return InstrumentExchangeType.INSTRUMENT_EXCHANGE_DEALER; case -1: case 'UNRECOGNIZED': default: return InstrumentExchangeType.UNRECOGNIZED; } } export function instrumentExchangeTypeToJSON(object: InstrumentExchangeType): string { switch (object) { case InstrumentExchangeType.INSTRUMENT_EXCHANGE_UNSPECIFIED: return 'INSTRUMENT_EXCHANGE_UNSPECIFIED'; case InstrumentExchangeType.INSTRUMENT_EXCHANGE_DEALER: return 'INSTRUMENT_EXCHANGE_DEALER'; default: return 'UNKNOWN'; } } /** Запрос расписания торгов. */ export interface TradingSchedulesRequest { /** Наименование биржи или расчетного календаря.
Если не передается, возвращается информация по всем доступным торговым площадкам. */ exchange?: string | undefined; /** Начало периода по UTC. */ from?: Date | undefined; /** Окончание периода по UTC. */ to?: Date | undefined; } /** Список торговых площадок. */ export interface TradingSchedulesResponse { /** Список торговых площадок и режимов торгов. */ exchanges: TradingSchedule[]; } /** Данные по торговой площадке. */ export interface TradingSchedule { /** Наименование торговой площадки. */ exchange: string; /** Массив с торговыми и неторговыми днями. */ days: TradingDay[]; } /** Информация о времени торгов. */ export interface TradingDay { /** Дата. */ date: Date | undefined; /** Признак торгового дня на бирже. */ isTradingDay: boolean; /** Время начала торгов по UTC. */ startTime: Date | undefined; /** Время окончания торгов по UTC. */ endTime: Date | undefined; /** Время начала аукциона открытия по UTC. */ openingAuctionStartTime: Date | undefined; /** Время окончания аукциона закрытия по UTC. */ closingAuctionEndTime: Date | undefined; /** Время начала аукциона открытия вечерней сессии по UTC. */ eveningOpeningAuctionStartTime: Date | undefined; /** Время начала вечерней сессии по UTC. */ eveningStartTime: Date | undefined; /** Время окончания вечерней сессии по UTC. */ eveningEndTime: Date | undefined; /** Время начала основного клиринга по UTC. */ clearingStartTime: Date | undefined; /** Время окончания основного клиринга по UTC. */ clearingEndTime: Date | undefined; /** Время начала премаркета по UTC. */ premarketStartTime: Date | undefined; /** Время окончания премаркета по UTC. */ premarketEndTime: Date | undefined; /** Время начала аукциона закрытия по UTC. */ closingAuctionStartTime: Date | undefined; /** Время окончания аукциона открытия по UTC. */ openingAuctionEndTime: Date | undefined; /** Торговые интервалы. */ intervals: TradingInterval[]; } /** Запрос получения инструмента по идентификатору. */ export interface InstrumentRequest { /** Тип идентификатора инструмента. Возможные значения — `figi`, `ticker`. [Подробнее об идентификации инструментов](/invest/intro/intro/faq_identification). */ idType: InstrumentIdType; /** Идентификатор `class_code`. Обязательный, если `id_type = ticker`. */ classCode?: string | undefined; /** Идентификатор запрашиваемого инструмента. */ id: string; } /** Запрос получения инструментов. */ export interface InstrumentsRequest { /** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */ instrumentStatus?: InstrumentStatus | undefined; /** Тип площадки торговли. [Возможные значения](#instrumentexchangetype). */ instrumentExchange?: InstrumentExchangeType | undefined; } /** Параметры фильтрации опционов. */ export interface FilterOptionsRequest { /** Идентификатор базового актива опциона. Обязательный параметр. */ basicAssetUid?: string | undefined; /** Идентификатор позиции базового актива опциона. */ basicAssetPositionUid?: string | undefined; /** Идентификатор базового инструмента, принимает значение принимает значения figi, instrument_uid или ticker+"_"+classCode. */ basicInstrumentId?: string | undefined; } /** Информация об облигации. */ export interface BondResponse { /** Информация об облигации. */ instrument: Bond | undefined; } /** Список облигаций. */ export interface BondsResponse { /** Массив облигаций. */ instruments: Bond[]; } /** Запрос купонов по облигации. */ export interface GetBondCouponsRequest { /** * FIGI-идентификатор инструмента. * * @deprecated */ figi: string; /** Начало запрашиваемого периода по UTC. Фильтрация по `coupon_date` — дата выплаты купона. */ from?: Date | undefined; /** Окончание запрашиваемого периода по UTC. Фильтрация по `coupon_date` — дата выплаты купона. */ to?: Date | undefined; /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; } /** Купоны по облигации. */ export interface GetBondCouponsResponse { events: Coupon[]; } /** События по облигации. */ export interface GetBondEventsRequest { /** Начало запрашиваемого периода по UTC. */ from?: Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to?: Date | undefined; /** Идентификатор инструмента — `figi` или `instrument_uid`. */ instrumentId: string; /** Тип события */ type: GetBondEventsRequest_EventType; } export enum GetBondEventsRequest_EventType { /** EVENT_TYPE_UNSPECIFIED - Неопределенное значение. */ EVENT_TYPE_UNSPECIFIED = 0, /** EVENT_TYPE_CPN - Купон. */ EVENT_TYPE_CPN = 1, /** EVENT_TYPE_CALL - Опцион (оферта). */ EVENT_TYPE_CALL = 2, /** EVENT_TYPE_MTY - Погашение. */ EVENT_TYPE_MTY = 3, /** EVENT_TYPE_CONV - Конвертация. */ EVENT_TYPE_CONV = 4, UNRECOGNIZED = -1, } export function getBondEventsRequest_EventTypeFromJSON(object: any): GetBondEventsRequest_EventType { switch (object) { case 0: case 'EVENT_TYPE_UNSPECIFIED': return GetBondEventsRequest_EventType.EVENT_TYPE_UNSPECIFIED; case 1: case 'EVENT_TYPE_CPN': return GetBondEventsRequest_EventType.EVENT_TYPE_CPN; case 2: case 'EVENT_TYPE_CALL': return GetBondEventsRequest_EventType.EVENT_TYPE_CALL; case 3: case 'EVENT_TYPE_MTY': return GetBondEventsRequest_EventType.EVENT_TYPE_MTY; case 4: case 'EVENT_TYPE_CONV': return GetBondEventsRequest_EventType.EVENT_TYPE_CONV; case -1: case 'UNRECOGNIZED': default: return GetBondEventsRequest_EventType.UNRECOGNIZED; } } export function getBondEventsRequest_EventTypeToJSON(object: GetBondEventsRequest_EventType): string { switch (object) { case GetBondEventsRequest_EventType.EVENT_TYPE_UNSPECIFIED: return 'EVENT_TYPE_UNSPECIFIED'; case GetBondEventsRequest_EventType.EVENT_TYPE_CPN: return 'EVENT_TYPE_CPN'; case GetBondEventsRequest_EventType.EVENT_TYPE_CALL: return 'EVENT_TYPE_CALL'; case GetBondEventsRequest_EventType.EVENT_TYPE_MTY: return 'EVENT_TYPE_MTY'; case GetBondEventsRequest_EventType.EVENT_TYPE_CONV: return 'EVENT_TYPE_CONV'; default: return 'UNKNOWN'; } } /** Объект передачи информации о событии облигации. */ export interface GetBondEventsResponse { events: GetBondEventsResponse_BondEvent[]; } export interface GetBondEventsResponse_BondEvent { /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; /** Номер события для данного типа события. */ eventNumber: number; /** Дата события. */ eventDate: Date | undefined; /** Тип события. */ eventType: GetBondEventsRequest_EventType; /** Полное количество бумаг, задействованных в событии. */ eventTotalVol: Quotation | undefined; /** Дата фиксации владельцев для участия в событии. */ fixDate: Date | undefined; /** Дата определения даты или факта события. */ rateDate: Date | undefined; /** Дата дефолта, если применимо. */ defaultDate: Date | undefined; /** Дата реального исполнения обязательства. */ realPayDate: Date | undefined; /** Дата выплаты. */ payDate: Date | undefined; /** Выплата на одну облигацию. */ payOneBond: MoneyValue | undefined; /** Выплаты на все бумаги, задействованные в событии. */ moneyFlowVal: MoneyValue | undefined; /** Признак исполнения. */ execution: string; /** Тип операции. */ operationType: string; /** Стоимость операции — ставка купона, доля номинала, цена выкупа или коэффициент конвертации. */ value: Quotation | undefined; /** Примечание. */ note: string; /** ID выпуска бумаг, в который произведена конвертация (для конвертаций). */ convertToFinToolId: string; /** Начало купонного периода. */ couponStartDate: Date | undefined; /** Окончание купонного периода. */ couponEndDate: Date | undefined; /** Купонный период. */ couponPeriod: number; /** Ставка купона, процентов годовых. */ couponInterestRate: Quotation | undefined; } /** Объект передачи информации о купоне облигации. */ export interface Coupon { /** FIGI-идентификатор инструмента. */ figi: string; /** Дата выплаты купона. */ couponDate: Date | undefined; /** Номер купона. */ couponNumber: number; /** Дата фиксации реестра для выплаты купона — опционально. */ fixDate: Date | undefined; /** Выплата на одну облигацию. */ payOneBond: MoneyValue | undefined; /** Тип купона. */ couponType: CouponType; /** Начало купонного периода. */ couponStartDate: Date | undefined; /** Окончание купонного периода. */ couponEndDate: Date | undefined; /** Купонный период в днях. */ couponPeriod: number; } /** Данные по валюте. */ export interface CurrencyResponse { /** Информация о валюте. */ instrument: Currency | undefined; } /** Данные по валютам. */ export interface CurrenciesResponse { /** Массив валют. */ instruments: Currency[]; } /** Данные по фонду. */ export interface EtfResponse { /** Информация о фонде. */ instrument: Etf | undefined; } /** Данные по фондам. */ export interface EtfsResponse { /** Массив фондов. */ instruments: Etf[]; } /** Данные по фьючерсу. */ export interface FutureResponse { /** Информация о фьючерсу. */ instrument: Future | undefined; } /** Данные по фьючерсам. */ export interface FuturesResponse { /** Массив фьючерсов. */ instruments: Future[]; } /** Данные по опциону. */ export interface OptionResponse { /** Информация по опциону. */ instrument: Option | undefined; } /** Данные по опционам. */ export interface OptionsResponse { /** Массив данных по опциону. */ instruments: Option[]; } /** Опцион. */ export interface Option { /** Уникальный идентификатор инструмента. */ uid: string; /** Уникальный идентификатор позиции. */ positionUid: string; /** Тикер инструмента. */ ticker: string; /** Класс-код. */ classCode: string; /** Уникальный идентификатор позиции основного инструмента. */ basicAssetPositionUid: string; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Направление опциона. */ direction: OptionDirection; /** Тип расчетов по опциону. */ paymentType: OptionPaymentType; /** Стиль опциона. */ style: OptionStyle; /** Способ исполнения опциона. */ settlementType: OptionSettlementType; /** Название инструмента. */ name: string; /** Валюта. */ currency: string; /** Валюта, в которой оценивается контракт. */ settlementCurrency: string; /** Тип актива. */ assetType: string; /** Основной актив. */ basicAsset: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Код страны рисков. */ countryOfRisk: string; /** Наименование страны рисков. */ countryOfRiskName: string; /** Сектор экономики. */ sector: string; /** Информация о бренде. */ brand: BrandData | undefined; /** Количество бумаг в лоте. */ lot: number; /** Размер основного актива. */ basicAssetSize: Quotation | undefined; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Минимальный шаг цены. */ minPriceIncrement: Quotation | undefined; /** Цена страйка. */ strikePrice: MoneyValue | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; /** Дата истечения срока в формате UTC. */ expirationDate: Date | undefined; /** Дата начала обращения контракта в формате UTC. */ firstTradeDate: Date | undefined; /** Дата исполнения в формате UTC. */ lastTradeDate: Date | undefined; /** Дата первой минутной свечи в формате UTC. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи в формате UTC. */ first1dayCandleDate: Date | undefined; /** Признак доступности для операций шорт. */ shortEnabledFlag: boolean; /** Возможность покупки или продажи на ИИС. */ forIisFlag: boolean; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; } /** Данные по акции. */ export interface ShareResponse { /** Информация об акции. */ instrument: Share | undefined; } /** Данные по акциям. */ export interface SharesResponse { /** Массив акций. */ instruments: Share[]; } /** Данные по структурной ноте. */ export interface StructuredNoteResponse { /** Информация о структурной ноте. */ instrument: StructuredNote | undefined; } /** Данные по структурным нотам. */ export interface StructuredNotesResponse { /** Массив структурных нот. */ instruments: StructuredNote[]; } /** Объект передачи информации об облигации. */ export interface Bond { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Количество выплат по купонам в год. */ couponQuantityPerYear: number; /** Дата погашения облигации по UTC. */ maturityDate: Date | undefined; /** Номинал облигации. */ nominal: MoneyValue | undefined; /** Первоначальный номинал облигации. */ initialNominal: MoneyValue | undefined; /** Дата выпуска облигации по UTC. */ stateRegDate: Date | undefined; /** Дата размещения по UTC. */ placementDate: Date | undefined; /** Цена размещения. */ placementPrice: MoneyValue | undefined; /** Значение НКД (накопленного купонного дохода) на дату. */ aciValue: MoneyValue | undefined; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Сектор экономики. */ sector: string; /** Форма выпуска. Возможные значения:
**documentary** — документарная;
**non_documentary** — бездокументарная. */ issueKind: string; /** Размер выпуска. */ issueSize: number; /** Плановый размер выпуска. */ issueSizePlan: number; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Признак облигации с плавающим купоном. */ floatingCouponFlag: boolean; /** Признак бессрочной облигации. */ perpetualFlag: boolean; /** Признак облигации с амортизацией долга. */ amortizationFlag: boolean; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Параметр указывает на возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов. (биржа) */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Уникальный идентификатор актива. */ assetUid: string; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Признак субординированной облигации. */ subordinatedFlag: boolean; /** Флаг достаточной ликвидности. */ liquidityFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Уровень риска. */ riskLevel: RiskLevel; /** Информация о бренде. */ brand: BrandData | undefined; /** Тип облигации. */ bondType: BondType; /** Дата погашения облигации. */ callDate: Date | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Объект передачи информации о валюте. */ export interface Currency { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Номинал. */ nominal: MoneyValue | undefined; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Строковый ISO-код валюты. */ isoCurrencyName: string; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Параметр указывает на возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Уникальный идентификатор актива. */ assetUid: string; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Информация о бренде. */ brand: BrandData | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Объект передачи информации об инвестиционном фонде. */ export interface Etf { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Размер фиксированной комиссии фонда. */ fixedCommission: Quotation | undefined; /** Возможные значения:
**equity** — акции;
**fixed_income** — облигации;
**mixed_allocation** — смешанный;
**money_market** — денежный рынок;
**real_estate** — недвижимость;
**commodity** — товары;
**specialty** — специальный;
**private_equity** — private equity;
**alternative_investment** — альтернативные инвестиции. */ focusType: string; /** Дата выпуска по UTC. */ releasedDate: Date | undefined; /** Количество паев фонда в обращении. */ numShares: Quotation | undefined; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Сектор экономики. */ sector: string; /** Частота ребалансировки. */ rebalancingFreq: string; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Параметр указывает на возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Уникальный идентификатор актива. */ assetUid: string; /** Тип площадки торговли. */ instrumentExchange: InstrumentExchangeType; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** ФлагФлаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Флаг достаточной ликвидности. */ liquidityFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Информация о бренде. */ brand: BrandData | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Объект передачи информации о фьючерсе. */ export interface Future { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Дата начала обращения контракта по UTC. */ firstTradeDate: Date | undefined; /** Дата по UTC, до которой возможно проведение операций с фьючерсом. */ lastTradeDate: Date | undefined; /** Тип фьючерса. Возможные значения:
**physical_delivery** — физические поставки;
**cash_settlement** — денежный эквивалент. */ futuresType: string; /** Тип актива. Возможные значения:
**commodity** — товар;
**currency** — валюта;
**security** — ценная бумага;
**index** — индекс. */ assetType: string; /** Основной актив. */ basicAsset: string; /** Размер основного актива. */ basicAssetSize: Quotation | undefined; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Сектор экономики. */ sector: string; /** Дата истечения срока в часов поясе UTC. */ expirationDate: Date | undefined; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Параметр указывает на возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Уникальный идентификатор позиции основного инструмента. */ basicAssetPositionUid: string; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Гарантийное обеспечение при покупке. */ initialMarginOnBuy: MoneyValue | undefined; /** Гарантийное обеспечение при продаже. */ initialMarginOnSell: MoneyValue | undefined; /** Стоимость шага цены. */ minPriceIncrementAmount: Quotation | undefined; /** Информация о бренде. */ brand: BrandData | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Объект передачи информации об акции. */ export interface Share { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot) */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Дата IPO акции по UTC. */ ipoDate: Date | undefined; /** Размер выпуска. */ issueSize: number; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Сектор экономики. */ sector: string; /** Плановый размер выпуска. */ issueSizePlan: number; /** Номинал. */ nominal: MoneyValue | undefined; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Признак наличия дивидендной доходности. */ divYieldFlag: boolean; /** Тип акции. Возможные значения — `[ShareType](./instruments#sharetype)`. */ shareType: ShareType; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Уникальный идентификатор актива. */ assetUid: string; /** Тип площадки торговли. */ instrumentExchange: InstrumentExchangeType; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Флаг достаточной ликвидности. */ liquidityFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Информация о бренде. */ brand: BrandData | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Объект передачи информации о структурной ноте. */ export interface StructuredNote { /** Уникальный идентификатор инструмента. */ uid: string; /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Название инструмента. */ name: string; /** Уникальный идентификатор актива. */ assetUid: string; /** Уникальный идентификатор позиции. */ positionUid: string; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Лотность инструмента. */ lot: number; /** Номинал. */ nominal: MoneyValue | undefined; /** Валюта расчетов. */ currency: string; /** Дата погашения облигации в формате UTC. */ maturityDate: Date | undefined; /** Дата размещения в формате UTC. */ placementDate: Date | undefined; /** Форма выпуска. */ issueKind: string; /** Размер выпуска. */ issueSize: number; /** Плановый размер выпуска. */ issueSizePlan: number; /** Ставка риска клиента по инструменту лонг. */ dlongClient: Quotation | undefined; /** Ставка риска клиента по инструменту шорт. */ dshortClient: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Торговая площадка (секция биржи). */ exchange: string; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Признак доступности торгов по бумаге через API. */ apiTradeAvailableFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Признак доступности выставления лимитной заявки по инструменту. */ limitOrderAvailableFlag: boolean; /** Признак доступности выставления рыночной заявки по инструменту. */ marketOrderAvailableFlag: boolean; /** Признак доступности выставления bestprice заявки по инструменту. */ bestpriceOrderAvailableFlag: boolean; /** Флаг отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг достаточной ликвидности. */ liquidityFlag: boolean; /** Возможность покупки/продажи на ИИС. */ forIisFlag: boolean; /** Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Признак ФИ, включенного в ломбардный список. */ pawnshopListFlag: boolean; /** Реальная площадка исполнения расчётов. */ realExchange: RealExchange; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Название заемщика. */ borrowName: string; /** Тип структурной ноты. */ type: string; /** Стратегия портфеля. */ logicPortfolio: StructuredNote_LogicPortfolio; /** Тип базового актива. */ assetType: AssetType; /** Базовые активы, входящие в ноту. */ basicAssets: StructuredNote_BasicAsset[]; /** Барьер сохранности (в процентах). */ safetyBarrier: Quotation | undefined; /** Базис расчета НКД. */ couponPeriodBase: string; /** Принцип наблюдений. */ observationPrinciple: StructuredNote_ObservationPrinciple; /** Частота наблюдений. */ observationFrequency: string; /** Дата фиксации цен базовых активов. */ initialPriceFixingDate: Date | undefined; /** Доходность по ноте в годовом выражении. */ yield: StructuredNote_Yield[]; /** Признак сохранения купонов. */ couponSavingFlag: boolean; /** Сектор экономики. */ sector: string; /** Код страны рисков. */ countryOfRisk: string; /** Наименование страны рисков. */ countryOfRiskName: string; /** Имя файла логотипа эмитента. */ logoName: string; /** Тесты, которые необходимо пройти клиенту, чтобы совершать покупки по бумаге. */ requiredTests: string[]; } /** Стратегия портфеля. */ export enum StructuredNote_LogicPortfolio { /** LOGIC_PORTFOLIO_UNSPECIFIED - Стратегия портфеля не определена. */ LOGIC_PORTFOLIO_UNSPECIFIED = 0, /** LOGIC_PORTFOLIO_VOLATILITY - Волатильность. */ LOGIC_PORTFOLIO_VOLATILITY = 1, /** LOGIC_PORTFOLIO_CORRELATION - Корреляция. */ LOGIC_PORTFOLIO_CORRELATION = 2, UNRECOGNIZED = -1, } export function structuredNote_LogicPortfolioFromJSON(object: any): StructuredNote_LogicPortfolio { switch (object) { case 0: case 'LOGIC_PORTFOLIO_UNSPECIFIED': return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_UNSPECIFIED; case 1: case 'LOGIC_PORTFOLIO_VOLATILITY': return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_VOLATILITY; case 2: case 'LOGIC_PORTFOLIO_CORRELATION': return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_CORRELATION; case -1: case 'UNRECOGNIZED': default: return StructuredNote_LogicPortfolio.UNRECOGNIZED; } } export function structuredNote_LogicPortfolioToJSON(object: StructuredNote_LogicPortfolio): string { switch (object) { case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_UNSPECIFIED: return 'LOGIC_PORTFOLIO_UNSPECIFIED'; case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_VOLATILITY: return 'LOGIC_PORTFOLIO_VOLATILITY'; case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_CORRELATION: return 'LOGIC_PORTFOLIO_CORRELATION'; default: return 'UNKNOWN'; } } /** Принцип наблюдений. */ export enum StructuredNote_ObservationPrinciple { /** OBSERVATION_PRINCIPLE_UNSPECIFIED - Принцип наблюдений не определен. */ OBSERVATION_PRINCIPLE_UNSPECIFIED = 0, /** OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET - По худшему базовому активу. */ OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET = 1, /** OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET - По лучшему базовому активу. */ OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET = 2, /** OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS - Среднее значение по базовым активам. */ OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS = 3, /** OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE - Динамика актива (только если у ноты один базовый актив). */ OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE = 4, UNRECOGNIZED = -1, } export function structuredNote_ObservationPrincipleFromJSON(object: any): StructuredNote_ObservationPrinciple { switch (object) { case 0: case 'OBSERVATION_PRINCIPLE_UNSPECIFIED': return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_UNSPECIFIED; case 1: case 'OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET': return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET; case 2: case 'OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET': return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET; case 3: case 'OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS': return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS; case 4: case 'OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE': return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE; case -1: case 'UNRECOGNIZED': default: return StructuredNote_ObservationPrinciple.UNRECOGNIZED; } } export function structuredNote_ObservationPrincipleToJSON(object: StructuredNote_ObservationPrinciple): string { switch (object) { case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_UNSPECIFIED: return 'OBSERVATION_PRINCIPLE_UNSPECIFIED'; case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET: return 'OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET'; case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET: return 'OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET'; case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS: return 'OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS'; case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE: return 'OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE'; default: return 'UNKNOWN'; } } /** Тип доходности. */ export enum StructuredNote_YieldType { /** YIELD_TYPE_UNSPECIFIED - Тип доходности не определен. */ YIELD_TYPE_UNSPECIFIED = 0, /** YIELD_TYPE_GUARANTED_COUPON - Гарантированный купон. */ YIELD_TYPE_GUARANTED_COUPON = 1, /** YIELD_TYPE_CONDITIONAL_COUPON - Условный купон. */ YIELD_TYPE_CONDITIONAL_COUPON = 2, /** YIELD_TYPE_PARTICIPATION - Участие в росте. */ YIELD_TYPE_PARTICIPATION = 3, UNRECOGNIZED = -1, } export function structuredNote_YieldTypeFromJSON(object: any): StructuredNote_YieldType { switch (object) { case 0: case 'YIELD_TYPE_UNSPECIFIED': return StructuredNote_YieldType.YIELD_TYPE_UNSPECIFIED; case 1: case 'YIELD_TYPE_GUARANTED_COUPON': return StructuredNote_YieldType.YIELD_TYPE_GUARANTED_COUPON; case 2: case 'YIELD_TYPE_CONDITIONAL_COUPON': return StructuredNote_YieldType.YIELD_TYPE_CONDITIONAL_COUPON; case 3: case 'YIELD_TYPE_PARTICIPATION': return StructuredNote_YieldType.YIELD_TYPE_PARTICIPATION; case -1: case 'UNRECOGNIZED': default: return StructuredNote_YieldType.UNRECOGNIZED; } } export function structuredNote_YieldTypeToJSON(object: StructuredNote_YieldType): string { switch (object) { case StructuredNote_YieldType.YIELD_TYPE_UNSPECIFIED: return 'YIELD_TYPE_UNSPECIFIED'; case StructuredNote_YieldType.YIELD_TYPE_GUARANTED_COUPON: return 'YIELD_TYPE_GUARANTED_COUPON'; case StructuredNote_YieldType.YIELD_TYPE_CONDITIONAL_COUPON: return 'YIELD_TYPE_CONDITIONAL_COUPON'; case StructuredNote_YieldType.YIELD_TYPE_PARTICIPATION: return 'YIELD_TYPE_PARTICIPATION'; default: return 'UNKNOWN'; } } /** Базовый актив. */ export interface StructuredNote_BasicAsset { /** Уникальный идентификатор базового актива. */ uid: string; /** Тип базового актива. */ type: AssetType; /** Начальная цена базового актива. */ initialPrice: Quotation | undefined; } /** Доходность. */ export interface StructuredNote_Yield { /** Тип доходности. */ type: StructuredNote_YieldType; /** Значение доходности. */ value: Quotation | undefined; } /** Запрос НКД по облигации. */ export interface GetAccruedInterestsRequest { /** * FIGI-идентификатор инструмента. * * @deprecated */ figi: string; /** Начало запрашиваемого периода по UTC. */ from: Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to: Date | undefined; /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; } /** НКД облигации. */ export interface GetAccruedInterestsResponse { /** Массив операций начисления купонов. */ accruedInterests: AccruedInterest[]; } /** Операция начисления купонов. */ export interface AccruedInterest { /** Дата и время выплаты по UTC. */ date: Date | undefined; /** Величина выплаты. */ value: Quotation | undefined; /** Величина выплаты в процентах от номинала. */ valuePercent: Quotation | undefined; /** Номинал облигации. */ nominal: Quotation | undefined; } /** Запрос информации о фьючерсе */ export interface GetFuturesMarginRequest { /** * Идентификатор инструмента. * * @deprecated */ figi: string; /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; } /** Данные по фьючерсу */ export interface GetFuturesMarginResponse { /** Гарантийное обеспечение при покупке. */ initialMarginOnBuy: MoneyValue | undefined; /** Гарантийное обеспечение при продаже. */ initialMarginOnSell: MoneyValue | undefined; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Стоимость шага цены. */ minPriceIncrementAmount: Quotation | undefined; } /** Данные по инструменту. */ export interface InstrumentResponse { /** Основная информация об инструменте. */ instrument: Instrument | undefined; } /** Объект передачи основной информации об инструменте. */ export interface Instrument { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код инструмента. */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */ lot: number; /** Валюта расчетов. */ currency: string; /** * Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ klong: Quotation | undefined; /** * Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР). * * @deprecated */ kshort: Quotation | undefined; /** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlong: Quotation | undefined; /** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshort: Quotation | undefined; /** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongMin: Quotation | undefined; /** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortMin: Quotation | undefined; /** Признак доступности для операций в шорт. */ shortEnabledFlag: boolean; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRisk: string; /** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */ countryOfRiskName: string; /** Тип инструмента. */ instrumentType: string; /** Текущий режим торгов инструмента. */ tradingStatus: SecurityTradingStatus; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Параметр указывает на возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Уникальный идентификатор инструмента. */ uid: string; /** Реальная площадка исполнения расчетов (биржа). */ realExchange: RealExchange; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Уникальный идентификатор актива. */ assetUid: string; /** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */ requiredTests: string[]; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Информация о бренде. */ brand: BrandData | undefined; /** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dlongClient: Quotation | undefined; /** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */ dshortClient: Quotation | undefined; } /** Запрос дивидендов. */ export interface GetDividendsRequest { /** * FIGI-идентификатор инструмента. * * @deprecated */ figi: string; /** Начало запрашиваемого периода по UTC. Фильтрация происходит по параметру `record_date` — дата фиксации реестра. */ from?: Date | undefined; /** Окончание запрашиваемого периода по UTC. Фильтрация происходит по параметру `record_date` — дата фиксации реестра. */ to?: Date | undefined; /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; } /** Дивиденды. */ export interface GetDividendsResponse { dividends: Dividend[]; } /** Информация о выплате. */ export interface Dividend { /** Величина дивиденда на 1 ценную бумагу (включая валюту). */ dividendNet: MoneyValue | undefined; /** Дата фактических выплат по UTC. */ paymentDate: Date | undefined; /** Дата объявления дивидендов по UTC. */ declaredDate: Date | undefined; /** Последний день (включительно) покупки для получения выплаты по UTC. */ lastBuyDate: Date | undefined; /** Тип выплаты. Возможные значения: `Regular Cash` – регулярные выплаты, `Cancelled` – выплата отменена, `Daily Accrual` – ежедневное начисление, `Return of Capital` – возврат капитала, прочие типы выплат. */ dividendType: string; /** Дата фиксации реестра по UTC. */ recordDate: Date | undefined; /** Регулярность выплаты. Возможные значения: `Annual` – ежегодная, `Semi-Anl` – каждые полгода, прочие типы выплат. */ regularity: string; /** Цена закрытия инструмента на момент `ex_dividend_date`. */ closePrice: MoneyValue | undefined; /** Величина доходности. */ yieldValue: Quotation | undefined; /** Дата и время создания записи по UTC. */ createdAt: Date | undefined; } /** Запрос актива по идентификатору. */ export interface AssetRequest { /** UID-идентификатор актива. */ id: string; } /** Данные по активу. */ export interface AssetResponse { /** Актив. */ asset: AssetFull | undefined; } /** Запрос списка активов. */ export interface AssetsRequest { instrumentType?: InstrumentType | undefined; /** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */ instrumentStatus?: InstrumentStatus | undefined; } /** Список активов. */ export interface AssetsResponse { /** Активы. */ assets: Asset[]; } export interface AssetFull { /** Уникальный идентификатор актива. */ uid: string; /** Тип актива. */ type: AssetType; /** Наименование актива. */ name: string; /** Короткое наименование актива. */ nameBrief: string; /** Описание актива. */ description: string; /** Дата и время удаления актива. */ deletedAt: Date | undefined; /** Тестирование клиентов. */ requiredTests: string[]; /** Валюта. Обязательно и заполняется только для `type = ASSET_TYPE_CURRENCY`. */ currency: AssetCurrency | undefined; /** Ценная бумага. Обязательно и заполняется только для `type = ASSET_TYPE_SECURITY`. */ security: AssetSecurity | undefined; /** Номер государственной регистрации. */ gosRegCode: string; /** Код CFI. */ cfi: string; /** Код НРД инструмента. */ codeNsd: string; /** Статус актива. */ status: string; /** Бренд. */ brand: Brand | undefined; /** Дата и время последнего обновления записи. */ updatedAt: Date | undefined; /** Код типа ц.б. по классификации Банка России. */ brCode: string; /** Наименование кода типа ц.б. по классификации Банка России. */ brCodeName: string; /** Массив идентификаторов инструментов. */ instruments: AssetInstrument[]; } /** Информация об активе. */ export interface Asset { /** Уникальный идентификатор актива. */ uid: string; /** Тип актива. */ type: AssetType; /** Наименование актива. */ name: string; /** Массив идентификаторов инструментов. */ instruments: AssetInstrument[]; } /** Валюта. */ export interface AssetCurrency { /** ISO-код валюты. */ baseCurrency: string; } /** Ценная бумага. */ export interface AssetSecurity { /** ISIN-идентификатор ценной бумаги. */ isin: string; /** Тип ценной бумаги. */ type: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Акция. Заполняется только для акций — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = share`. */ share: AssetShare | undefined; /** Облигация. Заполняется только для облигаций — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = bond`. */ bond: AssetBond | undefined; /** Структурная нота. Заполняется только для структурных продуктов — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = sp`. */ sp: AssetStructuredProduct | undefined; /** Фонд. Заполняется только для фондов — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = etf`. */ etf: AssetEtf | undefined; /** Клиринговый сертификат участия. Заполняется только для клиринговых сертификатов — тип актива `asset.type = ASSET_TYPE_SECURITY` и security.type = `clearing_certificate`. */ clearingCertificate: AssetClearingCertificate | undefined; } /** Акция. */ export interface AssetShare { /** Тип акции. */ type: ShareType; /** Объем выпуска (шт.). */ issueSize: Quotation | undefined; /** Номинал. */ nominal: Quotation | undefined; /** Валюта номинала. */ nominalCurrency: string; /** Индекс (Bloomberg). */ primaryIndex: string; /** Ставка дивиденда (для привилегированных акций). */ dividendRate: Quotation | undefined; /** Тип привилегированных акций. */ preferredShareType: string; /** Дата IPO. */ ipoDate: Date | undefined; /** Дата регистрации. */ registryDate: Date | undefined; /** Признак наличия дивидендной доходности. */ divYieldFlag: boolean; /** Форма выпуска ФИ. */ issueKind: string; /** Дата размещения акции. */ placementDate: Date | undefined; /** ISIN базового актива. */ represIsin: string; /** Объявленное количество, шт. */ issueSizePlan: Quotation | undefined; /** Количество акций в свободном обращении. */ totalFloat: Quotation | undefined; } /** Облигация. */ export interface AssetBond { /** Текущий номинал. */ currentNominal: Quotation | undefined; /** Наименование заемщика. */ borrowName: string; /** Объем эмиссии облигации (стоимость). */ issueSize: Quotation | undefined; /** Номинал облигации. */ nominal: Quotation | undefined; /** Валюта номинала. */ nominalCurrency: string; /** Форма выпуска облигации. */ issueKind: string; /** Форма дохода облигации. */ interestKind: string; /** Количество выплат в год. */ couponQuantityPerYear: number; /** Признак облигации с индексируемым номиналом. */ indexedNominalFlag: boolean; /** Признак субординированной облигации. */ subordinatedFlag: boolean; /** Признак обеспеченной облигации. */ collateralFlag: boolean; /** Признак показывает, что купоны облигации не облагаются налогом — для mass market. */ taxFreeFlag: boolean; /** Признак облигации с амортизацией долга. */ amortizationFlag: boolean; /** Признак облигации с плавающим купоном. */ floatingCouponFlag: boolean; /** Признак бессрочной облигации. */ perpetualFlag: boolean; /** Дата погашения облигации. */ maturityDate: Date | undefined; /** Описание и условия получения дополнительного дохода. */ returnCondition: string; /** Дата выпуска облигации. */ stateRegDate: Date | undefined; /** Дата размещения облигации. */ placementDate: Date | undefined; /** Цена размещения облигации. */ placementPrice: Quotation | undefined; /** Объявленное количество, шт. */ issueSizePlan: Quotation | undefined; } /** Структурная нота. */ export interface AssetStructuredProduct { /** Наименование заемщика. */ borrowName: string; /** Номинал. */ nominal: Quotation | undefined; /** Валюта номинала. */ nominalCurrency: string; /** Тип структурной ноты. */ type: StructuredProductType; /** Стратегия портфеля. */ logicPortfolio: string; /** Тип базового актива. */ assetType: AssetType; /** Вид базового актива в зависимости от типа базового актива. */ basicAsset: string; /** Барьер сохранности в процентах. */ safetyBarrier: Quotation | undefined; /** Дата погашения. */ maturityDate: Date | undefined; /** Объявленное количество, шт. */ issueSizePlan: Quotation | undefined; /** Объем размещения. */ issueSize: Quotation | undefined; /** Дата размещения ноты. */ placementDate: Date | undefined; /** Форма выпуска. */ issueKind: string; } /** Фонд. */ export interface AssetEtf { /** Суммарные расходы фонда в процентах. */ totalExpense: Quotation | undefined; /** Барьерная ставка доходности, после которой фонд имеет право на perfomance fee — в процентах. */ hurdleRate: Quotation | undefined; /** Комиссия за успешные результаты фонда в процентах. */ performanceFee: Quotation | undefined; /** Фиксированная комиссия за управление в процентах. */ fixedCommission: Quotation | undefined; /** Тип распределения доходов от выплат по бумагам. */ paymentType: string; /** Признак необходимости выхода фонда в плюс для получения комиссии. */ watermarkFlag: boolean; /** Премия (надбавка к цене) при покупке доли в фонде — в процентах. */ buyPremium: Quotation | undefined; /** Ставка дисконта (вычет из цены) при продаже доли в фонде — в процентах. */ sellDiscount: Quotation | undefined; /** Признак ребалансируемости портфеля фонда. */ rebalancingFlag: boolean; /** Периодичность ребалансировки. */ rebalancingFreq: string; /** Тип управления. */ managementType: string; /** Индекс, который реплицирует (старается копировать) фонд. */ primaryIndex: string; /** База ETF. */ focusType: string; /** Признак использования заемных активов (плечо). */ leveragedFlag: boolean; /** Количество акций в обращении. */ numShare: Quotation | undefined; /** Признак обязательства по отчетности перед регулятором. */ ucitsFlag: boolean; /** Дата выпуска. */ releasedDate: Date | undefined; /** Описание фонда. */ description: string; /** Описание индекса, за которым следует фонд. */ primaryIndexDescription: string; /** Основные компании, в которые вкладывается фонд. */ primaryIndexCompany: string; /** Срок восстановления индекса после просадки. */ indexRecoveryPeriod: Quotation | undefined; /** IVAV-код. */ inavCode: string; /** Признак наличия дивидендной доходности. */ divYieldFlag: boolean; /** Комиссия на покрытие расходов фонда в процентах. */ expenseCommission: Quotation | undefined; /** Ошибка следования за индексом в процентах. */ primaryIndexTrackingError: Quotation | undefined; /** Плановая ребалансировка портфеля. */ rebalancingPlan: string; /** Ставки налогообложения дивидендов и купонов. */ taxRate: string; /** Даты ребалансировок. */ rebalancingDates: Date[]; /** Форма выпуска. */ issueKind: string; /** Номинал. */ nominal: Quotation | undefined; /** Валюта номинала. */ nominalCurrency: string; } /** Клиринговый сертификат участия. */ export interface AssetClearingCertificate { /** Номинал. */ nominal: Quotation | undefined; /** Валюта номинала. */ nominalCurrency: string; } /** Бренд. */ export interface Brand { /** UID-идентификатор бренда. */ uid: string; /** Наименование бренда. */ name: string; /** Описание. */ description: string; /** Информация о бренде. */ info: string; /** Компания. */ company: string; /** Сектор. */ sector: string; /** Код страны риска. */ countryOfRisk: string; /** Наименование страны риска. */ countryOfRiskName: string; } /** Идентификаторы инструмента. */ export interface AssetInstrument { /** UID-идентификатор инструмента. */ uid: string; /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Тикер инструмента. */ ticker: string; /** Класс-код (секция торгов). */ classCode: string; /** Массив связанных инструментов. */ links: InstrumentLink[]; /** Тип инструмента. */ instrumentKind: InstrumentType; /** ID позиции. */ positionUid: string; } /** Связь с другим инструментом. */ export interface InstrumentLink { /** Тип связи. */ type: string; /** UID-идентификатор связанного инструмента. */ instrumentUid: string; } /** Запрос списка избранных инструментов, входные параметры не требуются. */ export interface GetFavoritesRequest { /** Уникальный идентификатор группы. */ groupId?: string | undefined; } /** В ответ передается список избранных инструментов в качестве массива. */ export interface GetFavoritesResponse { /** Массив инструментов. */ favoriteInstruments: FavoriteInstrument[]; /** Уникальный идентификатор группы. */ groupId?: string | undefined; } /** Массив избранных инструментов. */ export interface FavoriteInstrument { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код инструмента. */ classCode: string; /** ISIN-идентификатор инструмента. */ isin: string; /** Тип инструмента. */ instrumentType: string; /** Название инструмента. */ name: string; /** Уникальный идентификатор инструмента. */ uid: string; /** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */ otcFlag: boolean; /** Возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Тип инструмента. */ instrumentKind: InstrumentType; } /** Запрос редактирования списка избранных инструментов. */ export interface EditFavoritesRequest { /** Массив инструментов. */ instruments: EditFavoritesRequestInstrument[]; /** Тип действия со списком. */ actionType: EditFavoritesActionType; /** Уникальный идентификатор группы. */ groupId?: string | undefined; } /** Массив инструментов для редактирования списка избранных инструментов. */ export interface EditFavoritesRequestInstrument { /** * FIGI-идентификатор инструмента. * * @deprecated */ figi?: string | undefined; /** Идентификатор инструмента — `figi` или `instrument_uid`. */ instrumentId: string; } /** Результат редактирования списка избранных инструментов. */ export interface EditFavoritesResponse { /** Массив инструментов. */ favoriteInstruments: FavoriteInstrument[]; /** Уникальный идентификатор группы. */ groupId?: string | undefined; } /** Запрос создания новой группы избранных инструментов. */ export interface CreateFavoriteGroupRequest { /** Название группы, не более 255 символов. */ groupName: string; /** Цвет группы. Принимает значения в HEX-формате, от "000000" до "FFFFFF" */ groupColor: string; /** Описание */ note?: string | undefined; } export interface CreateFavoriteGroupResponse { /** Уникальный идентификатор группы. */ groupId: string; /** Название группы. */ groupName: string; } /** Запрос удаления избранной группы */ export interface DeleteFavoriteGroupRequest { /** Уникальный идентификатор группы. */ groupId: string; } export interface DeleteFavoriteGroupResponse {} /** Запрос получения списка избранных групп */ export interface GetFavoriteGroupsRequest { /** Массив идентификаторов инструментов. Принимает значение `figi` или `instrument_uid`. Если в группе будет хотя бы один из инструментов массива, то в ответе у группы вернется признак `containsInstrument = true`. */ instrumentId: string[]; /** Массив идентификаторов групп, которые необходимо исключить из ответа. */ excludedGroupId: string[]; } /** Избранные группы */ export interface GetFavoriteGroupsResponse { /** Массив групп избранных списков инструментов. */ groups: GetFavoriteGroupsResponse_FavoriteGroup[]; } /** Избранная группа */ export interface GetFavoriteGroupsResponse_FavoriteGroup { /** Уникальный идентификатор группы. */ groupId: string; /** Название группы. */ groupName: string; /** Цвет группы в HEX-формате. */ color: string; /** Количество инструментов в группе. */ size: number; /** Признак наличия в группе хотя бы одного инструмента из запроса. */ containsInstrument?: boolean | undefined; } /** Запрос справочника стран. */ export interface GetCountriesRequest {} /** Справочник стран. */ export interface GetCountriesResponse { /** Массив стран. */ countries: CountryResponse[]; } /** Запрос справочника индексов и товаров */ export interface IndicativesRequest {} /** Справочник индексов и товаров */ export interface IndicativesResponse { /** Массив инструментов. */ instruments: IndicativeResponse[]; } /** Индикатив */ export interface IndicativeResponse { /** FIGI-идентификатор инструмента. */ figi: string; /** Тикер инструмента. */ ticker: string; /** Класс-код инструмента. */ classCode: string; /** Валюта расчетов. */ currency: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Название инструмента. */ name: string; /** Tорговая площадка (секция биржи). */ exchange: string; /** Уникальный идентификатор инструмента. */ uid: string; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; } /** Данные о стране. */ export interface CountryResponse { /** Двухбуквенный код страны. */ alfaTwo: string; /** Трехбуквенный код страны. */ alfaThree: string; /** Наименование страны. */ name: string; /** Краткое наименование страны. */ nameBrief: string; } /** Запрос на поиск инструментов. */ export interface FindInstrumentRequest { /** Строка поиска. */ query: string; /** Фильтр по типу инструмента. */ instrumentKind?: InstrumentType | undefined; /** Фильтр для отображения только торговых инструментов. */ apiTradeAvailableFlag?: boolean | undefined; } /** Результат поиска инструментов. */ export interface FindInstrumentResponse { /** Массив инструментов, удовлетворяющих условиям поиска. */ instruments: InstrumentShort[]; } /** Краткая информация об инструменте. */ export interface InstrumentShort { /** ISIN инструмента. */ isin: string; /** FIGI инструмента. */ figi: string; /** Ticker инструмента. */ ticker: string; /** ClassCode инструмента. */ classCode: string; /** Тип инструмента. */ instrumentType: string; /** Название инструмента. */ name: string; /** Уникальный идентификатор инструмента. */ uid: string; /** Уникальный идентификатор позиции инструмента. */ positionUid: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Возможность торговать инструментом через API. */ apiTradeAvailableFlag: boolean; /** Признак доступности для ИИС. */ forIisFlag: boolean; /** Дата первой минутной свечи. */ first1minCandleDate: Date | undefined; /** Дата первой дневной свечи. */ first1dayCandleDate: Date | undefined; /** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Флаг, отображающий доступность торговли инструментом по выходным. */ weekendFlag: boolean; /** Флаг заблокированного ТКС. */ blockedTcaFlag: boolean; /** Количество бумаг в лоте. */ lot: number; } /** Запрос списка брендов. */ export interface GetBrandsRequest { /** Настройки пагинации. */ paging: Page | undefined; } /** Запрос бренда. */ export interface GetBrandRequest { /** UID-идентификатор бренда. */ id: string; } /** Список брендов. */ export interface GetBrandsResponse { /** Массив брендов. */ brands: Brand[]; /** Данные по пагинации. */ paging: PageResponse | undefined; } /** Запрос фундаментальных показателей */ export interface GetAssetFundamentalsRequest { /** Массив идентификаторов активов, не более 100 шт. */ assets: string[]; } /** Фундаментальные показатели */ export interface GetAssetFundamentalsResponse { fundamentals: GetAssetFundamentalsResponse_StatisticResponse[]; } /** Фундаментальные показатели по активу */ export interface GetAssetFundamentalsResponse_StatisticResponse { /** Идентификатор актива. */ assetUid: string; /** Валюта. */ currency: string; /** Рыночная капитализация. */ marketCapitalization: number; /** Максимум за год. */ highPriceLast52Weeks: number; /** Минимум за год. */ lowPriceLast52Weeks: number; /** Средний объем торгов за 10 дней. */ averageDailyVolumeLast10Days: number; /** Средний объем торгов за месяц. */ averageDailyVolumeLast4Weeks: number; beta: number; /** Доля акций в свободном обращении. */ freeFloat: number; /** Процент форвардной дивидендной доходности по отношению к цене акций. */ forwardAnnualDividendYield: number; /** Количество акций в обращении. */ sharesOutstanding: number; /** Выручка. */ revenueTtm: number; /** EBITDA — прибыль до вычета процентов, налогов, износа и амортизации. */ ebitdaTtm: number; /** Чистая прибыль. */ netIncomeTtm: number; /** EPS — величина чистой прибыли компании, которая приходится на каждую обыкновенную акцию. */ epsTtm: number; /** EPS компании с допущением, что все конвертируемые ценные бумаги компании были сконвертированы в обыкновенные акции. */ dilutedEpsTtm: number; /** Свободный денежный поток. */ freeCashFlowTtm: number; /** Среднегодовой рocт выручки за 5 лет. */ fiveYearAnnualRevenueGrowthRate: number; /** Среднегодовой рocт выручки за 3 года. */ threeYearAnnualRevenueGrowthRate: number; /** Соотношение рыночной капитализации компании к ее чистой прибыли. */ peRatioTtm: number; /** Соотношение рыночной капитализации компании к ее выручке. */ priceToSalesTtm: number; /** Соотношение рыночной капитализации компании к ее балансовой стоимости. */ priceToBookTtm: number; /** Соотношение рыночной капитализации компании к ее свободному денежному потоку. */ priceToFreeCashFlowTtm: number; /** Рыночная стоимость компании. */ totalEnterpriseValueMrq: number; /** Соотношение EV и EBITDA. */ evToEbitdaMrq: number; /** Маржа чистой прибыли. */ netMarginMrq: number; /** Рентабельность чистой прибыли. */ netInterestMarginMrq: number; /** Рентабельность собственного капитала. */ roe: number; /** Рентабельность активов. */ roa: number; /** Рентабельность активов. */ roic: number; /** Сумма краткосрочных и долгосрочных обязательств компании. */ totalDebtMrq: number; /** Соотношение долга к собственному капиталу. */ totalDebtToEquityMrq: number; /** Total Debt/EBITDA. */ totalDebtToEbitdaMrq: number; /** Отношение свободногоо кэша к стоимости. */ freeCashFlowToPrice: number; /** Отношение чистого долга к EBITDA. */ netDebtToEbitda: number; /** Коэффициент текущей ликвидности. */ currentRatioMrq: number; /** Коэффициент покрытия фиксированных платежей — FCCR. */ fixedChargeCoverageRatioFy: number; /** Дивидендная доходность за 12 месяцев. */ dividendYieldDailyTtm: number; /** Выплаченные дивиденды за 12 месяцев. */ dividendRateTtm: number; /** Значение дивидендов на акцию. */ dividendsPerShare: number; /** Средняя дивидендная доходность за 5 лет. */ fiveYearsAverageDividendYield: number; /** Среднегодовой рост дивидендов за 5 лет. */ fiveYearAnnualDividendGrowthRate: number; /** Процент чистой прибыли, уходящий на выплату дивидендов. */ dividendPayoutRatioFy: number; /** Деньги, потраченные на обратный выкуп акций. */ buyBackTtm: number; /** Рост выручки за 1 год. */ oneYearAnnualRevenueGrowthRate: number; /** Код страны. */ domicileIndicatorCode: string; /** Соотношение депозитарной расписки к акциям. */ adrToCommonShareRatio: number; /** Количество сотрудников. */ numberOfEmployees: number; exDividendDate: Date | undefined; /** Начало фискального периода. */ fiscalPeriodStartDate: Date | undefined; /** Окончание фискального периода. */ fiscalPeriodEndDate: Date | undefined; /** Изменение общего дохода за 5 лет. */ revenueChangeFiveYears: number; /** Изменение EPS за 5 лет. */ epsChangeFiveYears: number; /** Изменение EBIDTA за 5 лет. */ ebitdaChangeFiveYears: number; /** Изменение общей задолжности за 5 лет. */ totalDebtChangeFiveYears: number; /** Отношение EV к выручке. */ evToSales: number; } /** Запрос отчетов эмитентов */ export interface GetAssetReportsRequest { /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; /** Начало запрашиваемого периода по UTC. */ from?: Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to?: Date | undefined; } /** Отчеты эмитентов */ export interface GetAssetReportsResponse { /** Массив событий по облигации. */ events: GetAssetReportsResponse_GetAssetReportsEvent[]; } export enum GetAssetReportsResponse_AssetReportPeriodType { /** PERIOD_TYPE_UNSPECIFIED - Не указан. */ PERIOD_TYPE_UNSPECIFIED = 0, /** PERIOD_TYPE_QUARTER - Квартальный. */ PERIOD_TYPE_QUARTER = 1, /** PERIOD_TYPE_SEMIANNUAL - Полугодовой. */ PERIOD_TYPE_SEMIANNUAL = 2, /** PERIOD_TYPE_ANNUAL - Годовой. */ PERIOD_TYPE_ANNUAL = 3, UNRECOGNIZED = -1, } export function getAssetReportsResponse_AssetReportPeriodTypeFromJSON( object: any, ): GetAssetReportsResponse_AssetReportPeriodType { switch (object) { case 0: case 'PERIOD_TYPE_UNSPECIFIED': return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_UNSPECIFIED; case 1: case 'PERIOD_TYPE_QUARTER': return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_QUARTER; case 2: case 'PERIOD_TYPE_SEMIANNUAL': return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_SEMIANNUAL; case 3: case 'PERIOD_TYPE_ANNUAL': return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_ANNUAL; case -1: case 'UNRECOGNIZED': default: return GetAssetReportsResponse_AssetReportPeriodType.UNRECOGNIZED; } } export function getAssetReportsResponse_AssetReportPeriodTypeToJSON( object: GetAssetReportsResponse_AssetReportPeriodType, ): string { switch (object) { case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_UNSPECIFIED: return 'PERIOD_TYPE_UNSPECIFIED'; case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_QUARTER: return 'PERIOD_TYPE_QUARTER'; case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_SEMIANNUAL: return 'PERIOD_TYPE_SEMIANNUAL'; case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_ANNUAL: return 'PERIOD_TYPE_ANNUAL'; default: return 'UNKNOWN'; } } /** Отчет */ export interface GetAssetReportsResponse_GetAssetReportsEvent { /** Идентификатор инструмента. */ instrumentId: string; /** Дата публикации отчета. */ reportDate: Date | undefined; /** Год периода отчета. */ periodYear: number; /** Номер периода. */ periodNum: number; /** Тип отчета. */ periodType: GetAssetReportsResponse_AssetReportPeriodType; /** Дата создания записи. */ createdAt: Date | undefined; } /** Запрос консенсус-прогнозов */ export interface GetConsensusForecastsRequest { /** Настройки пагинации. */ paging?: Page | undefined; } /** Консенсус-прогнозы */ export interface GetConsensusForecastsResponse { /** Массив прогнозов. */ items: GetConsensusForecastsResponse_ConsensusForecastsItem[]; /** Данные по пагинации. */ page: PageResponse | undefined; } /** Прогноз */ export interface GetConsensusForecastsResponse_ConsensusForecastsItem { /** UID-идентификатор. */ uid: string; /** UID-идентификатор актива. */ assetUid: string; /** Дата и время создания записи. */ createdAt: Date | undefined; /** Целевая цена на 12 месяцев. */ bestTargetPrice: Quotation | undefined; /** Минимальная прогнозная цена. */ bestTargetLow: Quotation | undefined; /** Максимальная прогнозная цена. */ bestTargetHigh: Quotation | undefined; /** Количество аналитиков рекомендующих покупать. */ totalBuyRecommend: number; /** Количество аналитиков рекомендующих держать. */ totalHoldRecommend: number; /** Количество аналитиков рекомендующих продавать. */ totalSellRecommend: number; /** Валюта прогнозов инструмента. */ currency: string; /** Консенсус-прогноз. */ consensus: Recommendation; /** Дата прогноза. */ prognosisDate: Date | undefined; } /** Запрос прогнозов инвестдомов. */ export interface GetForecastRequest { /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; } /** Прогнозы инвестдомов по инструменту. */ export interface GetForecastResponse { /** Массив прогнозов. */ targets: GetForecastResponse_TargetItem[]; /** Согласованный прогноз. */ consensus: GetForecastResponse_ConsensusItem | undefined; } /** Прогноз */ export interface GetForecastResponse_TargetItem { /** Уникальный идентификатор инструмента. */ uid: string; /** Тикер инструмента. */ ticker: string; /** Название компании, давшей прогноз. */ company: string; /** Прогноз. */ recommendation: Recommendation; /** Дата прогноза. */ recommendationDate: Date | undefined; /** Валюта. */ currency: string; /** Текущая цена. */ currentPrice: Quotation | undefined; /** Прогнозируемая цена. */ targetPrice: Quotation | undefined; /** Изменение цены. */ priceChange: Quotation | undefined; /** Относительное изменение цены. */ priceChangeRel: Quotation | undefined; /** Наименование инструмента. */ showName: string; } /** Консенсус-прогноз. */ export interface GetForecastResponse_ConsensusItem { /** Уникальный идентификатор инструмента. */ uid: string; /** Тикер инструмента. */ ticker: string; /** Прогноз. */ recommendation: Recommendation; /** Валюта. */ currency: string; /** Текущая цена. */ currentPrice: Quotation | undefined; /** Прогнозируемая цена. */ consensus: Quotation | undefined; /** Минимальная цена прогноза. */ minTarget: Quotation | undefined; /** Максимальная цена прогноза. */ maxTarget: Quotation | undefined; /** Изменение цены. */ priceChange: Quotation | undefined; /** Относительное изменение цены. */ priceChangeRel: Quotation | undefined; } /** Запрос ставок риска */ export interface RiskRatesRequest { /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string[]; } /** Ставки риска */ export interface RiskRatesResponse { instrumentRiskRates: RiskRatesResponse_RiskRateResult[]; } export interface RiskRatesResponse_RiskRateResult { instrumentUid: string; /** Ставка риска пользователя в шорт */ shortRiskRate?: RiskRatesResponse_RiskRate | undefined; /** Ставка риска пользователя в лонг */ longRiskRate?: RiskRatesResponse_RiskRate | undefined; /** Доступные ставки риска в шорт */ shortRiskRates: RiskRatesResponse_RiskRate[]; /** Доступные ставки риска в лонг */ longRiskRates: RiskRatesResponse_RiskRate[]; /** Ошибка. */ error?: string | undefined; } export interface RiskRatesResponse_RiskRate { /** Категория риска. */ riskLevelCode: string; /** Значение ставки риска. */ value: Quotation | undefined; } export interface TradingInterval { /** Название интервала. */ type: string; /** Интервал. */ interval: TradingInterval_TimeInterval | undefined; } export interface TradingInterval_TimeInterval { /** Время начала интервала. */ startTs: Date | undefined; /** Время окончания интервала. */ endTs: Date | undefined; } /** Запрос сделок по инсайдерам */ export interface GetInsiderDealsRequest { /** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */ instrumentId: string; /** Количество выводимых записей в ответе, не больше 100. */ limit: number; /** Курсор. */ nextCursor?: string | undefined; } /** сделки инсайдеров */ export interface GetInsiderDealsResponse { /** Массив сделок. */ insiderDeals: GetInsiderDealsResponse_InsiderDeal[]; /** Курсор для получения следующей страницы. */ nextCursor?: string | undefined; } export enum GetInsiderDealsResponse_TradeDirection { /** TRADE_DIRECTION_UNSPECIFIED - Не определено. */ TRADE_DIRECTION_UNSPECIFIED = 0, /** TRADE_DIRECTION_BUY - Покупка. */ TRADE_DIRECTION_BUY = 1, /** TRADE_DIRECTION_SELL - Продажа. */ TRADE_DIRECTION_SELL = 2, /** TRADE_DIRECTION_INCREASE - Увеличение доли. */ TRADE_DIRECTION_INCREASE = 3, /** TRADE_DIRECTION_DECREASE - Уменьшение доли. */ TRADE_DIRECTION_DECREASE = 4, UNRECOGNIZED = -1, } export function getInsiderDealsResponse_TradeDirectionFromJSON(object: any): GetInsiderDealsResponse_TradeDirection { switch (object) { case 0: case 'TRADE_DIRECTION_UNSPECIFIED': return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_UNSPECIFIED; case 1: case 'TRADE_DIRECTION_BUY': return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_BUY; case 2: case 'TRADE_DIRECTION_SELL': return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_SELL; case 3: case 'TRADE_DIRECTION_INCREASE': return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_INCREASE; case 4: case 'TRADE_DIRECTION_DECREASE': return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_DECREASE; case -1: case 'UNRECOGNIZED': default: return GetInsiderDealsResponse_TradeDirection.UNRECOGNIZED; } } export function getInsiderDealsResponse_TradeDirectionToJSON(object: GetInsiderDealsResponse_TradeDirection): string { switch (object) { case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_UNSPECIFIED: return 'TRADE_DIRECTION_UNSPECIFIED'; case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_BUY: return 'TRADE_DIRECTION_BUY'; case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_SELL: return 'TRADE_DIRECTION_SELL'; case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_INCREASE: return 'TRADE_DIRECTION_INCREASE'; case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_DECREASE: return 'TRADE_DIRECTION_DECREASE'; default: return 'UNKNOWN'; } } export interface GetInsiderDealsResponse_InsiderDeal { /** Уникальный идентификатор сделки. */ tradeId: number; /** Направление сделки. */ direction: GetInsiderDealsResponse_TradeDirection; /** Валюта сделки. */ currency: string; /** Дата сделки. */ date: Date | undefined; /** Количество. */ quantity: number; /** Цена. */ price: Quotation | undefined; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Тикер инструмента. */ ticker: string; /** Имя инвестора. */ investorName: string; /** Какое отношение покупатель/продавец имеет к эмитенту */ investorPosition: string; /** Купленный/проданный объём от общего количества ценных бумаг на рынке */ percentage: number; /** Признак является ли сделка реализацией опциона */ isOptionExecution: boolean; /** Дата раскрытия сделки. */ disclosureDate: Date | undefined; } /** Запрос цифровых активов */ export interface DfasRequest {} /** Цифровой актив */ export interface DfaResponse { /** Уникальный идентификатор инструмента. */ uid: string; /** Тикер инструмента. */ ticker: string; /** Название инструмента. */ name: string; /** Уникальный идентификатор позиции. */ positionUid: string; /** Шаг цены. */ minPriceIncrement: Quotation | undefined; /** Количество лотов. */ lot: number; /** Номинал. */ nominal: MoneyValue | undefined; /** Валюта. */ currency: string; /** Дата погашения ЦФА в формате UTC. */ maturityDate: Date | undefined; /** Признак доступности для операций шорт. */ shortEnabledFlag: boolean; /** Признак доступности торгов по бумаге через API. */ apiTradeAvailableFlag: boolean; /** Признак доступности для покупки. */ buyAvailableFlag: boolean; /** Признак доступности для продажи. */ sellAvailableFlag: boolean; /** Признак доступности выставления лимитной заявки по инструменту. */ limitOrderAvailableFlag: boolean; /** Признак доступности выставления рыночной заявки по инструменту. */ marketOrderAvailableFlag: boolean; /** Признак доступности выставления bestprice заявки по инструменту. */ bestpriceOrderAvailableFlag: boolean; /** Возможность покупки/продажи на ИИС. */ forIisFlag: boolean; /** Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов. */ forQualInvestorFlag: boolean; /** Тип актива. Возможные значения: credit_portfolio_dfa, debt_dfa. */ type: string; /** Базовые активы, входящие в ЦФА. */ basicAssets: DfaResponse_BasicAsset[]; /** Прогнозная доходность смарт-портфелей, в виде интервала в %. */ forecastYield: DfaResponse_ForecastYield | undefined; /** Доходность к погашению в %. */ yieldToMaturity: Quotation | undefined; /** Величина купона. */ couponValue: Quotation | undefined; /** Количество выплат в год. */ couponPaymentFrequency: number; /** Дата выплаты купона. */ couponPaymentDate: Date | undefined; /** Значение НКД (накопленного купонного дохода) на дату. */ aciValue: Quotation | undefined; } /** Базовый актив. */ export interface DfaResponse_BasicAsset { /** UID базового актива */ uid: string; } /** Прогнозная доходность смарт-портфелей. */ export interface DfaResponse_ForecastYield { /** Минимальное значение прогнозной доходности в % */ minValue: Quotation | undefined; /** Максимальное значение прогнозной доходности в % */ maxValue: Quotation | undefined; } /** Цифровые активы */ export interface DfasResponse { /** Массив инструментов. */ instruments: DfaResponse[]; } function createBaseTradingSchedulesRequest(): TradingSchedulesRequest { return { exchange: undefined, from: undefined, to: undefined }; } export const TradingSchedulesRequest = { encode(message: TradingSchedulesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.exchange !== undefined) { writer.uint32(10).string(message.exchange); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedulesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTradingSchedulesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.exchange = reader.string(); break; case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TradingSchedulesRequest { return { exchange: isSet(object.exchange) ? String(object.exchange) : undefined, from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, }; }, toJSON(message: TradingSchedulesRequest): unknown { const obj: any = {}; message.exchange !== undefined && (obj.exchange = message.exchange); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); return obj; }, fromPartial(object: DeepPartial): TradingSchedulesRequest { const message = createBaseTradingSchedulesRequest(); message.exchange = object.exchange ?? undefined; message.from = object.from ?? undefined; message.to = object.to ?? undefined; return message; }, }; function createBaseTradingSchedulesResponse(): TradingSchedulesResponse { return { exchanges: [] }; } export const TradingSchedulesResponse = { encode(message: TradingSchedulesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.exchanges) { TradingSchedule.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedulesResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTradingSchedulesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.exchanges.push(TradingSchedule.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TradingSchedulesResponse { return { exchanges: Array.isArray(object?.exchanges) ? object.exchanges.map((e: any) => TradingSchedule.fromJSON(e)) : [], }; }, toJSON(message: TradingSchedulesResponse): unknown { const obj: any = {}; if (message.exchanges) { obj.exchanges = message.exchanges.map(e => (e ? TradingSchedule.toJSON(e) : undefined)); } else { obj.exchanges = []; } return obj; }, fromPartial(object: DeepPartial): TradingSchedulesResponse { const message = createBaseTradingSchedulesResponse(); message.exchanges = object.exchanges?.map(e => TradingSchedule.fromPartial(e)) || []; return message; }, }; function createBaseTradingSchedule(): TradingSchedule { return { exchange: '', days: [] }; } export const TradingSchedule = { encode(message: TradingSchedule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.exchange !== '') { writer.uint32(10).string(message.exchange); } for (const v of message.days) { TradingDay.encode(v!, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedule { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTradingSchedule(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.exchange = reader.string(); break; case 2: message.days.push(TradingDay.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TradingSchedule { return { exchange: isSet(object.exchange) ? String(object.exchange) : '', days: Array.isArray(object?.days) ? object.days.map((e: any) => TradingDay.fromJSON(e)) : [], }; }, toJSON(message: TradingSchedule): unknown { const obj: any = {}; message.exchange !== undefined && (obj.exchange = message.exchange); if (message.days) { obj.days = message.days.map(e => (e ? TradingDay.toJSON(e) : undefined)); } else { obj.days = []; } return obj; }, fromPartial(object: DeepPartial): TradingSchedule { const message = createBaseTradingSchedule(); message.exchange = object.exchange ?? ''; message.days = object.days?.map(e => TradingDay.fromPartial(e)) || []; return message; }, }; function createBaseTradingDay(): TradingDay { return { date: undefined, isTradingDay: false, startTime: undefined, endTime: undefined, openingAuctionStartTime: undefined, closingAuctionEndTime: undefined, eveningOpeningAuctionStartTime: undefined, eveningStartTime: undefined, eveningEndTime: undefined, clearingStartTime: undefined, clearingEndTime: undefined, premarketStartTime: undefined, premarketEndTime: undefined, closingAuctionStartTime: undefined, openingAuctionEndTime: undefined, intervals: [], }; } export const TradingDay = { encode(message: TradingDay, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.date !== undefined) { Timestamp.encode(toTimestamp(message.date), writer.uint32(10).fork()).ldelim(); } if (message.isTradingDay === true) { writer.uint32(16).bool(message.isTradingDay); } if (message.startTime !== undefined) { Timestamp.encode(toTimestamp(message.startTime), writer.uint32(26).fork()).ldelim(); } if (message.endTime !== undefined) { Timestamp.encode(toTimestamp(message.endTime), writer.uint32(34).fork()).ldelim(); } if (message.openingAuctionStartTime !== undefined) { Timestamp.encode(toTimestamp(message.openingAuctionStartTime), writer.uint32(58).fork()).ldelim(); } if (message.closingAuctionEndTime !== undefined) { Timestamp.encode(toTimestamp(message.closingAuctionEndTime), writer.uint32(66).fork()).ldelim(); } if (message.eveningOpeningAuctionStartTime !== undefined) { Timestamp.encode(toTimestamp(message.eveningOpeningAuctionStartTime), writer.uint32(74).fork()).ldelim(); } if (message.eveningStartTime !== undefined) { Timestamp.encode(toTimestamp(message.eveningStartTime), writer.uint32(82).fork()).ldelim(); } if (message.eveningEndTime !== undefined) { Timestamp.encode(toTimestamp(message.eveningEndTime), writer.uint32(90).fork()).ldelim(); } if (message.clearingStartTime !== undefined) { Timestamp.encode(toTimestamp(message.clearingStartTime), writer.uint32(98).fork()).ldelim(); } if (message.clearingEndTime !== undefined) { Timestamp.encode(toTimestamp(message.clearingEndTime), writer.uint32(106).fork()).ldelim(); } if (message.premarketStartTime !== undefined) { Timestamp.encode(toTimestamp(message.premarketStartTime), writer.uint32(114).fork()).ldelim(); } if (message.premarketEndTime !== undefined) { Timestamp.encode(toTimestamp(message.premarketEndTime), writer.uint32(122).fork()).ldelim(); } if (message.closingAuctionStartTime !== undefined) { Timestamp.encode(toTimestamp(message.closingAuctionStartTime), writer.uint32(130).fork()).ldelim(); } if (message.openingAuctionEndTime !== undefined) { Timestamp.encode(toTimestamp(message.openingAuctionEndTime), writer.uint32(138).fork()).ldelim(); } for (const v of message.intervals) { TradingInterval.encode(v!, writer.uint32(146).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TradingDay { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTradingDay(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.isTradingDay = reader.bool(); break; case 3: message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 4: message.endTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 7: message.openingAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 8: message.closingAuctionEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 9: message.eveningOpeningAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 10: message.eveningStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 11: message.eveningEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 12: message.clearingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 13: message.clearingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 14: message.premarketStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 15: message.premarketEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 16: message.closingAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 17: message.openingAuctionEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 18: message.intervals.push(TradingInterval.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TradingDay { return { date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined, isTradingDay: isSet(object.isTradingDay) ? Boolean(object.isTradingDay) : false, startTime: isSet(object.startTime) ? fromJsonTimestamp(object.startTime) : undefined, endTime: isSet(object.endTime) ? fromJsonTimestamp(object.endTime) : undefined, openingAuctionStartTime: isSet(object.openingAuctionStartTime) ? fromJsonTimestamp(object.openingAuctionStartTime) : undefined, closingAuctionEndTime: isSet(object.closingAuctionEndTime) ? fromJsonTimestamp(object.closingAuctionEndTime) : undefined, eveningOpeningAuctionStartTime: isSet(object.eveningOpeningAuctionStartTime) ? fromJsonTimestamp(object.eveningOpeningAuctionStartTime) : undefined, eveningStartTime: isSet(object.eveningStartTime) ? fromJsonTimestamp(object.eveningStartTime) : undefined, eveningEndTime: isSet(object.eveningEndTime) ? fromJsonTimestamp(object.eveningEndTime) : undefined, clearingStartTime: isSet(object.clearingStartTime) ? fromJsonTimestamp(object.clearingStartTime) : undefined, clearingEndTime: isSet(object.clearingEndTime) ? fromJsonTimestamp(object.clearingEndTime) : undefined, premarketStartTime: isSet(object.premarketStartTime) ? fromJsonTimestamp(object.premarketStartTime) : undefined, premarketEndTime: isSet(object.premarketEndTime) ? fromJsonTimestamp(object.premarketEndTime) : undefined, closingAuctionStartTime: isSet(object.closingAuctionStartTime) ? fromJsonTimestamp(object.closingAuctionStartTime) : undefined, openingAuctionEndTime: isSet(object.openingAuctionEndTime) ? fromJsonTimestamp(object.openingAuctionEndTime) : undefined, intervals: Array.isArray(object?.intervals) ? object.intervals.map((e: any) => TradingInterval.fromJSON(e)) : [], }; }, toJSON(message: TradingDay): unknown { const obj: any = {}; message.date !== undefined && (obj.date = message.date.toISOString()); message.isTradingDay !== undefined && (obj.isTradingDay = message.isTradingDay); message.startTime !== undefined && (obj.startTime = message.startTime.toISOString()); message.endTime !== undefined && (obj.endTime = message.endTime.toISOString()); message.openingAuctionStartTime !== undefined && (obj.openingAuctionStartTime = message.openingAuctionStartTime.toISOString()); message.closingAuctionEndTime !== undefined && (obj.closingAuctionEndTime = message.closingAuctionEndTime.toISOString()); message.eveningOpeningAuctionStartTime !== undefined && (obj.eveningOpeningAuctionStartTime = message.eveningOpeningAuctionStartTime.toISOString()); message.eveningStartTime !== undefined && (obj.eveningStartTime = message.eveningStartTime.toISOString()); message.eveningEndTime !== undefined && (obj.eveningEndTime = message.eveningEndTime.toISOString()); message.clearingStartTime !== undefined && (obj.clearingStartTime = message.clearingStartTime.toISOString()); message.clearingEndTime !== undefined && (obj.clearingEndTime = message.clearingEndTime.toISOString()); message.premarketStartTime !== undefined && (obj.premarketStartTime = message.premarketStartTime.toISOString()); message.premarketEndTime !== undefined && (obj.premarketEndTime = message.premarketEndTime.toISOString()); message.closingAuctionStartTime !== undefined && (obj.closingAuctionStartTime = message.closingAuctionStartTime.toISOString()); message.openingAuctionEndTime !== undefined && (obj.openingAuctionEndTime = message.openingAuctionEndTime.toISOString()); if (message.intervals) { obj.intervals = message.intervals.map(e => (e ? TradingInterval.toJSON(e) : undefined)); } else { obj.intervals = []; } return obj; }, fromPartial(object: DeepPartial): TradingDay { const message = createBaseTradingDay(); message.date = object.date ?? undefined; message.isTradingDay = object.isTradingDay ?? false; message.startTime = object.startTime ?? undefined; message.endTime = object.endTime ?? undefined; message.openingAuctionStartTime = object.openingAuctionStartTime ?? undefined; message.closingAuctionEndTime = object.closingAuctionEndTime ?? undefined; message.eveningOpeningAuctionStartTime = object.eveningOpeningAuctionStartTime ?? undefined; message.eveningStartTime = object.eveningStartTime ?? undefined; message.eveningEndTime = object.eveningEndTime ?? undefined; message.clearingStartTime = object.clearingStartTime ?? undefined; message.clearingEndTime = object.clearingEndTime ?? undefined; message.premarketStartTime = object.premarketStartTime ?? undefined; message.premarketEndTime = object.premarketEndTime ?? undefined; message.closingAuctionStartTime = object.closingAuctionStartTime ?? undefined; message.openingAuctionEndTime = object.openingAuctionEndTime ?? undefined; message.intervals = object.intervals?.map(e => TradingInterval.fromPartial(e)) || []; return message; }, }; function createBaseInstrumentRequest(): InstrumentRequest { return { idType: 0, classCode: undefined, id: '' }; } export const InstrumentRequest = { encode(message: InstrumentRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.idType !== 0) { writer.uint32(8).int32(message.idType); } if (message.classCode !== undefined) { writer.uint32(18).string(message.classCode); } if (message.id !== '') { writer.uint32(26).string(message.id); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseInstrumentRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.idType = reader.int32() as any; break; case 2: message.classCode = reader.string(); break; case 3: message.id = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): InstrumentRequest { return { idType: isSet(object.idType) ? instrumentIdTypeFromJSON(object.idType) : 0, classCode: isSet(object.classCode) ? String(object.classCode) : undefined, id: isSet(object.id) ? String(object.id) : '', }; }, toJSON(message: InstrumentRequest): unknown { const obj: any = {}; message.idType !== undefined && (obj.idType = instrumentIdTypeToJSON(message.idType)); message.classCode !== undefined && (obj.classCode = message.classCode); message.id !== undefined && (obj.id = message.id); return obj; }, fromPartial(object: DeepPartial): InstrumentRequest { const message = createBaseInstrumentRequest(); message.idType = object.idType ?? 0; message.classCode = object.classCode ?? undefined; message.id = object.id ?? ''; return message; }, }; function createBaseInstrumentsRequest(): InstrumentsRequest { return { instrumentStatus: undefined, instrumentExchange: undefined }; } export const InstrumentsRequest = { encode(message: InstrumentsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrumentStatus !== undefined) { writer.uint32(8).int32(message.instrumentStatus); } if (message.instrumentExchange !== undefined) { writer.uint32(16).int32(message.instrumentExchange); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseInstrumentsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrumentStatus = reader.int32() as any; break; case 2: message.instrumentExchange = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): InstrumentsRequest { return { instrumentStatus: isSet(object.instrumentStatus) ? instrumentStatusFromJSON(object.instrumentStatus) : undefined, instrumentExchange: isSet(object.instrumentExchange) ? instrumentExchangeTypeFromJSON(object.instrumentExchange) : undefined, }; }, toJSON(message: InstrumentsRequest): unknown { const obj: any = {}; message.instrumentStatus !== undefined && (obj.instrumentStatus = message.instrumentStatus !== undefined ? instrumentStatusToJSON(message.instrumentStatus) : undefined); message.instrumentExchange !== undefined && (obj.instrumentExchange = message.instrumentExchange !== undefined ? instrumentExchangeTypeToJSON(message.instrumentExchange) : undefined); return obj; }, fromPartial(object: DeepPartial): InstrumentsRequest { const message = createBaseInstrumentsRequest(); message.instrumentStatus = object.instrumentStatus ?? undefined; message.instrumentExchange = object.instrumentExchange ?? undefined; return message; }, }; function createBaseFilterOptionsRequest(): FilterOptionsRequest { return { basicAssetUid: undefined, basicAssetPositionUid: undefined, basicInstrumentId: undefined }; } export const FilterOptionsRequest = { encode(message: FilterOptionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.basicAssetUid !== undefined) { writer.uint32(10).string(message.basicAssetUid); } if (message.basicAssetPositionUid !== undefined) { writer.uint32(18).string(message.basicAssetPositionUid); } if (message.basicInstrumentId !== undefined) { writer.uint32(26).string(message.basicInstrumentId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): FilterOptionsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseFilterOptionsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.basicAssetUid = reader.string(); break; case 2: message.basicAssetPositionUid = reader.string(); break; case 3: message.basicInstrumentId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): FilterOptionsRequest { return { basicAssetUid: isSet(object.basicAssetUid) ? String(object.basicAssetUid) : undefined, basicAssetPositionUid: isSet(object.basicAssetPositionUid) ? String(object.basicAssetPositionUid) : undefined, basicInstrumentId: isSet(object.basicInstrumentId) ? String(object.basicInstrumentId) : undefined, }; }, toJSON(message: FilterOptionsRequest): unknown { const obj: any = {}; message.basicAssetUid !== undefined && (obj.basicAssetUid = message.basicAssetUid); message.basicAssetPositionUid !== undefined && (obj.basicAssetPositionUid = message.basicAssetPositionUid); message.basicInstrumentId !== undefined && (obj.basicInstrumentId = message.basicInstrumentId); return obj; }, fromPartial(object: DeepPartial): FilterOptionsRequest { const message = createBaseFilterOptionsRequest(); message.basicAssetUid = object.basicAssetUid ?? undefined; message.basicAssetPositionUid = object.basicAssetPositionUid ?? undefined; message.basicInstrumentId = object.basicInstrumentId ?? undefined; return message; }, }; function createBaseBondResponse(): BondResponse { return { instrument: undefined }; } export const BondResponse = { encode(message: BondResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrument !== undefined) { Bond.encode(message.instrument, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BondResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBondResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrument = Bond.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BondResponse { return { instrument: isSet(object.instrument) ? Bond.fromJSON(object.instrument) : undefined, }; }, toJSON(message: BondResponse): unknown { const obj: any = {}; message.instrument !== undefined && (obj.instrument = message.instrument ? Bond.toJSON(message.instrument) : undefined); return obj; }, fromPartial(object: DeepPartial): BondResponse { const message = createBaseBondResponse(); message.instrument = object.instrument !== undefined && object.instrument !== null ? Bond.fromPartial(object.instrument) : undefined; return message; }, }; function createBaseBondsResponse(): BondsResponse { return { instruments: [] }; } export const BondsResponse = { encode(message: BondsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.instruments) { Bond.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BondsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBondsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instruments.push(Bond.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BondsResponse { return { instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Bond.fromJSON(e)) : [], }; }, toJSON(message: BondsResponse): unknown { const obj: any = {}; if (message.instruments) { obj.instruments = message.instruments.map(e => (e ? Bond.toJSON(e) : undefined)); } else { obj.instruments = []; } return obj; }, fromPartial(object: DeepPartial): BondsResponse { const message = createBaseBondsResponse(); message.instruments = object.instruments?.map(e => Bond.fromPartial(e)) || []; return message; }, }; function createBaseGetBondCouponsRequest(): GetBondCouponsRequest { return { figi: '', from: undefined, to: undefined, instrumentId: '' }; } export const GetBondCouponsRequest = { encode(message: GetBondCouponsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.figi !== '') { writer.uint32(10).string(message.figi); } if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } if (message.instrumentId !== '') { writer.uint32(34).string(message.instrumentId); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBondCouponsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBondCouponsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.figi = reader.string(); break; case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 4: message.instrumentId = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBondCouponsRequest { return { figi: isSet(object.figi) ? String(object.figi) : '', from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '', }; }, toJSON(message: GetBondCouponsRequest): unknown { const obj: any = {}; message.figi !== undefined && (obj.figi = message.figi); message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId); return obj; }, fromPartial(object: DeepPartial): GetBondCouponsRequest { const message = createBaseGetBondCouponsRequest(); message.figi = object.figi ?? ''; message.from = object.from ?? undefined; message.to = object.to ?? undefined; message.instrumentId = object.instrumentId ?? ''; return message; }, }; function createBaseGetBondCouponsResponse(): GetBondCouponsResponse { return { events: [] }; } export const GetBondCouponsResponse = { encode(message: GetBondCouponsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.events) { Coupon.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBondCouponsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBondCouponsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.events.push(Coupon.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBondCouponsResponse { return { events: Array.isArray(object?.events) ? object.events.map((e: any) => Coupon.fromJSON(e)) : [], }; }, toJSON(message: GetBondCouponsResponse): unknown { const obj: any = {}; if (message.events) { obj.events = message.events.map(e => (e ? Coupon.toJSON(e) : undefined)); } else { obj.events = []; } return obj; }, fromPartial(object: DeepPartial): GetBondCouponsResponse { const message = createBaseGetBondCouponsResponse(); message.events = object.events?.map(e => Coupon.fromPartial(e)) || []; return message; }, }; function createBaseGetBondEventsRequest(): GetBondEventsRequest { return { from: undefined, to: undefined, instrumentId: '', type: 0 }; } export const GetBondEventsRequest = { encode(message: GetBondEventsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.from !== undefined) { Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim(); } if (message.to !== undefined) { Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim(); } if (message.instrumentId !== '') { writer.uint32(34).string(message.instrumentId); } if (message.type !== 0) { writer.uint32(40).int32(message.type); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBondEventsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 2: message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 4: message.instrumentId = reader.string(); break; case 5: message.type = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBondEventsRequest { return { from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined, to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined, instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '', type: isSet(object.type) ? getBondEventsRequest_EventTypeFromJSON(object.type) : 0, }; }, toJSON(message: GetBondEventsRequest): unknown { const obj: any = {}; message.from !== undefined && (obj.from = message.from.toISOString()); message.to !== undefined && (obj.to = message.to.toISOString()); message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId); message.type !== undefined && (obj.type = getBondEventsRequest_EventTypeToJSON(message.type)); return obj; }, fromPartial(object: DeepPartial): GetBondEventsRequest { const message = createBaseGetBondEventsRequest(); message.from = object.from ?? undefined; message.to = object.to ?? undefined; message.instrumentId = object.instrumentId ?? ''; message.type = object.type ?? 0; return message; }, }; function createBaseGetBondEventsResponse(): GetBondEventsResponse { return { events: [] }; } export const GetBondEventsResponse = { encode(message: GetBondEventsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.events) { GetBondEventsResponse_BondEvent.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBondEventsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.events.push(GetBondEventsResponse_BondEvent.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBondEventsResponse { return { events: Array.isArray(object?.events) ? object.events.map((e: any) => GetBondEventsResponse_BondEvent.fromJSON(e)) : [], }; }, toJSON(message: GetBondEventsResponse): unknown { const obj: any = {}; if (message.events) { obj.events = message.events.map(e => (e ? GetBondEventsResponse_BondEvent.toJSON(e) : undefined)); } else { obj.events = []; } return obj; }, fromPartial(object: DeepPartial): GetBondEventsResponse { const message = createBaseGetBondEventsResponse(); message.events = object.events?.map(e => GetBondEventsResponse_BondEvent.fromPartial(e)) || []; return message; }, }; function createBaseGetBondEventsResponse_BondEvent(): GetBondEventsResponse_BondEvent { return { instrumentId: '', eventNumber: 0, eventDate: undefined, eventType: 0, eventTotalVol: undefined, fixDate: undefined, rateDate: undefined, defaultDate: undefined, realPayDate: undefined, payDate: undefined, payOneBond: undefined, moneyFlowVal: undefined, execution: '', operationType: '', value: undefined, note: '', convertToFinToolId: '', couponStartDate: undefined, couponEndDate: undefined, couponPeriod: 0, couponInterestRate: undefined, }; } export const GetBondEventsResponse_BondEvent = { encode(message: GetBondEventsResponse_BondEvent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrumentId !== '') { writer.uint32(18).string(message.instrumentId); } if (message.eventNumber !== 0) { writer.uint32(24).int32(message.eventNumber); } if (message.eventDate !== undefined) { Timestamp.encode(toTimestamp(message.eventDate), writer.uint32(34).fork()).ldelim(); } if (message.eventType !== 0) { writer.uint32(40).int32(message.eventType); } if (message.eventTotalVol !== undefined) { Quotation.encode(message.eventTotalVol, writer.uint32(50).fork()).ldelim(); } if (message.fixDate !== undefined) { Timestamp.encode(toTimestamp(message.fixDate), writer.uint32(58).fork()).ldelim(); } if (message.rateDate !== undefined) { Timestamp.encode(toTimestamp(message.rateDate), writer.uint32(66).fork()).ldelim(); } if (message.defaultDate !== undefined) { Timestamp.encode(toTimestamp(message.defaultDate), writer.uint32(74).fork()).ldelim(); } if (message.realPayDate !== undefined) { Timestamp.encode(toTimestamp(message.realPayDate), writer.uint32(82).fork()).ldelim(); } if (message.payDate !== undefined) { Timestamp.encode(toTimestamp(message.payDate), writer.uint32(90).fork()).ldelim(); } if (message.payOneBond !== undefined) { MoneyValue.encode(message.payOneBond, writer.uint32(98).fork()).ldelim(); } if (message.moneyFlowVal !== undefined) { MoneyValue.encode(message.moneyFlowVal, writer.uint32(106).fork()).ldelim(); } if (message.execution !== '') { writer.uint32(114).string(message.execution); } if (message.operationType !== '') { writer.uint32(122).string(message.operationType); } if (message.value !== undefined) { Quotation.encode(message.value, writer.uint32(130).fork()).ldelim(); } if (message.note !== '') { writer.uint32(138).string(message.note); } if (message.convertToFinToolId !== '') { writer.uint32(146).string(message.convertToFinToolId); } if (message.couponStartDate !== undefined) { Timestamp.encode(toTimestamp(message.couponStartDate), writer.uint32(154).fork()).ldelim(); } if (message.couponEndDate !== undefined) { Timestamp.encode(toTimestamp(message.couponEndDate), writer.uint32(162).fork()).ldelim(); } if (message.couponPeriod !== 0) { writer.uint32(168).int32(message.couponPeriod); } if (message.couponInterestRate !== undefined) { Quotation.encode(message.couponInterestRate, writer.uint32(178).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsResponse_BondEvent { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBondEventsResponse_BondEvent(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 2: message.instrumentId = reader.string(); break; case 3: message.eventNumber = reader.int32(); break; case 4: message.eventDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 5: message.eventType = reader.int32() as any; break; case 6: message.eventTotalVol = Quotation.decode(reader, reader.uint32()); break; case 7: message.fixDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 8: message.rateDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 9: message.defaultDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 10: message.realPayDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 11: message.payDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 12: message.payOneBond = MoneyValue.decode(reader, reader.uint32()); break; case 13: message.moneyFlowVal = MoneyValue.decode(reader, reader.uint32()); break; case 14: message.execution = reader.string(); break; case 15: message.operationType = reader.string(); break; case 16: message.value = Quotation.decode(reader, reader.uint32()); break; case 17: message.note = reader.string(); break; case 18: message.convertToFinToolId = reader.string(); break; case 19: message.couponStartDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 20: message.couponEndDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 21: message.couponPeriod = reader.int32(); break; case 22: message.couponInterestRate = Quotation.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetBondEventsResponse_BondEvent { return { instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '', eventNumber: isSet(object.eventNumber) ? Number(object.eventNumber) : 0, eventDate: isSet(object.eventDate) ? fromJsonTimestamp(object.eventDate) : undefined, eventType: isSet(object.eventType) ? getBondEventsRequest_EventTypeFromJSON(object.eventType) : 0, eventTotalVol: isSet(object.eventTotalVol) ? Quotation.fromJSON(object.eventTotalVol) : undefined, fixDate: isSet(object.fixDate) ? fromJsonTimestamp(object.fixDate) : undefined, rateDate: isSet(object.rateDate) ? fromJsonTimestamp(object.rateDate) : undefined, defaultDate: isSet(object.defaultDate) ? fromJsonTimestamp(object.defaultDate) : undefined, realPayDate: isSet(object.realPayDate) ? fromJsonTimestamp(object.realPayDate) : undefined, payDate: isSet(object.payDate) ? fromJsonTimestamp(object.payDate) : undefined, payOneBond: isSet(object.payOneBond) ? MoneyValue.fromJSON(object.payOneBond) : undefined, moneyFlowVal: isSet(object.moneyFlowVal) ? MoneyValue.fromJSON(object.moneyFlowVal) : undefined, execution: isSet(object.execution) ? String(object.execution) : '', operationType: isSet(object.operationType) ? String(object.operationType) : '', value: isSet(object.value) ? Quotation.fromJSON(object.value) : undefined, note: isSet(object.note) ? String(object.note) : '', convertToFinToolId: isSet(object.convertToFinToolId) ? String(object.convertToFinToolId) : '', couponStartDate: isSet(object.couponStartDate) ? fromJsonTimestamp(object.couponStartDate) : undefined, couponEndDate: isSet(object.couponEndDate) ? fromJsonTimestamp(object.couponEndDate) : undefined, couponPeriod: isSet(object.couponPeriod) ? Number(object.couponPeriod) : 0, couponInterestRate: isSet(object.couponInterestRate) ? Quotation.fromJSON(object.couponInterestRate) : undefined, }; }, toJSON(message: GetBondEventsResponse_BondEvent): unknown { const obj: any = {}; message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId); message.eventNumber !== undefined && (obj.eventNumber = Math.round(message.eventNumber)); message.eventDate !== undefined && (obj.eventDate = message.eventDate.toISOString()); message.eventType !== undefined && (obj.eventType = getBondEventsRequest_EventTypeToJSON(message.eventType)); message.eventTotalVol !== undefined && (obj.eventTotalVol = message.eventTotalVol ? Quotation.toJSON(message.eventTotalVol) : undefined); message.fixDate !== undefined && (obj.fixDate = message.fixDate.toISOString()); message.rateDate !== undefined && (obj.rateDate = message.rateDate.toISOString()); message.defaultDate !== undefined && (obj.defaultDate = message.defaultDate.toISOString()); message.realPayDate !== undefined && (obj.realPayDate = message.realPayDate.toISOString()); message.payDate !== undefined && (obj.payDate = message.payDate.toISOString()); message.payOneBond !== undefined && (obj.payOneBond = message.payOneBond ? MoneyValue.toJSON(message.payOneBond) : undefined); message.moneyFlowVal !== undefined && (obj.moneyFlowVal = message.moneyFlowVal ? MoneyValue.toJSON(message.moneyFlowVal) : undefined); message.execution !== undefined && (obj.execution = message.execution); message.operationType !== undefined && (obj.operationType = message.operationType); message.value !== undefined && (obj.value = message.value ? Quotation.toJSON(message.value) : undefined); message.note !== undefined && (obj.note = message.note); message.convertToFinToolId !== undefined && (obj.convertToFinToolId = message.convertToFinToolId); message.couponStartDate !== undefined && (obj.couponStartDate = message.couponStartDate.toISOString()); message.couponEndDate !== undefined && (obj.couponEndDate = message.couponEndDate.toISOString()); message.couponPeriod !== undefined && (obj.couponPeriod = Math.round(message.couponPeriod)); message.couponInterestRate !== undefined && (obj.couponInterestRate = message.couponInterestRate ? Quotation.toJSON(message.couponInterestRate) : undefined); return obj; }, fromPartial(object: DeepPartial): GetBondEventsResponse_BondEvent { const message = createBaseGetBondEventsResponse_BondEvent(); message.instrumentId = object.instrumentId ?? ''; message.eventNumber = object.eventNumber ?? 0; message.eventDate = object.eventDate ?? undefined; message.eventType = object.eventType ?? 0; message.eventTotalVol = object.eventTotalVol !== undefined && object.eventTotalVol !== null ? Quotation.fromPartial(object.eventTotalVol) : undefined; message.fixDate = object.fixDate ?? undefined; message.rateDate = object.rateDate ?? undefined; message.defaultDate = object.defaultDate ?? undefined; message.realPayDate = object.realPayDate ?? undefined; message.payDate = object.payDate ?? undefined; message.payOneBond = object.payOneBond !== undefined && object.payOneBond !== null ? MoneyValue.fromPartial(object.payOneBond) : undefined; message.moneyFlowVal = object.moneyFlowVal !== undefined && object.moneyFlowVal !== null ? MoneyValue.fromPartial(object.moneyFlowVal) : undefined; message.execution = object.execution ?? ''; message.operationType = object.operationType ?? ''; message.value = object.value !== undefined && object.value !== null ? Quotation.fromPartial(object.value) : undefined; message.note = object.note ?? ''; message.convertToFinToolId = object.convertToFinToolId ?? ''; message.couponStartDate = object.couponStartDate ?? undefined; message.couponEndDate = object.couponEndDate ?? undefined; message.couponPeriod = object.couponPeriod ?? 0; message.couponInterestRate = object.couponInterestRate !== undefined && object.couponInterestRate !== null ? Quotation.fromPartial(object.couponInterestRate) : undefined; return message; }, }; function createBaseCoupon(): Coupon { return { figi: '', couponDate: undefined, couponNumber: 0, fixDate: undefined, payOneBond: undefined, couponType: 0, couponStartDate: undefined, couponEndDate: undefined, couponPeriod: 0, }; } export const Coupon = { encode(message: Coupon, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.figi !== '') { writer.uint32(10).string(message.figi); } if (message.couponDate !== undefined) { Timestamp.encode(toTimestamp(message.couponDate), writer.uint32(18).fork()).ldelim(); } if (message.couponNumber !== 0) { writer.uint32(24).int64(message.couponNumber); } if (message.fixDate !== undefined) { Timestamp.encode(toTimestamp(message.fixDate), writer.uint32(34).fork()).ldelim(); } if (message.payOneBond !== undefined) { MoneyValue.encode(message.payOneBond, writer.uint32(42).fork()).ldelim(); } if (message.couponType !== 0) { writer.uint32(48).int32(message.couponType); } if (message.couponStartDate !== undefined) { Timestamp.encode(toTimestamp(message.couponStartDate), writer.uint32(58).fork()).ldelim(); } if (message.couponEndDate !== undefined) { Timestamp.encode(toTimestamp(message.couponEndDate), writer.uint32(66).fork()).ldelim(); } if (message.couponPeriod !== 0) { writer.uint32(72).int32(message.couponPeriod); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Coupon { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCoupon(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.figi = reader.string(); break; case 2: message.couponDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 3: message.couponNumber = longToNumber(reader.int64() as Long); break; case 4: message.fixDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 5: message.payOneBond = MoneyValue.decode(reader, reader.uint32()); break; case 6: message.couponType = reader.int32() as any; break; case 7: message.couponStartDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 8: message.couponEndDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 9: message.couponPeriod = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): Coupon { return { figi: isSet(object.figi) ? String(object.figi) : '', couponDate: isSet(object.couponDate) ? fromJsonTimestamp(object.couponDate) : undefined, couponNumber: isSet(object.couponNumber) ? Number(object.couponNumber) : 0, fixDate: isSet(object.fixDate) ? fromJsonTimestamp(object.fixDate) : undefined, payOneBond: isSet(object.payOneBond) ? MoneyValue.fromJSON(object.payOneBond) : undefined, couponType: isSet(object.couponType) ? couponTypeFromJSON(object.couponType) : 0, couponStartDate: isSet(object.couponStartDate) ? fromJsonTimestamp(object.couponStartDate) : undefined, couponEndDate: isSet(object.couponEndDate) ? fromJsonTimestamp(object.couponEndDate) : undefined, couponPeriod: isSet(object.couponPeriod) ? Number(object.couponPeriod) : 0, }; }, toJSON(message: Coupon): unknown { const obj: any = {}; message.figi !== undefined && (obj.figi = message.figi); message.couponDate !== undefined && (obj.couponDate = message.couponDate.toISOString()); message.couponNumber !== undefined && (obj.couponNumber = Math.round(message.couponNumber)); message.fixDate !== undefined && (obj.fixDate = message.fixDate.toISOString()); message.payOneBond !== undefined && (obj.payOneBond = message.payOneBond ? MoneyValue.toJSON(message.payOneBond) : undefined); message.couponType !== undefined && (obj.couponType = couponTypeToJSON(message.couponType)); message.couponStartDate !== undefined && (obj.couponStartDate = message.couponStartDate.toISOString()); message.couponEndDate !== undefined && (obj.couponEndDate = message.couponEndDate.toISOString()); message.couponPeriod !== undefined && (obj.couponPeriod = Math.round(message.couponPeriod)); return obj; }, fromPartial(object: DeepPartial): Coupon { const message = createBaseCoupon(); message.figi = object.figi ?? ''; message.couponDate = object.couponDate ?? undefined; message.couponNumber = object.couponNumber ?? 0; message.fixDate = object.fixDate ?? undefined; message.payOneBond = object.payOneBond !== undefined && object.payOneBond !== null ? MoneyValue.fromPartial(object.payOneBond) : undefined; message.couponType = object.couponType ?? 0; message.couponStartDate = object.couponStartDate ?? undefined; message.couponEndDate = object.couponEndDate ?? undefined; message.couponPeriod = object.couponPeriod ?? 0; return message; }, }; function createBaseCurrencyResponse(): CurrencyResponse { return { instrument: undefined }; } export const CurrencyResponse = { encode(message: CurrencyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrument !== undefined) { Currency.encode(message.instrument, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCurrencyResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrument = Currency.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CurrencyResponse { return { instrument: isSet(object.instrument) ? Currency.fromJSON(object.instrument) : undefined, }; }, toJSON(message: CurrencyResponse): unknown { const obj: any = {}; message.instrument !== undefined && (obj.instrument = message.instrument ? Currency.toJSON(message.instrument) : undefined); return obj; }, fromPartial(object: DeepPartial): CurrencyResponse { const message = createBaseCurrencyResponse(); message.instrument = object.instrument !== undefined && object.instrument !== null ? Currency.fromPartial(object.instrument) : undefined; return message; }, }; function createBaseCurrenciesResponse(): CurrenciesResponse { return { instruments: [] }; } export const CurrenciesResponse = { encode(message: CurrenciesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.instruments) { Currency.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CurrenciesResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCurrenciesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instruments.push(Currency.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CurrenciesResponse { return { instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Currency.fromJSON(e)) : [], }; }, toJSON(message: CurrenciesResponse): unknown { const obj: any = {}; if (message.instruments) { obj.instruments = message.instruments.map(e => (e ? Currency.toJSON(e) : undefined)); } else { obj.instruments = []; } return obj; }, fromPartial(object: DeepPartial): CurrenciesResponse { const message = createBaseCurrenciesResponse(); message.instruments = object.instruments?.map(e => Currency.fromPartial(e)) || []; return message; }, }; function createBaseEtfResponse(): EtfResponse { return { instrument: undefined }; } export const EtfResponse = { encode(message: EtfResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrument !== undefined) { Etf.encode(message.instrument, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): EtfResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEtfResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrument = Etf.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): EtfResponse { return { instrument: isSet(object.instrument) ? Etf.fromJSON(object.instrument) : undefined, }; }, toJSON(message: EtfResponse): unknown { const obj: any = {}; message.instrument !== undefined && (obj.instrument = message.instrument ? Etf.toJSON(message.instrument) : undefined); return obj; }, fromPartial(object: DeepPartial): EtfResponse { const message = createBaseEtfResponse(); message.instrument = object.instrument !== undefined && object.instrument !== null ? Etf.fromPartial(object.instrument) : undefined; return message; }, }; function createBaseEtfsResponse(): EtfsResponse { return { instruments: [] }; } export const EtfsResponse = { encode(message: EtfsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.instruments) { Etf.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): EtfsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEtfsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instruments.push(Etf.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): EtfsResponse { return { instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Etf.fromJSON(e)) : [], }; }, toJSON(message: EtfsResponse): unknown { const obj: any = {}; if (message.instruments) { obj.instruments = message.instruments.map(e => (e ? Etf.toJSON(e) : undefined)); } else { obj.instruments = []; } return obj; }, fromPartial(object: DeepPartial): EtfsResponse { const message = createBaseEtfsResponse(); message.instruments = object.instruments?.map(e => Etf.fromPartial(e)) || []; return message; }, }; function createBaseFutureResponse(): FutureResponse { return { instrument: undefined }; } export const FutureResponse = { encode(message: FutureResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrument !== undefined) { Future.encode(message.instrument, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): FutureResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseFutureResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrument = Future.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): FutureResponse { return { instrument: isSet(object.instrument) ? Future.fromJSON(object.instrument) : undefined, }; }, toJSON(message: FutureResponse): unknown { const obj: any = {}; message.instrument !== undefined && (obj.instrument = message.instrument ? Future.toJSON(message.instrument) : undefined); return obj; }, fromPartial(object: DeepPartial): FutureResponse { const message = createBaseFutureResponse(); message.instrument = object.instrument !== undefined && object.instrument !== null ? Future.fromPartial(object.instrument) : undefined; return message; }, }; function createBaseFuturesResponse(): FuturesResponse { return { instruments: [] }; } export const FuturesResponse = { encode(message: FuturesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.instruments) { Future.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): FuturesResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseFuturesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instruments.push(Future.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): FuturesResponse { return { instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Future.fromJSON(e)) : [], }; }, toJSON(message: FuturesResponse): unknown { const obj: any = {}; if (message.instruments) { obj.instruments = message.instruments.map(e => (e ? Future.toJSON(e) : undefined)); } else { obj.instruments = []; } return obj; }, fromPartial(object: DeepPartial): FuturesResponse { const message = createBaseFuturesResponse(); message.instruments = object.instruments?.map(e => Future.fromPartial(e)) || []; return message; }, }; function createBaseOptionResponse(): OptionResponse { return { instrument: undefined }; } export const OptionResponse = { encode(message: OptionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.instrument !== undefined) { Option.encode(message.instrument, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OptionResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOptionResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instrument = Option.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OptionResponse { return { instrument: isSet(object.instrument) ? Option.fromJSON(object.instrument) : undefined, }; }, toJSON(message: OptionResponse): unknown { const obj: any = {}; message.instrument !== undefined && (obj.instrument = message.instrument ? Option.toJSON(message.instrument) : undefined); return obj; }, fromPartial(object: DeepPartial): OptionResponse { const message = createBaseOptionResponse(); message.instrument = object.instrument !== undefined && object.instrument !== null ? Option.fromPartial(object.instrument) : undefined; return message; }, }; function createBaseOptionsResponse(): OptionsResponse { return { instruments: [] }; } export const OptionsResponse = { encode(message: OptionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.instruments) { Option.encode(v!, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): OptionsResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOptionsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.instruments.push(Option.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): OptionsResponse { return { instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Option.fromJSON(e)) : [], }; }, toJSON(message: OptionsResponse): unknown { const obj: any = {}; if (message.instruments) { obj.instruments = message.instruments.map(e => (e ? Option.toJSON(e) : undefined)); } else { obj.instruments = []; } return obj; }, fromPartial(object: DeepPartial): OptionsResponse { const message = createBaseOptionsResponse(); message.instruments = object.instruments?.map(e => Option.fromPartial(e)) || []; return message; }, }; function createBaseOption(): Option { return { uid: '', positionUid: '', ticker: '', classCode: '', basicAssetPositionUid: '', tradingStatus: 0, realExchange: 0, direction: 0, paymentType: 0, style: 0, settlementType: 0, name: '', currency: '', settlementCurrency: '', assetType: '', basicAsset: '', exchange: '', countryOfRisk: '', countryOfRiskName: '', sector: '', brand: undefined, lot: 0, basicAssetSize: undefined, klong: undefined, kshort: undefined, dlong: undefined, dshort: undefined, dlongMin: undefined, dshortMin: undefined, minPriceIncrement: undefined, strikePrice: undefined, dlongClient: undefined, dshortClient: undefined, expirationDate: undefined, firstTradeDate: undefined, lastTradeDate: undefined, first1minCandleDate: undefined, first1dayCandleDate: undefined, shortEnabledFlag: false, forIisFlag: false, otcFlag: false, buyAvailableFlag: false, sellAvailableFlag: false, forQualInvestorFlag: false, weekendFlag: false, blockedTcaFlag: false, apiTradeAvailableFlag: false, requiredTests: [], }; } export const Option = { encode(message: Option, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.uid !== '') { writer.uint32(10).string(message.uid); } if (message.positionUid !== '') { writer.uint32(18).string(message.positionUid); } if (message.ticker !== '') { writer.uint32(26).string(message.ticker); } if (message.classCode !== '') { writer.uint32(34).string(message.classCode); } if (message.basicAssetPositionUid !== '') { writer.uint32(42).string(message.basicAssetPositionUid); } if (message.tradingStatus !== 0) { writer.uint32(168).int32(message.tradingStatus); } if (message.realExchange !== 0) { writer.uint32(248).int32(message.realExchange); } if (message.direction !== 0) { writer.uint32(328).int32(message.direction); } if (message.paymentType !== 0) { writer.uint32(336).int32(message.paymentType); } if (message.style !== 0) { writer.uint32(344).int32(message.style); } if (message.settlementType !== 0) { writer.uint32(352).int32(message.settlementType); } if (message.name !== '') { writer.uint32(810).string(message.name); } if (message.currency !== '') { writer.uint32(890).string(message.currency); } if (message.settlementCurrency !== '') { writer.uint32(898).string(message.settlementCurrency); } if (message.assetType !== '') { writer.uint32(1050).string(message.assetType); } if (message.basicAsset !== '') { writer.uint32(1058).string(message.basicAsset); } if (message.exchange !== '') { writer.uint32(1130).string(message.exchange); } if (message.countryOfRisk !== '') { writer.uint32(1210).string(message.countryOfRisk); } if (message.countryOfRiskName !== '') { writer.uint32(1218).string(message.countryOfRiskName); } if (message.sector !== '') { writer.uint32(1290).string(message.sector); } if (message.brand !== undefined) { BrandData.encode(message.brand, writer.uint32(1298).fork()).ldelim(); } if (message.lot !== 0) { writer.uint32(1608).int32(message.lot); } if (message.basicAssetSize !== undefined) { Quotation.encode(message.basicAssetSize, writer.uint32(1690).fork()).ldelim(); } if (message.klong !== undefined) { Quotation.encode(message.klong, writer.uint32(1770).fork()).ldelim(); } if (message.kshort !== undefined) { Quotation.encode(message.kshort, writer.uint32(1778).fork()).ldelim(); } if (message.dlong !== undefined) { Quotation.encode(message.dlong, writer.uint32(1786).fork()).ldelim(); } if (message.dshort !== undefined) { Quotation.encode(message.dshort, writer.uint32(1794).fork()).ldelim(); } if (message.dlongMin !== undefined) { Quotation.encode(message.dlongMin, writer.uint32(1802).fork()).ldelim(); } if (message.dshortMin !== undefined) { Quotation.encode(message.dshortMin, writer.uint32(1810).fork()).ldelim(); } if (message.minPriceIncrement !== undefined) { Quotation.encode(message.minPriceIncrement, writer.uint32(1850).fork()).ldelim(); } if (message.strikePrice !== undefined) { MoneyValue.encode(message.strikePrice, writer.uint32(1930).fork()).ldelim(); } if (message.dlongClient !== undefined) { Quotation.encode(message.dlongClient, writer.uint32(2322).fork()).ldelim(); } if (message.dshortClient !== undefined) { Quotation.encode(message.dshortClient, writer.uint32(2330).fork()).ldelim(); } if (message.expirationDate !== undefined) { Timestamp.encode(toTimestamp(message.expirationDate), writer.uint32(2410).fork()).ldelim(); } if (message.firstTradeDate !== undefined) { Timestamp.encode(toTimestamp(message.firstTradeDate), writer.uint32(2490).fork()).ldelim(); } if (message.lastTradeDate !== undefined) { Timestamp.encode(toTimestamp(message.lastTradeDate), writer.uint32(2498).fork()).ldelim(); } if (message.first1minCandleDate !== undefined) { Timestamp.encode(toTimestamp(message.first1minCandleDate), writer.uint32(2570).fork()).ldelim(); } if (message.first1dayCandleDate !== undefined) { Timestamp.encode(toTimestamp(message.first1dayCandleDate), writer.uint32(2578).fork()).ldelim(); } if (message.shortEnabledFlag === true) { writer.uint32(3208).bool(message.shortEnabledFlag); } if (message.forIisFlag === true) { writer.uint32(3216).bool(message.forIisFlag); } if (message.otcFlag === true) { writer.uint32(3224).bool(message.otcFlag); } if (message.buyAvailableFlag === true) { writer.uint32(3232).bool(message.buyAvailableFlag); } if (message.sellAvailableFlag === true) { writer.uint32(3240).bool(message.sellAvailableFlag); } if (message.forQualInvestorFlag === true) { writer.uint32(3248).bool(message.forQualInvestorFlag); } if (message.weekendFlag === true) { writer.uint32(3256).bool(message.weekendFlag); } if (message.blockedTcaFlag === true) { writer.uint32(3264).bool(message.blockedTcaFlag); } if (message.apiTradeAvailableFlag === true) { writer.uint32(3272).bool(message.apiTradeAvailableFlag); } for (const v of message.requiredTests) { writer.uint32(3282).string(v!); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Option { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOption(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.uid = reader.string(); break; case 2: message.positionUid = reader.string(); break; case 3: message.ticker = reader.string(); break; case 4: message.classCode = reader.string(); break; case 5: message.basicAssetPositionUid = reader.string(); break; case 21: message.tradingStatus = reader.int32() as any; break; case 31: message.realExchange = reader.int32() as any; break; case 41: message.direction = reader.int32() as any; break; case 42: message.paymentType = reader.int32() as any; break; case 43: message.style = reader.int32() as any; break; case 44: message.settlementType = reader.int32() as any; break; case 101: message.name = reader.string(); break; case 111: message.currency = reader.string(); break; case 112: message.settlementCurrency = reader.string(); break; case 131: message.assetType = reader.string(); break; case 132: message.basicAsset = reader.string(); break; case 141: message.exchange = reader.string(); break; case 151: message.countryOfRisk = reader.string(); break; case 152: message.countryOfRiskName = reader.string(); break; case 161: message.sector = reader.string(); break; case 162: message.brand = BrandData.decode(reader, reader.uint32()); break; case 201: message.lot = reader.int32(); break; case 211: message.basicAssetSize = Quotation.decode(reader, reader.uint32()); break; case 221: message.klong = Quotation.decode(reader, reader.uint32()); break; case 222: message.kshort = Quotation.decode(reader, reader.uint32()); break; case 223: message.dlong = Quotation.decode(reader, reader.uint32()); break; case 224: message.dshort = Quotation.decode(reader, reader.uint32()); break; case 225: message.dlongMin = Quotation.decode(reader, reader.uint32()); break; case 226: message.dshortMin = Quotation.decode(reader, reader.uint32()); break; case 231: message.minPriceIncrement = Quotation.decode(reader, reader.uint32()); break; case 241: message.strikePrice = MoneyValue.decode(reader, reader.uint32()); break; case 290: message.dlongClient = Quotation.decode(reader, reader.uint32()); break; case 291: message.dshortClient = Quotation.decode(reader, reader.uint32()); break; case 301: message.expirationDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 311: message.firstTradeDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 312: message.lastTradeDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 321: message.first1minCandleDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 322: message.first1dayCandleDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 401: message.shortEnabledFlag = reader.bool(); break; case 402: message.forIisFlag = reader.bool(); break; case 403: message.otcFlag = reader.bool(); break; case 404: message.buyAvailableFlag = reader.bool(); break; case 405: message.sellAvailableFlag = reader.bool(); break; case 406: message.forQualInvestorFlag = reader.bool(); break; case 407: message.weekendFlag = reader.bool(); break; case 408: message.blockedTcaFlag = reader.bool(); break; case 409: message.apiTradeAvailableFlag = reader.bool(); break; case 410: message.requiredTests.push(reader.string()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): Option { return { uid: isSet(object.uid) ? String(object.uid) : '', positionUid: isSet(object.positionUid) ? String(object.positionUid) : '', ticker: isSet(object.ticker) ? String(object.ticker) : '', classCode: isSet(object.classCode) ? String(object.classCode) : '', basicAssetPositionUid: isSet(object.basicAssetPositionUid) ? String(object.basicAssetPositionUid) : '', tradingStatus: isSet(object.tradingStatus) ? securityTradingStatusFromJSON(object.tradingStatus) : 0, realExchange: isSet(object.realExchange) ? realExchangeFromJSON(object.realExchange) : 0, direction: isSet(object.direction) ? optionDirectionFromJSON(object.direction) : 0, paymentType: isSet(object.paymentType) ? optionPaymentTypeFromJSON(object.paymentType) : 0, style: isSet(object.style) ? optionStyleFromJSON(object.style) : 0, settlementType: isSet(object.settlementType) ? optionSettlementTypeFromJSON(object.settlementType) : 0, name: isSet(object.name) ? String(object.name) : '', currency: isSet(object.currency) ? String(object.currency) : '', settlementCurrency: isSet(object.settlementCurrency) ? String(object.settlementCurrency) : '', assetType: isSet(object.assetType) ? String(object.assetType) : '', basicAsset: isSet(object.basicAsset) ? String(object.basicAsset) : '', exchange: isSet(object.exchange) ? String(object.exchange) : '', countryOfRisk: isSet(object.countryOfRisk) ? String(object.countryOfRisk) : '', countryOfRiskName: isSet(object.countryOfRiskName) ? String(object.countryOfRiskName) : '', sector: isSet(object.sector) ? String(object.sector) : '', brand: isSet(object.brand) ? BrandData.fromJSON(object.brand) : undefined, lot: isSet(object.lot) ? Number(object.lot) : 0, basicAssetSize: isSet(object.basicAssetSize) ? Quotation.fromJSON(object.basicAssetSize) : undefined, klong: isSet(object.klong) ? Quotation.fromJSON(object.klong) : undefined, kshort: isSet(object.kshort) ? Quotation.fromJSON(object.kshort) : undefined, dlong: isSet(object.dlong) ? Quotation.fromJSON(object.dlong) : undefined, dshort: isSet(object.dshort) ? Quotation.fromJSON(object.dshort) : undefined, dlongMin: isSet(object.dlongMin) ? Quotation.fromJSON(object.dlongMin) : undefined, dshortMin: isSet(object.dshortMin) ? Quotation.fromJSON(object.dshortMin) : undefined, minPriceIncrement: isSet(object.minPriceIncrement) ? Quotation.fromJSON(object.minPriceIncrement) : undefined, strikePrice: isSet(object.strikePrice) ? MoneyValue.fromJSON(object.strikePrice) : undefined, dlongClient: isSet(object.dlongClient) ? Quotation.fromJSON(object.dlongClient) : undefined, dshortClient: isSet(object.dshortClient) ? Quotation.fromJSON(object.dshortClient) : undefined, expirationDate: isSet(object.expirationDate) ? fromJsonTimestamp(object.expirationDate) : undefined, firstTradeDate: isSet(object.firstTradeDate) ? fromJsonTimestamp(object.firstTradeDate) : undefined, lastTradeDate: isSet(object.lastTradeDate) ? fromJsonTimestamp(object.lastTradeDate) : undefined, first1minCandleDate: isSet(object.first1minCandleDate) ? fromJsonTimestamp(object.first1minCandleDate) : undefined, first1dayCandleDate: isSet(object.first1dayCandleDate) ? fromJsonTimestamp(object.first1dayCandleDate) : undefined, shortEnabledFlag: isSet(object.shortEnabledFlag) ? Boolean(object.shortEnabledFlag) : false, forIisFlag: isSet(object.forIisFlag) ? Boolean(object.forIisFlag) : false, otcFlag: isSet(object.otcFlag) ? Boolean(object.otcFlag) : false, buyAvailableFlag: isSet(object.buyAvailableFlag) ? Boolean(object.buyAvailableFlag) : false, sellAvailableFlag: isSet(object.sellAvailableFlag) ? Boolean(object.sellAvailableFlag) : false, forQualInvestorFlag: isSet(object.forQualInvestorFlag) ? Boolean(object.forQualInvestorFlag) : false, weekendFlag: isSet(object.weekendFlag) ? Boolean(object.weekendFlag) : false, blockedTcaFlag: isSet(object.blockedTcaFlag) ? Boolean(object.blockedTcaFlag) : false, apiTradeAvailableFlag: isSet(object.apiTradeAvailableFlag) ? Boolean(object.apiTradeAvailableFlag) : false, requiredTests: Array.isArray(object?.requiredTests) ? object.requiredTests.map((e: any) => String(e)) : [], }; }, toJSON(message: Option): unknown { const obj: any = {}; message.uid !== undefined && (obj.uid = message.uid); message.positionUid !== undefined && (obj.positionUid = message.positionUid); message.ticker !== undefined && (obj.ticker = message.ticker); message.classCode !== undefined && (obj.classCode = message.classCode); message.basicAssetPositionUid !== undefined && (obj.basicAssetPositionUid = message.basicAssetPositionUid); message.tradingStatus !== undefined && (obj.tradingStatus = securityTradingStatusToJSON(message.tradingStatus)); message.realExchange !== undefined && (obj.realExchange = realExchangeToJSON(message.realExchange)); message.direction !== undefined && (obj.direction = optionDirectionToJSON(message.direction)); message.paymentType !== undefined && (obj.paymentType = optionPaymentTypeToJSON(message.paymentType)); message.style !== undefined && (obj.style = optionStyleToJSON(message.style)); message.settlementType !== undefined && (obj.settlementType = optionSettlementTypeToJSON(message.settlementType)); message.name !== undefined && (obj.name = message.name); message.currency !== undefined && (obj.currency = message.currency); message.settlementCurrency !== undefined && (obj.settlementCurrency = message.settlementCurrency); message.assetType !== undefined && (obj.assetType = message.assetType); message.basicAsset !== undefined && (obj.basicAsset = message.basicAsset); message.exchange !== undefined && (obj.exchange = message.exchange); message.countryOfRisk !== undefined && (obj.countryOfRisk = message.countryOfRisk); message.countryOfRiskName !== undefined && (obj.countryOfRiskName = message.countryOfRiskName); message.sector !== undefined && (obj.sector = message.sector); message.brand !== undefined && (obj.brand = message.brand ? BrandData.toJSON(message.brand) : undefined); message.lot !== undefined && (obj.lot = Math.round(message.lot)); message.basicAssetSize !== undefined && (obj.basicAssetSize = message.basicAssetSize ? Quotation.toJSON(message.basicAssetSize) : undefined); message.klong !== undefined && (obj.klong = message.klong ? Quotation.toJSON(message.klong) : undefined); message.kshort !== undefined && (obj.kshort = message.kshort ? Quotation.toJSON(message.kshort) : undefined); message.dlong !== undefined && (obj.dlong = message.dlong ? Quotation.toJSON(message.dlong) : undefined); message.dshort !== undefined && (obj.dshort = message.dshort ? Quotation.toJSON(message.dshort) : undefined); message.dlongMin !== undefined && (obj.dlongMin = message.dlongMin ? Quotation.toJSON(message.dlongMin) : undefined); message.dshortMin !== undefined && (obj.dshortMin = message.dshortMin ? Quotation.toJSON(message.dshortMin) : undefined); message.minPriceIncrement !== undefined && (obj.minPriceIncrement = message.minPriceIncrement ? Quotation.toJSON(message.minPriceIncrement) : undefined); message.strikePrice !== undefined && (obj.strikePrice = message.strikePrice ? MoneyValue.toJSON(message.strikePrice) : undefined); message.dlongClient !== undefined && (obj.dlongClient = message.dlongClient ? Quotation.toJSON(message.dlongClient) : undefined); message.dshortClient !== undefined && (obj.dshortClient = message.dshortClient ? Quotation.toJSON(message.dshortClient) : undefined); message.expirationDate !== undefined && (obj.expirationDate = message.expirationDate.toISOString()); message.firstTradeDate !== undefined && (obj.firstTradeDate = message.firstTradeDate.toISOString()); message.lastTradeDate !== undefined && (obj.lastTradeDate = message.lastTradeDate.toISOString()); message.first1minCandleDate !== undefined && (obj.first1minCandleDate = message.first1minCandleDate.toISOString()); message.first1dayCandleDate !== undefined && (obj.first1dayCandleDate = message.first1dayCandleDate.toISOString()); message.shortEnabledFlag !== undefined && (obj.shortEnabledFlag = message.shortEnabledFlag); message.forIisFlag !== undefined && (obj.forIisFlag = message.forIisFlag); message.otcFlag !== undefined && (obj.otcFlag = message.otcFlag); message.buyAvailableFlag !== undefined && (obj.buyAvailableFlag = message.buyAvailableFlag); message.sellAvailableFlag !== undefined && (obj.sellAvailableFlag = message.sellAvailableFlag); message.forQualInvestorFlag !== undefined && (obj.forQualInvestorFlag = message.forQualInvestorFlag); message.weekendFlag !== undefined && (obj.weekendFlag = message.weekendFlag); message.blockedTcaFlag !== undefined && (obj.blockedTcaFlag = message.blockedTcaFlag); message.apiTradeAvailableFlag !== undefined && (obj.apiTradeAvailableFlag = message.apiTradeAvailableFlag); if (message.requiredTests) { obj.requiredTests = message.requiredTests.map(e => e); } else { obj.requiredTests = []; } return obj; }, fromPartial(object: DeepPartial