Skip to main content

rithmic_rs/
rti.rs

1pub mod messages;
2
3// This file is @generated by prost-build.
4/// PB_OFFSET = 100000 , is the offset added for each MNM field id
5#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
6pub struct MessageType {
7    /// PB_OFFSET + MNM_TEMPLATE_ID
8    #[prost(int32, required, tag = "154467")]
9    pub template_id: i32,
10}
11#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12pub struct RequestLogin {
13    #[prost(int32, required, tag = "154467")]
14    pub template_id: i32,
15    #[prost(string, optional, tag = "153634")]
16    pub template_version: ::core::option::Option<::prost::alloc::string::String>,
17    #[prost(string, repeated, tag = "132760")]
18    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
19    #[prost(string, optional, tag = "131003")]
20    pub user: ::core::option::Option<::prost::alloc::string::String>,
21    #[prost(string, optional, tag = "130004")]
22    pub password: ::core::option::Option<::prost::alloc::string::String>,
23    #[prost(string, optional, tag = "130002")]
24    pub app_name: ::core::option::Option<::prost::alloc::string::String>,
25    #[prost(string, optional, tag = "131803")]
26    pub app_version: ::core::option::Option<::prost::alloc::string::String>,
27    #[prost(string, optional, tag = "153628")]
28    pub system_name: ::core::option::Option<::prost::alloc::string::String>,
29    #[prost(enumeration = "request_login::SysInfraType", optional, tag = "153621")]
30    pub infra_type: ::core::option::Option<i32>,
31    #[prost(string, repeated, tag = "144108")]
32    pub mac_addr: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
33    #[prost(string, optional, tag = "144021")]
34    pub os_version: ::core::option::Option<::prost::alloc::string::String>,
35    #[prost(string, optional, tag = "144020")]
36    pub os_platform: ::core::option::Option<::prost::alloc::string::String>,
37    /// applicable only for TICKER_PLANT infra_type
38    #[prost(bool, optional, tag = "153644")]
39    pub aggregated_quotes: ::core::option::Option<bool>,
40}
41/// Nested message and enum types in `RequestLogin`.
42pub mod request_login {
43    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
44    #[repr(i32)]
45    pub enum SysInfraType {
46        TickerPlant = 1,
47        OrderPlant = 2,
48        HistoryPlant = 3,
49        PnlPlant = 4,
50        RepositoryPlant = 5,
51    }
52    impl SysInfraType {
53        /// String value of the enum field names used in the ProtoBuf definition.
54        ///
55        /// The values are not transformed in any way and thus are considered stable
56        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
57        pub fn as_str_name(&self) -> &'static str {
58            match self {
59                Self::TickerPlant => "TICKER_PLANT",
60                Self::OrderPlant => "ORDER_PLANT",
61                Self::HistoryPlant => "HISTORY_PLANT",
62                Self::PnlPlant => "PNL_PLANT",
63                Self::RepositoryPlant => "REPOSITORY_PLANT",
64            }
65        }
66        /// Creates an enum from field names used in the ProtoBuf definition.
67        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
68            match value {
69                "TICKER_PLANT" => Some(Self::TickerPlant),
70                "ORDER_PLANT" => Some(Self::OrderPlant),
71                "HISTORY_PLANT" => Some(Self::HistoryPlant),
72                "PNL_PLANT" => Some(Self::PnlPlant),
73                "REPOSITORY_PLANT" => Some(Self::RepositoryPlant),
74                _ => None,
75            }
76        }
77    }
78}
79#[derive(Clone, PartialEq, ::prost::Message)]
80pub struct ResponseLogin {
81    #[prost(int32, required, tag = "154467")]
82    pub template_id: i32,
83    #[prost(string, optional, tag = "153634")]
84    pub template_version: ::core::option::Option<::prost::alloc::string::String>,
85    #[prost(string, repeated, tag = "132760")]
86    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
87    #[prost(string, repeated, tag = "132766")]
88    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
89    #[prost(string, optional, tag = "154013")]
90    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
91    #[prost(string, optional, tag = "154014")]
92    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
93    #[prost(string, optional, tag = "154712")]
94    pub country_code: ::core::option::Option<::prost::alloc::string::String>,
95    #[prost(string, optional, tag = "154713")]
96    pub state_code: ::core::option::Option<::prost::alloc::string::String>,
97    #[prost(string, optional, tag = "153428")]
98    pub unique_user_id: ::core::option::Option<::prost::alloc::string::String>,
99    #[prost(double, optional, tag = "153633")]
100    pub heartbeat_interval: ::core::option::Option<f64>,
101}
102/// PB_OFFSET = 100000 , is the offset added for each MNM field id
103#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
104pub struct RequestLogout {
105    /// PB_OFFSET + MNM_TEMPLATE_ID
106    #[prost(int32, required, tag = "154467")]
107    pub template_id: i32,
108    /// PB_OFFSET + MNM_USER_MSG
109    #[prost(string, repeated, tag = "132760")]
110    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
111}
112/// PB_OFFSET = 100000 , is the offset added for each MNM field id
113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
114pub struct ResponseLogout {
115    /// PB_OFFSET + MNM_TEMPLATE_ID
116    #[prost(int32, required, tag = "154467")]
117    pub template_id: i32,
118    /// PB_OFFSET + MNM_USER_MSG
119    #[prost(string, repeated, tag = "132760")]
120    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
121    /// PB_OFFSET + MNM_RESPONSE_CODE
122    #[prost(string, repeated, tag = "132766")]
123    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
124}
125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
126pub struct RequestReferenceData {
127    #[prost(int32, required, tag = "154467")]
128    pub template_id: i32,
129    #[prost(string, repeated, tag = "132760")]
130    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
131    #[prost(string, optional, tag = "110100")]
132    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
133    #[prost(string, optional, tag = "110101")]
134    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
135}
136/// presence bits defined here is also referred in response_get_instrument_by_underlying.proto and response_search_symbols.proto
137/// make sure both these proto files are always same.
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct ResponseReferenceData {
140    #[prost(int32, required, tag = "154467")]
141    pub template_id: i32,
142    #[prost(string, repeated, tag = "132760")]
143    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
144    #[prost(string, repeated, tag = "132766")]
145    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
146    #[prost(uint32, optional, tag = "149138")]
147    pub presence_bits: ::core::option::Option<u32>,
148    #[prost(uint32, optional, tag = "154571")]
149    pub clear_bits: ::core::option::Option<u32>,
150    #[prost(string, optional, tag = "110100")]
151    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
152    #[prost(string, optional, tag = "110101")]
153    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
154    #[prost(string, optional, tag = "110114")]
155    pub exchange_symbol: ::core::option::Option<::prost::alloc::string::String>,
156    #[prost(string, optional, tag = "100003")]
157    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
158    #[prost(string, optional, tag = "157095")]
159    pub trading_symbol: ::core::option::Option<::prost::alloc::string::String>,
160    #[prost(string, optional, tag = "157096")]
161    pub trading_exchange: ::core::option::Option<::prost::alloc::string::String>,
162    #[prost(string, optional, tag = "100749")]
163    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
164    #[prost(string, optional, tag = "110116")]
165    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
166    #[prost(string, optional, tag = "101026")]
167    pub underlying_symbol: ::core::option::Option<::prost::alloc::string::String>,
168    #[prost(string, optional, tag = "100067")]
169    pub expiration_date: ::core::option::Option<::prost::alloc::string::String>,
170    #[prost(string, optional, tag = "154382")]
171    pub currency: ::core::option::Option<::prost::alloc::string::String>,
172    #[prost(string, optional, tag = "100109")]
173    pub put_call_indicator: ::core::option::Option<::prost::alloc::string::String>,
174    #[prost(string, optional, tag = "154167")]
175    pub tick_size_type: ::core::option::Option<::prost::alloc::string::String>,
176    #[prost(string, optional, tag = "154390")]
177    pub price_display_format: ::core::option::Option<::prost::alloc::string::String>,
178    #[prost(string, optional, tag = "154844")]
179    pub is_tradable: ::core::option::Option<::prost::alloc::string::String>,
180    #[prost(string, optional, tag = "154952")]
181    pub is_underlying_for_binary_contrats: ::core::option::Option<::prost::alloc::string::String>,
182    #[prost(double, optional, tag = "100066")]
183    pub strike_price: ::core::option::Option<f64>,
184    #[prost(double, optional, tag = "154384")]
185    pub ftoq_price: ::core::option::Option<f64>,
186    #[prost(double, optional, tag = "154385")]
187    pub qtof_price: ::core::option::Option<f64>,
188    #[prost(double, optional, tag = "154386")]
189    pub min_qprice_change: ::core::option::Option<f64>,
190    #[prost(double, optional, tag = "154387")]
191    pub min_fprice_change: ::core::option::Option<f64>,
192    #[prost(double, optional, tag = "154389")]
193    pub single_point_value: ::core::option::Option<f64>,
194}
195/// Nested message and enum types in `ResponseReferenceData`.
196pub mod response_reference_data {
197    /// bit constants are defined using enum
198    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
199    #[repr(i32)]
200    pub enum PresenceBits {
201        ExchangeSymbol = 1,
202        SymbolName = 2,
203        ProductCode = 4,
204        InstrumentType = 8,
205        UnderlyingSymbol = 16,
206        ExpirationDate = 32,
207        Currency = 64,
208        PutCallIndicator = 128,
209        StrikePrice = 256,
210        FpriceToQprice = 512,
211        QpriceToFprice = 1024,
212        MinQpriceChange = 2048,
213        MinFrpiceChange = 4096,
214        SinglePointValue = 8192,
215        TickSizeType = 16384,
216        PriceDisplayFormat = 32768,
217        IsTradable = 65536,
218        TradingSymbol = 131072,
219        TradingExchange = 262144,
220        IsUnderlyingForBinaryContracts = 8388608,
221    }
222    impl PresenceBits {
223        /// String value of the enum field names used in the ProtoBuf definition.
224        ///
225        /// The values are not transformed in any way and thus are considered stable
226        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
227        pub fn as_str_name(&self) -> &'static str {
228            match self {
229                Self::ExchangeSymbol => "EXCHANGE_SYMBOL",
230                Self::SymbolName => "SYMBOL_NAME",
231                Self::ProductCode => "PRODUCT_CODE",
232                Self::InstrumentType => "INSTRUMENT_TYPE",
233                Self::UnderlyingSymbol => "UNDERLYING_SYMBOL",
234                Self::ExpirationDate => "EXPIRATION_DATE",
235                Self::Currency => "CURRENCY",
236                Self::PutCallIndicator => "PUT_CALL_INDICATOR",
237                Self::StrikePrice => "STRIKE_PRICE",
238                Self::FpriceToQprice => "FPRICE_TO_QPRICE",
239                Self::QpriceToFprice => "QPRICE_TO_FPRICE",
240                Self::MinQpriceChange => "MIN_QPRICE_CHANGE",
241                Self::MinFrpiceChange => "MIN_FRPICE_CHANGE",
242                Self::SinglePointValue => "SINGLE_POINT_VALUE",
243                Self::TickSizeType => "TICK_SIZE_TYPE",
244                Self::PriceDisplayFormat => "PRICE_DISPLAY_FORMAT",
245                Self::IsTradable => "IS_TRADABLE",
246                Self::TradingSymbol => "TRADING_SYMBOL",
247                Self::TradingExchange => "TRADING_EXCHANGE",
248                Self::IsUnderlyingForBinaryContracts => "IS_UNDERLYING_FOR_BINARY_CONTRACTS",
249            }
250        }
251        /// Creates an enum from field names used in the ProtoBuf definition.
252        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
253            match value {
254                "EXCHANGE_SYMBOL" => Some(Self::ExchangeSymbol),
255                "SYMBOL_NAME" => Some(Self::SymbolName),
256                "PRODUCT_CODE" => Some(Self::ProductCode),
257                "INSTRUMENT_TYPE" => Some(Self::InstrumentType),
258                "UNDERLYING_SYMBOL" => Some(Self::UnderlyingSymbol),
259                "EXPIRATION_DATE" => Some(Self::ExpirationDate),
260                "CURRENCY" => Some(Self::Currency),
261                "PUT_CALL_INDICATOR" => Some(Self::PutCallIndicator),
262                "STRIKE_PRICE" => Some(Self::StrikePrice),
263                "FPRICE_TO_QPRICE" => Some(Self::FpriceToQprice),
264                "QPRICE_TO_FPRICE" => Some(Self::QpriceToFprice),
265                "MIN_QPRICE_CHANGE" => Some(Self::MinQpriceChange),
266                "MIN_FRPICE_CHANGE" => Some(Self::MinFrpiceChange),
267                "SINGLE_POINT_VALUE" => Some(Self::SinglePointValue),
268                "TICK_SIZE_TYPE" => Some(Self::TickSizeType),
269                "PRICE_DISPLAY_FORMAT" => Some(Self::PriceDisplayFormat),
270                "IS_TRADABLE" => Some(Self::IsTradable),
271                "TRADING_SYMBOL" => Some(Self::TradingSymbol),
272                "TRADING_EXCHANGE" => Some(Self::TradingExchange),
273                "IS_UNDERLYING_FOR_BINARY_CONTRACTS" => Some(Self::IsUnderlyingForBinaryContracts),
274                _ => None,
275            }
276        }
277    }
278}
279#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
280pub struct RequestRithmicSystemInfo {
281    #[prost(int32, required, tag = "154467")]
282    pub template_id: i32,
283    #[prost(string, repeated, tag = "132760")]
284    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
285}
286#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
287pub struct ResponseRithmicSystemInfo {
288    #[prost(int32, required, tag = "154467")]
289    pub template_id: i32,
290    #[prost(string, repeated, tag = "132760")]
291    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
292    #[prost(string, repeated, tag = "132766")]
293    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
294    #[prost(string, repeated, tag = "153628")]
295    pub system_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
296    #[prost(bool, repeated, packed = "false", tag = "153649")]
297    pub has_aggregated_quotes: ::prost::alloc::vec::Vec<bool>,
298}
299#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
300pub struct RequestRithmicSystemGatewayInfo {
301    #[prost(int32, required, tag = "154467")]
302    pub template_id: i32,
303    #[prost(string, repeated, tag = "132760")]
304    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
305    #[prost(string, optional, tag = "153628")]
306    pub system_name: ::core::option::Option<::prost::alloc::string::String>,
307}
308#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
309pub struct ResponseRithmicSystemGatewayInfo {
310    #[prost(int32, required, tag = "154467")]
311    pub template_id: i32,
312    #[prost(string, repeated, tag = "132760")]
313    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
314    #[prost(string, repeated, tag = "132766")]
315    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
316    #[prost(string, optional, tag = "153628")]
317    pub system_name: ::core::option::Option<::prost::alloc::string::String>,
318    #[prost(string, repeated, tag = "153640")]
319    pub gateway_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
320    #[prost(string, repeated, tag = "153641")]
321    pub gateway_uri: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
322}
323/// PB_OFFSET = 100000, is the offset added for each MNM field id
324#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
325pub struct RequestHeartbeat {
326    /// PB_OFFSET + MNM_TEMPLATE_ID
327    #[prost(int32, required, tag = "154467")]
328    pub template_id: i32,
329    /// PB_OFFSET + MNM_USER_MSG
330    #[prost(string, repeated, tag = "132760")]
331    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
332    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
333    #[prost(int32, optional, tag = "150100")]
334    pub ssboe: ::core::option::Option<i32>,
335    /// PB_OFFSET + MNM_USECS
336    #[prost(int32, optional, tag = "150101")]
337    pub usecs: ::core::option::Option<i32>,
338}
339/// PB_OFFSET = 100000, is the offset added for each MNM field id
340#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
341pub struct ResponseHeartbeat {
342    /// PB_OFFSET + MNM_TEMPLATE_ID
343    #[prost(int32, required, tag = "154467")]
344    pub template_id: i32,
345    /// PB_OFFSET + MNM_USER_MSG
346    #[prost(string, repeated, tag = "132760")]
347    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
348    /// PB_OFFSET + MNM_RESPONSE_CODE
349    #[prost(string, repeated, tag = "132766")]
350    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
351    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
352    #[prost(int32, optional, tag = "150100")]
353    pub ssboe: ::core::option::Option<i32>,
354    /// PB_OFFSET + MNM_USECS
355    #[prost(int32, optional, tag = "150101")]
356    pub usecs: ::core::option::Option<i32>,
357}
358/// PB_OFFSET = 100000 , is the offset added for each MNM field id
359#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
360pub struct Reject {
361    /// PB_OFFSET + MNM_TEMPLATE_ID
362    #[prost(int32, required, tag = "154467")]
363    pub template_id: i32,
364    /// PB_OFFSET + MNM_USER_MSG
365    #[prost(string, repeated, tag = "132760")]
366    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
367    /// PB_OFFSET + MNM_RESPONSE_CODE
368    #[prost(string, repeated, tag = "132766")]
369    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
370}
371/// PB_OFFSET = 100000 , is the offset added for each MNM field id
372#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
373pub struct ForcedLogout {
374    /// PB_OFFSET + MNM_TEMPLATE_ID
375    #[prost(int32, required, tag = "154467")]
376    pub template_id: i32,
377}
378#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
379pub struct UserAccountUpdate {
380    #[prost(int32, required, tag = "154467")]
381    pub template_id: i32,
382    #[prost(
383        enumeration = "user_account_update::UpdateType",
384        optional,
385        tag = "154288"
386    )]
387    pub update_type: ::core::option::Option<i32>,
388    #[prost(
389        enumeration = "user_account_update::AccessType",
390        optional,
391        tag = "154000"
392    )]
393    pub access_type: ::core::option::Option<i32>,
394    #[prost(string, optional, tag = "154247")]
395    pub source_user_id: ::core::option::Option<::prost::alloc::string::String>,
396    #[prost(string, optional, tag = "131003")]
397    pub user: ::core::option::Option<::prost::alloc::string::String>,
398    #[prost(string, optional, tag = "154013")]
399    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
400    #[prost(string, optional, tag = "154014")]
401    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
402    #[prost(string, optional, tag = "154008")]
403    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
404    #[prost(string, optional, tag = "154002")]
405    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
406    #[prost(int32, optional, tag = "150100")]
407    pub ssboe: ::core::option::Option<i32>,
408    #[prost(int32, optional, tag = "150101")]
409    pub usecs: ::core::option::Option<i32>,
410}
411/// Nested message and enum types in `UserAccountUpdate`.
412pub mod user_account_update {
413    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414    #[repr(i32)]
415    pub enum UpdateType {
416        Add = 1,
417        Remove = 2,
418    }
419    impl UpdateType {
420        /// String value of the enum field names used in the ProtoBuf definition.
421        ///
422        /// The values are not transformed in any way and thus are considered stable
423        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
424        pub fn as_str_name(&self) -> &'static str {
425            match self {
426                Self::Add => "ADD",
427                Self::Remove => "REMOVE",
428            }
429        }
430        /// Creates an enum from field names used in the ProtoBuf definition.
431        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
432            match value {
433                "ADD" => Some(Self::Add),
434                "REMOVE" => Some(Self::Remove),
435                _ => None,
436            }
437        }
438    }
439    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
440    #[repr(i32)]
441    pub enum AccessType {
442        ReadOnly = 0,
443        ReadWrite = 1,
444    }
445    impl AccessType {
446        /// String value of the enum field names used in the ProtoBuf definition.
447        ///
448        /// The values are not transformed in any way and thus are considered stable
449        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
450        pub fn as_str_name(&self) -> &'static str {
451            match self {
452                Self::ReadOnly => "READ_ONLY",
453                Self::ReadWrite => "READ_WRITE",
454            }
455        }
456        /// Creates an enum from field names used in the ProtoBuf definition.
457        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
458            match value {
459                "READ_ONLY" => Some(Self::ReadOnly),
460                "READ_WRITE" => Some(Self::ReadWrite),
461                _ => None,
462            }
463        }
464    }
465}
466/// update bits and Request enum defined here is also referred in request_subscribe_by_underlying.proto
467/// make sure both these proto files are always same.
468#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
469pub struct RequestMarketDataUpdate {
470    #[prost(int32, required, tag = "154467")]
471    pub template_id: i32,
472    #[prost(string, repeated, tag = "132760")]
473    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
474    #[prost(string, optional, tag = "110100")]
475    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
476    #[prost(string, optional, tag = "110101")]
477    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
478    #[prost(
479        enumeration = "request_market_data_update::Request",
480        optional,
481        tag = "100000"
482    )]
483    pub request: ::core::option::Option<i32>,
484    #[prost(uint32, optional, tag = "154211")]
485    pub update_bits: ::core::option::Option<u32>,
486}
487/// Nested message and enum types in `RequestMarketDataUpdate`.
488pub mod request_market_data_update {
489    /// bit constants are defined using enum
490    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
491    #[repr(i32)]
492    pub enum UpdateBits {
493        LastTrade = 1,
494        Bbo = 2,
495        OrderBook = 4,
496        Open = 8,
497        OpeningIndicator = 16,
498        HighLow = 32,
499        HighBidLowAsk = 64,
500        Close = 128,
501        ClosingIndicator = 256,
502        Settlement = 512,
503        MarketMode = 1024,
504        OpenInterest = 2048,
505        MarginRate = 4096,
506        HighPriceLimit = 8192,
507        LowPriceLimit = 16384,
508        ProjectedSettlement = 32768,
509        AdjustedClose = 65536,
510    }
511    impl UpdateBits {
512        /// String value of the enum field names used in the ProtoBuf definition.
513        ///
514        /// The values are not transformed in any way and thus are considered stable
515        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
516        pub fn as_str_name(&self) -> &'static str {
517            match self {
518                Self::LastTrade => "LAST_TRADE",
519                Self::Bbo => "BBO",
520                Self::OrderBook => "ORDER_BOOK",
521                Self::Open => "OPEN",
522                Self::OpeningIndicator => "OPENING_INDICATOR",
523                Self::HighLow => "HIGH_LOW",
524                Self::HighBidLowAsk => "HIGH_BID_LOW_ASK",
525                Self::Close => "CLOSE",
526                Self::ClosingIndicator => "CLOSING_INDICATOR",
527                Self::Settlement => "SETTLEMENT",
528                Self::MarketMode => "MARKET_MODE",
529                Self::OpenInterest => "OPEN_INTEREST",
530                Self::MarginRate => "MARGIN_RATE",
531                Self::HighPriceLimit => "HIGH_PRICE_LIMIT",
532                Self::LowPriceLimit => "LOW_PRICE_LIMIT",
533                Self::ProjectedSettlement => "PROJECTED_SETTLEMENT",
534                Self::AdjustedClose => "ADJUSTED_CLOSE",
535            }
536        }
537        /// Creates an enum from field names used in the ProtoBuf definition.
538        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
539            match value {
540                "LAST_TRADE" => Some(Self::LastTrade),
541                "BBO" => Some(Self::Bbo),
542                "ORDER_BOOK" => Some(Self::OrderBook),
543                "OPEN" => Some(Self::Open),
544                "OPENING_INDICATOR" => Some(Self::OpeningIndicator),
545                "HIGH_LOW" => Some(Self::HighLow),
546                "HIGH_BID_LOW_ASK" => Some(Self::HighBidLowAsk),
547                "CLOSE" => Some(Self::Close),
548                "CLOSING_INDICATOR" => Some(Self::ClosingIndicator),
549                "SETTLEMENT" => Some(Self::Settlement),
550                "MARKET_MODE" => Some(Self::MarketMode),
551                "OPEN_INTEREST" => Some(Self::OpenInterest),
552                "MARGIN_RATE" => Some(Self::MarginRate),
553                "HIGH_PRICE_LIMIT" => Some(Self::HighPriceLimit),
554                "LOW_PRICE_LIMIT" => Some(Self::LowPriceLimit),
555                "PROJECTED_SETTLEMENT" => Some(Self::ProjectedSettlement),
556                "ADJUSTED_CLOSE" => Some(Self::AdjustedClose),
557                _ => None,
558            }
559        }
560    }
561    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
562    #[repr(i32)]
563    pub enum Request {
564        Subscribe = 1,
565        Unsubscribe = 2,
566    }
567    impl Request {
568        /// String value of the enum field names used in the ProtoBuf definition.
569        ///
570        /// The values are not transformed in any way and thus are considered stable
571        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
572        pub fn as_str_name(&self) -> &'static str {
573            match self {
574                Self::Subscribe => "SUBSCRIBE",
575                Self::Unsubscribe => "UNSUBSCRIBE",
576            }
577        }
578        /// Creates an enum from field names used in the ProtoBuf definition.
579        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
580            match value {
581                "SUBSCRIBE" => Some(Self::Subscribe),
582                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
583                _ => None,
584            }
585        }
586    }
587}
588#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
589pub struct ResponseMarketDataUpdate {
590    #[prost(int32, required, tag = "154467")]
591    pub template_id: i32,
592    #[prost(string, repeated, tag = "132760")]
593    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
594    #[prost(string, repeated, tag = "132766")]
595    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
596}
597/// PB_OFFSET = 100000, is the offset added for each MNM field id
598#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
599pub struct RequestAuxilliaryReferenceData {
600    /// PB_OFFSET + MNM_TEMPLATE_ID
601    #[prost(int32, required, tag = "154467")]
602    pub template_id: i32,
603    /// PB_OFFSET + MNM_USER_MSG
604    #[prost(string, repeated, tag = "132760")]
605    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
606    /// PB_OFFSET + MNM_SYMBOL
607    #[prost(string, optional, tag = "110100")]
608    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
609    /// PB_OFFSET + MNM_EXCHANGE
610    #[prost(string, optional, tag = "110101")]
611    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
612}
613/// presence bits defined here is also referred in response_get_instrument_by_underlying.proto and response_search_symbols.proto
614/// make sure both these proto files are always same.
615#[derive(Clone, PartialEq, ::prost::Message)]
616pub struct ResponseAuxilliaryReferenceData {
617    /// PB_OFFSET + MNM_TEMPLATE_ID
618    #[prost(int32, required, tag = "154467")]
619    pub template_id: i32,
620    /// PB_OFFSET + MNM_USER_MSG
621    #[prost(string, repeated, tag = "132760")]
622    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
623    /// PB_OFFSET + MNM_RESPONSE_CODE
624    #[prost(string, repeated, tag = "132766")]
625    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
626    /// PB_OFFSET + MNM_PRICING_INDICATOR
627    #[prost(uint32, optional, tag = "149138")]
628    pub presence_bits: ::core::option::Option<u32>,
629    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
630    #[prost(uint32, optional, tag = "154571")]
631    pub clear_bits: ::core::option::Option<u32>,
632    /// PB_OFFSET + MNM_SYMBOL
633    #[prost(string, optional, tag = "110100")]
634    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
635    /// PB_OFFSET + MNM_EXCHANGE
636    #[prost(string, optional, tag = "110101")]
637    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
638    /// PB_OFFSET + MNM_SETTLEMENT_METHOD
639    #[prost(string, optional, tag = "153294")]
640    pub settlement_method: ::core::option::Option<::prost::alloc::string::String>,
641    /// PB_OFFSET + MNM_FIRST_NOTICE_DATE
642    #[prost(string, optional, tag = "154932")]
643    pub first_notice_date: ::core::option::Option<::prost::alloc::string::String>,
644    /// PB_OFFSET + MNM_LAST_NOTICE_DATE
645    #[prost(string, optional, tag = "154933")]
646    pub last_notice_date: ::core::option::Option<::prost::alloc::string::String>,
647    /// PB_OFFSET + MNM_FIRST_TRADING_DATE
648    #[prost(string, optional, tag = "154996")]
649    pub first_trading_date: ::core::option::Option<::prost::alloc::string::String>,
650    /// PB_OFFSET + MNM_LAST_TRADING_DATE
651    #[prost(string, optional, tag = "154236")]
652    pub last_trading_date: ::core::option::Option<::prost::alloc::string::String>,
653    /// PB_OFFSET + MNM_FIRST_DELIVERY_DATE
654    #[prost(string, optional, tag = "154994")]
655    pub first_delivery_date: ::core::option::Option<::prost::alloc::string::String>,
656    /// PB_OFFSET + MNM_LAST_DELIVERY_DATE
657    #[prost(string, optional, tag = "154995")]
658    pub last_delivery_date: ::core::option::Option<::prost::alloc::string::String>,
659    /// PB_OFFSET + MNM_FIRST_POSITION_DATE
660    #[prost(string, optional, tag = "154997")]
661    pub first_position_date: ::core::option::Option<::prost::alloc::string::String>,
662    /// PB_OFFSET + MNM_LAST_POSITION_DATE
663    #[prost(string, optional, tag = "154998")]
664    pub last_position_date: ::core::option::Option<::prost::alloc::string::String>,
665    /// PB_OFFSET + MNM_UNIT_OF_MEASURE
666    #[prost(string, optional, tag = "157023")]
667    pub unit_of_measure: ::core::option::Option<::prost::alloc::string::String>,
668    /// PB_OFFSET + MNM_UNIT_OF_MEASURE_QTY
669    #[prost(double, optional, tag = "157024")]
670    pub unit_of_measure_qty: ::core::option::Option<f64>,
671}
672/// Nested message and enum types in `ResponseAuxilliaryReferenceData`.
673pub mod response_auxilliary_reference_data {
674    /// bit constants are defined using enum
675    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
676    #[repr(i32)]
677    pub enum PresenceBits {
678        SettlementMethod = 1,
679        FirstNoticeDate = 2,
680        LastNoticeDate = 4,
681        FirstTradingDate = 8,
682        LastTradingDate = 16,
683        FirstDeliveryDate = 32,
684        LastDeliveryDate = 64,
685        FirstPositionDate = 128,
686        LastPositionDate = 256,
687        UnitOfMeasure = 512,
688        UnitOfMeasureQty = 1024,
689    }
690    impl PresenceBits {
691        /// String value of the enum field names used in the ProtoBuf definition.
692        ///
693        /// The values are not transformed in any way and thus are considered stable
694        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
695        pub fn as_str_name(&self) -> &'static str {
696            match self {
697                Self::SettlementMethod => "SETTLEMENT_METHOD",
698                Self::FirstNoticeDate => "FIRST_NOTICE_DATE",
699                Self::LastNoticeDate => "LAST_NOTICE_DATE",
700                Self::FirstTradingDate => "FIRST_TRADING_DATE",
701                Self::LastTradingDate => "LAST_TRADING_DATE",
702                Self::FirstDeliveryDate => "FIRST_DELIVERY_DATE",
703                Self::LastDeliveryDate => "LAST_DELIVERY_DATE",
704                Self::FirstPositionDate => "FIRST_POSITION_DATE",
705                Self::LastPositionDate => "LAST_POSITION_DATE",
706                Self::UnitOfMeasure => "UNIT_OF_MEASURE",
707                Self::UnitOfMeasureQty => "UNIT_OF_MEASURE_QTY",
708            }
709        }
710        /// Creates an enum from field names used in the ProtoBuf definition.
711        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
712            match value {
713                "SETTLEMENT_METHOD" => Some(Self::SettlementMethod),
714                "FIRST_NOTICE_DATE" => Some(Self::FirstNoticeDate),
715                "LAST_NOTICE_DATE" => Some(Self::LastNoticeDate),
716                "FIRST_TRADING_DATE" => Some(Self::FirstTradingDate),
717                "LAST_TRADING_DATE" => Some(Self::LastTradingDate),
718                "FIRST_DELIVERY_DATE" => Some(Self::FirstDeliveryDate),
719                "LAST_DELIVERY_DATE" => Some(Self::LastDeliveryDate),
720                "FIRST_POSITION_DATE" => Some(Self::FirstPositionDate),
721                "LAST_POSITION_DATE" => Some(Self::LastPositionDate),
722                "UNIT_OF_MEASURE" => Some(Self::UnitOfMeasure),
723                "UNIT_OF_MEASURE_QTY" => Some(Self::UnitOfMeasureQty),
724                _ => None,
725            }
726        }
727    }
728}
729/// PB_OFFSET = 100000, is the offset added for each MNM field id
730#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
731pub struct RequestGiveTickSizeTypeTable {
732    /// PB_OFFSET + MNM_TEMPLATE_ID
733    #[prost(int32, required, tag = "154467")]
734    pub template_id: i32,
735    /// PB_OFFSET + MNM_USER_MSG
736    #[prost(string, repeated, tag = "132760")]
737    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
738    /// PB_OFFSET + MNM_TICK_SIZE_TYPE
739    #[prost(string, optional, tag = "154167")]
740    pub tick_size_type: ::core::option::Option<::prost::alloc::string::String>,
741}
742/// PB_OFFSET = 100000, is the offset added for each MNM field id
743#[derive(Clone, PartialEq, ::prost::Message)]
744pub struct ResponseGiveTickSizeTypeTable {
745    /// PB_OFFSET + MNM_TEMPLATE_ID
746    #[prost(int32, required, tag = "154467")]
747    pub template_id: i32,
748    /// PB_OFFSET + MNM_USER_MSG
749    #[prost(string, repeated, tag = "132760")]
750    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
751    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
752    #[prost(string, repeated, tag = "132764")]
753    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
754    /// PB_OFFSET + MNM_RESPONSE_CODE
755    #[prost(string, repeated, tag = "132766")]
756    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
757    /// PB_OFFSET + MNM_PRICING_INDICATOR
758    #[prost(uint32, optional, tag = "149138")]
759    pub presence_bits: ::core::option::Option<u32>,
760    /// PB_OFFSET + MNM_TICK_SIZE_TYPE
761    #[prost(string, optional, tag = "154167")]
762    pub tick_size_type: ::core::option::Option<::prost::alloc::string::String>,
763    /// PB_OFFSET + MNM_TICK_SIZE_FP_OPERATOR
764    #[prost(string, optional, tag = "154170")]
765    pub tick_size_fp_operator: ::core::option::Option<::prost::alloc::string::String>,
766    /// PB_OFFSET + MNM_TICK_SIZE_LP_OPERATOR
767    #[prost(string, optional, tag = "154171")]
768    pub tick_size_lp_operator: ::core::option::Option<::prost::alloc::string::String>,
769    /// PB_OFFSET + MNM_MIN_FPRICE_CHANGE
770    #[prost(double, optional, tag = "154387")]
771    pub min_fprice_change: ::core::option::Option<f64>,
772    /// PB_OFFSET + MNM_TICK_SIZE_FIRST_PRICE
773    #[prost(double, optional, tag = "154168")]
774    pub tick_size_first_price: ::core::option::Option<f64>,
775    /// PB_OFFSET + MNM_TICK_SIZE_LAST_PRICE
776    #[prost(double, optional, tag = "154169")]
777    pub tick_size_last_price: ::core::option::Option<f64>,
778}
779/// Nested message and enum types in `ResponseGiveTickSizeTypeTable`.
780pub mod response_give_tick_size_type_table {
781    /// bit constants are defined using enum
782    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
783    #[repr(i32)]
784    pub enum PresenceBits {
785        TickSizeFirstPrice = 1,
786        TickSizeLastPrice = 2,
787        TickSizeFpOperator = 4,
788        TickSizeLpOperator = 8,
789    }
790    impl PresenceBits {
791        /// String value of the enum field names used in the ProtoBuf definition.
792        ///
793        /// The values are not transformed in any way and thus are considered stable
794        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
795        pub fn as_str_name(&self) -> &'static str {
796            match self {
797                Self::TickSizeFirstPrice => "TICK_SIZE_FIRST_PRICE",
798                Self::TickSizeLastPrice => "TICK_SIZE_LAST_PRICE",
799                Self::TickSizeFpOperator => "TICK_SIZE_FP_OPERATOR",
800                Self::TickSizeLpOperator => "TICK_SIZE_LP_OPERATOR",
801            }
802        }
803        /// Creates an enum from field names used in the ProtoBuf definition.
804        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
805            match value {
806                "TICK_SIZE_FIRST_PRICE" => Some(Self::TickSizeFirstPrice),
807                "TICK_SIZE_LAST_PRICE" => Some(Self::TickSizeLastPrice),
808                "TICK_SIZE_FP_OPERATOR" => Some(Self::TickSizeFpOperator),
809                "TICK_SIZE_LP_OPERATOR" => Some(Self::TickSizeLpOperator),
810                _ => None,
811            }
812        }
813    }
814}
815/// PB_OFFSET = 100000, is the offset added for each MNM field id
816#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
817pub struct RequestGetInstrumentByUnderlying {
818    /// PB_OFFSET + MNM_TEMPLATE_ID
819    #[prost(int32, required, tag = "154467")]
820    pub template_id: i32,
821    /// PB_OFFSET + MNM_USER_MSG
822    #[prost(string, repeated, tag = "132760")]
823    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
824    /// PB_OFFSET + MNM_UNDERLYING_SYMBOL
825    #[prost(string, optional, tag = "101026")]
826    pub underlying_symbol: ::core::option::Option<::prost::alloc::string::String>,
827    /// PB_OFFSET + MNM_EXCHANGE
828    #[prost(string, optional, tag = "110101")]
829    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
830    /// PB_OFFSET + MNM_EXPIRATION_DATE
831    #[prost(string, optional, tag = "100067")]
832    pub expiration_date: ::core::option::Option<::prost::alloc::string::String>,
833}
834/// presence bits field defined here is an exact copy of response_reference_data.proto
835/// Make sure they are always the same in both proto files.
836#[derive(Clone, PartialEq, ::prost::Message)]
837pub struct ResponseGetInstrumentByUnderlying {
838    /// PB_OFFSET + MNM_TEMPLATE_ID
839    #[prost(int32, required, tag = "154467")]
840    pub template_id: i32,
841    /// PB_OFFSET + MNM_USER_MSG
842    #[prost(string, repeated, tag = "132760")]
843    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
844    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
845    #[prost(string, repeated, tag = "132764")]
846    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
847    /// PB_OFFSET + MNM_RESPONSE_CODE
848    #[prost(string, repeated, tag = "132766")]
849    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
850    /// PB_OFFSET + MNM_PRICING_INDICATOR
851    #[prost(uint32, optional, tag = "149138")]
852    pub presence_bits: ::core::option::Option<u32>,
853    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
854    #[prost(uint32, optional, tag = "154571")]
855    pub clear_bits: ::core::option::Option<u32>,
856    /// PB_OFFSET + MNM_SYMBOL
857    #[prost(string, optional, tag = "110100")]
858    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
859    /// PB_OFFSET + MNM_EXCHANGE
860    #[prost(string, optional, tag = "110101")]
861    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
862    /// PB_OFFSET + MNM_EXCHANGE_SYMBOL
863    #[prost(string, optional, tag = "110114")]
864    pub exchange_symbol: ::core::option::Option<::prost::alloc::string::String>,
865    /// PB_OFFSET + MNM_SYMBOL_NAME
866    #[prost(string, optional, tag = "100003")]
867    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
868    /// PB_OFFSET + MNM_PRODUCT_CODE
869    #[prost(string, optional, tag = "100749")]
870    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
871    /// PB_OFFSET + MNM_INSTRUMENT_TYPE
872    #[prost(string, optional, tag = "110116")]
873    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
874    /// PB_OFFSET + MNM_UNDERLYING_SYMBOL
875    #[prost(string, optional, tag = "101026")]
876    pub underlying_symbol: ::core::option::Option<::prost::alloc::string::String>,
877    /// PB_OFFSET + MNM_EXPIRATION_DATE
878    #[prost(string, optional, tag = "100067")]
879    pub expiration_date: ::core::option::Option<::prost::alloc::string::String>,
880    /// PB_OFFSET + MNM_SYMBOL_CURRENCY
881    #[prost(string, optional, tag = "154382")]
882    pub currency: ::core::option::Option<::prost::alloc::string::String>,
883    /// PB_OFFSET + MNM_PUT_CALL_INDICATOR
884    #[prost(string, optional, tag = "100109")]
885    pub put_call_indicator: ::core::option::Option<::prost::alloc::string::String>,
886    /// PB_OFFSET + MNM_TICK_SIZE_TYPE
887    #[prost(string, optional, tag = "154167")]
888    pub tick_size_type: ::core::option::Option<::prost::alloc::string::String>,
889    /// PB_OFFSET + MNM_PRICE_DISPLAY_FORMAT
890    #[prost(string, optional, tag = "154390")]
891    pub price_display_format: ::core::option::Option<::prost::alloc::string::String>,
892    /// PB_OFFSET + MNM_STRIKE_PRICE
893    #[prost(double, optional, tag = "100066")]
894    pub strike_price: ::core::option::Option<f64>,
895    /// PB_OFFSET + MNM_FPRICE_TO_QPRICE
896    #[prost(double, optional, tag = "154384")]
897    pub ftoq_price: ::core::option::Option<f64>,
898    /// PB_OFFSET + MNM_QPRICE_TO_FPRICE
899    #[prost(double, optional, tag = "154385")]
900    pub qtof_price: ::core::option::Option<f64>,
901    /// PB_OFFSET + MNM_MIN_QPRICE_CHANGE
902    #[prost(double, optional, tag = "154386")]
903    pub min_qprice_change: ::core::option::Option<f64>,
904    /// PB_OFFSET + MNM_MIN_FPRICE_CHANGE
905    #[prost(double, optional, tag = "154387")]
906    pub min_fprice_change: ::core::option::Option<f64>,
907    /// PB_OFFSET + MNM_SINGLE_POINT_VALUE
908    #[prost(double, optional, tag = "154389")]
909    pub single_point_value: ::core::option::Option<f64>,
910}
911/// Nested message and enum types in `ResponseGetInstrumentByUnderlying`.
912pub mod response_get_instrument_by_underlying {
913    /// bit constants are defined using enum
914    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
915    #[repr(i32)]
916    pub enum PresenceBits {
917        ExchangeSymbol = 1,
918        SymbolName = 2,
919        ProductCode = 4,
920        InstrumentType = 8,
921        UnderlyingSymbol = 16,
922        ExpirationDate = 32,
923        Currency = 64,
924        PutCallIndicator = 128,
925        StrikePrice = 256,
926        FpriceToQprice = 512,
927        QpriceToFprice = 1024,
928        MinQpriceChange = 2048,
929        MinFrpiceChange = 4096,
930        SinglePointValue = 8192,
931        TickSizeType = 16384,
932        PriceDisplayFormat = 32768,
933    }
934    impl PresenceBits {
935        /// String value of the enum field names used in the ProtoBuf definition.
936        ///
937        /// The values are not transformed in any way and thus are considered stable
938        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
939        pub fn as_str_name(&self) -> &'static str {
940            match self {
941                Self::ExchangeSymbol => "EXCHANGE_SYMBOL",
942                Self::SymbolName => "SYMBOL_NAME",
943                Self::ProductCode => "PRODUCT_CODE",
944                Self::InstrumentType => "INSTRUMENT_TYPE",
945                Self::UnderlyingSymbol => "UNDERLYING_SYMBOL",
946                Self::ExpirationDate => "EXPIRATION_DATE",
947                Self::Currency => "CURRENCY",
948                Self::PutCallIndicator => "PUT_CALL_INDICATOR",
949                Self::StrikePrice => "STRIKE_PRICE",
950                Self::FpriceToQprice => "FPRICE_TO_QPRICE",
951                Self::QpriceToFprice => "QPRICE_TO_FPRICE",
952                Self::MinQpriceChange => "MIN_QPRICE_CHANGE",
953                Self::MinFrpiceChange => "MIN_FRPICE_CHANGE",
954                Self::SinglePointValue => "SINGLE_POINT_VALUE",
955                Self::TickSizeType => "TICK_SIZE_TYPE",
956                Self::PriceDisplayFormat => "PRICE_DISPLAY_FORMAT",
957            }
958        }
959        /// Creates an enum from field names used in the ProtoBuf definition.
960        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
961            match value {
962                "EXCHANGE_SYMBOL" => Some(Self::ExchangeSymbol),
963                "SYMBOL_NAME" => Some(Self::SymbolName),
964                "PRODUCT_CODE" => Some(Self::ProductCode),
965                "INSTRUMENT_TYPE" => Some(Self::InstrumentType),
966                "UNDERLYING_SYMBOL" => Some(Self::UnderlyingSymbol),
967                "EXPIRATION_DATE" => Some(Self::ExpirationDate),
968                "CURRENCY" => Some(Self::Currency),
969                "PUT_CALL_INDICATOR" => Some(Self::PutCallIndicator),
970                "STRIKE_PRICE" => Some(Self::StrikePrice),
971                "FPRICE_TO_QPRICE" => Some(Self::FpriceToQprice),
972                "QPRICE_TO_FPRICE" => Some(Self::QpriceToFprice),
973                "MIN_QPRICE_CHANGE" => Some(Self::MinQpriceChange),
974                "MIN_FRPICE_CHANGE" => Some(Self::MinFrpiceChange),
975                "SINGLE_POINT_VALUE" => Some(Self::SinglePointValue),
976                "TICK_SIZE_TYPE" => Some(Self::TickSizeType),
977                "PRICE_DISPLAY_FORMAT" => Some(Self::PriceDisplayFormat),
978                _ => None,
979            }
980        }
981    }
982}
983/// PB_OFFSET = 100000, is the offset added for each MNM field id
984#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
985pub struct ResponseGetInstrumentByUnderlyingKeys {
986    /// PB_OFFSET + MNM_TEMPLATE_ID
987    #[prost(int32, required, tag = "154467")]
988    pub template_id: i32,
989    /// PB_OFFSET + MNM_USER_MSG
990    #[prost(string, repeated, tag = "132760")]
991    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
992    /// PB_OFFSET + MNM_RESPONSE_CODE
993    #[prost(string, repeated, tag = "132766")]
994    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
995    /// PB_OFFSET + MNM_UNDERLYING_SYMBOL
996    #[prost(string, repeated, tag = "101026")]
997    pub underlying_symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
998    /// PB_OFFSET + MNM_EXCHANGE
999    #[prost(string, repeated, tag = "110101")]
1000    pub exchange: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1001    /// PB_OFFSET + MNM_EXPIRATION_DATE
1002    #[prost(string, repeated, tag = "100067")]
1003    pub expiration_date: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1004}
1005/// update bits and Request enum field defined here is an exact copy of request_market_data_update.proto
1006/// Make sure they are always the same in both proto files.
1007#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1008pub struct RequestMarketDataUpdateByUnderlying {
1009    /// PB_OFFSET + MNM_TEMPLATE_ID
1010    #[prost(int32, required, tag = "154467")]
1011    pub template_id: i32,
1012    /// PB_OFFSET + MNM_USER_MSG
1013    #[prost(string, repeated, tag = "132760")]
1014    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1015    /// PB_OFFSET + MNM_UNDERLYING_SYMBOL
1016    #[prost(string, optional, tag = "101026")]
1017    pub underlying_symbol: ::core::option::Option<::prost::alloc::string::String>,
1018    /// PB_OFFSET + MNM_EXCHANGE
1019    #[prost(string, optional, tag = "110101")]
1020    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1021    /// PB_OFFSET + MNM_EXPIRATION_DATE
1022    #[prost(string, optional, tag = "100067")]
1023    pub expiration_date: ::core::option::Option<::prost::alloc::string::String>,
1024    /// PB_OFFSET + MNM_REQUEST
1025    #[prost(
1026        enumeration = "request_market_data_update_by_underlying::Request",
1027        optional,
1028        tag = "100000"
1029    )]
1030    pub request: ::core::option::Option<i32>,
1031    /// PB_OFFSET + MNM_MESSAGE_ID
1032    #[prost(uint32, optional, tag = "154211")]
1033    pub update_bits: ::core::option::Option<u32>,
1034}
1035/// Nested message and enum types in `RequestMarketDataUpdateByUnderlying`.
1036pub mod request_market_data_update_by_underlying {
1037    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1038    #[repr(i32)]
1039    pub enum UpdateBits {
1040        LastTrade = 1,
1041        Bbo = 2,
1042        OrderBook = 4,
1043        Open = 8,
1044        OpeningIndicator = 16,
1045        HighLow = 32,
1046        HighBidLowAsk = 64,
1047        Close = 128,
1048        ClosingIndicator = 256,
1049        Settlement = 512,
1050        MarketMode = 1024,
1051        OpenInterest = 2048,
1052        MarginRate = 4096,
1053        HighPriceLimit = 8192,
1054        LowPriceLimit = 16384,
1055        ProjectedSettlement = 32768,
1056    }
1057    impl UpdateBits {
1058        /// String value of the enum field names used in the ProtoBuf definition.
1059        ///
1060        /// The values are not transformed in any way and thus are considered stable
1061        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1062        pub fn as_str_name(&self) -> &'static str {
1063            match self {
1064                Self::LastTrade => "LAST_TRADE",
1065                Self::Bbo => "BBO",
1066                Self::OrderBook => "ORDER_BOOK",
1067                Self::Open => "OPEN",
1068                Self::OpeningIndicator => "OPENING_INDICATOR",
1069                Self::HighLow => "HIGH_LOW",
1070                Self::HighBidLowAsk => "HIGH_BID_LOW_ASK",
1071                Self::Close => "CLOSE",
1072                Self::ClosingIndicator => "CLOSING_INDICATOR",
1073                Self::Settlement => "SETTLEMENT",
1074                Self::MarketMode => "MARKET_MODE",
1075                Self::OpenInterest => "OPEN_INTEREST",
1076                Self::MarginRate => "MARGIN_RATE",
1077                Self::HighPriceLimit => "HIGH_PRICE_LIMIT",
1078                Self::LowPriceLimit => "LOW_PRICE_LIMIT",
1079                Self::ProjectedSettlement => "PROJECTED_SETTLEMENT",
1080            }
1081        }
1082        /// Creates an enum from field names used in the ProtoBuf definition.
1083        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1084            match value {
1085                "LAST_TRADE" => Some(Self::LastTrade),
1086                "BBO" => Some(Self::Bbo),
1087                "ORDER_BOOK" => Some(Self::OrderBook),
1088                "OPEN" => Some(Self::Open),
1089                "OPENING_INDICATOR" => Some(Self::OpeningIndicator),
1090                "HIGH_LOW" => Some(Self::HighLow),
1091                "HIGH_BID_LOW_ASK" => Some(Self::HighBidLowAsk),
1092                "CLOSE" => Some(Self::Close),
1093                "CLOSING_INDICATOR" => Some(Self::ClosingIndicator),
1094                "SETTLEMENT" => Some(Self::Settlement),
1095                "MARKET_MODE" => Some(Self::MarketMode),
1096                "OPEN_INTEREST" => Some(Self::OpenInterest),
1097                "MARGIN_RATE" => Some(Self::MarginRate),
1098                "HIGH_PRICE_LIMIT" => Some(Self::HighPriceLimit),
1099                "LOW_PRICE_LIMIT" => Some(Self::LowPriceLimit),
1100                "PROJECTED_SETTLEMENT" => Some(Self::ProjectedSettlement),
1101                _ => None,
1102            }
1103        }
1104    }
1105    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1106    #[repr(i32)]
1107    pub enum Request {
1108        Subscribe = 1,
1109        Unsubscribe = 2,
1110    }
1111    impl Request {
1112        /// String value of the enum field names used in the ProtoBuf definition.
1113        ///
1114        /// The values are not transformed in any way and thus are considered stable
1115        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1116        pub fn as_str_name(&self) -> &'static str {
1117            match self {
1118                Self::Subscribe => "SUBSCRIBE",
1119                Self::Unsubscribe => "UNSUBSCRIBE",
1120            }
1121        }
1122        /// Creates an enum from field names used in the ProtoBuf definition.
1123        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1124            match value {
1125                "SUBSCRIBE" => Some(Self::Subscribe),
1126                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
1127                _ => None,
1128            }
1129        }
1130    }
1131}
1132/// PB_OFFSET = 100000, is the offset added for each MNM field id
1133#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1134pub struct ResponseMarketDataUpdateByUnderlying {
1135    /// PB_OFFSET + MNM_TEMPLATE_ID
1136    #[prost(int32, required, tag = "154467")]
1137    pub template_id: i32,
1138    /// PB_OFFSET + MNM_USER_MSG
1139    #[prost(string, repeated, tag = "132760")]
1140    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1141    /// PB_OFFSET + MNM_RESPONSE_CODE
1142    #[prost(string, repeated, tag = "132766")]
1143    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1144}
1145/// PB_OFFSET = 100000, is the offset added for each MNM field id
1146#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1147pub struct RequestSearchSymbols {
1148    /// PB_OFFSET + MNM_TEMPLATE_ID
1149    #[prost(int32, required, tag = "154467")]
1150    pub template_id: i32,
1151    /// PB_OFFSET + MNM_USER_MSG
1152    #[prost(string, repeated, tag = "132760")]
1153    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1154    /// PB_OFFSET + MNM_TEXT
1155    #[prost(string, optional, tag = "120008")]
1156    pub search_text: ::core::option::Option<::prost::alloc::string::String>,
1157    /// PB_OFFSET + MNM_EXCHANGE
1158    #[prost(string, optional, tag = "110101")]
1159    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1160    /// PB_OFFSET + MNM_PRODUCT_CODE
1161    #[prost(string, optional, tag = "100749")]
1162    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
1163    /// PB_OFFSET + MNM_INSTRUMENT_TYPE
1164    #[prost(
1165        enumeration = "request_search_symbols::InstrumentType",
1166        optional,
1167        tag = "110116"
1168    )]
1169    pub instrument_type: ::core::option::Option<i32>,
1170    /// PB_OFFSET + MNM_SEARCH_PATTERN
1171    #[prost(
1172        enumeration = "request_search_symbols::Pattern",
1173        optional,
1174        tag = "155008"
1175    )]
1176    pub pattern: ::core::option::Option<i32>,
1177}
1178/// Nested message and enum types in `RequestSearchSymbols`.
1179pub mod request_search_symbols {
1180    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1181    #[repr(i32)]
1182    pub enum Pattern {
1183        Equals = 1,
1184        Contains = 2,
1185    }
1186    impl Pattern {
1187        /// String value of the enum field names used in the ProtoBuf definition.
1188        ///
1189        /// The values are not transformed in any way and thus are considered stable
1190        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1191        pub fn as_str_name(&self) -> &'static str {
1192            match self {
1193                Self::Equals => "EQUALS",
1194                Self::Contains => "CONTAINS",
1195            }
1196        }
1197        /// Creates an enum from field names used in the ProtoBuf definition.
1198        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1199            match value {
1200                "EQUALS" => Some(Self::Equals),
1201                "CONTAINS" => Some(Self::Contains),
1202                _ => None,
1203            }
1204        }
1205    }
1206    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1207    #[repr(i32)]
1208    pub enum InstrumentType {
1209        Future = 1,
1210        FutureOption = 2,
1211        FutureStrategy = 3,
1212        Equity = 4,
1213        EquityOption = 5,
1214        EquityStrategy = 6,
1215        Index = 7,
1216        IndexOption = 8,
1217        Spread = 9,
1218        Synthetic = 10,
1219    }
1220    impl InstrumentType {
1221        /// String value of the enum field names used in the ProtoBuf definition.
1222        ///
1223        /// The values are not transformed in any way and thus are considered stable
1224        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1225        pub fn as_str_name(&self) -> &'static str {
1226            match self {
1227                Self::Future => "FUTURE",
1228                Self::FutureOption => "FUTURE_OPTION",
1229                Self::FutureStrategy => "FUTURE_STRATEGY",
1230                Self::Equity => "EQUITY",
1231                Self::EquityOption => "EQUITY_OPTION",
1232                Self::EquityStrategy => "EQUITY_STRATEGY",
1233                Self::Index => "INDEX",
1234                Self::IndexOption => "INDEX_OPTION",
1235                Self::Spread => "SPREAD",
1236                Self::Synthetic => "SYNTHETIC",
1237            }
1238        }
1239        /// Creates an enum from field names used in the ProtoBuf definition.
1240        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1241            match value {
1242                "FUTURE" => Some(Self::Future),
1243                "FUTURE_OPTION" => Some(Self::FutureOption),
1244                "FUTURE_STRATEGY" => Some(Self::FutureStrategy),
1245                "EQUITY" => Some(Self::Equity),
1246                "EQUITY_OPTION" => Some(Self::EquityOption),
1247                "EQUITY_STRATEGY" => Some(Self::EquityStrategy),
1248                "INDEX" => Some(Self::Index),
1249                "INDEX_OPTION" => Some(Self::IndexOption),
1250                "SPREAD" => Some(Self::Spread),
1251                "SYNTHETIC" => Some(Self::Synthetic),
1252                _ => None,
1253            }
1254        }
1255    }
1256}
1257/// PB_OFFSET = 100000, is the offset added for each MNM field id
1258#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1259pub struct ResponseSearchSymbols {
1260    /// PB_OFFSET + MNM_TEMPLATE_ID
1261    #[prost(int32, required, tag = "154467")]
1262    pub template_id: i32,
1263    /// PB_OFFSET + MNM_USER_MSG
1264    #[prost(string, repeated, tag = "132760")]
1265    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1266    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
1267    #[prost(string, repeated, tag = "132764")]
1268    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1269    /// PB_OFFSET + MNM_RESPONSE_CODE
1270    #[prost(string, repeated, tag = "132766")]
1271    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1272    /// PB_OFFSET + MNM_SYMBOL
1273    #[prost(string, optional, tag = "110100")]
1274    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1275    /// PB_OFFSET + MNM_EXCHANGE
1276    #[prost(string, optional, tag = "110101")]
1277    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1278    /// PB_OFFSET + MNM_SYMBOL_NAME
1279    #[prost(string, optional, tag = "100003")]
1280    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
1281    /// PB_OFFSET + MNM_PRODUCT_CODE
1282    #[prost(string, optional, tag = "100749")]
1283    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
1284    /// PB_OFFSET + MNM_INSTRUMENT_TYPE
1285    #[prost(string, optional, tag = "110116")]
1286    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
1287    /// PB_OFFSET + MNM_EXPIRATION_DATE
1288    #[prost(string, optional, tag = "100067")]
1289    pub expiration_date: ::core::option::Option<::prost::alloc::string::String>,
1290}
1291/// PB_OFFSET = 100000, is the offset added for each MNM field id
1292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1293pub struct RequestProductCodes {
1294    /// PB_OFFSET + MNM_TEMPLATE_ID
1295    #[prost(int32, required, tag = "154467")]
1296    pub template_id: i32,
1297    /// PB_OFFSET + MNM_USER_MSG
1298    #[prost(string, repeated, tag = "132760")]
1299    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1300    /// PB_OFFSET + MNM_EXCHANGE
1301    #[prost(string, optional, tag = "110101")]
1302    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1303    /// PB_OFFSET + MNM_TOI_PRODUCTS_ONLY
1304    #[prost(bool, optional, tag = "153499")]
1305    pub give_toi_products_only: ::core::option::Option<bool>,
1306}
1307/// PB_OFFSET = 100000, is the offset added for each MNM field id
1308#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1309pub struct ResponseProductCodes {
1310    /// PB_OFFSET + MNM_TEMPLATE_ID
1311    #[prost(int32, required, tag = "154467")]
1312    pub template_id: i32,
1313    /// PB_OFFSET + MNM_USER_MSG
1314    #[prost(string, repeated, tag = "132760")]
1315    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1316    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
1317    #[prost(string, repeated, tag = "132764")]
1318    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1319    /// PB_OFFSET + MNM_RESPONSE_CODE
1320    #[prost(string, repeated, tag = "132766")]
1321    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1322    /// PB_OFFSET + MNM_EXCHANGE
1323    #[prost(string, optional, tag = "110101")]
1324    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1325    /// PB_OFFSET + MNM_SYMBOL_NAME
1326    #[prost(string, optional, tag = "100003")]
1327    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
1328    /// PB_OFFSET + MNM_PRODUCT_CODE
1329    #[prost(string, optional, tag = "100749")]
1330    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
1331    /// PB_OFFSET + MNM_TIMEZONE_TIME_OF_INTEREST
1332    #[prost(string, optional, tag = "154682")]
1333    pub timezone_time_of_interest: ::core::option::Option<::prost::alloc::string::String>,
1334    /// PB_OFFSET + MNM_BEGIN_TIME_OF_INTEREST_MSM
1335    #[prost(int32, optional, tag = "154680")]
1336    pub begin_time_of_interest_msm: ::core::option::Option<i32>,
1337    /// PB_OFFSET + MNM_END_TIME_OF_INTEREST_MSM
1338    #[prost(int32, optional, tag = "154681")]
1339    pub end_time_of_interest_msm: ::core::option::Option<i32>,
1340}
1341/// PB_OFFSET = 100000, is the offset added for each MNM field id
1342#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1343pub struct RequestFrontMonthContract {
1344    /// PB_OFFSET + MNM_TEMPLATE_ID
1345    #[prost(int32, required, tag = "154467")]
1346    pub template_id: i32,
1347    /// PB_OFFSET + MNM_USER_MSG
1348    #[prost(string, repeated, tag = "132760")]
1349    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1350    /// PB_OFFSET + MNM_SYMBOL
1351    #[prost(string, optional, tag = "110100")]
1352    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1353    /// PB_OFFSET + MNM_EXCHANGE
1354    #[prost(string, optional, tag = "110101")]
1355    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1356    /// PB_OFFSET + MNM_SUBSCRIBE_FLAG
1357    #[prost(bool, optional, tag = "154352")]
1358    pub need_updates: ::core::option::Option<bool>,
1359}
1360/// PB_OFFSET = 100000, is the offset added for each MNM field id
1361#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1362pub struct ResponseFrontMonthContract {
1363    /// PB_OFFSET + MNM_TEMPLATE_ID
1364    #[prost(int32, required, tag = "154467")]
1365    pub template_id: i32,
1366    /// PB_OFFSET + MNM_USER_MSG
1367    #[prost(string, repeated, tag = "132760")]
1368    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1369    /// PB_OFFSET + MNM_RESPONSE_CODE
1370    #[prost(string, repeated, tag = "132766")]
1371    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1372    /// PB_OFFSET + MNM_SYMBOL
1373    #[prost(string, optional, tag = "110100")]
1374    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1375    /// PB_OFFSET + MNM_EXCHANGE
1376    #[prost(string, optional, tag = "110101")]
1377    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1378    /// PB_OFFSET + MNM_STATUS_INDICATOR
1379    #[prost(bool, optional, tag = "149166")]
1380    pub is_front_month_symbol: ::core::option::Option<bool>,
1381    /// PB_OFFSET + MNM_SYMBOL_NAME
1382    #[prost(string, optional, tag = "100003")]
1383    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
1384    /// PB_OFFSET + MNM_TRADING_SYMBOL
1385    #[prost(string, optional, tag = "157095")]
1386    pub trading_symbol: ::core::option::Option<::prost::alloc::string::String>,
1387    /// PB_OFFSET + MNM_TRADING_EXCHANGE
1388    #[prost(string, optional, tag = "157096")]
1389    pub trading_exchange: ::core::option::Option<::prost::alloc::string::String>,
1390}
1391/// PB_OFFSET = 100000, is the offset added for each MNM field id
1392#[derive(Clone, PartialEq, ::prost::Message)]
1393pub struct RequestDepthByOrderSnapshot {
1394    /// PB_OFFSET + MNM_TEMPLATE_ID
1395    #[prost(int32, required, tag = "154467")]
1396    pub template_id: i32,
1397    /// PB_OFFSET + MNM_USER_MSG
1398    #[prost(string, repeated, tag = "132760")]
1399    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1400    /// PB_OFFSET + MNM_SYMBOL
1401    #[prost(string, optional, tag = "110100")]
1402    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1403    /// PB_OFFSET + MNM_EXCHANGE
1404    #[prost(string, optional, tag = "110101")]
1405    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1406    /// PB_OFFSET + MNM_MARKET_DEPTH_PRICE
1407    #[prost(double, optional, tag = "154405")]
1408    pub depth_price: ::core::option::Option<f64>,
1409}
1410/// PB_OFFSET = 100000, is the offset added for each MNM field id
1411#[derive(Clone, PartialEq, ::prost::Message)]
1412pub struct ResponseDepthByOrderSnapshot {
1413    /// PB_OFFSET + MNM_TEMPLATE_ID
1414    #[prost(int32, required, tag = "154467")]
1415    pub template_id: i32,
1416    /// PB_OFFSET + MNM_USER_MSG
1417    #[prost(string, repeated, tag = "132760")]
1418    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1419    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
1420    #[prost(string, repeated, tag = "132764")]
1421    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1422    /// PB_OFFSET + MNM_RESPONSE_CODE
1423    #[prost(string, repeated, tag = "132766")]
1424    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1425    /// PB_OFFSET + MNM_EXCHANGE
1426    #[prost(string, optional, tag = "110101")]
1427    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1428    /// PB_OFFSET + MNM_SYMBOL
1429    #[prost(string, optional, tag = "110100")]
1430    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1431    /// PB_OFFSET + MNM_SEQUENCE_NUMBER
1432    #[prost(uint64, optional, tag = "112002")]
1433    pub sequence_number: ::core::option::Option<u64>,
1434    /// PB_OFFSET + MNM_MARKET_DEPTH_SIDE
1435    #[prost(
1436        enumeration = "response_depth_by_order_snapshot::TransactionType",
1437        optional,
1438        tag = "153612"
1439    )]
1440    pub depth_side: ::core::option::Option<i32>,
1441    /// PB_OFFSET + MNM_MARKET_DEPTH_PRICE
1442    #[prost(double, optional, tag = "154405")]
1443    pub depth_price: ::core::option::Option<f64>,
1444    /// PB_OFFSET + MNM_MARKET_DEPTH_SIZE
1445    #[prost(int32, repeated, packed = "false", tag = "154406")]
1446    pub depth_size: ::prost::alloc::vec::Vec<i32>,
1447    /// PB_OFFSET + MNM_MARKET_DEPTH_ORDER_PRIORITY
1448    #[prost(uint64, repeated, packed = "false", tag = "153613")]
1449    pub depth_order_priority: ::prost::alloc::vec::Vec<u64>,
1450    /// PB_OFFSET + MNM_EXCH_ORD_ID
1451    #[prost(string, repeated, tag = "149238")]
1452    pub exchange_order_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1453}
1454/// Nested message and enum types in `ResponseDepthByOrderSnapshot`.
1455pub mod response_depth_by_order_snapshot {
1456    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1457    #[repr(i32)]
1458    pub enum TransactionType {
1459        Buy = 1,
1460        Sell = 2,
1461    }
1462    impl TransactionType {
1463        /// String value of the enum field names used in the ProtoBuf definition.
1464        ///
1465        /// The values are not transformed in any way and thus are considered stable
1466        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1467        pub fn as_str_name(&self) -> &'static str {
1468            match self {
1469                Self::Buy => "BUY",
1470                Self::Sell => "SELL",
1471            }
1472        }
1473        /// Creates an enum from field names used in the ProtoBuf definition.
1474        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1475            match value {
1476                "BUY" => Some(Self::Buy),
1477                "SELL" => Some(Self::Sell),
1478                _ => None,
1479            }
1480        }
1481    }
1482}
1483/// PB_OFFSET = 100000, is the offset added for each MNM field id
1484#[derive(Clone, PartialEq, ::prost::Message)]
1485pub struct RequestDepthByOrderUpdates {
1486    /// PB_OFFSET + MNM_TEMPLATE_ID
1487    #[prost(int32, required, tag = "154467")]
1488    pub template_id: i32,
1489    /// PB_OFFSET + MNM_USER_MSG
1490    #[prost(string, repeated, tag = "132760")]
1491    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1492    /// PB_OFFSET + MNM_REQUEST
1493    #[prost(
1494        enumeration = "request_depth_by_order_updates::Request",
1495        optional,
1496        tag = "100000"
1497    )]
1498    pub request: ::core::option::Option<i32>,
1499    /// PB_OFFSET + MNM_SYMBOL
1500    #[prost(string, optional, tag = "110100")]
1501    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1502    /// PB_OFFSET + MNM_EXCHANGE
1503    #[prost(string, optional, tag = "110101")]
1504    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1505    /// PB_OFFSET + MNM_MARKET_DEPTH_PRICE
1506    #[prost(double, optional, tag = "154405")]
1507    pub depth_price: ::core::option::Option<f64>,
1508}
1509/// Nested message and enum types in `RequestDepthByOrderUpdates`.
1510pub mod request_depth_by_order_updates {
1511    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1512    #[repr(i32)]
1513    pub enum Request {
1514        Subscribe = 1,
1515        Unsubscribe = 2,
1516    }
1517    impl Request {
1518        /// String value of the enum field names used in the ProtoBuf definition.
1519        ///
1520        /// The values are not transformed in any way and thus are considered stable
1521        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1522        pub fn as_str_name(&self) -> &'static str {
1523            match self {
1524                Self::Subscribe => "SUBSCRIBE",
1525                Self::Unsubscribe => "UNSUBSCRIBE",
1526            }
1527        }
1528        /// Creates an enum from field names used in the ProtoBuf definition.
1529        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1530            match value {
1531                "SUBSCRIBE" => Some(Self::Subscribe),
1532                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
1533                _ => None,
1534            }
1535        }
1536    }
1537}
1538/// PB_OFFSET = 100000, is the offset added for each MNM field id
1539#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1540pub struct ResponseDepthByOrderUpdates {
1541    /// PB_OFFSET + MNM_TEMPLATE_ID
1542    #[prost(int32, required, tag = "154467")]
1543    pub template_id: i32,
1544    /// PB_OFFSET + MNM_USER_MSG
1545    #[prost(string, repeated, tag = "132760")]
1546    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1547    /// PB_OFFSET + MNM_RESPONSE_CODE
1548    #[prost(string, repeated, tag = "132766")]
1549    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1550}
1551/// PB_OFFSET = 100000, is the offset added for each MNM field id
1552#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1553pub struct RequestGetVolumeAtPrice {
1554    /// PB_OFFSET + MNM_TEMPLATE_ID
1555    #[prost(int32, required, tag = "154467")]
1556    pub template_id: i32,
1557    /// PB_OFFSET + MNM_USER_MSG
1558    #[prost(string, repeated, tag = "132760")]
1559    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1560    /// PB_OFFSET + MNM_SYMBOL
1561    #[prost(string, optional, tag = "110100")]
1562    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1563    /// PB_OFFSET + MNM_EXCHANGE
1564    #[prost(string, optional, tag = "110101")]
1565    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1566}
1567/// PB_OFFSET = 100000, is the offset added for each MNM field id
1568#[derive(Clone, PartialEq, ::prost::Message)]
1569pub struct ResponseGetVolumeAtPrice {
1570    /// PB_OFFSET + MNM_TEMPLATE_ID
1571    #[prost(int32, required, tag = "154467")]
1572    pub template_id: i32,
1573    /// PB_OFFSET + MNM_USER_MSG
1574    #[prost(string, repeated, tag = "132760")]
1575    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1576    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
1577    #[prost(string, repeated, tag = "132764")]
1578    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1579    /// PB_OFFSET + MNM_RESPONSE_CODE
1580    #[prost(string, repeated, tag = "132766")]
1581    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1582    /// PB_OFFSET + MNM_SYMBOL
1583    #[prost(string, optional, tag = "110100")]
1584    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1585    /// PB_OFFSET + MNM_EXCHANGE
1586    #[prost(string, optional, tag = "110101")]
1587    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1588    /// PB_OFFSET + MNM_TRADE_PRICE
1589    #[prost(double, repeated, packed = "false", tag = "100006")]
1590    pub trade_price: ::prost::alloc::vec::Vec<f64>,
1591    /// PB_OFFSET + MNM_VOLUME_AT_PRICE
1592    #[prost(int32, repeated, packed = "false", tag = "156980")]
1593    pub volume_at_price: ::prost::alloc::vec::Vec<i32>,
1594    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
1595    #[prost(int32, optional, tag = "150100")]
1596    pub ssboe: ::core::option::Option<i32>,
1597    /// PB_OFFSET + MNM_USECS
1598    #[prost(int32, optional, tag = "150101")]
1599    pub usecs: ::core::option::Option<i32>,
1600}
1601/// PB_OFFSET = 100000, is the offset added for each MNM field id
1602#[derive(Clone, PartialEq, ::prost::Message)]
1603pub struct BestBidOffer {
1604    /// PB_OFFSET + MNM_TEMPLATE_ID
1605    #[prost(int32, required, tag = "154467")]
1606    pub template_id: i32,
1607    /// PB_OFFSET + MNM_SYMBOL
1608    #[prost(string, optional, tag = "110100")]
1609    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1610    /// PB_OFFSET + MNM_EXCHANGE
1611    #[prost(string, optional, tag = "110101")]
1612    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1613    /// PB_OFFSET + MNM_PRICING_INDICATOR
1614    #[prost(uint32, optional, tag = "149138")]
1615    pub presence_bits: ::core::option::Option<u32>,
1616    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
1617    #[prost(uint32, optional, tag = "154571")]
1618    pub clear_bits: ::core::option::Option<u32>,
1619    /// PB_OFFSET + MNM_UPDATE_TYPE
1620    #[prost(bool, optional, tag = "110121")]
1621    pub is_snapshot: ::core::option::Option<bool>,
1622    /// PB_OFFSET + MNM_BID_PRICE
1623    #[prost(double, optional, tag = "100022")]
1624    pub bid_price: ::core::option::Option<f64>,
1625    /// PB_OFFSET + MNM_BID_SIZE
1626    #[prost(int32, optional, tag = "100030")]
1627    pub bid_size: ::core::option::Option<i32>,
1628    /// PB_OFFSET + MNM_BID_NO_OF_ORDERS
1629    #[prost(int32, optional, tag = "154403")]
1630    pub bid_orders: ::core::option::Option<i32>,
1631    /// PB_OFFSET + MNM_BID_IMPLICIT_SIZE
1632    #[prost(int32, optional, tag = "154867")]
1633    pub bid_implicit_size: ::core::option::Option<i32>,
1634    #[prost(string, optional, tag = "100266")]
1635    pub bid_time: ::core::option::Option<::prost::alloc::string::String>,
1636    /// PB_OFFSET + MNM_ASK_PRICE
1637    #[prost(double, optional, tag = "100025")]
1638    pub ask_price: ::core::option::Option<f64>,
1639    /// PB_OFFSET + MNM_ASK_SIZE
1640    #[prost(int32, optional, tag = "100031")]
1641    pub ask_size: ::core::option::Option<i32>,
1642    /// PB_OFFSET + MNM_ASK_NO_OF_ORDERS
1643    #[prost(int32, optional, tag = "154404")]
1644    pub ask_orders: ::core::option::Option<i32>,
1645    /// PB_OFFSET + MNM_ASK_IMPLICIT_SIZE
1646    #[prost(int32, optional, tag = "154868")]
1647    pub ask_implicit_size: ::core::option::Option<i32>,
1648    #[prost(string, optional, tag = "100267")]
1649    pub ask_time: ::core::option::Option<::prost::alloc::string::String>,
1650    /// PB_OFFSET + MNM_LEAN_PRICE
1651    #[prost(double, optional, tag = "154909")]
1652    pub lean_price: ::core::option::Option<f64>,
1653    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
1654    #[prost(int32, optional, tag = "150100")]
1655    pub ssboe: ::core::option::Option<i32>,
1656    /// PB_OFFSET + MNM_USECS
1657    #[prost(int32, optional, tag = "150101")]
1658    pub usecs: ::core::option::Option<i32>,
1659}
1660/// Nested message and enum types in `BestBidOffer`.
1661pub mod best_bid_offer {
1662    /// below enum is just for reference only, not used in this message
1663    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1664    #[repr(i32)]
1665    pub enum PresenceBits {
1666        Bid = 1,
1667        Ask = 2,
1668        LeanPrice = 4,
1669    }
1670    impl PresenceBits {
1671        /// String value of the enum field names used in the ProtoBuf definition.
1672        ///
1673        /// The values are not transformed in any way and thus are considered stable
1674        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1675        pub fn as_str_name(&self) -> &'static str {
1676            match self {
1677                Self::Bid => "BID",
1678                Self::Ask => "ASK",
1679                Self::LeanPrice => "LEAN_PRICE",
1680            }
1681        }
1682        /// Creates an enum from field names used in the ProtoBuf definition.
1683        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1684            match value {
1685                "BID" => Some(Self::Bid),
1686                "ASK" => Some(Self::Ask),
1687                "LEAN_PRICE" => Some(Self::LeanPrice),
1688                _ => None,
1689            }
1690        }
1691    }
1692}
1693/// PB_OFFSET = 100000 , is the offset added for each MNM field id
1694#[derive(Clone, PartialEq, ::prost::Message)]
1695pub struct OrderBook {
1696    /// PB_OFFSET + MNM_TEMPLATE_ID
1697    #[prost(int32, required, tag = "154467")]
1698    pub template_id: i32,
1699    /// PB_OFFSET + MNM_SYMBOL
1700    #[prost(string, optional, tag = "110100")]
1701    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1702    /// PB_OFFSET + MNM_EXCHANGE
1703    #[prost(string, optional, tag = "110101")]
1704    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1705    /// PB_OFFSET + MNM_PRICING_INDICATOR
1706    #[prost(uint32, optional, tag = "149138")]
1707    pub presence_bits: ::core::option::Option<u32>,
1708    /// PB_OFFSET + MNM_MARKET_DEPTH_UPDATE_TYPE
1709    #[prost(enumeration = "order_book::UpdateType", optional, tag = "157608")]
1710    pub update_type: ::core::option::Option<i32>,
1711    /// PB_OFFSET + MNM_MARKET_DEPTH_BID_PRICE
1712    #[prost(double, repeated, packed = "false", tag = "154282")]
1713    pub bid_price: ::prost::alloc::vec::Vec<f64>,
1714    /// PB_OFFSET + MNM_MARKET_DEPTH_BID_SIZE
1715    #[prost(int32, repeated, packed = "false", tag = "154283")]
1716    pub bid_size: ::prost::alloc::vec::Vec<i32>,
1717    /// PB_OFFSET + MNM_MARKET_DEPTH_BID_NO_OF_ORDERS
1718    #[prost(int32, repeated, packed = "false", tag = "154401")]
1719    pub bid_orders: ::prost::alloc::vec::Vec<i32>,
1720    /// PB_OFFSET + MNM_MARKET_DEPTH_IMPLICIT_BID_SIZE
1721    #[prost(int32, repeated, packed = "false", tag = "154412")]
1722    pub impl_bid_size: ::prost::alloc::vec::Vec<i32>,
1723    /// PB_OFFSET + MNM_MARKET_DEPTH_ASK_PRICE
1724    #[prost(double, repeated, packed = "false", tag = "154284")]
1725    pub ask_price: ::prost::alloc::vec::Vec<f64>,
1726    /// PB_OFFSET + MNM_MARKET_DEPTH_ASK_SIZE
1727    #[prost(int32, repeated, packed = "false", tag = "154285")]
1728    pub ask_size: ::prost::alloc::vec::Vec<i32>,
1729    /// PB_OFFSET + MNM_MARKET_DEPTH_ASK_NO_OF_ORDERS
1730    #[prost(int32, repeated, packed = "false", tag = "154402")]
1731    pub ask_orders: ::prost::alloc::vec::Vec<i32>,
1732    /// PB_OFFSET + MNM_MARKET_DEPTH_IMPLICIT_ASK_SIZE
1733    #[prost(int32, repeated, packed = "false", tag = "154415")]
1734    pub impl_ask_size: ::prost::alloc::vec::Vec<i32>,
1735    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
1736    #[prost(int32, optional, tag = "150100")]
1737    pub ssboe: ::core::option::Option<i32>,
1738    /// PB_OFFSET + MNM_USECS
1739    #[prost(int32, optional, tag = "150101")]
1740    pub usecs: ::core::option::Option<i32>,
1741}
1742/// Nested message and enum types in `OrderBook`.
1743pub mod order_book {
1744    /// below enum is just for reference only, not used in this message
1745    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1746    #[repr(i32)]
1747    pub enum PresenceBits {
1748        Bid = 1,
1749        Ask = 2,
1750    }
1751    impl PresenceBits {
1752        /// String value of the enum field names used in the ProtoBuf definition.
1753        ///
1754        /// The values are not transformed in any way and thus are considered stable
1755        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1756        pub fn as_str_name(&self) -> &'static str {
1757            match self {
1758                Self::Bid => "BID",
1759                Self::Ask => "ASK",
1760            }
1761        }
1762        /// Creates an enum from field names used in the ProtoBuf definition.
1763        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1764            match value {
1765                "BID" => Some(Self::Bid),
1766                "ASK" => Some(Self::Ask),
1767                _ => None,
1768            }
1769        }
1770    }
1771    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1772    #[repr(i32)]
1773    pub enum UpdateType {
1774        ClearOrderBook = 1,
1775        NoBook = 2,
1776        SnapshotImage = 3,
1777        Begin = 4,
1778        Middle = 5,
1779        End = 6,
1780        Solo = 7,
1781    }
1782    impl UpdateType {
1783        /// String value of the enum field names used in the ProtoBuf definition.
1784        ///
1785        /// The values are not transformed in any way and thus are considered stable
1786        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1787        pub fn as_str_name(&self) -> &'static str {
1788            match self {
1789                Self::ClearOrderBook => "CLEAR_ORDER_BOOK",
1790                Self::NoBook => "NO_BOOK",
1791                Self::SnapshotImage => "SNAPSHOT_IMAGE",
1792                Self::Begin => "BEGIN",
1793                Self::Middle => "MIDDLE",
1794                Self::End => "END",
1795                Self::Solo => "SOLO",
1796            }
1797        }
1798        /// Creates an enum from field names used in the ProtoBuf definition.
1799        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1800            match value {
1801                "CLEAR_ORDER_BOOK" => Some(Self::ClearOrderBook),
1802                "NO_BOOK" => Some(Self::NoBook),
1803                "SNAPSHOT_IMAGE" => Some(Self::SnapshotImage),
1804                "BEGIN" => Some(Self::Begin),
1805                "MIDDLE" => Some(Self::Middle),
1806                "END" => Some(Self::End),
1807                "SOLO" => Some(Self::Solo),
1808                _ => None,
1809            }
1810        }
1811    }
1812}
1813/// PB_OFFSET = 100000, is the offset added for each MNM field id
1814#[derive(Clone, PartialEq, ::prost::Message)]
1815pub struct LastTrade {
1816    /// PB_OFFSET + MNM_TEMPLATE_ID
1817    #[prost(int32, required, tag = "154467")]
1818    pub template_id: i32,
1819    /// PB_OFFSET + MNM_SYMBOL
1820    #[prost(string, optional, tag = "110100")]
1821    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1822    /// PB_OFFSET + MNM_EXCHANGE
1823    #[prost(string, optional, tag = "110101")]
1824    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1825    /// PB_OFFSET + MNM_PRICING_INDICATOR
1826    #[prost(uint32, optional, tag = "149138")]
1827    pub presence_bits: ::core::option::Option<u32>,
1828    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
1829    #[prost(uint32, optional, tag = "154571")]
1830    pub clear_bits: ::core::option::Option<u32>,
1831    /// PB_OFFSET + MNM_UPDATE_TYPE
1832    #[prost(bool, optional, tag = "110121")]
1833    pub is_snapshot: ::core::option::Option<bool>,
1834    /// PB_OFFSET + MNM_TRADE_PRICE
1835    #[prost(double, optional, tag = "100006")]
1836    pub trade_price: ::core::option::Option<f64>,
1837    /// PB_OFFSET + MNM_TRADE_SIZE
1838    #[prost(int32, optional, tag = "100178")]
1839    pub trade_size: ::core::option::Option<i32>,
1840    /// PB_OFFSET + MNM_TRANSACTION_TYPE
1841    #[prost(enumeration = "last_trade::TransactionType", optional, tag = "112003")]
1842    pub aggressor: ::core::option::Option<i32>,
1843    /// PB_OFFSET + MNM_EXCH_ORD_ID
1844    #[prost(string, optional, tag = "149238")]
1845    pub exchange_order_id: ::core::option::Option<::prost::alloc::string::String>,
1846    /// PB_OFFSET + MNM_AGGRESSOR_EXCH_ORD_ID
1847    #[prost(string, optional, tag = "154641")]
1848    pub aggressor_exchange_order_id: ::core::option::Option<::prost::alloc::string::String>,
1849    /// PB_OFFSET + MNM_NET_CHANGE
1850    #[prost(double, optional, tag = "100011")]
1851    pub net_change: ::core::option::Option<f64>,
1852    /// PB_OFFSET + MNM_PERCENT_CHANGE
1853    #[prost(double, optional, tag = "100056")]
1854    pub percent_change: ::core::option::Option<f64>,
1855    /// PB_OFFSET + MNM_TRADE_VOLUME
1856    #[prost(uint64, optional, tag = "100032")]
1857    pub volume: ::core::option::Option<u64>,
1858    /// PB_OFFSET + MNM_VWAP
1859    #[prost(double, optional, tag = "101379")]
1860    pub vwap: ::core::option::Option<f64>,
1861    #[prost(string, optional, tag = "100379")]
1862    pub trade_time: ::core::option::Option<::prost::alloc::string::String>,
1863    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
1864    #[prost(int32, optional, tag = "150100")]
1865    pub ssboe: ::core::option::Option<i32>,
1866    /// PB_OFFSET + MNM_USECS
1867    #[prost(int32, optional, tag = "150101")]
1868    pub usecs: ::core::option::Option<i32>,
1869    /// PB_OFFSET + MNM_SOURCE_SSBOE
1870    #[prost(int32, optional, tag = "150400")]
1871    pub source_ssboe: ::core::option::Option<i32>,
1872    /// PB_OFFSET + MNM_SOURCE_USECS
1873    #[prost(int32, optional, tag = "150401")]
1874    pub source_usecs: ::core::option::Option<i32>,
1875    /// PB_OFFSET + MNM_SOURCE_NSECS
1876    #[prost(int32, optional, tag = "150404")]
1877    pub source_nsecs: ::core::option::Option<i32>,
1878    /// PB_OFFSET + MNM_JOP_SSBOE
1879    #[prost(int32, optional, tag = "150600")]
1880    pub jop_ssboe: ::core::option::Option<i32>,
1881    /// PB_OFFSET + MNM_JOP_NSECS
1882    #[prost(int32, optional, tag = "150604")]
1883    pub jop_nsecs: ::core::option::Option<i32>,
1884}
1885/// Nested message and enum types in `LastTrade`.
1886pub mod last_trade {
1887    /// below enum is just for reference only, not used in this message
1888    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1889    #[repr(i32)]
1890    pub enum PresenceBits {
1891        LastTrade = 1,
1892        NetChange = 2,
1893        PrecentChange = 4,
1894        Volume = 8,
1895        Vwap = 16,
1896    }
1897    impl PresenceBits {
1898        /// String value of the enum field names used in the ProtoBuf definition.
1899        ///
1900        /// The values are not transformed in any way and thus are considered stable
1901        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1902        pub fn as_str_name(&self) -> &'static str {
1903            match self {
1904                Self::LastTrade => "LAST_TRADE",
1905                Self::NetChange => "NET_CHANGE",
1906                Self::PrecentChange => "PRECENT_CHANGE",
1907                Self::Volume => "VOLUME",
1908                Self::Vwap => "VWAP",
1909            }
1910        }
1911        /// Creates an enum from field names used in the ProtoBuf definition.
1912        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1913            match value {
1914                "LAST_TRADE" => Some(Self::LastTrade),
1915                "NET_CHANGE" => Some(Self::NetChange),
1916                "PRECENT_CHANGE" => Some(Self::PrecentChange),
1917                "VOLUME" => Some(Self::Volume),
1918                "VWAP" => Some(Self::Vwap),
1919                _ => None,
1920            }
1921        }
1922    }
1923    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1924    #[repr(i32)]
1925    pub enum TransactionType {
1926        Buy = 1,
1927        Sell = 2,
1928    }
1929    impl TransactionType {
1930        /// String value of the enum field names used in the ProtoBuf definition.
1931        ///
1932        /// The values are not transformed in any way and thus are considered stable
1933        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1934        pub fn as_str_name(&self) -> &'static str {
1935            match self {
1936                Self::Buy => "BUY",
1937                Self::Sell => "SELL",
1938            }
1939        }
1940        /// Creates an enum from field names used in the ProtoBuf definition.
1941        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1942            match value {
1943                "BUY" => Some(Self::Buy),
1944                "SELL" => Some(Self::Sell),
1945                _ => None,
1946            }
1947        }
1948    }
1949}
1950/// PB_OFFSET = 100000, is the offset added for each MNM field id
1951#[derive(Clone, PartialEq, ::prost::Message)]
1952pub struct TradeStatistics {
1953    /// PB_OFFSET + MNM_TEMPLATE_ID
1954    #[prost(int32, required, tag = "154467")]
1955    pub template_id: i32,
1956    /// PB_OFFSET + MNM_SYMBOL
1957    #[prost(string, optional, tag = "110100")]
1958    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
1959    /// PB_OFFSET + MNM_EXCHANGE
1960    #[prost(string, optional, tag = "110101")]
1961    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
1962    /// PB_OFFSET + MNM_PRICING_INDICATOR
1963    #[prost(uint32, optional, tag = "149138")]
1964    pub presence_bits: ::core::option::Option<u32>,
1965    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
1966    #[prost(uint32, optional, tag = "154571")]
1967    pub clear_bits: ::core::option::Option<u32>,
1968    /// PB_OFFSET + MNM_UPDATE_TYPE
1969    #[prost(bool, optional, tag = "110121")]
1970    pub is_snapshot: ::core::option::Option<bool>,
1971    /// PB_OFFSET + MNM_OPEN_PRICE
1972    #[prost(double, optional, tag = "100019")]
1973    pub open_price: ::core::option::Option<f64>,
1974    /// PB_OFFSET + MNM_HIGH_PRICE
1975    #[prost(double, optional, tag = "100012")]
1976    pub high_price: ::core::option::Option<f64>,
1977    /// PB_OFFSET + MNM_LOW_PRICE
1978    #[prost(double, optional, tag = "100013")]
1979    pub low_price: ::core::option::Option<f64>,
1980    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
1981    #[prost(int32, optional, tag = "150100")]
1982    pub ssboe: ::core::option::Option<i32>,
1983    /// PB_OFFSET + MNM_USECS
1984    #[prost(int32, optional, tag = "150101")]
1985    pub usecs: ::core::option::Option<i32>,
1986    /// PB_OFFSET + MNM_SOURCE_SSBOE
1987    #[prost(int32, optional, tag = "150400")]
1988    pub source_ssboe: ::core::option::Option<i32>,
1989    /// PB_OFFSET + MNM_SOURCE_USECS
1990    #[prost(int32, optional, tag = "150401")]
1991    pub source_usecs: ::core::option::Option<i32>,
1992    /// PB_OFFSET + MNM_SOURCE_NSECS
1993    #[prost(int32, optional, tag = "150404")]
1994    pub source_nsecs: ::core::option::Option<i32>,
1995    /// PB_OFFSET + MNM_JOP_SSBOE
1996    #[prost(int32, optional, tag = "150600")]
1997    pub jop_ssboe: ::core::option::Option<i32>,
1998    /// PB_OFFSET + MNM_JOP_NSECS
1999    #[prost(int32, optional, tag = "150604")]
2000    pub jop_nsecs: ::core::option::Option<i32>,
2001}
2002/// Nested message and enum types in `TradeStatistics`.
2003pub mod trade_statistics {
2004    /// below enum is just for reference only, not used in this message
2005    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2006    #[repr(i32)]
2007    pub enum PresenceBits {
2008        Open = 1,
2009        High = 2,
2010        Low = 4,
2011    }
2012    impl PresenceBits {
2013        /// String value of the enum field names used in the ProtoBuf definition.
2014        ///
2015        /// The values are not transformed in any way and thus are considered stable
2016        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2017        pub fn as_str_name(&self) -> &'static str {
2018            match self {
2019                Self::Open => "OPEN",
2020                Self::High => "HIGH",
2021                Self::Low => "LOW",
2022            }
2023        }
2024        /// Creates an enum from field names used in the ProtoBuf definition.
2025        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2026            match value {
2027                "OPEN" => Some(Self::Open),
2028                "HIGH" => Some(Self::High),
2029                "LOW" => Some(Self::Low),
2030                _ => None,
2031            }
2032        }
2033    }
2034}
2035/// PB_OFFSET = 100000, is the offset added for each MNM field id
2036#[derive(Clone, PartialEq, ::prost::Message)]
2037pub struct QuoteStatistics {
2038    /// PB_OFFSET + MNM_TEMPLATE_ID
2039    #[prost(int32, required, tag = "154467")]
2040    pub template_id: i32,
2041    /// PB_OFFSET + MNM_SYMBOL
2042    #[prost(string, optional, tag = "110100")]
2043    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2044    /// PB_OFFSET + MNM_EXCHANGE
2045    #[prost(string, optional, tag = "110101")]
2046    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2047    /// PB_OFFSET + MNM_PRICING_INDICATOR
2048    #[prost(uint32, optional, tag = "149138")]
2049    pub presence_bits: ::core::option::Option<u32>,
2050    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
2051    #[prost(uint32, optional, tag = "154571")]
2052    pub clear_bits: ::core::option::Option<u32>,
2053    /// PB_OFFSET + MNM_UPDATE_TYPE
2054    #[prost(bool, optional, tag = "110121")]
2055    pub is_snapshot: ::core::option::Option<bool>,
2056    /// PB_OFFSET + MNM_HIGHEST_BID_PRICE
2057    #[prost(double, optional, tag = "154195")]
2058    pub highest_bid_price: ::core::option::Option<f64>,
2059    /// PB_OFFSET + MNM_LOWEST_ASK_PRICE
2060    #[prost(double, optional, tag = "154197")]
2061    pub lowest_ask_price: ::core::option::Option<f64>,
2062    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2063    #[prost(int32, optional, tag = "150100")]
2064    pub ssboe: ::core::option::Option<i32>,
2065    /// PB_OFFSET + MNM_USECS
2066    #[prost(int32, optional, tag = "150101")]
2067    pub usecs: ::core::option::Option<i32>,
2068}
2069/// Nested message and enum types in `QuoteStatistics`.
2070pub mod quote_statistics {
2071    /// below enum is just for reference only, not used in this message
2072    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2073    #[repr(i32)]
2074    pub enum PresenceBits {
2075        HighestBid = 1,
2076        LowestAsk = 2,
2077    }
2078    impl PresenceBits {
2079        /// String value of the enum field names used in the ProtoBuf definition.
2080        ///
2081        /// The values are not transformed in any way and thus are considered stable
2082        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2083        pub fn as_str_name(&self) -> &'static str {
2084            match self {
2085                Self::HighestBid => "HIGHEST_BID",
2086                Self::LowestAsk => "LOWEST_ASK",
2087            }
2088        }
2089        /// Creates an enum from field names used in the ProtoBuf definition.
2090        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2091            match value {
2092                "HIGHEST_BID" => Some(Self::HighestBid),
2093                "LOWEST_ASK" => Some(Self::LowestAsk),
2094                _ => None,
2095            }
2096        }
2097    }
2098}
2099/// PB_OFFSET = 100000, is the offset added for each MNM field id
2100#[derive(Clone, PartialEq, ::prost::Message)]
2101pub struct IndicatorPrices {
2102    /// PB_OFFSET + MNM_TEMPLATE_ID
2103    #[prost(int32, required, tag = "154467")]
2104    pub template_id: i32,
2105    /// PB_OFFSET + MNM_SYMBOL
2106    #[prost(string, optional, tag = "110100")]
2107    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2108    /// PB_OFFSET + MNM_EXCHANGE
2109    #[prost(string, optional, tag = "110101")]
2110    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2111    /// PB_OFFSET + MNM_PRICING_INDICATOR
2112    #[prost(uint32, optional, tag = "149138")]
2113    pub presence_bits: ::core::option::Option<u32>,
2114    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
2115    #[prost(uint32, optional, tag = "154571")]
2116    pub clear_bits: ::core::option::Option<u32>,
2117    /// PB_OFFSET + MNM_UPDATE_TYPE
2118    #[prost(bool, optional, tag = "110121")]
2119    pub is_snapshot: ::core::option::Option<bool>,
2120    /// PB_OFFSET + MNM_OPENING_INDICATOR
2121    #[prost(double, optional, tag = "154522")]
2122    pub opening_indicator: ::core::option::Option<f64>,
2123    /// PB_OFFSET + MNM_CLOSING_INDICATOR
2124    #[prost(double, optional, tag = "154064")]
2125    pub closing_indicator: ::core::option::Option<f64>,
2126    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2127    #[prost(int32, optional, tag = "150100")]
2128    pub ssboe: ::core::option::Option<i32>,
2129    /// PB_OFFSET + MNM_USECS
2130    #[prost(int32, optional, tag = "150101")]
2131    pub usecs: ::core::option::Option<i32>,
2132}
2133/// Nested message and enum types in `IndicatorPrices`.
2134pub mod indicator_prices {
2135    /// below enum is just for reference only, not used in this message
2136    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2137    #[repr(i32)]
2138    pub enum PresenceBits {
2139        OpeningIndicator = 1,
2140        ClosingIndicator = 2,
2141    }
2142    impl PresenceBits {
2143        /// String value of the enum field names used in the ProtoBuf definition.
2144        ///
2145        /// The values are not transformed in any way and thus are considered stable
2146        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2147        pub fn as_str_name(&self) -> &'static str {
2148            match self {
2149                Self::OpeningIndicator => "OPENING_INDICATOR",
2150                Self::ClosingIndicator => "CLOSING_INDICATOR",
2151            }
2152        }
2153        /// Creates an enum from field names used in the ProtoBuf definition.
2154        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2155            match value {
2156                "OPENING_INDICATOR" => Some(Self::OpeningIndicator),
2157                "CLOSING_INDICATOR" => Some(Self::ClosingIndicator),
2158                _ => None,
2159            }
2160        }
2161    }
2162}
2163/// PB_OFFSET = 100000, is the offset added for each MNM field id
2164#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2165pub struct OpenInterest {
2166    /// PB_OFFSET + MNM_TEMPLATE_ID
2167    #[prost(int32, required, tag = "154467")]
2168    pub template_id: i32,
2169    /// PB_OFFSET + MNM_SYMBOL
2170    #[prost(string, optional, tag = "110100")]
2171    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2172    /// PB_OFFSET + MNM_EXCHANGE
2173    #[prost(string, optional, tag = "110101")]
2174    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2175    /// PB_OFFSET + MNM_UPDATE_TYPE
2176    #[prost(bool, optional, tag = "110121")]
2177    pub is_snapshot: ::core::option::Option<bool>,
2178    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
2179    #[prost(bool, optional, tag = "154571")]
2180    pub should_clear: ::core::option::Option<bool>,
2181    /// PB_OFFSET + MNM_OPEN_INTEREST
2182    #[prost(uint64, optional, tag = "100064")]
2183    pub open_interest: ::core::option::Option<u64>,
2184    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2185    #[prost(int32, optional, tag = "150100")]
2186    pub ssboe: ::core::option::Option<i32>,
2187    /// PB_OFFSET + MNM_USECS
2188    #[prost(int32, optional, tag = "150101")]
2189    pub usecs: ::core::option::Option<i32>,
2190}
2191#[derive(Clone, PartialEq, ::prost::Message)]
2192pub struct EndOfDayPrices {
2193    #[prost(int32, required, tag = "154467")]
2194    pub template_id: i32,
2195    #[prost(string, optional, tag = "110100")]
2196    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2197    #[prost(string, optional, tag = "110101")]
2198    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2199    #[prost(uint32, optional, tag = "149138")]
2200    pub presence_bits: ::core::option::Option<u32>,
2201    #[prost(uint32, optional, tag = "154571")]
2202    pub clear_bits: ::core::option::Option<u32>,
2203    #[prost(bool, optional, tag = "110121")]
2204    pub is_snapshot: ::core::option::Option<bool>,
2205    #[prost(double, optional, tag = "100021")]
2206    pub close_price: ::core::option::Option<f64>,
2207    #[prost(string, optional, tag = "100079")]
2208    pub close_date: ::core::option::Option<::prost::alloc::string::String>,
2209    #[prost(double, optional, tag = "154124")]
2210    pub adjusted_close_price: ::core::option::Option<f64>,
2211    #[prost(double, optional, tag = "100070")]
2212    pub settlement_price: ::core::option::Option<f64>,
2213    #[prost(string, optional, tag = "154132")]
2214    pub settlement_date: ::core::option::Option<::prost::alloc::string::String>,
2215    #[prost(string, optional, tag = "154637")]
2216    pub settlement_price_type: ::core::option::Option<::prost::alloc::string::String>,
2217    #[prost(double, optional, tag = "155005")]
2218    pub projected_settlement_price: ::core::option::Option<f64>,
2219    #[prost(int32, optional, tag = "150100")]
2220    pub ssboe: ::core::option::Option<i32>,
2221    #[prost(int32, optional, tag = "150101")]
2222    pub usecs: ::core::option::Option<i32>,
2223}
2224/// Nested message and enum types in `EndOfDayPrices`.
2225pub mod end_of_day_prices {
2226    /// below enum is just for reference only, not used in this message
2227    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2228    #[repr(i32)]
2229    pub enum PresenceBits {
2230        Close = 1,
2231        Settlement = 2,
2232        ProjectedSettlement = 4,
2233        AdjustedClose = 8,
2234    }
2235    impl PresenceBits {
2236        /// String value of the enum field names used in the ProtoBuf definition.
2237        ///
2238        /// The values are not transformed in any way and thus are considered stable
2239        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2240        pub fn as_str_name(&self) -> &'static str {
2241            match self {
2242                Self::Close => "CLOSE",
2243                Self::Settlement => "SETTLEMENT",
2244                Self::ProjectedSettlement => "PROJECTED_SETTLEMENT",
2245                Self::AdjustedClose => "ADJUSTED_CLOSE",
2246            }
2247        }
2248        /// Creates an enum from field names used in the ProtoBuf definition.
2249        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2250            match value {
2251                "CLOSE" => Some(Self::Close),
2252                "SETTLEMENT" => Some(Self::Settlement),
2253                "PROJECTED_SETTLEMENT" => Some(Self::ProjectedSettlement),
2254                "ADJUSTED_CLOSE" => Some(Self::AdjustedClose),
2255                _ => None,
2256            }
2257        }
2258    }
2259}
2260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2261pub struct MarketMode {
2262    #[prost(int32, required, tag = "154467")]
2263    pub template_id: i32,
2264    #[prost(string, optional, tag = "110100")]
2265    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2266    #[prost(string, optional, tag = "110101")]
2267    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2268    #[prost(string, optional, tag = "154106")]
2269    pub market_mode: ::core::option::Option<::prost::alloc::string::String>,
2270    #[prost(string, optional, tag = "154838")]
2271    pub halt_reason: ::core::option::Option<::prost::alloc::string::String>,
2272    #[prost(string, optional, tag = "100016")]
2273    pub trade_date: ::core::option::Option<::prost::alloc::string::String>,
2274    #[prost(int32, optional, tag = "150100")]
2275    pub ssboe: ::core::option::Option<i32>,
2276    #[prost(int32, optional, tag = "150101")]
2277    pub usecs: ::core::option::Option<i32>,
2278}
2279/// PB_OFFSET = 100000, is the offset added for each MNM field id
2280#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2281pub struct FrontMonthContractUpdate {
2282    /// PB_OFFSET + MNM_TEMPLATE_ID
2283    #[prost(int32, required, tag = "154467")]
2284    pub template_id: i32,
2285    /// PB_OFFSET + MNM_SYMBOL
2286    #[prost(string, optional, tag = "110100")]
2287    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2288    /// PB_OFFSET + MNM_EXCHANGE
2289    #[prost(string, optional, tag = "110101")]
2290    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2291    /// PB_OFFSET + MNM_STATUS_INDICATOR
2292    #[prost(bool, optional, tag = "149166")]
2293    pub is_front_month_symbol: ::core::option::Option<bool>,
2294    /// PB_OFFSET + MNM_SYMBOL_NAME
2295    #[prost(string, optional, tag = "100003")]
2296    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
2297    /// PB_OFFSET + MNM_TRADING_SYMBOL
2298    #[prost(string, optional, tag = "157095")]
2299    pub trading_symbol: ::core::option::Option<::prost::alloc::string::String>,
2300    /// PB_OFFSET + MNM_TRADING_EXCHANGE
2301    #[prost(string, optional, tag = "157096")]
2302    pub trading_exchange: ::core::option::Option<::prost::alloc::string::String>,
2303}
2304/// PB_OFFSET = 100000 , is the offset added for each MNM field id
2305#[derive(Clone, PartialEq, ::prost::Message)]
2306pub struct DepthByOrder {
2307    /// PB_OFFSET + MNM_TEMPLATE_ID
2308    #[prost(int32, required, tag = "154467")]
2309    pub template_id: i32,
2310    /// PB_OFFSET + MNM_SYMBOL
2311    #[prost(string, optional, tag = "110100")]
2312    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2313    /// PB_OFFSET + MNM_EXCHANGE
2314    #[prost(string, optional, tag = "110101")]
2315    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2316    /// PB_OFFSET + MNM_SEQUENCE_NUMBER
2317    #[prost(uint64, optional, tag = "112002")]
2318    pub sequence_number: ::core::option::Option<u64>,
2319    /// PB_OFFSET + MNM_UPDATE_TYPE
2320    #[prost(
2321        enumeration = "depth_by_order::UpdateType",
2322        repeated,
2323        packed = "false",
2324        tag = "110121"
2325    )]
2326    pub update_type: ::prost::alloc::vec::Vec<i32>,
2327    /// PB_OFFSET + MNM_MARKET_DEPTH_SIDE
2328    #[prost(
2329        enumeration = "depth_by_order::TransactionType",
2330        repeated,
2331        packed = "false",
2332        tag = "153612"
2333    )]
2334    pub transaction_type: ::prost::alloc::vec::Vec<i32>,
2335    /// PB_OFFSET + MNM_MARKET_DEPTH_PRICE
2336    #[prost(double, repeated, packed = "false", tag = "154405")]
2337    pub depth_price: ::prost::alloc::vec::Vec<f64>,
2338    /// PB_OFFSET + MNM_PREVIOUS_MARKET_DEPTH_PRICE
2339    #[prost(double, repeated, packed = "false", tag = "154906")]
2340    pub prev_depth_price: ::prost::alloc::vec::Vec<f64>,
2341    /// PB_OFFSET + MNM_PREVIOUS_MARKET_DEPTH_PRICE_FLAG
2342    #[prost(bool, repeated, packed = "false", tag = "154930")]
2343    pub prev_depth_price_flag: ::prost::alloc::vec::Vec<bool>,
2344    /// PB_OFFSET + MNM_MARKET_DEPTH_SIZE
2345    #[prost(int32, repeated, packed = "false", tag = "154406")]
2346    pub depth_size: ::prost::alloc::vec::Vec<i32>,
2347    /// PB_OFFSET + MNM_MARKET_DEPTH_ORDER_PRIORITY
2348    #[prost(uint64, repeated, packed = "false", tag = "153613")]
2349    pub depth_order_priority: ::prost::alloc::vec::Vec<u64>,
2350    /// PB_OFFSET + MNM_EXCH_ORD_ID
2351    #[prost(string, repeated, tag = "149238")]
2352    pub exchange_order_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2353    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2354    #[prost(int32, optional, tag = "150100")]
2355    pub ssboe: ::core::option::Option<i32>,
2356    /// PB_OFFSET + MNM_USECS
2357    #[prost(int32, optional, tag = "150101")]
2358    pub usecs: ::core::option::Option<i32>,
2359    /// PB_OFFSET + MNM_SOURCE_SSBOE
2360    #[prost(int32, optional, tag = "150400")]
2361    pub source_ssboe: ::core::option::Option<i32>,
2362    /// PB_OFFSET + MNM_SOURCE_USECS
2363    #[prost(int32, optional, tag = "150401")]
2364    pub source_usecs: ::core::option::Option<i32>,
2365    /// PB_OFFSET + MNM_SOURCE_NSECS
2366    #[prost(int32, optional, tag = "150404")]
2367    pub source_nsecs: ::core::option::Option<i32>,
2368    /// PB_OFFSET + MNM_JOP_SSBOE
2369    #[prost(int32, optional, tag = "150600")]
2370    pub jop_ssboe: ::core::option::Option<i32>,
2371    /// PB_OFFSET + MNM_JOP_NSECS
2372    #[prost(int32, optional, tag = "150604")]
2373    pub jop_nsecs: ::core::option::Option<i32>,
2374}
2375/// Nested message and enum types in `DepthByOrder`.
2376pub mod depth_by_order {
2377    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2378    #[repr(i32)]
2379    pub enum TransactionType {
2380        Buy = 1,
2381        Sell = 2,
2382    }
2383    impl TransactionType {
2384        /// String value of the enum field names used in the ProtoBuf definition.
2385        ///
2386        /// The values are not transformed in any way and thus are considered stable
2387        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2388        pub fn as_str_name(&self) -> &'static str {
2389            match self {
2390                Self::Buy => "BUY",
2391                Self::Sell => "SELL",
2392            }
2393        }
2394        /// Creates an enum from field names used in the ProtoBuf definition.
2395        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2396            match value {
2397                "BUY" => Some(Self::Buy),
2398                "SELL" => Some(Self::Sell),
2399                _ => None,
2400            }
2401        }
2402    }
2403    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2404    #[repr(i32)]
2405    pub enum UpdateType {
2406        New = 1,
2407        Change = 2,
2408        Delete = 3,
2409    }
2410    impl UpdateType {
2411        /// String value of the enum field names used in the ProtoBuf definition.
2412        ///
2413        /// The values are not transformed in any way and thus are considered stable
2414        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2415        pub fn as_str_name(&self) -> &'static str {
2416            match self {
2417                Self::New => "NEW",
2418                Self::Change => "CHANGE",
2419                Self::Delete => "DELETE",
2420            }
2421        }
2422        /// Creates an enum from field names used in the ProtoBuf definition.
2423        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2424            match value {
2425                "NEW" => Some(Self::New),
2426                "CHANGE" => Some(Self::Change),
2427                "DELETE" => Some(Self::Delete),
2428                _ => None,
2429            }
2430        }
2431    }
2432}
2433/// PB_OFFSET = 100000 , is the offset added for each MNM field id
2434#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2435pub struct DepthByOrderEndEvent {
2436    /// PB_OFFSET + MNM_TEMPLATE_ID
2437    #[prost(int32, required, tag = "154467")]
2438    pub template_id: i32,
2439    /// PB_OFFSET + MNM_SYMBOL
2440    #[prost(string, repeated, tag = "110100")]
2441    pub symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2442    /// PB_OFFSET + MNM_EXCHANGE
2443    #[prost(string, repeated, tag = "110101")]
2444    pub exchange: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2445    /// PB_OFFSET + MNM_SEQUENCE_NUMBER
2446    #[prost(uint64, optional, tag = "112002")]
2447    pub sequence_number: ::core::option::Option<u64>,
2448    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2449    #[prost(int32, optional, tag = "150100")]
2450    pub ssboe: ::core::option::Option<i32>,
2451    /// PB_OFFSET + MNM_USECS
2452    #[prost(int32, optional, tag = "150101")]
2453    pub usecs: ::core::option::Option<i32>,
2454}
2455/// PB_OFFSET = 100000, is the offset added for each MNM field id
2456#[derive(Clone, PartialEq, ::prost::Message)]
2457pub struct SymbolMarginRate {
2458    /// PB_OFFSET + MNM_TEMPLATE_ID
2459    #[prost(int32, required, tag = "154467")]
2460    pub template_id: i32,
2461    /// PB_OFFSET + MNM_SYMBOL
2462    #[prost(string, optional, tag = "110100")]
2463    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2464    /// PB_OFFSET + MNM_EXCHANGE
2465    #[prost(string, optional, tag = "110101")]
2466    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2467    /// PB_OFFSET + MNM_UPDATE_TYPE
2468    #[prost(bool, optional, tag = "110121")]
2469    pub is_snapshot: ::core::option::Option<bool>,
2470    /// PB_OFFSET + MNM_MARGIN_RATE
2471    #[prost(double, optional, tag = "154103")]
2472    pub margin_rate: ::core::option::Option<f64>,
2473}
2474/// PB_OFFSET = 100000, is the offset added for each MNM field id
2475#[derive(Clone, PartialEq, ::prost::Message)]
2476pub struct OrderPriceLimits {
2477    /// PB_OFFSET + MNM_TEMPLATE_ID
2478    #[prost(int32, required, tag = "154467")]
2479    pub template_id: i32,
2480    /// PB_OFFSET + MNM_SYMBOL
2481    #[prost(string, optional, tag = "110100")]
2482    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
2483    /// PB_OFFSET + MNM_EXCHANGE
2484    #[prost(string, optional, tag = "110101")]
2485    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
2486    /// PB_OFFSET + MNM_PRICING_INDICATOR
2487    #[prost(uint32, optional, tag = "149138")]
2488    pub presence_bits: ::core::option::Option<u32>,
2489    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
2490    #[prost(uint32, optional, tag = "154571")]
2491    pub clear_bits: ::core::option::Option<u32>,
2492    /// PB_OFFSET + MNM_UPDATE_TYPE
2493    #[prost(bool, optional, tag = "110121")]
2494    pub is_snapshot: ::core::option::Option<bool>,
2495    /// PB_OFFSET + MNM_HIGH_PRICE_LIMIT
2496    #[prost(double, optional, tag = "154079")]
2497    pub high_price_limit: ::core::option::Option<f64>,
2498    /// PB_OFFSET + MNM_LOW_PRICE_LIMIT
2499    #[prost(double, optional, tag = "154101")]
2500    pub low_price_limit: ::core::option::Option<f64>,
2501    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
2502    #[prost(int32, optional, tag = "150100")]
2503    pub ssboe: ::core::option::Option<i32>,
2504    /// PB_OFFSET + MNM_USECS
2505    #[prost(int32, optional, tag = "150101")]
2506    pub usecs: ::core::option::Option<i32>,
2507}
2508/// Nested message and enum types in `OrderPriceLimits`.
2509pub mod order_price_limits {
2510    /// below enum is just for reference only, not used in this message
2511    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2512    #[repr(i32)]
2513    pub enum PresenceBits {
2514        HighPriceLimit = 1,
2515        LowPriceLimit = 2,
2516    }
2517    impl PresenceBits {
2518        /// String value of the enum field names used in the ProtoBuf definition.
2519        ///
2520        /// The values are not transformed in any way and thus are considered stable
2521        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2522        pub fn as_str_name(&self) -> &'static str {
2523            match self {
2524                Self::HighPriceLimit => "HIGH_PRICE_LIMIT",
2525                Self::LowPriceLimit => "LOW_PRICE_LIMIT",
2526            }
2527        }
2528        /// Creates an enum from field names used in the ProtoBuf definition.
2529        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2530            match value {
2531                "HIGH_PRICE_LIMIT" => Some(Self::HighPriceLimit),
2532                "LOW_PRICE_LIMIT" => Some(Self::LowPriceLimit),
2533                _ => None,
2534            }
2535        }
2536    }
2537}
2538/// PB_OFFSET = 100000 , is the offset added for each MNM field id
2539#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2540pub struct RequestLoginInfo {
2541    /// PB_OFFSET + MNM_TEMPLATE_ID
2542    #[prost(int32, required, tag = "154467")]
2543    pub template_id: i32,
2544    /// PB_OFFSET + MNM_USER_MSG
2545    #[prost(string, repeated, tag = "132760")]
2546    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2547}
2548/// PB_OFFSET = 100000, is the offset added for each MNM field id
2549#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2550pub struct ResponseLoginInfo {
2551    /// PB_OFFSET + MNM_TEMPLATE_ID
2552    #[prost(int32, required, tag = "154467")]
2553    pub template_id: i32,
2554    /// PB_OFFSET + MNM_USER_MSG
2555    #[prost(string, repeated, tag = "132760")]
2556    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2557    /// PB_OFFSET + MNM_RESPONSE_CODE
2558    #[prost(string, repeated, tag = "132766")]
2559    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2560    /// PB_OFFSET + MNM_FCM_ID
2561    #[prost(string, optional, tag = "154013")]
2562    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2563    /// PB_OFFSET + MNM_IB_ID
2564    #[prost(string, optional, tag = "154014")]
2565    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2566    /// PB_OFFSET + MNM_FIRST_NAME
2567    #[prost(string, optional, tag = "154216")]
2568    pub first_name: ::core::option::Option<::prost::alloc::string::String>,
2569    /// PB_OFFSET + MNM_LAST_NAME
2570    #[prost(string, optional, tag = "154217")]
2571    pub last_name: ::core::option::Option<::prost::alloc::string::String>,
2572    /// PB_OFFSET + MNM_USER_TYPE
2573    #[prost(
2574        enumeration = "response_login_info::UserType",
2575        optional,
2576        tag = "154036"
2577    )]
2578    pub user_type: ::core::option::Option<i32>,
2579}
2580/// Nested message and enum types in `ResponseLoginInfo`.
2581pub mod response_login_info {
2582    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2583    #[repr(i32)]
2584    pub enum UserType {
2585        Admin = 0,
2586        Fcm = 1,
2587        Ib = 2,
2588        Trader = 3,
2589    }
2590    impl UserType {
2591        /// String value of the enum field names used in the ProtoBuf definition.
2592        ///
2593        /// The values are not transformed in any way and thus are considered stable
2594        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2595        pub fn as_str_name(&self) -> &'static str {
2596            match self {
2597                Self::Admin => "USER_TYPE_ADMIN",
2598                Self::Fcm => "USER_TYPE_FCM",
2599                Self::Ib => "USER_TYPE_IB",
2600                Self::Trader => "USER_TYPE_TRADER",
2601            }
2602        }
2603        /// Creates an enum from field names used in the ProtoBuf definition.
2604        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2605            match value {
2606                "USER_TYPE_ADMIN" => Some(Self::Admin),
2607                "USER_TYPE_FCM" => Some(Self::Fcm),
2608                "USER_TYPE_IB" => Some(Self::Ib),
2609                "USER_TYPE_TRADER" => Some(Self::Trader),
2610                _ => None,
2611            }
2612        }
2613    }
2614}
2615/// PB_OFFSET = 100000, is the offset added for each MNM field id
2616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2617pub struct RequestAccountList {
2618    /// PB_OFFSET + MNM_TEMPLATE_ID
2619    #[prost(int32, required, tag = "154467")]
2620    pub template_id: i32,
2621    /// PB_OFFSET + MNM_USER_MSG
2622    #[prost(string, repeated, tag = "132760")]
2623    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2624    /// PB_OFFSET + MNM_FCM_ID
2625    #[prost(string, optional, tag = "154013")]
2626    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2627    /// PB_OFFSET + MNM_IB_ID
2628    #[prost(string, optional, tag = "154014")]
2629    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2630    /// PB_OFFSET + MNM_USER_TYPE
2631    #[prost(
2632        enumeration = "request_account_list::UserType",
2633        optional,
2634        tag = "154036"
2635    )]
2636    pub user_type: ::core::option::Option<i32>,
2637}
2638/// Nested message and enum types in `RequestAccountList`.
2639pub mod request_account_list {
2640    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2641    #[repr(i32)]
2642    pub enum UserType {
2643        Fcm = 1,
2644        Ib = 2,
2645        Trader = 3,
2646    }
2647    impl UserType {
2648        /// String value of the enum field names used in the ProtoBuf definition.
2649        ///
2650        /// The values are not transformed in any way and thus are considered stable
2651        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2652        pub fn as_str_name(&self) -> &'static str {
2653            match self {
2654                Self::Fcm => "USER_TYPE_FCM",
2655                Self::Ib => "USER_TYPE_IB",
2656                Self::Trader => "USER_TYPE_TRADER",
2657            }
2658        }
2659        /// Creates an enum from field names used in the ProtoBuf definition.
2660        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2661            match value {
2662                "USER_TYPE_FCM" => Some(Self::Fcm),
2663                "USER_TYPE_IB" => Some(Self::Ib),
2664                "USER_TYPE_TRADER" => Some(Self::Trader),
2665                _ => None,
2666            }
2667        }
2668    }
2669}
2670#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2671pub struct ResponseAccountList {
2672    #[prost(int32, required, tag = "154467")]
2673    pub template_id: i32,
2674    #[prost(string, repeated, tag = "132760")]
2675    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2676    #[prost(string, repeated, tag = "132764")]
2677    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2678    #[prost(string, repeated, tag = "132766")]
2679    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2680    #[prost(string, optional, tag = "154013")]
2681    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2682    #[prost(string, optional, tag = "154014")]
2683    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2684    #[prost(string, optional, tag = "154008")]
2685    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
2686    #[prost(string, optional, tag = "154002")]
2687    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
2688    #[prost(string, optional, tag = "154383")]
2689    pub account_currency: ::core::option::Option<::prost::alloc::string::String>,
2690    #[prost(string, optional, tag = "131035")]
2691    pub account_auto_liquidate: ::core::option::Option<::prost::alloc::string::String>,
2692    #[prost(string, optional, tag = "131040")]
2693    pub auto_liq_threshold_current_value: ::core::option::Option<::prost::alloc::string::String>,
2694}
2695/// PB_OFFSET = 100000, is the offset added for each MNM field id
2696#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2697pub struct RequestAccountRmsInfo {
2698    /// PB_OFFSET + MNM_TEMPLATE_ID
2699    #[prost(int32, required, tag = "154467")]
2700    pub template_id: i32,
2701    /// PB_OFFSET + MNM_USER_MSG
2702    #[prost(string, repeated, tag = "132760")]
2703    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2704    /// PB_OFFSET + MNM_FCM_ID
2705    #[prost(string, optional, tag = "154013")]
2706    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2707    /// PB_OFFSET + MNM_IB_ID
2708    #[prost(string, optional, tag = "154014")]
2709    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2710    /// PB_OFFSET + MNM_USER_TYPE
2711    #[prost(
2712        enumeration = "request_account_rms_info::UserType",
2713        optional,
2714        tag = "154036"
2715    )]
2716    pub user_type: ::core::option::Option<i32>,
2717}
2718/// Nested message and enum types in `RequestAccountRmsInfo`.
2719pub mod request_account_rms_info {
2720    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2721    #[repr(i32)]
2722    pub enum UserType {
2723        Fcm = 1,
2724        Ib = 2,
2725        Trader = 3,
2726    }
2727    impl UserType {
2728        /// String value of the enum field names used in the ProtoBuf definition.
2729        ///
2730        /// The values are not transformed in any way and thus are considered stable
2731        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2732        pub fn as_str_name(&self) -> &'static str {
2733            match self {
2734                Self::Fcm => "USER_TYPE_FCM",
2735                Self::Ib => "USER_TYPE_IB",
2736                Self::Trader => "USER_TYPE_TRADER",
2737            }
2738        }
2739        /// Creates an enum from field names used in the ProtoBuf definition.
2740        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2741            match value {
2742                "USER_TYPE_FCM" => Some(Self::Fcm),
2743                "USER_TYPE_IB" => Some(Self::Ib),
2744                "USER_TYPE_TRADER" => Some(Self::Trader),
2745                _ => None,
2746            }
2747        }
2748    }
2749}
2750/// PB_OFFSET = 100000, is the offset added for each MNM field id
2751#[derive(Clone, PartialEq, ::prost::Message)]
2752pub struct ResponseAccountRmsInfo {
2753    /// PB_OFFSET + MNM_TEMPLATE_ID
2754    #[prost(int32, required, tag = "154467")]
2755    pub template_id: i32,
2756    /// PB_OFFSET + MNM_USER_MSG
2757    #[prost(string, repeated, tag = "132760")]
2758    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2759    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
2760    #[prost(string, repeated, tag = "132764")]
2761    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2762    /// PB_OFFSET + MNM_RESPONSE_CODE
2763    #[prost(string, repeated, tag = "132766")]
2764    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2765    /// PB_OFFSET + MNM_FIELD_PRESENCE_BITS
2766    #[prost(uint32, optional, tag = "153622")]
2767    pub presence_bits: ::core::option::Option<u32>,
2768    /// PB_OFFSET + MNM_FCM_ID
2769    #[prost(string, optional, tag = "154013")]
2770    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2771    /// PB_OFFSET + MNM_IB_ID
2772    #[prost(string, optional, tag = "154014")]
2773    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2774    /// PB_OFFSET + MNM_ACCOUNT_ID
2775    #[prost(string, optional, tag = "154008")]
2776    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
2777    /// PB_OFFSET + MNM_ACCOUNT_CURRENCY
2778    #[prost(string, optional, tag = "154383")]
2779    pub currency: ::core::option::Option<::prost::alloc::string::String>,
2780    /// PB_OFFSET + MNM_ACCOUNT_STATUS
2781    #[prost(string, optional, tag = "154003")]
2782    pub status: ::core::option::Option<::prost::alloc::string::String>,
2783    /// PB_OFFSET + MNM_ALGORITHM
2784    #[prost(string, optional, tag = "150142")]
2785    pub algorithm: ::core::option::Option<::prost::alloc::string::String>,
2786    /// PB_OFFSET + MNM_ACCOUNT_AUTO_LIQUIDATE_CRITERIA
2787    #[prost(string, optional, tag = "131036")]
2788    pub auto_liquidate_criteria: ::core::option::Option<::prost::alloc::string::String>,
2789    /// PB_OFFSET + MNM_ACCOUNT_AUTO_LIQUIDATE
2790    #[prost(
2791        enumeration = "response_account_rms_info::AutoLiquidateFlag",
2792        optional,
2793        tag = "131035"
2794    )]
2795    pub auto_liquidate: ::core::option::Option<i32>,
2796    /// PB_OFFSET + MNM_DISABLE_ON_AUTO_LIQUIDATE_FLAG
2797    #[prost(
2798        enumeration = "response_account_rms_info::AutoLiquidateFlag",
2799        optional,
2800        tag = "131038"
2801    )]
2802    pub disable_on_auto_liquidate: ::core::option::Option<i32>,
2803    /// PB_OFFSET + MNM_ACCOUNT_AUTO_LIQUIDATE_THRESHOLD
2804    #[prost(double, optional, tag = "131037")]
2805    pub auto_liquidate_threshold: ::core::option::Option<f64>,
2806    /// PB_OFFSET + MNM_AUTO_LIQ_MAX_MIN_ACCOUNT_BALANCE
2807    #[prost(double, optional, tag = "131039")]
2808    pub auto_liquidate_max_min_account_balance: ::core::option::Option<f64>,
2809    /// PB_OFFSET + MNM_LOSS_LIMIT
2810    #[prost(double, optional, tag = "154019")]
2811    pub loss_limit: ::core::option::Option<f64>,
2812    /// PB_OFFSET + MNM_MINIMUM_ACCOUNT_BALANCE
2813    #[prost(double, optional, tag = "156968")]
2814    pub min_account_balance: ::core::option::Option<f64>,
2815    /// PB_OFFSET + MNM_MIN_MARGIN_BALANCE
2816    #[prost(double, optional, tag = "156976")]
2817    pub min_margin_balance: ::core::option::Option<f64>,
2818    /// PB_OFFSET + MNM_DEFAULT_COMMISSION
2819    #[prost(double, optional, tag = "153368")]
2820    pub default_commission: ::core::option::Option<f64>,
2821    /// PB_OFFSET + MNM_BUY_LIMIT
2822    #[prost(int32, optional, tag = "154009")]
2823    pub buy_limit: ::core::option::Option<i32>,
2824    /// PB_OFFSET + MNM_MAX_LIMIT_QUAN
2825    #[prost(int32, optional, tag = "110105")]
2826    pub max_order_quantity: ::core::option::Option<i32>,
2827    /// PB_OFFSET + MNM_SELL_LIMIT
2828    #[prost(int32, optional, tag = "154035")]
2829    pub sell_limit: ::core::option::Option<i32>,
2830    /// PB_OFFSET + MNM_CHECK_MIN_ACCT_BALANCE
2831    #[prost(bool, optional, tag = "156972")]
2832    pub check_min_account_balance: ::core::option::Option<bool>,
2833}
2834/// Nested message and enum types in `ResponseAccountRmsInfo`.
2835pub mod response_account_rms_info {
2836    /// below enum is just for reference only, not used in this message
2837    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2838    #[repr(i32)]
2839    pub enum PresenceBits {
2840        BuyLimit = 1,
2841        SellLimit = 2,
2842        LossLimit = 4,
2843        MaxOrderQuantity = 8,
2844        MinAccountBalance = 16,
2845        MinMarginBalance = 32,
2846        Algorithm = 64,
2847        Status = 128,
2848        Currency = 256,
2849        DefaultCommission = 512,
2850    }
2851    impl PresenceBits {
2852        /// String value of the enum field names used in the ProtoBuf definition.
2853        ///
2854        /// The values are not transformed in any way and thus are considered stable
2855        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2856        pub fn as_str_name(&self) -> &'static str {
2857            match self {
2858                Self::BuyLimit => "BUY_LIMIT",
2859                Self::SellLimit => "SELL_LIMIT",
2860                Self::LossLimit => "LOSS_LIMIT",
2861                Self::MaxOrderQuantity => "MAX_ORDER_QUANTITY",
2862                Self::MinAccountBalance => "MIN_ACCOUNT_BALANCE",
2863                Self::MinMarginBalance => "MIN_MARGIN_BALANCE",
2864                Self::Algorithm => "ALGORITHM",
2865                Self::Status => "STATUS",
2866                Self::Currency => "CURRENCY",
2867                Self::DefaultCommission => "DEFAULT_COMMISSION",
2868            }
2869        }
2870        /// Creates an enum from field names used in the ProtoBuf definition.
2871        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2872            match value {
2873                "BUY_LIMIT" => Some(Self::BuyLimit),
2874                "SELL_LIMIT" => Some(Self::SellLimit),
2875                "LOSS_LIMIT" => Some(Self::LossLimit),
2876                "MAX_ORDER_QUANTITY" => Some(Self::MaxOrderQuantity),
2877                "MIN_ACCOUNT_BALANCE" => Some(Self::MinAccountBalance),
2878                "MIN_MARGIN_BALANCE" => Some(Self::MinMarginBalance),
2879                "ALGORITHM" => Some(Self::Algorithm),
2880                "STATUS" => Some(Self::Status),
2881                "CURRENCY" => Some(Self::Currency),
2882                "DEFAULT_COMMISSION" => Some(Self::DefaultCommission),
2883                _ => None,
2884            }
2885        }
2886    }
2887    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2888    #[repr(i32)]
2889    pub enum AutoLiquidateFlag {
2890        Enabled = 1,
2891        Disabled = 2,
2892    }
2893    impl AutoLiquidateFlag {
2894        /// String value of the enum field names used in the ProtoBuf definition.
2895        ///
2896        /// The values are not transformed in any way and thus are considered stable
2897        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2898        pub fn as_str_name(&self) -> &'static str {
2899            match self {
2900                Self::Enabled => "ENABLED",
2901                Self::Disabled => "DISABLED",
2902            }
2903        }
2904        /// Creates an enum from field names used in the ProtoBuf definition.
2905        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2906            match value {
2907                "ENABLED" => Some(Self::Enabled),
2908                "DISABLED" => Some(Self::Disabled),
2909                _ => None,
2910            }
2911        }
2912    }
2913}
2914#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2915pub struct RequestAccountRmsUpdates {
2916    #[prost(int32, required, tag = "154467")]
2917    pub template_id: i32,
2918    #[prost(string, repeated, tag = "132760")]
2919    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2920    #[prost(string, optional, tag = "154013")]
2921    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2922    #[prost(string, optional, tag = "154014")]
2923    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2924    #[prost(string, optional, tag = "154008")]
2925    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
2926    /// values can be either 'subscribe' or 'unsubscribe'
2927    #[prost(string, optional, tag = "100000")]
2928    pub request: ::core::option::Option<::prost::alloc::string::String>,
2929    #[prost(int32, optional, tag = "154211")]
2930    pub update_bits: ::core::option::Option<i32>,
2931}
2932/// Nested message and enum types in `RequestAccountRmsUpdates`.
2933pub mod request_account_rms_updates {
2934    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2935    #[repr(i32)]
2936    pub enum UpdateBits {
2937        AutoLiqThresholdCurrentValue = 1,
2938    }
2939    impl UpdateBits {
2940        /// String value of the enum field names used in the ProtoBuf definition.
2941        ///
2942        /// The values are not transformed in any way and thus are considered stable
2943        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2944        pub fn as_str_name(&self) -> &'static str {
2945            match self {
2946                Self::AutoLiqThresholdCurrentValue => "AUTO_LIQ_THRESHOLD_CURRENT_VALUE",
2947            }
2948        }
2949        /// Creates an enum from field names used in the ProtoBuf definition.
2950        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2951            match value {
2952                "AUTO_LIQ_THRESHOLD_CURRENT_VALUE" => Some(Self::AutoLiqThresholdCurrentValue),
2953                _ => None,
2954            }
2955        }
2956    }
2957}
2958#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2959pub struct ResponseAccountRmsUpdates {
2960    #[prost(int32, required, tag = "154467")]
2961    pub template_id: i32,
2962    #[prost(string, repeated, tag = "132760")]
2963    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2964    #[prost(string, repeated, tag = "132766")]
2965    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2966}
2967/// PB_OFFSET = 100000, is the offset added for each MNM field id
2968#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2969pub struct RequestProductRmsInfo {
2970    /// PB_OFFSET + MNM_TEMPLATE_ID
2971    #[prost(int32, required, tag = "154467")]
2972    pub template_id: i32,
2973    /// PB_OFFSET + MNM_USER_MSG
2974    #[prost(string, repeated, tag = "132760")]
2975    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2976    /// PB_OFFSET + MNM_FCM_ID
2977    #[prost(string, optional, tag = "154013")]
2978    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
2979    /// PB_OFFSET + MNM_IB_ID
2980    #[prost(string, optional, tag = "154014")]
2981    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
2982    /// PB_OFFSET + MNM_ACCOUNT_ID
2983    #[prost(string, optional, tag = "154008")]
2984    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
2985}
2986/// PB_OFFSET = 100000, is the offset added for each MNM field id
2987#[derive(Clone, PartialEq, ::prost::Message)]
2988pub struct ResponseProductRmsInfo {
2989    /// PB_OFFSET + MNM_TEMPLATE_ID
2990    #[prost(int32, required, tag = "154467")]
2991    pub template_id: i32,
2992    /// PB_OFFSET + MNM_USER_MSG
2993    #[prost(string, repeated, tag = "132760")]
2994    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2995    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
2996    #[prost(string, repeated, tag = "132764")]
2997    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2998    /// PB_OFFSET + MNM_RESPONSE_CODE
2999    #[prost(string, repeated, tag = "132766")]
3000    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3001    /// PB_OFFSET + MNM_FIELD_PRESENCE_BITS
3002    #[prost(uint32, optional, tag = "153622")]
3003    pub presence_bits: ::core::option::Option<u32>,
3004    /// PB_OFFSET + MNM_FCM_ID
3005    #[prost(string, optional, tag = "154013")]
3006    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3007    /// PB_OFFSET + MNM_IB_ID
3008    #[prost(string, optional, tag = "154014")]
3009    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3010    /// PB_OFFSET + MNM_ACCOUNT_ID
3011    #[prost(string, optional, tag = "154008")]
3012    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3013    /// PB_OFFSET + MNM_PRODUCT_CODE
3014    #[prost(string, optional, tag = "100749")]
3015    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
3016    /// PB_OFFSET + MNM_LOSS_LIMIT
3017    #[prost(double, optional, tag = "154019")]
3018    pub loss_limit: ::core::option::Option<f64>,
3019    /// PB_OFFSET + MNM_COMMISSION_FILL_RATE
3020    #[prost(double, optional, tag = "156969")]
3021    pub commission_fill_rate: ::core::option::Option<f64>,
3022    /// PB_OFFSET + MNM_BUY_MARGIN_RATE
3023    #[prost(double, optional, tag = "157003")]
3024    pub buy_margin_rate: ::core::option::Option<f64>,
3025    /// PB_OFFSET + MNM_SELL_MARGIN_RATE
3026    #[prost(double, optional, tag = "157004")]
3027    pub sell_margin_rate: ::core::option::Option<f64>,
3028    /// PB_OFFSET + MNM_BUY_LIMIT
3029    #[prost(int32, optional, tag = "154009")]
3030    pub buy_limit: ::core::option::Option<i32>,
3031    /// PB_OFFSET + MNM_MAX_LIMIT_QUAN
3032    #[prost(int32, optional, tag = "110105")]
3033    pub max_order_quantity: ::core::option::Option<i32>,
3034    /// PB_OFFSET + MNM_SELL_LIMIT
3035    #[prost(int32, optional, tag = "154035")]
3036    pub sell_limit: ::core::option::Option<i32>,
3037}
3038/// Nested message and enum types in `ResponseProductRmsInfo`.
3039pub mod response_product_rms_info {
3040    /// below enum is just for reference only, not used in this message
3041    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3042    #[repr(i32)]
3043    pub enum PresenceBits {
3044        BuyLimit = 1,
3045        SellLimit = 2,
3046        LossLimit = 4,
3047        MaxOrderQuantity = 8,
3048        BuyMarginRate = 16,
3049        SellMarginRate = 32,
3050        CommissionFillRate = 64,
3051    }
3052    impl PresenceBits {
3053        /// String value of the enum field names used in the ProtoBuf definition.
3054        ///
3055        /// The values are not transformed in any way and thus are considered stable
3056        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3057        pub fn as_str_name(&self) -> &'static str {
3058            match self {
3059                Self::BuyLimit => "BUY_LIMIT",
3060                Self::SellLimit => "SELL_LIMIT",
3061                Self::LossLimit => "LOSS_LIMIT",
3062                Self::MaxOrderQuantity => "MAX_ORDER_QUANTITY",
3063                Self::BuyMarginRate => "BUY_MARGIN_RATE",
3064                Self::SellMarginRate => "SELL_MARGIN_RATE",
3065                Self::CommissionFillRate => "COMMISSION_FILL_RATE",
3066            }
3067        }
3068        /// Creates an enum from field names used in the ProtoBuf definition.
3069        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3070            match value {
3071                "BUY_LIMIT" => Some(Self::BuyLimit),
3072                "SELL_LIMIT" => Some(Self::SellLimit),
3073                "LOSS_LIMIT" => Some(Self::LossLimit),
3074                "MAX_ORDER_QUANTITY" => Some(Self::MaxOrderQuantity),
3075                "BUY_MARGIN_RATE" => Some(Self::BuyMarginRate),
3076                "SELL_MARGIN_RATE" => Some(Self::SellMarginRate),
3077                "COMMISSION_FILL_RATE" => Some(Self::CommissionFillRate),
3078                _ => None,
3079            }
3080        }
3081    }
3082}
3083/// PB_OFFSET = 100000, is the offset added for each MNM field id
3084#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3085pub struct RequestSubscribeForOrderUpdates {
3086    /// PB_OFFSET + MNM_TEMPLATE_ID
3087    #[prost(int32, required, tag = "154467")]
3088    pub template_id: i32,
3089    /// PB_OFFSET + MNM_USER_MSG
3090    #[prost(string, repeated, tag = "132760")]
3091    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3092    /// PB_OFFSET + MNM_FCM_ID
3093    #[prost(string, optional, tag = "154013")]
3094    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3095    /// PB_OFFSET + MNM_IB_ID
3096    #[prost(string, optional, tag = "154014")]
3097    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3098    /// PB_OFFSET + MNM_ACCOUNT_ID
3099    #[prost(string, optional, tag = "154008")]
3100    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3101}
3102/// PB_OFFSET = 100000, is the offset added for each MNM field id
3103#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3104pub struct ResponseSubscribeForOrderUpdates {
3105    /// PB_OFFSET + MNM_TEMPLATE_ID
3106    #[prost(int32, required, tag = "154467")]
3107    pub template_id: i32,
3108    /// PB_OFFSET + MNM_USER_MSG
3109    #[prost(string, repeated, tag = "132760")]
3110    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3111    /// PB_OFFSET + MNM_RESPONSE_CODE
3112    #[prost(string, repeated, tag = "132766")]
3113    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3114}
3115/// PB_OFFSET = 100000, is the offset added for each MNM field id
3116#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3117pub struct RequestTradeRoutes {
3118    /// PB_OFFSET + MNM_TEMPLATE_ID
3119    #[prost(int32, required, tag = "154467")]
3120    pub template_id: i32,
3121    /// PB_OFFSET + MNM_USER_MSG
3122    #[prost(string, repeated, tag = "132760")]
3123    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3124    /// PB_OFFSET + MNM_SUBSCRIBE_FLAG
3125    #[prost(bool, optional, tag = "154352")]
3126    pub subscribe_for_updates: ::core::option::Option<bool>,
3127}
3128/// PB_OFFSET = 100000, is the offset added for each MNM field id
3129#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3130pub struct ResponseTradeRoutes {
3131    /// PB_OFFSET + MNM_TEMPLATE_ID
3132    #[prost(int32, required, tag = "154467")]
3133    pub template_id: i32,
3134    /// PB_OFFSET + MNM_USER_MSG
3135    #[prost(string, repeated, tag = "132760")]
3136    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3137    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
3138    #[prost(string, repeated, tag = "132764")]
3139    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3140    /// PB_OFFSET + MNM_RESPONSE_CODE
3141    #[prost(string, repeated, tag = "132766")]
3142    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3143    /// PB_OFFSET + MNM_FCM_ID
3144    #[prost(string, optional, tag = "154013")]
3145    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3146    /// PB_OFFSET + MNM_IB_ID
3147    #[prost(string, optional, tag = "154014")]
3148    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3149    /// PB_OFFSET + MNM_EXCHANGE
3150    #[prost(string, optional, tag = "110101")]
3151    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
3152    /// PB_OFFSET + MNM_TRADE_ROUTE
3153    #[prost(string, optional, tag = "112016")]
3154    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
3155    /// PB_OFFSET + MNM_SERVICE_STATE
3156    #[prost(string, optional, tag = "131407")]
3157    pub status: ::core::option::Option<::prost::alloc::string::String>,
3158    /// PB_OFFSET + MNM_DEFAULT_ROUTE
3159    #[prost(bool, optional, tag = "154689")]
3160    pub is_default: ::core::option::Option<bool>,
3161}
3162#[derive(Clone, PartialEq, ::prost::Message)]
3163pub struct RequestNewOrder {
3164    #[prost(int32, required, tag = "154467")]
3165    pub template_id: i32,
3166    #[prost(string, repeated, tag = "132760")]
3167    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3168    #[prost(string, optional, tag = "154119")]
3169    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
3170    #[prost(string, optional, tag = "154629")]
3171    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
3172    #[prost(string, optional, tag = "154013")]
3173    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3174    #[prost(string, optional, tag = "154014")]
3175    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3176    #[prost(string, optional, tag = "154008")]
3177    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3178    #[prost(string, optional, tag = "110100")]
3179    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
3180    #[prost(string, optional, tag = "110101")]
3181    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
3182    #[prost(int32, optional, tag = "112004")]
3183    pub quantity: ::core::option::Option<i32>,
3184    #[prost(double, optional, tag = "110306")]
3185    pub price: ::core::option::Option<f64>,
3186    #[prost(double, optional, tag = "149247")]
3187    pub trigger_price: ::core::option::Option<f64>,
3188    #[prost(
3189        enumeration = "request_new_order::TransactionType",
3190        optional,
3191        tag = "112003"
3192    )]
3193    pub transaction_type: ::core::option::Option<i32>,
3194    #[prost(enumeration = "request_new_order::Duration", optional, tag = "112005")]
3195    pub duration: ::core::option::Option<i32>,
3196    #[prost(enumeration = "request_new_order::PriceType", optional, tag = "112008")]
3197    pub price_type: ::core::option::Option<i32>,
3198    #[prost(string, optional, tag = "112016")]
3199    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
3200    #[prost(
3201        enumeration = "request_new_order::OrderPlacement",
3202        optional,
3203        tag = "154710"
3204    )]
3205    pub manual_or_auto: ::core::option::Option<i32>,
3206    #[prost(bool, optional, tag = "157063")]
3207    pub trailing_stop: ::core::option::Option<bool>,
3208    #[prost(int32, optional, tag = "157064")]
3209    pub trail_by_ticks: ::core::option::Option<i32>,
3210    #[prost(int32, optional, tag = "157065")]
3211    pub trail_by_price_id: ::core::option::Option<i32>,
3212    #[prost(int32, optional, tag = "154487")]
3213    pub release_at_ssboe: ::core::option::Option<i32>,
3214    #[prost(int32, optional, tag = "154549")]
3215    pub release_at_usecs: ::core::option::Option<i32>,
3216    #[prost(int32, optional, tag = "157085")]
3217    pub cancel_at_ssboe: ::core::option::Option<i32>,
3218    #[prost(int32, optional, tag = "157086")]
3219    pub cancel_at_usecs: ::core::option::Option<i32>,
3220    #[prost(int32, optional, tag = "154488")]
3221    pub cancel_after_secs: ::core::option::Option<i32>,
3222    #[prost(string, optional, tag = "154451")]
3223    pub if_touched_symbol: ::core::option::Option<::prost::alloc::string::String>,
3224    #[prost(string, optional, tag = "154452")]
3225    pub if_touched_exchange: ::core::option::Option<::prost::alloc::string::String>,
3226    #[prost(enumeration = "request_new_order::Condition", optional, tag = "154453")]
3227    pub if_touched_condition: ::core::option::Option<i32>,
3228    #[prost(
3229        enumeration = "request_new_order::PriceField",
3230        optional,
3231        tag = "154454"
3232    )]
3233    pub if_touched_price_field: ::core::option::Option<i32>,
3234    #[prost(double, optional, tag = "153632")]
3235    pub if_touched_price: ::core::option::Option<f64>,
3236}
3237/// Nested message and enum types in `RequestNewOrder`.
3238pub mod request_new_order {
3239    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3240    #[repr(i32)]
3241    pub enum TransactionType {
3242        Buy = 1,
3243        Sell = 2,
3244    }
3245    impl TransactionType {
3246        /// String value of the enum field names used in the ProtoBuf definition.
3247        ///
3248        /// The values are not transformed in any way and thus are considered stable
3249        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3250        pub fn as_str_name(&self) -> &'static str {
3251            match self {
3252                Self::Buy => "BUY",
3253                Self::Sell => "SELL",
3254            }
3255        }
3256        /// Creates an enum from field names used in the ProtoBuf definition.
3257        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3258            match value {
3259                "BUY" => Some(Self::Buy),
3260                "SELL" => Some(Self::Sell),
3261                _ => None,
3262            }
3263        }
3264    }
3265    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3266    #[repr(i32)]
3267    pub enum OrderPlacement {
3268        Manual = 1,
3269        Auto = 2,
3270    }
3271    impl OrderPlacement {
3272        /// String value of the enum field names used in the ProtoBuf definition.
3273        ///
3274        /// The values are not transformed in any way and thus are considered stable
3275        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3276        pub fn as_str_name(&self) -> &'static str {
3277            match self {
3278                Self::Manual => "MANUAL",
3279                Self::Auto => "AUTO",
3280            }
3281        }
3282        /// Creates an enum from field names used in the ProtoBuf definition.
3283        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3284            match value {
3285                "MANUAL" => Some(Self::Manual),
3286                "AUTO" => Some(Self::Auto),
3287                _ => None,
3288            }
3289        }
3290    }
3291    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3292    #[repr(i32)]
3293    pub enum Duration {
3294        Day = 1,
3295        Gtc = 2,
3296        Ioc = 3,
3297        Fok = 4,
3298    }
3299    impl Duration {
3300        /// String value of the enum field names used in the ProtoBuf definition.
3301        ///
3302        /// The values are not transformed in any way and thus are considered stable
3303        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3304        pub fn as_str_name(&self) -> &'static str {
3305            match self {
3306                Self::Day => "DAY",
3307                Self::Gtc => "GTC",
3308                Self::Ioc => "IOC",
3309                Self::Fok => "FOK",
3310            }
3311        }
3312        /// Creates an enum from field names used in the ProtoBuf definition.
3313        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3314            match value {
3315                "DAY" => Some(Self::Day),
3316                "GTC" => Some(Self::Gtc),
3317                "IOC" => Some(Self::Ioc),
3318                "FOK" => Some(Self::Fok),
3319                _ => None,
3320            }
3321        }
3322    }
3323    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3324    #[repr(i32)]
3325    pub enum PriceType {
3326        Limit = 1,
3327        Market = 2,
3328        StopLimit = 3,
3329        StopMarket = 4,
3330        MarketIfTouched = 5,
3331        LimitIfTouched = 6,
3332    }
3333    impl PriceType {
3334        /// String value of the enum field names used in the ProtoBuf definition.
3335        ///
3336        /// The values are not transformed in any way and thus are considered stable
3337        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3338        pub fn as_str_name(&self) -> &'static str {
3339            match self {
3340                Self::Limit => "LIMIT",
3341                Self::Market => "MARKET",
3342                Self::StopLimit => "STOP_LIMIT",
3343                Self::StopMarket => "STOP_MARKET",
3344                Self::MarketIfTouched => "MARKET_IF_TOUCHED",
3345                Self::LimitIfTouched => "LIMIT_IF_TOUCHED",
3346            }
3347        }
3348        /// Creates an enum from field names used in the ProtoBuf definition.
3349        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3350            match value {
3351                "LIMIT" => Some(Self::Limit),
3352                "MARKET" => Some(Self::Market),
3353                "STOP_LIMIT" => Some(Self::StopLimit),
3354                "STOP_MARKET" => Some(Self::StopMarket),
3355                "MARKET_IF_TOUCHED" => Some(Self::MarketIfTouched),
3356                "LIMIT_IF_TOUCHED" => Some(Self::LimitIfTouched),
3357                _ => None,
3358            }
3359        }
3360    }
3361    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3362    #[repr(i32)]
3363    pub enum PriceField {
3364        BidPrice = 1,
3365        OfferPrice = 2,
3366        TradePrice = 3,
3367        LeanPrice = 4,
3368    }
3369    impl PriceField {
3370        /// String value of the enum field names used in the ProtoBuf definition.
3371        ///
3372        /// The values are not transformed in any way and thus are considered stable
3373        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3374        pub fn as_str_name(&self) -> &'static str {
3375            match self {
3376                Self::BidPrice => "BID_PRICE",
3377                Self::OfferPrice => "OFFER_PRICE",
3378                Self::TradePrice => "TRADE_PRICE",
3379                Self::LeanPrice => "LEAN_PRICE",
3380            }
3381        }
3382        /// Creates an enum from field names used in the ProtoBuf definition.
3383        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3384            match value {
3385                "BID_PRICE" => Some(Self::BidPrice),
3386                "OFFER_PRICE" => Some(Self::OfferPrice),
3387                "TRADE_PRICE" => Some(Self::TradePrice),
3388                "LEAN_PRICE" => Some(Self::LeanPrice),
3389                _ => None,
3390            }
3391        }
3392    }
3393    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3394    #[repr(i32)]
3395    pub enum Condition {
3396        EqualTo = 1,
3397        NotEqualTo = 2,
3398        GreaterThan = 3,
3399        GreaterThanEqualTo = 4,
3400        LesserThan = 5,
3401        LesserThanEqualTo = 6,
3402    }
3403    impl Condition {
3404        /// String value of the enum field names used in the ProtoBuf definition.
3405        ///
3406        /// The values are not transformed in any way and thus are considered stable
3407        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3408        pub fn as_str_name(&self) -> &'static str {
3409            match self {
3410                Self::EqualTo => "EQUAL_TO",
3411                Self::NotEqualTo => "NOT_EQUAL_TO",
3412                Self::GreaterThan => "GREATER_THAN",
3413                Self::GreaterThanEqualTo => "GREATER_THAN_EQUAL_TO",
3414                Self::LesserThan => "LESSER_THAN",
3415                Self::LesserThanEqualTo => "LESSER_THAN_EQUAL_TO",
3416            }
3417        }
3418        /// Creates an enum from field names used in the ProtoBuf definition.
3419        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3420            match value {
3421                "EQUAL_TO" => Some(Self::EqualTo),
3422                "NOT_EQUAL_TO" => Some(Self::NotEqualTo),
3423                "GREATER_THAN" => Some(Self::GreaterThan),
3424                "GREATER_THAN_EQUAL_TO" => Some(Self::GreaterThanEqualTo),
3425                "LESSER_THAN" => Some(Self::LesserThan),
3426                "LESSER_THAN_EQUAL_TO" => Some(Self::LesserThanEqualTo),
3427                _ => None,
3428            }
3429        }
3430    }
3431}
3432/// PB_OFFSET = 100000, is the offset added for each MNM field id
3433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3434pub struct ResponseNewOrder {
3435    /// PB_OFFSET + MNM_TEMPLATE_ID
3436    #[prost(int32, required, tag = "154467")]
3437    pub template_id: i32,
3438    /// PB_OFFSET + MNM_USER_MSG
3439    #[prost(string, repeated, tag = "132760")]
3440    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3441    /// PB_OFFSET + MNM_USER_ORIGIN
3442    #[prost(string, optional, tag = "154119")]
3443    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
3444    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
3445    #[prost(string, repeated, tag = "132764")]
3446    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3447    /// PB_OFFSET + MNM_RESPONSE_CODE
3448    #[prost(string, repeated, tag = "132766")]
3449    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3450    /// PB_OFFSET + MNM_BASKET_ID
3451    #[prost(string, optional, tag = "110300")]
3452    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3453    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
3454    #[prost(int32, optional, tag = "150100")]
3455    pub ssboe: ::core::option::Option<i32>,
3456    /// PB_OFFSET + MNM_USECS
3457    #[prost(int32, optional, tag = "150101")]
3458    pub usecs: ::core::option::Option<i32>,
3459}
3460#[derive(Clone, PartialEq, ::prost::Message)]
3461pub struct RequestModifyOrder {
3462    #[prost(int32, required, tag = "154467")]
3463    pub template_id: i32,
3464    #[prost(string, repeated, tag = "132760")]
3465    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3466    #[prost(string, optional, tag = "154629")]
3467    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
3468    #[prost(string, optional, tag = "154013")]
3469    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3470    #[prost(string, optional, tag = "154014")]
3471    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3472    #[prost(string, optional, tag = "154008")]
3473    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3474    #[prost(string, optional, tag = "110300")]
3475    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3476    #[prost(string, optional, tag = "110100")]
3477    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
3478    #[prost(string, optional, tag = "110101")]
3479    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
3480    #[prost(int32, optional, tag = "112004")]
3481    pub quantity: ::core::option::Option<i32>,
3482    #[prost(double, optional, tag = "110306")]
3483    pub price: ::core::option::Option<f64>,
3484    #[prost(double, optional, tag = "149247")]
3485    pub trigger_price: ::core::option::Option<f64>,
3486    #[prost(
3487        enumeration = "request_modify_order::PriceType",
3488        optional,
3489        tag = "112008"
3490    )]
3491    pub price_type: ::core::option::Option<i32>,
3492    #[prost(
3493        enumeration = "request_modify_order::OrderPlacement",
3494        optional,
3495        tag = "154710"
3496    )]
3497    pub manual_or_auto: ::core::option::Option<i32>,
3498    #[prost(bool, optional, tag = "157063")]
3499    pub trailing_stop: ::core::option::Option<bool>,
3500    #[prost(int32, optional, tag = "157064")]
3501    pub trail_by_ticks: ::core::option::Option<i32>,
3502    #[prost(string, optional, tag = "154451")]
3503    pub if_touched_symbol: ::core::option::Option<::prost::alloc::string::String>,
3504    #[prost(string, optional, tag = "154452")]
3505    pub if_touched_exchange: ::core::option::Option<::prost::alloc::string::String>,
3506    #[prost(
3507        enumeration = "request_modify_order::Condition",
3508        optional,
3509        tag = "154453"
3510    )]
3511    pub if_touched_condition: ::core::option::Option<i32>,
3512    #[prost(
3513        enumeration = "request_modify_order::PriceField",
3514        optional,
3515        tag = "154454"
3516    )]
3517    pub if_touched_price_field: ::core::option::Option<i32>,
3518    #[prost(double, optional, tag = "153632")]
3519    pub if_touched_price: ::core::option::Option<f64>,
3520}
3521/// Nested message and enum types in `RequestModifyOrder`.
3522pub mod request_modify_order {
3523    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3524    #[repr(i32)]
3525    pub enum PriceType {
3526        Limit = 1,
3527        Market = 2,
3528        StopLimit = 3,
3529        StopMarket = 4,
3530        MarketIfTouched = 5,
3531        LimitIfTouched = 6,
3532    }
3533    impl PriceType {
3534        /// String value of the enum field names used in the ProtoBuf definition.
3535        ///
3536        /// The values are not transformed in any way and thus are considered stable
3537        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3538        pub fn as_str_name(&self) -> &'static str {
3539            match self {
3540                Self::Limit => "LIMIT",
3541                Self::Market => "MARKET",
3542                Self::StopLimit => "STOP_LIMIT",
3543                Self::StopMarket => "STOP_MARKET",
3544                Self::MarketIfTouched => "MARKET_IF_TOUCHED",
3545                Self::LimitIfTouched => "LIMIT_IF_TOUCHED",
3546            }
3547        }
3548        /// Creates an enum from field names used in the ProtoBuf definition.
3549        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3550            match value {
3551                "LIMIT" => Some(Self::Limit),
3552                "MARKET" => Some(Self::Market),
3553                "STOP_LIMIT" => Some(Self::StopLimit),
3554                "STOP_MARKET" => Some(Self::StopMarket),
3555                "MARKET_IF_TOUCHED" => Some(Self::MarketIfTouched),
3556                "LIMIT_IF_TOUCHED" => Some(Self::LimitIfTouched),
3557                _ => None,
3558            }
3559        }
3560    }
3561    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3562    #[repr(i32)]
3563    pub enum PriceField {
3564        BidPrice = 1,
3565        OfferPrice = 2,
3566        TradePrice = 3,
3567        LeanPrice = 4,
3568    }
3569    impl PriceField {
3570        /// String value of the enum field names used in the ProtoBuf definition.
3571        ///
3572        /// The values are not transformed in any way and thus are considered stable
3573        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3574        pub fn as_str_name(&self) -> &'static str {
3575            match self {
3576                Self::BidPrice => "BID_PRICE",
3577                Self::OfferPrice => "OFFER_PRICE",
3578                Self::TradePrice => "TRADE_PRICE",
3579                Self::LeanPrice => "LEAN_PRICE",
3580            }
3581        }
3582        /// Creates an enum from field names used in the ProtoBuf definition.
3583        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3584            match value {
3585                "BID_PRICE" => Some(Self::BidPrice),
3586                "OFFER_PRICE" => Some(Self::OfferPrice),
3587                "TRADE_PRICE" => Some(Self::TradePrice),
3588                "LEAN_PRICE" => Some(Self::LeanPrice),
3589                _ => None,
3590            }
3591        }
3592    }
3593    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3594    #[repr(i32)]
3595    pub enum Condition {
3596        EqualTo = 1,
3597        NotEqualTo = 2,
3598        GreaterThan = 3,
3599        GreaterThanEqualTo = 4,
3600        LesserThan = 5,
3601        LesserThanEqualTo = 6,
3602    }
3603    impl Condition {
3604        /// String value of the enum field names used in the ProtoBuf definition.
3605        ///
3606        /// The values are not transformed in any way and thus are considered stable
3607        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3608        pub fn as_str_name(&self) -> &'static str {
3609            match self {
3610                Self::EqualTo => "EQUAL_TO",
3611                Self::NotEqualTo => "NOT_EQUAL_TO",
3612                Self::GreaterThan => "GREATER_THAN",
3613                Self::GreaterThanEqualTo => "GREATER_THAN_EQUAL_TO",
3614                Self::LesserThan => "LESSER_THAN",
3615                Self::LesserThanEqualTo => "LESSER_THAN_EQUAL_TO",
3616            }
3617        }
3618        /// Creates an enum from field names used in the ProtoBuf definition.
3619        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3620            match value {
3621                "EQUAL_TO" => Some(Self::EqualTo),
3622                "NOT_EQUAL_TO" => Some(Self::NotEqualTo),
3623                "GREATER_THAN" => Some(Self::GreaterThan),
3624                "GREATER_THAN_EQUAL_TO" => Some(Self::GreaterThanEqualTo),
3625                "LESSER_THAN" => Some(Self::LesserThan),
3626                "LESSER_THAN_EQUAL_TO" => Some(Self::LesserThanEqualTo),
3627                _ => None,
3628            }
3629        }
3630    }
3631    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3632    #[repr(i32)]
3633    pub enum OrderPlacement {
3634        Manual = 1,
3635        Auto = 2,
3636    }
3637    impl OrderPlacement {
3638        /// String value of the enum field names used in the ProtoBuf definition.
3639        ///
3640        /// The values are not transformed in any way and thus are considered stable
3641        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3642        pub fn as_str_name(&self) -> &'static str {
3643            match self {
3644                Self::Manual => "MANUAL",
3645                Self::Auto => "AUTO",
3646            }
3647        }
3648        /// Creates an enum from field names used in the ProtoBuf definition.
3649        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3650            match value {
3651                "MANUAL" => Some(Self::Manual),
3652                "AUTO" => Some(Self::Auto),
3653                _ => None,
3654            }
3655        }
3656    }
3657}
3658/// PB_OFFSET = 100000, is the offset added for each MNM field id
3659#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3660pub struct ResponseModifyOrder {
3661    /// PB_OFFSET + MNM_TEMPLATE_ID
3662    #[prost(int32, required, tag = "154467")]
3663    pub template_id: i32,
3664    /// PB_OFFSET + MNM_USER_MSG
3665    #[prost(string, repeated, tag = "132760")]
3666    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3667    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
3668    #[prost(string, repeated, tag = "132764")]
3669    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3670    /// PB_OFFSET + MNM_RESPONSE_CODE
3671    #[prost(string, repeated, tag = "132766")]
3672    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3673    /// PB_OFFSET + MNM_BASKET_ID
3674    #[prost(string, optional, tag = "110300")]
3675    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3676    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
3677    #[prost(int32, optional, tag = "150100")]
3678    pub ssboe: ::core::option::Option<i32>,
3679    /// PB_OFFSET + MNM_USECS
3680    #[prost(int32, optional, tag = "150101")]
3681    pub usecs: ::core::option::Option<i32>,
3682}
3683/// PB_OFFSET = 100000, is the offset added for each MNM field id
3684#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3685pub struct RequestModifyOrderReferenceData {
3686    /// PB_OFFSET + MNM_TEMPLATE_ID
3687    #[prost(int32, required, tag = "154467")]
3688    pub template_id: i32,
3689    /// PB_OFFSET + MNM_USER_MSG
3690    #[prost(string, repeated, tag = "132760")]
3691    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3692    /// PB_OFFSET + MNM_USER_ORIGIN
3693    #[prost(string, optional, tag = "154119")]
3694    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
3695    /// PB_OFFSET + MNM_FCM_ID
3696    #[prost(string, optional, tag = "154013")]
3697    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3698    /// PB_OFFSET + MNM_IB_ID
3699    #[prost(string, optional, tag = "154014")]
3700    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3701    /// PB_OFFSET + MNM_ACCOUNT_ID
3702    #[prost(string, optional, tag = "154008")]
3703    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3704    /// PB_OFFSET + MNM_BASKET_ID
3705    #[prost(string, optional, tag = "110300")]
3706    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3707}
3708/// PB_OFFSET = 100000, is the offset added for each MNM field id
3709#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3710pub struct ResponseModifyOrderReferenceData {
3711    /// PB_OFFSET + MNM_TEMPLATE_ID
3712    #[prost(int32, required, tag = "154467")]
3713    pub template_id: i32,
3714    /// PB_OFFSET + MNM_USER_MSG
3715    #[prost(string, repeated, tag = "132760")]
3716    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3717    /// PB_OFFSET + MNM_RESPONSE_CODE
3718    #[prost(string, repeated, tag = "132766")]
3719    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3720}
3721#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3722pub struct RequestCancelOrder {
3723    #[prost(int32, required, tag = "154467")]
3724    pub template_id: i32,
3725    #[prost(string, repeated, tag = "132760")]
3726    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3727    #[prost(string, optional, tag = "154629")]
3728    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
3729    #[prost(string, optional, tag = "154013")]
3730    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3731    #[prost(string, optional, tag = "154014")]
3732    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3733    #[prost(string, optional, tag = "154008")]
3734    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3735    #[prost(string, optional, tag = "110300")]
3736    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3737    #[prost(
3738        enumeration = "request_cancel_order::OrderPlacement",
3739        optional,
3740        tag = "154710"
3741    )]
3742    pub manual_or_auto: ::core::option::Option<i32>,
3743}
3744/// Nested message and enum types in `RequestCancelOrder`.
3745pub mod request_cancel_order {
3746    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3747    #[repr(i32)]
3748    pub enum OrderPlacement {
3749        Manual = 1,
3750        Auto = 2,
3751    }
3752    impl OrderPlacement {
3753        /// String value of the enum field names used in the ProtoBuf definition.
3754        ///
3755        /// The values are not transformed in any way and thus are considered stable
3756        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3757        pub fn as_str_name(&self) -> &'static str {
3758            match self {
3759                Self::Manual => "MANUAL",
3760                Self::Auto => "AUTO",
3761            }
3762        }
3763        /// Creates an enum from field names used in the ProtoBuf definition.
3764        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3765            match value {
3766                "MANUAL" => Some(Self::Manual),
3767                "AUTO" => Some(Self::Auto),
3768                _ => None,
3769            }
3770        }
3771    }
3772}
3773/// PB_OFFSET = 100000, is the offset added for each MNM field id
3774#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3775pub struct ResponseCancelOrder {
3776    /// PB_OFFSET + MNM_TEMPLATE_ID
3777    #[prost(int32, required, tag = "154467")]
3778    pub template_id: i32,
3779    /// PB_OFFSET + MNM_USER_MSG
3780    #[prost(string, repeated, tag = "132760")]
3781    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3782    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
3783    #[prost(string, repeated, tag = "132764")]
3784    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3785    /// PB_OFFSET + MNM_RESPONSE_CODE
3786    #[prost(string, repeated, tag = "132766")]
3787    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3788    /// PB_OFFSET + MNM_BASKET_ID
3789    #[prost(string, optional, tag = "110300")]
3790    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3791    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
3792    #[prost(int32, optional, tag = "150100")]
3793    pub ssboe: ::core::option::Option<i32>,
3794    /// PB_OFFSET + MNM_USECS
3795    #[prost(int32, optional, tag = "150101")]
3796    pub usecs: ::core::option::Option<i32>,
3797}
3798/// PB_OFFSET = 100000, is the offset added for each MNM field id
3799#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3800pub struct RequestCancelAllOrders {
3801    /// PB_OFFSET + MNM_TEMPLATE_ID
3802    #[prost(int32, required, tag = "154467")]
3803    pub template_id: i32,
3804    /// PB_OFFSET + MNM_USER_MSG
3805    #[prost(string, repeated, tag = "132760")]
3806    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3807    /// PB_OFFSET + MNM_FCM_ID
3808    #[prost(string, optional, tag = "154013")]
3809    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3810    /// PB_OFFSET + MNM_IB_ID
3811    #[prost(string, optional, tag = "154014")]
3812    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3813    /// PB_OFFSET + MNM_ACCOUNT_ID
3814    #[prost(string, optional, tag = "154008")]
3815    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3816    /// PB_OFFSET + MNM_USER_TYPE
3817    #[prost(
3818        enumeration = "request_cancel_all_orders::UserType",
3819        optional,
3820        tag = "154036"
3821    )]
3822    pub user_type: ::core::option::Option<i32>,
3823    /// PB_OFFSET + MNM_MANUAL_OR_AUTO
3824    #[prost(
3825        enumeration = "request_cancel_all_orders::OrderPlacement",
3826        optional,
3827        tag = "154710"
3828    )]
3829    pub manual_or_auto: ::core::option::Option<i32>,
3830}
3831/// Nested message and enum types in `RequestCancelAllOrders`.
3832pub mod request_cancel_all_orders {
3833    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3834    #[repr(i32)]
3835    pub enum OrderPlacement {
3836        Manual = 1,
3837        Auto = 2,
3838    }
3839    impl OrderPlacement {
3840        /// String value of the enum field names used in the ProtoBuf definition.
3841        ///
3842        /// The values are not transformed in any way and thus are considered stable
3843        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3844        pub fn as_str_name(&self) -> &'static str {
3845            match self {
3846                Self::Manual => "MANUAL",
3847                Self::Auto => "AUTO",
3848            }
3849        }
3850        /// Creates an enum from field names used in the ProtoBuf definition.
3851        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3852            match value {
3853                "MANUAL" => Some(Self::Manual),
3854                "AUTO" => Some(Self::Auto),
3855                _ => None,
3856            }
3857        }
3858    }
3859    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3860    #[repr(i32)]
3861    pub enum UserType {
3862        Admin = 0,
3863        Fcm = 1,
3864        Ib = 2,
3865        Trader = 3,
3866    }
3867    impl UserType {
3868        /// String value of the enum field names used in the ProtoBuf definition.
3869        ///
3870        /// The values are not transformed in any way and thus are considered stable
3871        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3872        pub fn as_str_name(&self) -> &'static str {
3873            match self {
3874                Self::Admin => "USER_TYPE_ADMIN",
3875                Self::Fcm => "USER_TYPE_FCM",
3876                Self::Ib => "USER_TYPE_IB",
3877                Self::Trader => "USER_TYPE_TRADER",
3878            }
3879        }
3880        /// Creates an enum from field names used in the ProtoBuf definition.
3881        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3882            match value {
3883                "USER_TYPE_ADMIN" => Some(Self::Admin),
3884                "USER_TYPE_FCM" => Some(Self::Fcm),
3885                "USER_TYPE_IB" => Some(Self::Ib),
3886                "USER_TYPE_TRADER" => Some(Self::Trader),
3887                _ => None,
3888            }
3889        }
3890    }
3891}
3892/// PB_OFFSET = 100000, is the offset added for each MNM field id
3893#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3894pub struct ResponseCancelAllOrders {
3895    /// PB_OFFSET + MNM_TEMPLATE_ID
3896    #[prost(int32, required, tag = "154467")]
3897    pub template_id: i32,
3898    /// PB_OFFSET + MNM_USER_MSG
3899    #[prost(string, repeated, tag = "132760")]
3900    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3901    /// PB_OFFSET + MNM_RESPONSE_CODE
3902    #[prost(string, repeated, tag = "132766")]
3903    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3904}
3905/// PB_OFFSET = 100000, is the offset added for each MNM field id
3906#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3907pub struct RequestShowOrders {
3908    /// PB_OFFSET + MNM_TEMPLATE_ID
3909    #[prost(int32, required, tag = "154467")]
3910    pub template_id: i32,
3911    /// PB_OFFSET + MNM_USER_MSG
3912    #[prost(string, repeated, tag = "132760")]
3913    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3914    /// PB_OFFSET + MNM_FCM_ID
3915    #[prost(string, optional, tag = "154013")]
3916    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3917    /// PB_OFFSET + MNM_IB_ID
3918    #[prost(string, optional, tag = "154014")]
3919    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3920    /// PB_OFFSET + MNM_ACCOUNT_ID
3921    #[prost(string, optional, tag = "154008")]
3922    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3923}
3924/// PB_OFFSET = 100000, is the offset added for each MNM field id
3925#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3926pub struct ResponseShowOrders {
3927    /// PB_OFFSET + MNM_TEMPLATE_ID
3928    #[prost(int32, required, tag = "154467")]
3929    pub template_id: i32,
3930    /// PB_OFFSET + MNM_USER_MSG
3931    #[prost(string, repeated, tag = "132760")]
3932    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3933    /// PB_OFFSET + MNM_RESPONSE_CODE
3934    #[prost(string, repeated, tag = "132766")]
3935    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3936}
3937/// PB_OFFSET = 100000, is the offset added for each MNM field id
3938#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3939pub struct RequestShowOrderHistory {
3940    /// PB_OFFSET + MNM_TEMPLATE_ID
3941    #[prost(int32, required, tag = "154467")]
3942    pub template_id: i32,
3943    /// PB_OFFSET + MNM_USER_MSG
3944    #[prost(string, repeated, tag = "132760")]
3945    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3946    /// PB_OFFSET + MNM_FCM_ID
3947    #[prost(string, optional, tag = "154013")]
3948    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3949    /// PB_OFFSET + MNM_IB_ID
3950    #[prost(string, optional, tag = "154014")]
3951    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3952    /// PB_OFFSET + MNM_ACCOUNT_ID
3953    #[prost(string, optional, tag = "154008")]
3954    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3955    /// PB_OFFSET + MNM_BASKET_ID
3956    #[prost(string, optional, tag = "110300")]
3957    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
3958}
3959/// PB_OFFSET = 100000, is the offset added for each MNM field id
3960#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3961pub struct ResponseShowOrderHistory {
3962    /// PB_OFFSET + MNM_TEMPLATE_ID
3963    #[prost(int32, required, tag = "154467")]
3964    pub template_id: i32,
3965    /// PB_OFFSET + MNM_USER_MSG
3966    #[prost(string, repeated, tag = "132760")]
3967    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3968    /// PB_OFFSET + MNM_RESPONSE_CODE
3969    #[prost(string, repeated, tag = "132766")]
3970    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3971}
3972/// PB_OFFSET = 100000, is the offset added for each MNM field id
3973#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3974pub struct RequestShowOrderHistorySummary {
3975    /// PB_OFFSET + MNM_TEMPLATE_ID
3976    #[prost(int32, required, tag = "154467")]
3977    pub template_id: i32,
3978    /// PB_OFFSET + MNM_USER_MSG
3979    #[prost(string, repeated, tag = "132760")]
3980    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3981    /// PB_OFFSET + MNM_FCM_ID
3982    #[prost(string, optional, tag = "154013")]
3983    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
3984    /// PB_OFFSET + MNM_IB_ID
3985    #[prost(string, optional, tag = "154014")]
3986    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
3987    /// PB_OFFSET + MNM_ACCOUNT_ID
3988    #[prost(string, optional, tag = "154008")]
3989    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
3990    /// PB_OFFSET + MNM_DATE
3991    #[prost(string, optional, tag = "110615")]
3992    pub date: ::core::option::Option<::prost::alloc::string::String>,
3993}
3994/// PB_OFFSET = 100000, is the offset added for each MNM field id
3995#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3996pub struct ResponseShowOrderHistorySummary {
3997    /// PB_OFFSET + MNM_TEMPLATE_ID
3998    #[prost(int32, required, tag = "154467")]
3999    pub template_id: i32,
4000    /// PB_OFFSET + MNM_USER_MSG
4001    #[prost(string, repeated, tag = "132760")]
4002    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4003    /// PB_OFFSET + MNM_RESPONSE_CODE
4004    #[prost(string, repeated, tag = "132766")]
4005    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4006}
4007/// PB_OFFSET = 100000, is the offset added for each MNM field id
4008#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4009pub struct RequestShowOrderHistoryDetail {
4010    /// PB_OFFSET + MNM_TEMPLATE_ID
4011    #[prost(int32, required, tag = "154467")]
4012    pub template_id: i32,
4013    /// PB_OFFSET + MNM_USER_MSG
4014    #[prost(string, repeated, tag = "132760")]
4015    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4016    /// PB_OFFSET + MNM_FCM_ID
4017    #[prost(string, optional, tag = "154013")]
4018    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4019    /// PB_OFFSET + MNM_IB_ID
4020    #[prost(string, optional, tag = "154014")]
4021    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4022    /// PB_OFFSET + MNM_ACCOUNT_ID
4023    #[prost(string, optional, tag = "154008")]
4024    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4025    /// PB_OFFSET + MNM_BASKET_ID
4026    #[prost(string, optional, tag = "110300")]
4027    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4028    /// PB_OFFSET + MNM_DATE
4029    #[prost(string, optional, tag = "110615")]
4030    pub date: ::core::option::Option<::prost::alloc::string::String>,
4031}
4032/// PB_OFFSET = 100000, is the offset added for each MNM field id
4033#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4034pub struct ResponseShowOrderHistoryDetail {
4035    /// PB_OFFSET + MNM_TEMPLATE_ID
4036    #[prost(int32, required, tag = "154467")]
4037    pub template_id: i32,
4038    /// PB_OFFSET + MNM_USER_MSG
4039    #[prost(string, repeated, tag = "132760")]
4040    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4041    /// PB_OFFSET + MNM_RESPONSE_CODE
4042    #[prost(string, repeated, tag = "132766")]
4043    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4044}
4045/// PB_OFFSET = 100000 , is the offset added for each MNM field id
4046#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4047pub struct RequestShowOrderHistoryDates {
4048    /// PB_OFFSET + MNM_TEMPLATE_ID
4049    #[prost(int32, required, tag = "154467")]
4050    pub template_id: i32,
4051    /// PB_OFFSET + MNM_USER_MSG
4052    #[prost(string, repeated, tag = "132760")]
4053    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4054}
4055/// PB_OFFSET = 100000, is the offset added for each MNM field id
4056#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4057pub struct ResponseShowOrderHistoryDates {
4058    /// PB_OFFSET + MNM_TEMPLATE_ID
4059    #[prost(int32, required, tag = "154467")]
4060    pub template_id: i32,
4061    /// PB_OFFSET + MNM_USER_MSG
4062    #[prost(string, repeated, tag = "132760")]
4063    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4064    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4065    #[prost(string, repeated, tag = "132764")]
4066    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4067    /// PB_OFFSET + MNM_RESPONSE_CODE
4068    #[prost(string, repeated, tag = "132766")]
4069    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4070    /// PB_OFFSET + MNM_DATE
4071    #[prost(string, repeated, tag = "110615")]
4072    pub date: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4073}
4074#[derive(Clone, PartialEq, ::prost::Message)]
4075pub struct RequestOcoOrder {
4076    #[prost(int32, required, tag = "154467")]
4077    pub template_id: i32,
4078    #[prost(string, repeated, tag = "132760")]
4079    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4080    #[prost(string, repeated, tag = "154119")]
4081    pub user_tag: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4082    #[prost(string, repeated, tag = "154629")]
4083    pub window_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4084    #[prost(string, optional, tag = "154013")]
4085    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4086    #[prost(string, optional, tag = "154014")]
4087    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4088    #[prost(string, optional, tag = "154008")]
4089    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4090    #[prost(string, repeated, tag = "110100")]
4091    pub symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4092    #[prost(string, repeated, tag = "110101")]
4093    pub exchange: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4094    #[prost(int32, repeated, packed = "false", tag = "112004")]
4095    pub quantity: ::prost::alloc::vec::Vec<i32>,
4096    #[prost(double, repeated, packed = "false", tag = "110306")]
4097    pub price: ::prost::alloc::vec::Vec<f64>,
4098    #[prost(double, repeated, packed = "false", tag = "149247")]
4099    pub trigger_price: ::prost::alloc::vec::Vec<f64>,
4100    #[prost(
4101        enumeration = "request_oco_order::TransactionType",
4102        repeated,
4103        packed = "false",
4104        tag = "112003"
4105    )]
4106    pub transaction_type: ::prost::alloc::vec::Vec<i32>,
4107    #[prost(
4108        enumeration = "request_oco_order::Duration",
4109        repeated,
4110        packed = "false",
4111        tag = "112005"
4112    )]
4113    pub duration: ::prost::alloc::vec::Vec<i32>,
4114    #[prost(
4115        enumeration = "request_oco_order::PriceType",
4116        repeated,
4117        packed = "false",
4118        tag = "112008"
4119    )]
4120    pub price_type: ::prost::alloc::vec::Vec<i32>,
4121    #[prost(string, repeated, tag = "112016")]
4122    pub trade_route: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4123    #[prost(
4124        enumeration = "request_oco_order::OrderPlacement",
4125        repeated,
4126        packed = "false",
4127        tag = "154710"
4128    )]
4129    pub manual_or_auto: ::prost::alloc::vec::Vec<i32>,
4130    #[prost(bool, repeated, packed = "false", tag = "157063")]
4131    pub trailing_stop: ::prost::alloc::vec::Vec<bool>,
4132    #[prost(int32, repeated, packed = "false", tag = "157064")]
4133    pub trail_by_ticks: ::prost::alloc::vec::Vec<i32>,
4134    #[prost(int32, repeated, packed = "false", tag = "157065")]
4135    pub trail_by_price_id: ::prost::alloc::vec::Vec<i32>,
4136    #[prost(int32, optional, tag = "157085")]
4137    pub cancel_at_ssboe: ::core::option::Option<i32>,
4138    #[prost(int32, optional, tag = "157086")]
4139    pub cancel_at_usecs: ::core::option::Option<i32>,
4140    #[prost(int32, optional, tag = "154488")]
4141    pub cancel_after_secs: ::core::option::Option<i32>,
4142}
4143/// Nested message and enum types in `RequestOCOOrder`.
4144pub mod request_oco_order {
4145    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4146    #[repr(i32)]
4147    pub enum TransactionType {
4148        Buy = 1,
4149        Sell = 2,
4150    }
4151    impl TransactionType {
4152        /// String value of the enum field names used in the ProtoBuf definition.
4153        ///
4154        /// The values are not transformed in any way and thus are considered stable
4155        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4156        pub fn as_str_name(&self) -> &'static str {
4157            match self {
4158                Self::Buy => "BUY",
4159                Self::Sell => "SELL",
4160            }
4161        }
4162        /// Creates an enum from field names used in the ProtoBuf definition.
4163        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4164            match value {
4165                "BUY" => Some(Self::Buy),
4166                "SELL" => Some(Self::Sell),
4167                _ => None,
4168            }
4169        }
4170    }
4171    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4172    #[repr(i32)]
4173    pub enum Duration {
4174        Day = 1,
4175        Gtc = 2,
4176        Ioc = 3,
4177        Fok = 4,
4178    }
4179    impl Duration {
4180        /// String value of the enum field names used in the ProtoBuf definition.
4181        ///
4182        /// The values are not transformed in any way and thus are considered stable
4183        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4184        pub fn as_str_name(&self) -> &'static str {
4185            match self {
4186                Self::Day => "DAY",
4187                Self::Gtc => "GTC",
4188                Self::Ioc => "IOC",
4189                Self::Fok => "FOK",
4190            }
4191        }
4192        /// Creates an enum from field names used in the ProtoBuf definition.
4193        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4194            match value {
4195                "DAY" => Some(Self::Day),
4196                "GTC" => Some(Self::Gtc),
4197                "IOC" => Some(Self::Ioc),
4198                "FOK" => Some(Self::Fok),
4199                _ => None,
4200            }
4201        }
4202    }
4203    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4204    #[repr(i32)]
4205    pub enum PriceType {
4206        Limit = 1,
4207        Market = 2,
4208        StopLimit = 3,
4209        StopMarket = 4,
4210    }
4211    impl PriceType {
4212        /// String value of the enum field names used in the ProtoBuf definition.
4213        ///
4214        /// The values are not transformed in any way and thus are considered stable
4215        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4216        pub fn as_str_name(&self) -> &'static str {
4217            match self {
4218                Self::Limit => "LIMIT",
4219                Self::Market => "MARKET",
4220                Self::StopLimit => "STOP_LIMIT",
4221                Self::StopMarket => "STOP_MARKET",
4222            }
4223        }
4224        /// Creates an enum from field names used in the ProtoBuf definition.
4225        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4226            match value {
4227                "LIMIT" => Some(Self::Limit),
4228                "MARKET" => Some(Self::Market),
4229                "STOP_LIMIT" => Some(Self::StopLimit),
4230                "STOP_MARKET" => Some(Self::StopMarket),
4231                _ => None,
4232            }
4233        }
4234    }
4235    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4236    #[repr(i32)]
4237    pub enum OrderPlacement {
4238        Manual = 1,
4239        Auto = 2,
4240    }
4241    impl OrderPlacement {
4242        /// String value of the enum field names used in the ProtoBuf definition.
4243        ///
4244        /// The values are not transformed in any way and thus are considered stable
4245        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4246        pub fn as_str_name(&self) -> &'static str {
4247            match self {
4248                Self::Manual => "MANUAL",
4249                Self::Auto => "AUTO",
4250            }
4251        }
4252        /// Creates an enum from field names used in the ProtoBuf definition.
4253        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4254            match value {
4255                "MANUAL" => Some(Self::Manual),
4256                "AUTO" => Some(Self::Auto),
4257                _ => None,
4258            }
4259        }
4260    }
4261}
4262/// PB_OFFSET = 100000, is the offset added for each MNM field id
4263#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4264pub struct ResponseOcoOrder {
4265    /// PB_OFFSET + MNM_TEMPLATE_ID
4266    #[prost(int32, required, tag = "154467")]
4267    pub template_id: i32,
4268    /// PB_OFFSET + MNM_USER_MSG
4269    #[prost(string, repeated, tag = "132760")]
4270    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4271    /// PB_OFFSET + MNM_USER_ORIGIN
4272    #[prost(string, repeated, tag = "154119")]
4273    pub user_tag: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4274    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4275    #[prost(string, repeated, tag = "132764")]
4276    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4277    /// PB_OFFSET + MNM_RESPONSE_CODE
4278    #[prost(string, repeated, tag = "132766")]
4279    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4280    /// PB_OFFSET + MNM_BASKET_ID
4281    #[prost(string, repeated, tag = "110300")]
4282    pub basket_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4283    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
4284    #[prost(int32, repeated, packed = "false", tag = "150100")]
4285    pub ssboe: ::prost::alloc::vec::Vec<i32>,
4286    /// PB_OFFSET + MNM_USECS
4287    #[prost(int32, repeated, packed = "false", tag = "150101")]
4288    pub usecs: ::prost::alloc::vec::Vec<i32>,
4289}
4290#[derive(Clone, PartialEq, ::prost::Message)]
4291pub struct RequestBracketOrder {
4292    #[prost(int32, required, tag = "154467")]
4293    pub template_id: i32,
4294    #[prost(string, repeated, tag = "132760")]
4295    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4296    #[prost(string, optional, tag = "154119")]
4297    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
4298    #[prost(string, optional, tag = "154629")]
4299    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
4300    #[prost(string, optional, tag = "154013")]
4301    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4302    #[prost(string, optional, tag = "154014")]
4303    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4304    #[prost(string, optional, tag = "154008")]
4305    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4306    #[prost(string, optional, tag = "110100")]
4307    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
4308    #[prost(string, optional, tag = "110101")]
4309    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
4310    #[prost(int32, optional, tag = "112004")]
4311    pub quantity: ::core::option::Option<i32>,
4312    #[prost(double, optional, tag = "110306")]
4313    pub price: ::core::option::Option<f64>,
4314    #[prost(double, optional, tag = "149247")]
4315    pub trigger_price: ::core::option::Option<f64>,
4316    #[prost(
4317        enumeration = "request_bracket_order::TransactionType",
4318        optional,
4319        tag = "112003"
4320    )]
4321    pub transaction_type: ::core::option::Option<i32>,
4322    #[prost(
4323        enumeration = "request_bracket_order::Duration",
4324        optional,
4325        tag = "112005"
4326    )]
4327    pub duration: ::core::option::Option<i32>,
4328    #[prost(
4329        enumeration = "request_bracket_order::PriceType",
4330        optional,
4331        tag = "112008"
4332    )]
4333    pub price_type: ::core::option::Option<i32>,
4334    #[prost(string, optional, tag = "112016")]
4335    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
4336    #[prost(
4337        enumeration = "request_bracket_order::OrderPlacement",
4338        optional,
4339        tag = "154710"
4340    )]
4341    pub manual_or_auto: ::core::option::Option<i32>,
4342    #[prost(
4343        enumeration = "request_bracket_order::UserType",
4344        optional,
4345        tag = "154036"
4346    )]
4347    pub user_type: ::core::option::Option<i32>,
4348    #[prost(
4349        enumeration = "request_bracket_order::BracketType",
4350        optional,
4351        tag = "157087"
4352    )]
4353    pub bracket_type: ::core::option::Option<i32>,
4354    #[prost(int32, optional, tag = "157170")]
4355    pub break_even_ticks: ::core::option::Option<i32>,
4356    #[prost(int32, optional, tag = "157172")]
4357    pub break_even_trigger_ticks: ::core::option::Option<i32>,
4358    #[prost(int32, repeated, packed = "false", tag = "154457")]
4359    pub target_quantity: ::prost::alloc::vec::Vec<i32>,
4360    #[prost(int32, repeated, packed = "false", tag = "154456")]
4361    pub target_ticks: ::prost::alloc::vec::Vec<i32>,
4362    #[prost(int32, repeated, packed = "false", tag = "154459")]
4363    pub stop_quantity: ::prost::alloc::vec::Vec<i32>,
4364    #[prost(int32, repeated, packed = "false", tag = "154458")]
4365    pub stop_ticks: ::prost::alloc::vec::Vec<i32>,
4366    #[prost(int32, optional, tag = "157124")]
4367    pub trailing_stop_trigger_ticks: ::core::option::Option<i32>,
4368    #[prost(bool, optional, tag = "157062")]
4369    pub trailing_stop_by_last_trade_price: ::core::option::Option<bool>,
4370    #[prost(bool, optional, tag = "157151")]
4371    pub target_market_order_if_touched: ::core::option::Option<bool>,
4372    #[prost(bool, optional, tag = "154857")]
4373    pub stop_market_on_reject: ::core::option::Option<bool>,
4374    #[prost(int32, optional, tag = "157145")]
4375    pub target_market_at_ssboe: ::core::option::Option<i32>,
4376    #[prost(int32, optional, tag = "157146")]
4377    pub target_market_at_usecs: ::core::option::Option<i32>,
4378    #[prost(int32, optional, tag = "157147")]
4379    pub stop_market_at_ssboe: ::core::option::Option<i32>,
4380    #[prost(int32, optional, tag = "157148")]
4381    pub stop_market_at_usecs: ::core::option::Option<i32>,
4382    #[prost(int32, optional, tag = "157149")]
4383    pub target_market_order_after_secs: ::core::option::Option<i32>,
4384    #[prost(int32, optional, tag = "154487")]
4385    pub release_at_ssboe: ::core::option::Option<i32>,
4386    #[prost(int32, optional, tag = "154549")]
4387    pub release_at_usecs: ::core::option::Option<i32>,
4388    #[prost(int32, optional, tag = "157085")]
4389    pub cancel_at_ssboe: ::core::option::Option<i32>,
4390    #[prost(int32, optional, tag = "157086")]
4391    pub cancel_at_usecs: ::core::option::Option<i32>,
4392    #[prost(int32, optional, tag = "154488")]
4393    pub cancel_after_secs: ::core::option::Option<i32>,
4394    #[prost(string, optional, tag = "154451")]
4395    pub if_touched_symbol: ::core::option::Option<::prost::alloc::string::String>,
4396    #[prost(string, optional, tag = "154452")]
4397    pub if_touched_exchange: ::core::option::Option<::prost::alloc::string::String>,
4398    #[prost(
4399        enumeration = "request_bracket_order::Condition",
4400        optional,
4401        tag = "154453"
4402    )]
4403    pub if_touched_condition: ::core::option::Option<i32>,
4404    #[prost(
4405        enumeration = "request_bracket_order::PriceField",
4406        optional,
4407        tag = "154454"
4408    )]
4409    pub if_touched_price_field: ::core::option::Option<i32>,
4410    #[prost(double, optional, tag = "153632")]
4411    pub if_touched_price: ::core::option::Option<f64>,
4412}
4413/// Nested message and enum types in `RequestBracketOrder`.
4414pub mod request_bracket_order {
4415    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4416    #[repr(i32)]
4417    pub enum UserType {
4418        Admin = 0,
4419        Fcm = 1,
4420        Ib = 2,
4421        Trader = 3,
4422    }
4423    impl UserType {
4424        /// String value of the enum field names used in the ProtoBuf definition.
4425        ///
4426        /// The values are not transformed in any way and thus are considered stable
4427        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4428        pub fn as_str_name(&self) -> &'static str {
4429            match self {
4430                Self::Admin => "USER_TYPE_ADMIN",
4431                Self::Fcm => "USER_TYPE_FCM",
4432                Self::Ib => "USER_TYPE_IB",
4433                Self::Trader => "USER_TYPE_TRADER",
4434            }
4435        }
4436        /// Creates an enum from field names used in the ProtoBuf definition.
4437        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4438            match value {
4439                "USER_TYPE_ADMIN" => Some(Self::Admin),
4440                "USER_TYPE_FCM" => Some(Self::Fcm),
4441                "USER_TYPE_IB" => Some(Self::Ib),
4442                "USER_TYPE_TRADER" => Some(Self::Trader),
4443                _ => None,
4444            }
4445        }
4446    }
4447    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4448    #[repr(i32)]
4449    pub enum BracketType {
4450        StopOnly = 1,
4451        TargetOnly = 2,
4452        TargetAndStop = 3,
4453        StopOnlyStatic = 4,
4454        TargetOnlyStatic = 5,
4455        TargetAndStopStatic = 6,
4456    }
4457    impl BracketType {
4458        /// String value of the enum field names used in the ProtoBuf definition.
4459        ///
4460        /// The values are not transformed in any way and thus are considered stable
4461        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4462        pub fn as_str_name(&self) -> &'static str {
4463            match self {
4464                Self::StopOnly => "STOP_ONLY",
4465                Self::TargetOnly => "TARGET_ONLY",
4466                Self::TargetAndStop => "TARGET_AND_STOP",
4467                Self::StopOnlyStatic => "STOP_ONLY_STATIC",
4468                Self::TargetOnlyStatic => "TARGET_ONLY_STATIC",
4469                Self::TargetAndStopStatic => "TARGET_AND_STOP_STATIC",
4470            }
4471        }
4472        /// Creates an enum from field names used in the ProtoBuf definition.
4473        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4474            match value {
4475                "STOP_ONLY" => Some(Self::StopOnly),
4476                "TARGET_ONLY" => Some(Self::TargetOnly),
4477                "TARGET_AND_STOP" => Some(Self::TargetAndStop),
4478                "STOP_ONLY_STATIC" => Some(Self::StopOnlyStatic),
4479                "TARGET_ONLY_STATIC" => Some(Self::TargetOnlyStatic),
4480                "TARGET_AND_STOP_STATIC" => Some(Self::TargetAndStopStatic),
4481                _ => None,
4482            }
4483        }
4484    }
4485    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4486    #[repr(i32)]
4487    pub enum TransactionType {
4488        Buy = 1,
4489        Sell = 2,
4490    }
4491    impl TransactionType {
4492        /// String value of the enum field names used in the ProtoBuf definition.
4493        ///
4494        /// The values are not transformed in any way and thus are considered stable
4495        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4496        pub fn as_str_name(&self) -> &'static str {
4497            match self {
4498                Self::Buy => "BUY",
4499                Self::Sell => "SELL",
4500            }
4501        }
4502        /// Creates an enum from field names used in the ProtoBuf definition.
4503        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4504            match value {
4505                "BUY" => Some(Self::Buy),
4506                "SELL" => Some(Self::Sell),
4507                _ => None,
4508            }
4509        }
4510    }
4511    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4512    #[repr(i32)]
4513    pub enum Duration {
4514        Day = 1,
4515        Gtc = 2,
4516        Ioc = 3,
4517        Fok = 4,
4518    }
4519    impl Duration {
4520        /// String value of the enum field names used in the ProtoBuf definition.
4521        ///
4522        /// The values are not transformed in any way and thus are considered stable
4523        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4524        pub fn as_str_name(&self) -> &'static str {
4525            match self {
4526                Self::Day => "DAY",
4527                Self::Gtc => "GTC",
4528                Self::Ioc => "IOC",
4529                Self::Fok => "FOK",
4530            }
4531        }
4532        /// Creates an enum from field names used in the ProtoBuf definition.
4533        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4534            match value {
4535                "DAY" => Some(Self::Day),
4536                "GTC" => Some(Self::Gtc),
4537                "IOC" => Some(Self::Ioc),
4538                "FOK" => Some(Self::Fok),
4539                _ => None,
4540            }
4541        }
4542    }
4543    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4544    #[repr(i32)]
4545    pub enum PriceType {
4546        Limit = 1,
4547        Market = 2,
4548        StopLimit = 3,
4549        StopMarket = 4,
4550        MarketIfTouched = 5,
4551        LimitIfTouched = 6,
4552    }
4553    impl PriceType {
4554        /// String value of the enum field names used in the ProtoBuf definition.
4555        ///
4556        /// The values are not transformed in any way and thus are considered stable
4557        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4558        pub fn as_str_name(&self) -> &'static str {
4559            match self {
4560                Self::Limit => "LIMIT",
4561                Self::Market => "MARKET",
4562                Self::StopLimit => "STOP_LIMIT",
4563                Self::StopMarket => "STOP_MARKET",
4564                Self::MarketIfTouched => "MARKET_IF_TOUCHED",
4565                Self::LimitIfTouched => "LIMIT_IF_TOUCHED",
4566            }
4567        }
4568        /// Creates an enum from field names used in the ProtoBuf definition.
4569        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4570            match value {
4571                "LIMIT" => Some(Self::Limit),
4572                "MARKET" => Some(Self::Market),
4573                "STOP_LIMIT" => Some(Self::StopLimit),
4574                "STOP_MARKET" => Some(Self::StopMarket),
4575                "MARKET_IF_TOUCHED" => Some(Self::MarketIfTouched),
4576                "LIMIT_IF_TOUCHED" => Some(Self::LimitIfTouched),
4577                _ => None,
4578            }
4579        }
4580    }
4581    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4582    #[repr(i32)]
4583    pub enum OrderPlacement {
4584        Manual = 1,
4585        Auto = 2,
4586    }
4587    impl OrderPlacement {
4588        /// String value of the enum field names used in the ProtoBuf definition.
4589        ///
4590        /// The values are not transformed in any way and thus are considered stable
4591        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4592        pub fn as_str_name(&self) -> &'static str {
4593            match self {
4594                Self::Manual => "MANUAL",
4595                Self::Auto => "AUTO",
4596            }
4597        }
4598        /// Creates an enum from field names used in the ProtoBuf definition.
4599        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4600            match value {
4601                "MANUAL" => Some(Self::Manual),
4602                "AUTO" => Some(Self::Auto),
4603                _ => None,
4604            }
4605        }
4606    }
4607    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4608    #[repr(i32)]
4609    pub enum PriceField {
4610        BidPrice = 1,
4611        OfferPrice = 2,
4612        TradePrice = 3,
4613        LeanPrice = 4,
4614    }
4615    impl PriceField {
4616        /// String value of the enum field names used in the ProtoBuf definition.
4617        ///
4618        /// The values are not transformed in any way and thus are considered stable
4619        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4620        pub fn as_str_name(&self) -> &'static str {
4621            match self {
4622                Self::BidPrice => "BID_PRICE",
4623                Self::OfferPrice => "OFFER_PRICE",
4624                Self::TradePrice => "TRADE_PRICE",
4625                Self::LeanPrice => "LEAN_PRICE",
4626            }
4627        }
4628        /// Creates an enum from field names used in the ProtoBuf definition.
4629        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4630            match value {
4631                "BID_PRICE" => Some(Self::BidPrice),
4632                "OFFER_PRICE" => Some(Self::OfferPrice),
4633                "TRADE_PRICE" => Some(Self::TradePrice),
4634                "LEAN_PRICE" => Some(Self::LeanPrice),
4635                _ => None,
4636            }
4637        }
4638    }
4639    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4640    #[repr(i32)]
4641    pub enum Condition {
4642        EqualTo = 1,
4643        NotEqualTo = 2,
4644        GreaterThan = 3,
4645        GreaterThanEqualTo = 4,
4646        LesserThan = 5,
4647        LesserThanEqualTo = 6,
4648    }
4649    impl Condition {
4650        /// String value of the enum field names used in the ProtoBuf definition.
4651        ///
4652        /// The values are not transformed in any way and thus are considered stable
4653        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4654        pub fn as_str_name(&self) -> &'static str {
4655            match self {
4656                Self::EqualTo => "EQUAL_TO",
4657                Self::NotEqualTo => "NOT_EQUAL_TO",
4658                Self::GreaterThan => "GREATER_THAN",
4659                Self::GreaterThanEqualTo => "GREATER_THAN_EQUAL_TO",
4660                Self::LesserThan => "LESSER_THAN",
4661                Self::LesserThanEqualTo => "LESSER_THAN_EQUAL_TO",
4662            }
4663        }
4664        /// Creates an enum from field names used in the ProtoBuf definition.
4665        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4666            match value {
4667                "EQUAL_TO" => Some(Self::EqualTo),
4668                "NOT_EQUAL_TO" => Some(Self::NotEqualTo),
4669                "GREATER_THAN" => Some(Self::GreaterThan),
4670                "GREATER_THAN_EQUAL_TO" => Some(Self::GreaterThanEqualTo),
4671                "LESSER_THAN" => Some(Self::LesserThan),
4672                "LESSER_THAN_EQUAL_TO" => Some(Self::LesserThanEqualTo),
4673                _ => None,
4674            }
4675        }
4676    }
4677}
4678/// PB_OFFSET = 100000, is the offset added for each MNM field id
4679#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4680pub struct ResponseBracketOrder {
4681    /// PB_OFFSET + MNM_TEMPLATE_ID
4682    #[prost(int32, required, tag = "154467")]
4683    pub template_id: i32,
4684    /// PB_OFFSET + MNM_USER_MSG
4685    #[prost(string, repeated, tag = "132760")]
4686    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4687    /// PB_OFFSET + MNM_USER_ORIGIN
4688    #[prost(string, optional, tag = "154119")]
4689    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
4690    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4691    #[prost(string, repeated, tag = "132764")]
4692    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4693    /// PB_OFFSET + MNM_RESPONSE_CODE
4694    #[prost(string, repeated, tag = "132766")]
4695    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4696    /// PB_OFFSET + MNM_BASKET_ID
4697    #[prost(string, optional, tag = "110300")]
4698    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4699    /// PB_OFFSET + MNM_SECONDS_SINCE_BOE
4700    #[prost(int32, optional, tag = "150100")]
4701    pub ssboe: ::core::option::Option<i32>,
4702    /// PB_OFFSET + MNM_USECS
4703    #[prost(int32, optional, tag = "150101")]
4704    pub usecs: ::core::option::Option<i32>,
4705}
4706/// PB_OFFSET = 100000, is the offset added for each MNM field id
4707#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4708pub struct RequestShowBrackets {
4709    /// PB_OFFSET + MNM_TEMPLATE_ID
4710    #[prost(int32, required, tag = "154467")]
4711    pub template_id: i32,
4712    /// PB_OFFSET + MNM_USER_MSG
4713    #[prost(string, repeated, tag = "132760")]
4714    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4715    /// PB_OFFSET + MNM_FCM_ID
4716    #[prost(string, optional, tag = "154013")]
4717    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4718    /// PB_OFFSET + MNM_IB_ID
4719    #[prost(string, optional, tag = "154014")]
4720    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4721    /// PB_OFFSET + MNM_ACCOUNT_ID
4722    #[prost(string, optional, tag = "154008")]
4723    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4724}
4725/// PB_OFFSET = 100000, is the offset added for each MNM field id
4726#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4727pub struct ResponseShowBrackets {
4728    /// PB_OFFSET + MNM_TEMPLATE_ID
4729    #[prost(int32, required, tag = "154467")]
4730    pub template_id: i32,
4731    /// PB_OFFSET + MNM_USER_MSG
4732    #[prost(string, repeated, tag = "132760")]
4733    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4734    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4735    #[prost(string, repeated, tag = "132764")]
4736    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4737    /// PB_OFFSET + MNM_RESPONSE_CODE
4738    #[prost(string, repeated, tag = "132766")]
4739    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4740    /// PB_OFFSET + MNM_BASKET_ID
4741    #[prost(string, optional, tag = "110300")]
4742    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4743    /// PB_OFFSET + MNM_TARGET_QUANTITY
4744    #[prost(string, optional, tag = "154457")]
4745    pub target_quantity: ::core::option::Option<::prost::alloc::string::String>,
4746    /// PB_OFFSET + MNM_TARGET_QUANTITY_RELEASED
4747    #[prost(string, optional, tag = "154460")]
4748    pub target_quantity_released: ::core::option::Option<::prost::alloc::string::String>,
4749    /// PB_OFFSET + MNM_TARGET_TICKS
4750    #[prost(string, optional, tag = "154456")]
4751    pub target_ticks: ::core::option::Option<::prost::alloc::string::String>,
4752}
4753/// PB_OFFSET = 100000, is the offset added for each MNM field id
4754#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4755pub struct RequestShowBracketStops {
4756    /// PB_OFFSET + MNM_TEMPLATE_ID
4757    #[prost(int32, required, tag = "154467")]
4758    pub template_id: i32,
4759    /// PB_OFFSET + MNM_USER_MSG
4760    #[prost(string, repeated, tag = "132760")]
4761    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4762    /// PB_OFFSET + MNM_FCM_ID
4763    #[prost(string, optional, tag = "154013")]
4764    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4765    /// PB_OFFSET + MNM_IB_ID
4766    #[prost(string, optional, tag = "154014")]
4767    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4768    /// PB_OFFSET + MNM_ACCOUNT_ID
4769    #[prost(string, optional, tag = "154008")]
4770    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4771}
4772/// PB_OFFSET = 100000, is the offset added for each MNM field id
4773#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4774pub struct ResponseShowBracketStops {
4775    /// PB_OFFSET + MNM_TEMPLATE_ID
4776    #[prost(int32, required, tag = "154467")]
4777    pub template_id: i32,
4778    /// PB_OFFSET + MNM_USER_MSG
4779    #[prost(string, repeated, tag = "132760")]
4780    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4781    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4782    #[prost(string, repeated, tag = "132764")]
4783    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4784    /// PB_OFFSET + MNM_RESPONSE_CODE
4785    #[prost(string, repeated, tag = "132766")]
4786    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4787    /// PB_OFFSET + MNM_BASKET_ID
4788    #[prost(string, optional, tag = "110300")]
4789    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4790    /// PB_OFFSET + MNM_STOP_QUANTITY
4791    #[prost(string, optional, tag = "154459")]
4792    pub stop_quantity: ::core::option::Option<::prost::alloc::string::String>,
4793    /// PB_OFFSET + MNM_STOP_QUANTITY_RELEASED
4794    #[prost(string, optional, tag = "154466")]
4795    pub stop_quantity_released: ::core::option::Option<::prost::alloc::string::String>,
4796    /// PB_OFFSET + MNM_STOP_TICKS
4797    #[prost(string, optional, tag = "154458")]
4798    pub stop_ticks: ::core::option::Option<::prost::alloc::string::String>,
4799    /// PB_OFFSET + MNM_BRACKET_TRAILING_FIELD_ID
4800    #[prost(string, optional, tag = "157062")]
4801    pub bracket_trailing_field_id: ::core::option::Option<::prost::alloc::string::String>,
4802    /// PB_OFFSET + MNM_TRAILING_STOP_TRIGGER_TICKS
4803    #[prost(string, optional, tag = "157124")]
4804    pub trailing_stop_trigger_ticks: ::core::option::Option<::prost::alloc::string::String>,
4805}
4806/// PB_OFFSET = 100000, is the offset added for each MNM field id
4807#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4808pub struct RequestUpdateTargetBracketLevel {
4809    /// PB_OFFSET + MNM_TEMPLATE_ID
4810    #[prost(int32, required, tag = "154467")]
4811    pub template_id: i32,
4812    /// PB_OFFSET + MNM_USER_MSG
4813    #[prost(string, repeated, tag = "132760")]
4814    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4815    /// PB_OFFSET + MNM_FCM_ID
4816    #[prost(string, optional, tag = "154013")]
4817    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4818    /// PB_OFFSET + MNM_IB_ID
4819    #[prost(string, optional, tag = "154014")]
4820    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4821    /// PB_OFFSET + MNM_ACCOUNT_ID
4822    #[prost(string, optional, tag = "154008")]
4823    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4824    /// PB_OFFSET + MNM_BASKET_ID
4825    #[prost(string, optional, tag = "110300")]
4826    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4827    /// PB_OFFSET + MNM_LEVEL
4828    #[prost(int32, optional, tag = "154244")]
4829    pub level: ::core::option::Option<i32>,
4830    /// PB_OFFSET + MNM_TARGET_TICKS
4831    #[prost(int32, optional, tag = "154456")]
4832    pub target_ticks: ::core::option::Option<i32>,
4833}
4834/// PB_OFFSET = 100000, is the offset added for each MNM field id
4835#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4836pub struct ResponseUpdateTargetBracketLevel {
4837    /// PB_OFFSET + MNM_TEMPLATE_ID
4838    #[prost(int32, required, tag = "154467")]
4839    pub template_id: i32,
4840    /// PB_OFFSET + MNM_USER_MSG
4841    #[prost(string, repeated, tag = "132760")]
4842    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4843    /// PB_OFFSET + MNM_RESPONSE_CODE
4844    #[prost(string, repeated, tag = "132766")]
4845    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4846}
4847/// PB_OFFSET = 100000, is the offset added for each MNM field id
4848#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4849pub struct RequestUpdateStopBracketLevel {
4850    /// PB_OFFSET + MNM_TEMPLATE_ID
4851    #[prost(int32, required, tag = "154467")]
4852    pub template_id: i32,
4853    /// PB_OFFSET + MNM_USER_MSG
4854    #[prost(string, repeated, tag = "132760")]
4855    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4856    /// PB_OFFSET + MNM_FCM_ID
4857    #[prost(string, optional, tag = "154013")]
4858    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4859    /// PB_OFFSET + MNM_IB_ID
4860    #[prost(string, optional, tag = "154014")]
4861    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4862    /// PB_OFFSET + MNM_ACCOUNT_ID
4863    #[prost(string, optional, tag = "154008")]
4864    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4865    /// PB_OFFSET + MNM_BASKET_ID
4866    #[prost(string, optional, tag = "110300")]
4867    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
4868    /// PB_OFFSET + MNM_LEVEL
4869    #[prost(int32, optional, tag = "154244")]
4870    pub level: ::core::option::Option<i32>,
4871    /// PB_OFFSET + MNM_STOP_TICKS
4872    #[prost(int32, optional, tag = "154458")]
4873    pub stop_ticks: ::core::option::Option<i32>,
4874}
4875/// PB_OFFSET = 100000, is the offset added for each MNM field id
4876#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4877pub struct ResponseUpdateStopBracketLevel {
4878    /// PB_OFFSET + MNM_TEMPLATE_ID
4879    #[prost(int32, required, tag = "154467")]
4880    pub template_id: i32,
4881    /// PB_OFFSET + MNM_USER_MSG
4882    #[prost(string, repeated, tag = "132760")]
4883    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4884    /// PB_OFFSET + MNM_RESPONSE_CODE
4885    #[prost(string, repeated, tag = "132766")]
4886    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4887}
4888/// PB_OFFSET = 100000, is the offset added for each MNM field id
4889#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4890pub struct RequestSubscribeToBracketUpdates {
4891    /// PB_OFFSET + MNM_TEMPLATE_ID
4892    #[prost(int32, required, tag = "154467")]
4893    pub template_id: i32,
4894    /// PB_OFFSET + MNM_USER_MSG
4895    #[prost(string, repeated, tag = "132760")]
4896    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4897    /// PB_OFFSET + MNM_FCM_ID
4898    #[prost(string, optional, tag = "154013")]
4899    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
4900    /// PB_OFFSET + MNM_IB_ID
4901    #[prost(string, optional, tag = "154014")]
4902    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
4903    /// PB_OFFSET + MNM_ACCOUNT_ID
4904    #[prost(string, optional, tag = "154008")]
4905    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
4906}
4907/// PB_OFFSET = 100000, is the offset added for each MNM field id
4908#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4909pub struct ResponseSubscribeToBracketUpdates {
4910    /// PB_OFFSET + MNM_TEMPLATE_ID
4911    #[prost(int32, required, tag = "154467")]
4912    pub template_id: i32,
4913    /// PB_OFFSET + MNM_USER_MSG
4914    #[prost(string, repeated, tag = "132760")]
4915    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4916    /// PB_OFFSET + MNM_RESPONSE_CODE
4917    #[prost(string, repeated, tag = "132766")]
4918    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4919}
4920/// PB_OFFSET = 100000 , is the offset added for each MNM field id
4921#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4922pub struct RequestListExchangePermissions {
4923    /// PB_OFFSET + MNM_TEMPLATE_ID
4924    #[prost(int32, required, tag = "154467")]
4925    pub template_id: i32,
4926    /// PB_OFFSET + MNM_USER_MSG
4927    #[prost(string, repeated, tag = "132760")]
4928    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4929    /// PB_OFFSET + MNM_USER_TARGET
4930    #[prost(string, optional, tag = "154220")]
4931    pub user: ::core::option::Option<::prost::alloc::string::String>,
4932}
4933/// PB_OFFSET = 100000, is the offset added for each MNM field id
4934#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4935pub struct ResponseListExchangePermissions {
4936    /// PB_OFFSET + MNM_TEMPLATE_ID
4937    #[prost(int32, required, tag = "154467")]
4938    pub template_id: i32,
4939    /// PB_OFFSET + MNM_USER_MSG
4940    #[prost(string, repeated, tag = "132760")]
4941    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4942    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
4943    #[prost(string, repeated, tag = "132764")]
4944    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4945    /// PB_OFFSET + MNM_RESPONSE_CODE
4946    #[prost(string, repeated, tag = "132766")]
4947    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4948    /// PB_OFFSET + MNM_EXCHANGE
4949    #[prost(string, optional, tag = "110101")]
4950    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
4951    /// PB_OFFSET + MNM_ENTITLEMENT_FLAG
4952    #[prost(
4953        enumeration = "response_list_exchange_permissions::EntitlementFlag",
4954        optional,
4955        tag = "153400"
4956    )]
4957    pub entitlement_flag: ::core::option::Option<i32>,
4958}
4959/// Nested message and enum types in `ResponseListExchangePermissions`.
4960pub mod response_list_exchange_permissions {
4961    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4962    #[repr(i32)]
4963    pub enum EntitlementFlag {
4964        Enabled = 1,
4965        Disabled = 2,
4966    }
4967    impl EntitlementFlag {
4968        /// String value of the enum field names used in the ProtoBuf definition.
4969        ///
4970        /// The values are not transformed in any way and thus are considered stable
4971        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4972        pub fn as_str_name(&self) -> &'static str {
4973            match self {
4974                Self::Enabled => "ENABLED",
4975                Self::Disabled => "DISABLED",
4976            }
4977        }
4978        /// Creates an enum from field names used in the ProtoBuf definition.
4979        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4980            match value {
4981                "ENABLED" => Some(Self::Enabled),
4982                "DISABLED" => Some(Self::Disabled),
4983                _ => None,
4984            }
4985        }
4986    }
4987}
4988/// PB_OFFSET = 100000 , is the offset added for each MNM field id
4989#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4990pub struct RequestLinkOrders {
4991    /// PB_OFFSET + MNM_TEMPLATE_ID
4992    #[prost(int32, required, tag = "154467")]
4993    pub template_id: i32,
4994    /// PB_OFFSET + MNM_USER_MSG
4995    #[prost(string, repeated, tag = "132760")]
4996    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4997    /// PB_OFFSET + MNM_FCM_ID
4998    #[prost(string, repeated, tag = "154013")]
4999    pub fcm_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5000    /// PB_OFFSET + MNM_IB_ID
5001    #[prost(string, repeated, tag = "154014")]
5002    pub ib_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5003    /// PB_OFFSET + MNM_ACCOUNT_ID
5004    #[prost(string, repeated, tag = "154008")]
5005    pub account_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5006    /// PB_OFFSET + MNM_BASKET_ID
5007    #[prost(string, repeated, tag = "110300")]
5008    pub basket_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5009}
5010/// PB_OFFSET = 100000 , is the offset added for each MNM field id
5011#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5012pub struct ResponseLinkOrders {
5013    /// PB_OFFSET + MNM_TEMPLATE_ID
5014    #[prost(int32, required, tag = "154467")]
5015    pub template_id: i32,
5016    /// PB_OFFSET + MNM_USER_MSG
5017    #[prost(string, repeated, tag = "132760")]
5018    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5019    /// PB_OFFSET + MNM_RESPONSE_CODE
5020    #[prost(string, repeated, tag = "132766")]
5021    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5022}
5023/// PB_OFFSET = 100000, is the offset added for each MNM field id
5024#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5025pub struct RequestEasyToBorrowList {
5026    /// PB_OFFSET + MNM_TEMPLATE_ID
5027    #[prost(int32, required, tag = "154467")]
5028    pub template_id: i32,
5029    /// PB_OFFSET + MNM_USER_MSG
5030    #[prost(string, repeated, tag = "132760")]
5031    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5032    /// PB_OFFSET + MNM_REQUEST
5033    #[prost(
5034        enumeration = "request_easy_to_borrow_list::Request",
5035        optional,
5036        tag = "100000"
5037    )]
5038    pub request: ::core::option::Option<i32>,
5039}
5040/// Nested message and enum types in `RequestEasyToBorrowList`.
5041pub mod request_easy_to_borrow_list {
5042    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5043    #[repr(i32)]
5044    pub enum Request {
5045        Subscribe = 1,
5046        Unsubscribe = 2,
5047    }
5048    impl Request {
5049        /// String value of the enum field names used in the ProtoBuf definition.
5050        ///
5051        /// The values are not transformed in any way and thus are considered stable
5052        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5053        pub fn as_str_name(&self) -> &'static str {
5054            match self {
5055                Self::Subscribe => "SUBSCRIBE",
5056                Self::Unsubscribe => "UNSUBSCRIBE",
5057            }
5058        }
5059        /// Creates an enum from field names used in the ProtoBuf definition.
5060        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5061            match value {
5062                "SUBSCRIBE" => Some(Self::Subscribe),
5063                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
5064                _ => None,
5065            }
5066        }
5067    }
5068}
5069/// PB_OFFSET = 100000, is the offset added for each MNM field id
5070#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5071pub struct ResponseEasyToBorrowList {
5072    /// PB_OFFSET + MNM_TEMPLATE_ID
5073    #[prost(int32, required, tag = "154467")]
5074    pub template_id: i32,
5075    /// PB_OFFSET + MNM_USER_MSG
5076    #[prost(string, repeated, tag = "132760")]
5077    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5078    /// PB_OFFSET + MNM_REQUEST_HANDLER_RESPONSE_CODE
5079    #[prost(string, repeated, tag = "132764")]
5080    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5081    /// PB_OFFSET + MNM_RESPONSE_CODE
5082    #[prost(string, repeated, tag = "132766")]
5083    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5084    /// PB_OFFSET + MNM_BROKER_DEALER
5085    #[prost(string, optional, tag = "154612")]
5086    pub broker_dealer: ::core::option::Option<::prost::alloc::string::String>,
5087    /// PB_OFFSET + MNM_SYMBOL
5088    #[prost(string, optional, tag = "110100")]
5089    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
5090    /// PB_OFFSET + MNM_SYMBOL_NAME
5091    #[prost(string, optional, tag = "100003")]
5092    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
5093    /// PB_OFFSET + MNM_TOTAL_AVAILABLE_QTY
5094    #[prost(int32, optional, tag = "154613")]
5095    pub qty_available: ::core::option::Option<i32>,
5096    /// PB_OFFSET + MNM_TOTAL_USED_QTY
5097    #[prost(int32, optional, tag = "154614")]
5098    pub qty_needed: ::core::option::Option<i32>,
5099    /// PB_OFFSET + MNM_SHORT_LIST_INDICATOR
5100    #[prost(bool, optional, tag = "110353")]
5101    pub borrowable: ::core::option::Option<bool>,
5102}
5103#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5104pub struct RequestOrderSessionConfig {
5105    #[prost(int32, required, tag = "154467")]
5106    pub template_id: i32,
5107    #[prost(string, repeated, tag = "132760")]
5108    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5109    /// used only when the server has to fetch refdata from the system instead from it's own database.
5110    #[prost(bool, optional, tag = "157750")]
5111    pub should_defer_request: ::core::option::Option<bool>,
5112}
5113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5114pub struct ResponseOrderSessionConfig {
5115    #[prost(int32, required, tag = "154467")]
5116    pub template_id: i32,
5117    #[prost(string, repeated, tag = "132760")]
5118    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5119    #[prost(string, repeated, tag = "132766")]
5120    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5121}
5122#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5123pub struct RequestExitPosition {
5124    #[prost(int32, required, tag = "154467")]
5125    pub template_id: i32,
5126    #[prost(string, repeated, tag = "132760")]
5127    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5128    #[prost(string, optional, tag = "154629")]
5129    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
5130    #[prost(string, optional, tag = "154013")]
5131    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5132    #[prost(string, optional, tag = "154014")]
5133    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5134    #[prost(string, optional, tag = "154008")]
5135    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
5136    /// optional field, if set, exchange field should also be set.
5137    #[prost(string, optional, tag = "110100")]
5138    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
5139    /// optional field, if set, symbol field should also be set.
5140    #[prost(string, optional, tag = "110101")]
5141    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
5142    /// optional field
5143    #[prost(string, optional, tag = "154698")]
5144    pub trading_algorithm: ::core::option::Option<::prost::alloc::string::String>,
5145    /// required field
5146    #[prost(
5147        enumeration = "request_exit_position::OrderPlacement",
5148        optional,
5149        tag = "154710"
5150    )]
5151    pub manual_or_auto: ::core::option::Option<i32>,
5152}
5153/// Nested message and enum types in `RequestExitPosition`.
5154pub mod request_exit_position {
5155    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5156    #[repr(i32)]
5157    pub enum OrderPlacement {
5158        Manual = 1,
5159        Auto = 2,
5160    }
5161    impl OrderPlacement {
5162        /// String value of the enum field names used in the ProtoBuf definition.
5163        ///
5164        /// The values are not transformed in any way and thus are considered stable
5165        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5166        pub fn as_str_name(&self) -> &'static str {
5167            match self {
5168                Self::Manual => "MANUAL",
5169                Self::Auto => "AUTO",
5170            }
5171        }
5172        /// Creates an enum from field names used in the ProtoBuf definition.
5173        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5174            match value {
5175                "MANUAL" => Some(Self::Manual),
5176                "AUTO" => Some(Self::Auto),
5177                _ => None,
5178            }
5179        }
5180    }
5181}
5182#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5183pub struct ResponseExitPosition {
5184    #[prost(int32, required, tag = "154467")]
5185    pub template_id: i32,
5186    #[prost(string, repeated, tag = "132760")]
5187    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5188    #[prost(string, repeated, tag = "132764")]
5189    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5190    #[prost(string, repeated, tag = "132766")]
5191    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5192    #[prost(string, optional, tag = "110100")]
5193    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
5194    #[prost(string, optional, tag = "110101")]
5195    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
5196}
5197#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5198pub struct RequestReplayExecutions {
5199    #[prost(int32, required, tag = "154467")]
5200    pub template_id: i32,
5201    #[prost(string, repeated, tag = "132760")]
5202    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5203    #[prost(string, optional, tag = "154013")]
5204    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5205    #[prost(string, optional, tag = "154014")]
5206    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5207    #[prost(string, optional, tag = "154008")]
5208    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
5209    #[prost(int32, optional, tag = "153002")]
5210    pub start_index: ::core::option::Option<i32>,
5211    #[prost(int32, optional, tag = "153003")]
5212    pub finish_index: ::core::option::Option<i32>,
5213}
5214#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5215pub struct ResponseReplayExecutions {
5216    #[prost(int32, required, tag = "154467")]
5217    pub template_id: i32,
5218    #[prost(string, repeated, tag = "132760")]
5219    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5220    #[prost(string, repeated, tag = "132766")]
5221    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5222}
5223/// PB_OFFSET = 100000, is the offset added for each MNM field id
5224#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5225pub struct TradeRoute {
5226    /// PB_OFFSET + MNM_TEMPLATE_ID
5227    #[prost(int32, required, tag = "154467")]
5228    pub template_id: i32,
5229    /// PB_OFFSET + MNM_FCM_ID
5230    #[prost(string, optional, tag = "154013")]
5231    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5232    /// PB_OFFSET + MNM_IB_ID
5233    #[prost(string, optional, tag = "154014")]
5234    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5235    /// PB_OFFSET + MNM_EXCHANGE
5236    #[prost(string, optional, tag = "110101")]
5237    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
5238    /// PB_OFFSET + MNM_TRADE_ROUTE
5239    #[prost(string, optional, tag = "112016")]
5240    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
5241    /// PB_OFFSET + MNM_SERVICE_STATE
5242    #[prost(string, optional, tag = "131407")]
5243    pub status: ::core::option::Option<::prost::alloc::string::String>,
5244    /// PB_OFFSET + MNM_DEFAULT_ROUTE
5245    #[prost(bool, optional, tag = "154689")]
5246    pub is_default: ::core::option::Option<bool>,
5247}
5248/// PB_OFFSET = 100000, is the offset added for each MNM field id
5249#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5250pub struct BracketUpdates {
5251    /// PB_OFFSET + MNM_TEMPLATE_ID
5252    #[prost(int32, required, tag = "154467")]
5253    pub template_id: i32,
5254    /// PB_OFFSET + MNM_FCM_ID
5255    #[prost(string, optional, tag = "154013")]
5256    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5257    /// PB_OFFSET + MNM_IB_ID
5258    #[prost(string, optional, tag = "154014")]
5259    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5260    /// PB_OFFSET + MNM_ACCOUNT_ID
5261    #[prost(string, optional, tag = "154008")]
5262    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
5263    /// PB_OFFSET + MNM_BASKET_ID
5264    #[prost(string, optional, tag = "110300")]
5265    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
5266    /// PB_OFFSET + MNM_STOP_TICKS
5267    #[prost(int32, optional, tag = "154458")]
5268    pub stop_ticks: ::core::option::Option<i32>,
5269    /// PB_OFFSET + MNM_STOP_QUANTITY
5270    #[prost(int32, optional, tag = "154459")]
5271    pub stop_quantity: ::core::option::Option<i32>,
5272    /// PB_OFFSET + MNM_STOP_QUANTITY_RELEASED
5273    #[prost(int32, optional, tag = "154466")]
5274    pub stop_quantity_released: ::core::option::Option<i32>,
5275    /// PB_OFFSET + MNM_TARGET_TICKS
5276    #[prost(int32, optional, tag = "154456")]
5277    pub target_ticks: ::core::option::Option<i32>,
5278    /// PB_OFFSET + MNM_TARGET_QUANTITY
5279    #[prost(int32, optional, tag = "154457")]
5280    pub target_quantity: ::core::option::Option<i32>,
5281    /// PB_OFFSET + MNM_TARGET_QUANTITY_RELEASED
5282    #[prost(int32, optional, tag = "154460")]
5283    pub target_quantity_released: ::core::option::Option<i32>,
5284}
5285#[derive(Clone, PartialEq, ::prost::Message)]
5286pub struct RithmicOrderNotification {
5287    #[prost(int32, required, tag = "154467")]
5288    pub template_id: i32,
5289    #[prost(string, optional, tag = "154119")]
5290    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
5291    #[prost(
5292        enumeration = "rithmic_order_notification::NotifyType",
5293        optional,
5294        tag = "153625"
5295    )]
5296    pub notify_type: ::core::option::Option<i32>,
5297    #[prost(bool, optional, tag = "110121")]
5298    pub is_snapshot: ::core::option::Option<bool>,
5299    #[prost(string, optional, tag = "110303")]
5300    pub status: ::core::option::Option<::prost::alloc::string::String>,
5301    #[prost(string, optional, tag = "110300")]
5302    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
5303    #[prost(string, optional, tag = "154497")]
5304    pub original_basket_id: ::core::option::Option<::prost::alloc::string::String>,
5305    #[prost(string, optional, tag = "110358")]
5306    pub linked_basket_ids: ::core::option::Option<::prost::alloc::string::String>,
5307    #[prost(string, optional, tag = "154013")]
5308    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5309    #[prost(string, optional, tag = "154014")]
5310    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5311    #[prost(string, optional, tag = "131003")]
5312    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
5313    #[prost(string, optional, tag = "154008")]
5314    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
5315    #[prost(string, optional, tag = "110100")]
5316    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
5317    #[prost(string, optional, tag = "110101")]
5318    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
5319    #[prost(string, optional, tag = "112021")]
5320    pub trade_exchange: ::core::option::Option<::prost::alloc::string::String>,
5321    #[prost(string, optional, tag = "112016")]
5322    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
5323    #[prost(string, optional, tag = "149238")]
5324    pub exchange_order_id: ::core::option::Option<::prost::alloc::string::String>,
5325    #[prost(string, optional, tag = "110116")]
5326    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
5327    #[prost(string, optional, tag = "149273")]
5328    pub completion_reason: ::core::option::Option<::prost::alloc::string::String>,
5329    #[prost(int32, optional, tag = "112004")]
5330    pub quantity: ::core::option::Option<i32>,
5331    #[prost(int32, optional, tag = "112027")]
5332    pub quan_release_pending: ::core::option::Option<i32>,
5333    #[prost(double, optional, tag = "110306")]
5334    pub price: ::core::option::Option<f64>,
5335    #[prost(double, optional, tag = "149247")]
5336    pub trigger_price: ::core::option::Option<f64>,
5337    #[prost(
5338        enumeration = "rithmic_order_notification::TransactionType",
5339        optional,
5340        tag = "112003"
5341    )]
5342    pub transaction_type: ::core::option::Option<i32>,
5343    #[prost(
5344        enumeration = "rithmic_order_notification::Duration",
5345        optional,
5346        tag = "112005"
5347    )]
5348    pub duration: ::core::option::Option<i32>,
5349    #[prost(
5350        enumeration = "rithmic_order_notification::PriceType",
5351        optional,
5352        tag = "112008"
5353    )]
5354    pub price_type: ::core::option::Option<i32>,
5355    #[prost(
5356        enumeration = "rithmic_order_notification::PriceType",
5357        optional,
5358        tag = "154770"
5359    )]
5360    pub orig_price_type: ::core::option::Option<i32>,
5361    #[prost(
5362        enumeration = "rithmic_order_notification::OrderPlacement",
5363        optional,
5364        tag = "154710"
5365    )]
5366    pub manual_or_auto: ::core::option::Option<i32>,
5367    #[prost(
5368        enumeration = "rithmic_order_notification::BracketType",
5369        optional,
5370        tag = "157087"
5371    )]
5372    pub bracket_type: ::core::option::Option<i32>,
5373    #[prost(double, optional, tag = "110322")]
5374    pub avg_fill_price: ::core::option::Option<f64>,
5375    #[prost(int32, optional, tag = "154111")]
5376    pub total_fill_size: ::core::option::Option<i32>,
5377    #[prost(int32, optional, tag = "154112")]
5378    pub total_unfilled_size: ::core::option::Option<i32>,
5379    #[prost(int32, optional, tag = "157064")]
5380    pub trail_by_ticks: ::core::option::Option<i32>,
5381    #[prost(int32, optional, tag = "157065")]
5382    pub trail_by_price_id: ::core::option::Option<i32>,
5383    #[prost(string, optional, tag = "112002")]
5384    pub sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5385    #[prost(string, optional, tag = "149263")]
5386    pub orig_sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5387    #[prost(string, optional, tag = "149264")]
5388    pub cor_sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5389    #[prost(string, optional, tag = "154382")]
5390    pub currency: ::core::option::Option<::prost::alloc::string::String>,
5391    #[prost(string, optional, tag = "154172")]
5392    pub country_code: ::core::option::Option<::prost::alloc::string::String>,
5393    #[prost(string, optional, tag = "120008")]
5394    pub text: ::core::option::Option<::prost::alloc::string::String>,
5395    #[prost(string, optional, tag = "120028")]
5396    pub report_text: ::core::option::Option<::prost::alloc::string::String>,
5397    #[prost(string, optional, tag = "154806")]
5398    pub remarks: ::core::option::Option<::prost::alloc::string::String>,
5399    #[prost(string, optional, tag = "154629")]
5400    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
5401    #[prost(string, optional, tag = "154671")]
5402    pub originator_window_name: ::core::option::Option<::prost::alloc::string::String>,
5403    #[prost(int32, optional, tag = "157085")]
5404    pub cancel_at_ssboe: ::core::option::Option<i32>,
5405    #[prost(int32, optional, tag = "157086")]
5406    pub cancel_at_usecs: ::core::option::Option<i32>,
5407    #[prost(int32, optional, tag = "154488")]
5408    pub cancel_after_secs: ::core::option::Option<i32>,
5409    #[prost(int32, optional, tag = "150100")]
5410    pub ssboe: ::core::option::Option<i32>,
5411    #[prost(int32, optional, tag = "150101")]
5412    pub usecs: ::core::option::Option<i32>,
5413}
5414/// Nested message and enum types in `RithmicOrderNotification`.
5415pub mod rithmic_order_notification {
5416    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5417    #[repr(i32)]
5418    pub enum NotifyType {
5419        OrderRcvdFromClnt = 1,
5420        ModifyRcvdFromClnt = 2,
5421        CancelRcvdFromClnt = 3,
5422        OpenPending = 4,
5423        ModifyPending = 5,
5424        CancelPending = 6,
5425        OrderRcvdByExchGtwy = 7,
5426        ModifyRcvdByExchGtwy = 8,
5427        CancelRcvdByExchGtwy = 9,
5428        OrderSentToExch = 10,
5429        ModifySentToExch = 11,
5430        CancelSentToExch = 12,
5431        Open = 13,
5432        Modified = 14,
5433        Complete = 15,
5434        ModificationFailed = 16,
5435        CancellationFailed = 17,
5436        TriggerPending = 18,
5437        Generic = 19,
5438        LinkOrdersFailed = 20,
5439    }
5440    impl NotifyType {
5441        /// String value of the enum field names used in the ProtoBuf definition.
5442        ///
5443        /// The values are not transformed in any way and thus are considered stable
5444        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5445        pub fn as_str_name(&self) -> &'static str {
5446            match self {
5447                Self::OrderRcvdFromClnt => "ORDER_RCVD_FROM_CLNT",
5448                Self::ModifyRcvdFromClnt => "MODIFY_RCVD_FROM_CLNT",
5449                Self::CancelRcvdFromClnt => "CANCEL_RCVD_FROM_CLNT",
5450                Self::OpenPending => "OPEN_PENDING",
5451                Self::ModifyPending => "MODIFY_PENDING",
5452                Self::CancelPending => "CANCEL_PENDING",
5453                Self::OrderRcvdByExchGtwy => "ORDER_RCVD_BY_EXCH_GTWY",
5454                Self::ModifyRcvdByExchGtwy => "MODIFY_RCVD_BY_EXCH_GTWY",
5455                Self::CancelRcvdByExchGtwy => "CANCEL_RCVD_BY_EXCH_GTWY",
5456                Self::OrderSentToExch => "ORDER_SENT_TO_EXCH",
5457                Self::ModifySentToExch => "MODIFY_SENT_TO_EXCH",
5458                Self::CancelSentToExch => "CANCEL_SENT_TO_EXCH",
5459                Self::Open => "OPEN",
5460                Self::Modified => "MODIFIED",
5461                Self::Complete => "COMPLETE",
5462                Self::ModificationFailed => "MODIFICATION_FAILED",
5463                Self::CancellationFailed => "CANCELLATION_FAILED",
5464                Self::TriggerPending => "TRIGGER_PENDING",
5465                Self::Generic => "GENERIC",
5466                Self::LinkOrdersFailed => "LINK_ORDERS_FAILED",
5467            }
5468        }
5469        /// Creates an enum from field names used in the ProtoBuf definition.
5470        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5471            match value {
5472                "ORDER_RCVD_FROM_CLNT" => Some(Self::OrderRcvdFromClnt),
5473                "MODIFY_RCVD_FROM_CLNT" => Some(Self::ModifyRcvdFromClnt),
5474                "CANCEL_RCVD_FROM_CLNT" => Some(Self::CancelRcvdFromClnt),
5475                "OPEN_PENDING" => Some(Self::OpenPending),
5476                "MODIFY_PENDING" => Some(Self::ModifyPending),
5477                "CANCEL_PENDING" => Some(Self::CancelPending),
5478                "ORDER_RCVD_BY_EXCH_GTWY" => Some(Self::OrderRcvdByExchGtwy),
5479                "MODIFY_RCVD_BY_EXCH_GTWY" => Some(Self::ModifyRcvdByExchGtwy),
5480                "CANCEL_RCVD_BY_EXCH_GTWY" => Some(Self::CancelRcvdByExchGtwy),
5481                "ORDER_SENT_TO_EXCH" => Some(Self::OrderSentToExch),
5482                "MODIFY_SENT_TO_EXCH" => Some(Self::ModifySentToExch),
5483                "CANCEL_SENT_TO_EXCH" => Some(Self::CancelSentToExch),
5484                "OPEN" => Some(Self::Open),
5485                "MODIFIED" => Some(Self::Modified),
5486                "COMPLETE" => Some(Self::Complete),
5487                "MODIFICATION_FAILED" => Some(Self::ModificationFailed),
5488                "CANCELLATION_FAILED" => Some(Self::CancellationFailed),
5489                "TRIGGER_PENDING" => Some(Self::TriggerPending),
5490                "GENERIC" => Some(Self::Generic),
5491                "LINK_ORDERS_FAILED" => Some(Self::LinkOrdersFailed),
5492                _ => None,
5493            }
5494        }
5495    }
5496    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5497    #[repr(i32)]
5498    pub enum TransactionType {
5499        Buy = 1,
5500        Sell = 2,
5501        Ss = 3,
5502    }
5503    impl TransactionType {
5504        /// String value of the enum field names used in the ProtoBuf definition.
5505        ///
5506        /// The values are not transformed in any way and thus are considered stable
5507        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5508        pub fn as_str_name(&self) -> &'static str {
5509            match self {
5510                Self::Buy => "BUY",
5511                Self::Sell => "SELL",
5512                Self::Ss => "SS",
5513            }
5514        }
5515        /// Creates an enum from field names used in the ProtoBuf definition.
5516        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5517            match value {
5518                "BUY" => Some(Self::Buy),
5519                "SELL" => Some(Self::Sell),
5520                "SS" => Some(Self::Ss),
5521                _ => None,
5522            }
5523        }
5524    }
5525    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5526    #[repr(i32)]
5527    pub enum Duration {
5528        Day = 1,
5529        Gtc = 2,
5530        Ioc = 3,
5531        Fok = 4,
5532    }
5533    impl Duration {
5534        /// String value of the enum field names used in the ProtoBuf definition.
5535        ///
5536        /// The values are not transformed in any way and thus are considered stable
5537        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5538        pub fn as_str_name(&self) -> &'static str {
5539            match self {
5540                Self::Day => "DAY",
5541                Self::Gtc => "GTC",
5542                Self::Ioc => "IOC",
5543                Self::Fok => "FOK",
5544            }
5545        }
5546        /// Creates an enum from field names used in the ProtoBuf definition.
5547        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5548            match value {
5549                "DAY" => Some(Self::Day),
5550                "GTC" => Some(Self::Gtc),
5551                "IOC" => Some(Self::Ioc),
5552                "FOK" => Some(Self::Fok),
5553                _ => None,
5554            }
5555        }
5556    }
5557    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5558    #[repr(i32)]
5559    pub enum PriceType {
5560        Limit = 1,
5561        Market = 2,
5562        StopLimit = 3,
5563        StopMarket = 4,
5564    }
5565    impl PriceType {
5566        /// String value of the enum field names used in the ProtoBuf definition.
5567        ///
5568        /// The values are not transformed in any way and thus are considered stable
5569        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5570        pub fn as_str_name(&self) -> &'static str {
5571            match self {
5572                Self::Limit => "LIMIT",
5573                Self::Market => "MARKET",
5574                Self::StopLimit => "STOP_LIMIT",
5575                Self::StopMarket => "STOP_MARKET",
5576            }
5577        }
5578        /// Creates an enum from field names used in the ProtoBuf definition.
5579        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5580            match value {
5581                "LIMIT" => Some(Self::Limit),
5582                "MARKET" => Some(Self::Market),
5583                "STOP_LIMIT" => Some(Self::StopLimit),
5584                "STOP_MARKET" => Some(Self::StopMarket),
5585                _ => None,
5586            }
5587        }
5588    }
5589    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5590    #[repr(i32)]
5591    pub enum BracketType {
5592        StopOnly = 1,
5593        TargetOnly = 2,
5594        TargetAndStop = 3,
5595        StopOnlyStatic = 4,
5596        TargetOnlyStatic = 5,
5597        TargetAndStopStatic = 6,
5598    }
5599    impl BracketType {
5600        /// String value of the enum field names used in the ProtoBuf definition.
5601        ///
5602        /// The values are not transformed in any way and thus are considered stable
5603        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5604        pub fn as_str_name(&self) -> &'static str {
5605            match self {
5606                Self::StopOnly => "STOP_ONLY",
5607                Self::TargetOnly => "TARGET_ONLY",
5608                Self::TargetAndStop => "TARGET_AND_STOP",
5609                Self::StopOnlyStatic => "STOP_ONLY_STATIC",
5610                Self::TargetOnlyStatic => "TARGET_ONLY_STATIC",
5611                Self::TargetAndStopStatic => "TARGET_AND_STOP_STATIC",
5612            }
5613        }
5614        /// Creates an enum from field names used in the ProtoBuf definition.
5615        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5616            match value {
5617                "STOP_ONLY" => Some(Self::StopOnly),
5618                "TARGET_ONLY" => Some(Self::TargetOnly),
5619                "TARGET_AND_STOP" => Some(Self::TargetAndStop),
5620                "STOP_ONLY_STATIC" => Some(Self::StopOnlyStatic),
5621                "TARGET_ONLY_STATIC" => Some(Self::TargetOnlyStatic),
5622                "TARGET_AND_STOP_STATIC" => Some(Self::TargetAndStopStatic),
5623                _ => None,
5624            }
5625        }
5626    }
5627    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5628    #[repr(i32)]
5629    pub enum OrderPlacement {
5630        Manual = 1,
5631        Auto = 2,
5632    }
5633    impl OrderPlacement {
5634        /// String value of the enum field names used in the ProtoBuf definition.
5635        ///
5636        /// The values are not transformed in any way and thus are considered stable
5637        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5638        pub fn as_str_name(&self) -> &'static str {
5639            match self {
5640                Self::Manual => "MANUAL",
5641                Self::Auto => "AUTO",
5642            }
5643        }
5644        /// Creates an enum from field names used in the ProtoBuf definition.
5645        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5646            match value {
5647                "MANUAL" => Some(Self::Manual),
5648                "AUTO" => Some(Self::Auto),
5649                _ => None,
5650            }
5651        }
5652    }
5653}
5654#[derive(Clone, PartialEq, ::prost::Message)]
5655pub struct ExchangeOrderNotification {
5656    #[prost(int32, required, tag = "154467")]
5657    pub template_id: i32,
5658    #[prost(string, optional, tag = "154119")]
5659    pub user_tag: ::core::option::Option<::prost::alloc::string::String>,
5660    #[prost(
5661        enumeration = "exchange_order_notification::NotifyType",
5662        optional,
5663        tag = "153625"
5664    )]
5665    pub notify_type: ::core::option::Option<i32>,
5666    #[prost(bool, optional, tag = "110121")]
5667    pub is_snapshot: ::core::option::Option<bool>,
5668    #[prost(bool, optional, tag = "149373")]
5669    pub is_rithmic_internal_msg: ::core::option::Option<bool>,
5670    #[prost(string, optional, tag = "120001")]
5671    pub report_type: ::core::option::Option<::prost::alloc::string::String>,
5672    #[prost(string, optional, tag = "110303")]
5673    pub status: ::core::option::Option<::prost::alloc::string::String>,
5674    #[prost(string, optional, tag = "110300")]
5675    pub basket_id: ::core::option::Option<::prost::alloc::string::String>,
5676    #[prost(string, optional, tag = "154497")]
5677    pub original_basket_id: ::core::option::Option<::prost::alloc::string::String>,
5678    #[prost(string, optional, tag = "110358")]
5679    pub linked_basket_ids: ::core::option::Option<::prost::alloc::string::String>,
5680    #[prost(string, optional, tag = "154013")]
5681    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
5682    #[prost(string, optional, tag = "154014")]
5683    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
5684    #[prost(string, optional, tag = "131003")]
5685    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
5686    #[prost(string, optional, tag = "154008")]
5687    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
5688    #[prost(string, optional, tag = "110100")]
5689    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
5690    #[prost(string, optional, tag = "110101")]
5691    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
5692    #[prost(string, optional, tag = "112021")]
5693    pub trade_exchange: ::core::option::Option<::prost::alloc::string::String>,
5694    #[prost(string, optional, tag = "112016")]
5695    pub trade_route: ::core::option::Option<::prost::alloc::string::String>,
5696    #[prost(string, optional, tag = "149238")]
5697    pub exchange_order_id: ::core::option::Option<::prost::alloc::string::String>,
5698    #[prost(string, optional, tag = "153647")]
5699    pub tp_exchange_order_id: ::core::option::Option<::prost::alloc::string::String>,
5700    #[prost(string, optional, tag = "110116")]
5701    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
5702    #[prost(int32, optional, tag = "112004")]
5703    pub quantity: ::core::option::Option<i32>,
5704    #[prost(double, optional, tag = "110306")]
5705    pub price: ::core::option::Option<f64>,
5706    #[prost(double, optional, tag = "149247")]
5707    pub trigger_price: ::core::option::Option<f64>,
5708    #[prost(
5709        enumeration = "exchange_order_notification::TransactionType",
5710        optional,
5711        tag = "112003"
5712    )]
5713    pub transaction_type: ::core::option::Option<i32>,
5714    #[prost(
5715        enumeration = "exchange_order_notification::Duration",
5716        optional,
5717        tag = "112005"
5718    )]
5719    pub duration: ::core::option::Option<i32>,
5720    #[prost(
5721        enumeration = "exchange_order_notification::PriceType",
5722        optional,
5723        tag = "112008"
5724    )]
5725    pub price_type: ::core::option::Option<i32>,
5726    #[prost(
5727        enumeration = "exchange_order_notification::PriceType",
5728        optional,
5729        tag = "154770"
5730    )]
5731    pub orig_price_type: ::core::option::Option<i32>,
5732    #[prost(
5733        enumeration = "exchange_order_notification::OrderPlacement",
5734        optional,
5735        tag = "154710"
5736    )]
5737    pub manual_or_auto: ::core::option::Option<i32>,
5738    #[prost(
5739        enumeration = "exchange_order_notification::BracketType",
5740        optional,
5741        tag = "157087"
5742    )]
5743    pub bracket_type: ::core::option::Option<i32>,
5744    #[prost(int32, optional, tag = "110329")]
5745    pub confirmed_size: ::core::option::Option<i32>,
5746    #[prost(string, optional, tag = "110326")]
5747    pub confirmed_time: ::core::option::Option<::prost::alloc::string::String>,
5748    #[prost(string, optional, tag = "110327")]
5749    pub confirmed_date: ::core::option::Option<::prost::alloc::string::String>,
5750    #[prost(string, optional, tag = "110330")]
5751    pub confirmed_id: ::core::option::Option<::prost::alloc::string::String>,
5752    #[prost(int32, optional, tag = "149267")]
5753    pub modified_size: ::core::option::Option<i32>,
5754    #[prost(string, optional, tag = "149268")]
5755    pub modified_time: ::core::option::Option<::prost::alloc::string::String>,
5756    #[prost(string, optional, tag = "149269")]
5757    pub modified_date: ::core::option::Option<::prost::alloc::string::String>,
5758    #[prost(string, optional, tag = "149244")]
5759    pub modify_id: ::core::option::Option<::prost::alloc::string::String>,
5760    #[prost(int32, optional, tag = "110318")]
5761    pub cancelled_size: ::core::option::Option<i32>,
5762    #[prost(string, optional, tag = "110319")]
5763    pub cancelled_time: ::core::option::Option<::prost::alloc::string::String>,
5764    #[prost(string, optional, tag = "110320")]
5765    pub cancelled_date: ::core::option::Option<::prost::alloc::string::String>,
5766    #[prost(string, optional, tag = "110321")]
5767    pub cancelled_id: ::core::option::Option<::prost::alloc::string::String>,
5768    #[prost(double, optional, tag = "110307")]
5769    pub fill_price: ::core::option::Option<f64>,
5770    #[prost(int32, optional, tag = "110308")]
5771    pub fill_size: ::core::option::Option<i32>,
5772    #[prost(string, optional, tag = "110309")]
5773    pub fill_time: ::core::option::Option<::prost::alloc::string::String>,
5774    #[prost(string, optional, tag = "110310")]
5775    pub fill_date: ::core::option::Option<::prost::alloc::string::String>,
5776    #[prost(string, optional, tag = "110311")]
5777    pub fill_id: ::core::option::Option<::prost::alloc::string::String>,
5778    #[prost(double, optional, tag = "110322")]
5779    pub avg_fill_price: ::core::option::Option<f64>,
5780    #[prost(int32, optional, tag = "154111")]
5781    pub total_fill_size: ::core::option::Option<i32>,
5782    #[prost(int32, optional, tag = "154112")]
5783    pub total_unfilled_size: ::core::option::Option<i32>,
5784    #[prost(string, optional, tag = "149266")]
5785    pub trigger_id: ::core::option::Option<::prost::alloc::string::String>,
5786    #[prost(int32, optional, tag = "157064")]
5787    pub trail_by_ticks: ::core::option::Option<i32>,
5788    #[prost(int32, optional, tag = "157065")]
5789    pub trail_by_price_id: ::core::option::Option<i32>,
5790    #[prost(string, optional, tag = "112002")]
5791    pub sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5792    #[prost(string, optional, tag = "149263")]
5793    pub orig_sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5794    #[prost(string, optional, tag = "149264")]
5795    pub cor_sequence_number: ::core::option::Option<::prost::alloc::string::String>,
5796    #[prost(string, optional, tag = "154382")]
5797    pub currency: ::core::option::Option<::prost::alloc::string::String>,
5798    #[prost(string, optional, tag = "154172")]
5799    pub country_code: ::core::option::Option<::prost::alloc::string::String>,
5800    #[prost(string, optional, tag = "120008")]
5801    pub text: ::core::option::Option<::prost::alloc::string::String>,
5802    #[prost(string, optional, tag = "120028")]
5803    pub report_text: ::core::option::Option<::prost::alloc::string::String>,
5804    #[prost(string, optional, tag = "154806")]
5805    pub remarks: ::core::option::Option<::prost::alloc::string::String>,
5806    #[prost(string, optional, tag = "154629")]
5807    pub window_name: ::core::option::Option<::prost::alloc::string::String>,
5808    #[prost(string, optional, tag = "154671")]
5809    pub originator_window_name: ::core::option::Option<::prost::alloc::string::String>,
5810    #[prost(int32, optional, tag = "157085")]
5811    pub cancel_at_ssboe: ::core::option::Option<i32>,
5812    #[prost(int32, optional, tag = "157086")]
5813    pub cancel_at_usecs: ::core::option::Option<i32>,
5814    #[prost(int32, optional, tag = "154488")]
5815    pub cancel_after_secs: ::core::option::Option<i32>,
5816    #[prost(int32, optional, tag = "150100")]
5817    pub ssboe: ::core::option::Option<i32>,
5818    #[prost(int32, optional, tag = "150101")]
5819    pub usecs: ::core::option::Option<i32>,
5820    #[prost(int32, optional, tag = "150405")]
5821    pub exch_receipt_ssboe: ::core::option::Option<i32>,
5822    #[prost(int32, optional, tag = "150406")]
5823    pub exch_receipt_nsecs: ::core::option::Option<i32>,
5824}
5825/// Nested message and enum types in `ExchangeOrderNotification`.
5826pub mod exchange_order_notification {
5827    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5828    #[repr(i32)]
5829    pub enum NotifyType {
5830        Status = 1,
5831        Modify = 2,
5832        Cancel = 3,
5833        Trigger = 4,
5834        Fill = 5,
5835        Reject = 6,
5836        NotModified = 7,
5837        NotCancelled = 8,
5838        Generic = 9,
5839    }
5840    impl NotifyType {
5841        /// String value of the enum field names used in the ProtoBuf definition.
5842        ///
5843        /// The values are not transformed in any way and thus are considered stable
5844        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5845        pub fn as_str_name(&self) -> &'static str {
5846            match self {
5847                Self::Status => "STATUS",
5848                Self::Modify => "MODIFY",
5849                Self::Cancel => "CANCEL",
5850                Self::Trigger => "TRIGGER",
5851                Self::Fill => "FILL",
5852                Self::Reject => "REJECT",
5853                Self::NotModified => "NOT_MODIFIED",
5854                Self::NotCancelled => "NOT_CANCELLED",
5855                Self::Generic => "GENERIC",
5856            }
5857        }
5858        /// Creates an enum from field names used in the ProtoBuf definition.
5859        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5860            match value {
5861                "STATUS" => Some(Self::Status),
5862                "MODIFY" => Some(Self::Modify),
5863                "CANCEL" => Some(Self::Cancel),
5864                "TRIGGER" => Some(Self::Trigger),
5865                "FILL" => Some(Self::Fill),
5866                "REJECT" => Some(Self::Reject),
5867                "NOT_MODIFIED" => Some(Self::NotModified),
5868                "NOT_CANCELLED" => Some(Self::NotCancelled),
5869                "GENERIC" => Some(Self::Generic),
5870                _ => None,
5871            }
5872        }
5873    }
5874    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5875    #[repr(i32)]
5876    pub enum TransactionType {
5877        Buy = 1,
5878        Sell = 2,
5879        Ss = 3,
5880    }
5881    impl TransactionType {
5882        /// String value of the enum field names used in the ProtoBuf definition.
5883        ///
5884        /// The values are not transformed in any way and thus are considered stable
5885        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5886        pub fn as_str_name(&self) -> &'static str {
5887            match self {
5888                Self::Buy => "BUY",
5889                Self::Sell => "SELL",
5890                Self::Ss => "SS",
5891            }
5892        }
5893        /// Creates an enum from field names used in the ProtoBuf definition.
5894        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5895            match value {
5896                "BUY" => Some(Self::Buy),
5897                "SELL" => Some(Self::Sell),
5898                "SS" => Some(Self::Ss),
5899                _ => None,
5900            }
5901        }
5902    }
5903    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5904    #[repr(i32)]
5905    pub enum Duration {
5906        Day = 1,
5907        Gtc = 2,
5908        Ioc = 3,
5909        Fok = 4,
5910    }
5911    impl Duration {
5912        /// String value of the enum field names used in the ProtoBuf definition.
5913        ///
5914        /// The values are not transformed in any way and thus are considered stable
5915        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5916        pub fn as_str_name(&self) -> &'static str {
5917            match self {
5918                Self::Day => "DAY",
5919                Self::Gtc => "GTC",
5920                Self::Ioc => "IOC",
5921                Self::Fok => "FOK",
5922            }
5923        }
5924        /// Creates an enum from field names used in the ProtoBuf definition.
5925        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5926            match value {
5927                "DAY" => Some(Self::Day),
5928                "GTC" => Some(Self::Gtc),
5929                "IOC" => Some(Self::Ioc),
5930                "FOK" => Some(Self::Fok),
5931                _ => None,
5932            }
5933        }
5934    }
5935    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5936    #[repr(i32)]
5937    pub enum PriceType {
5938        Limit = 1,
5939        Market = 2,
5940        StopLimit = 3,
5941        StopMarket = 4,
5942    }
5943    impl PriceType {
5944        /// String value of the enum field names used in the ProtoBuf definition.
5945        ///
5946        /// The values are not transformed in any way and thus are considered stable
5947        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5948        pub fn as_str_name(&self) -> &'static str {
5949            match self {
5950                Self::Limit => "LIMIT",
5951                Self::Market => "MARKET",
5952                Self::StopLimit => "STOP_LIMIT",
5953                Self::StopMarket => "STOP_MARKET",
5954            }
5955        }
5956        /// Creates an enum from field names used in the ProtoBuf definition.
5957        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5958            match value {
5959                "LIMIT" => Some(Self::Limit),
5960                "MARKET" => Some(Self::Market),
5961                "STOP_LIMIT" => Some(Self::StopLimit),
5962                "STOP_MARKET" => Some(Self::StopMarket),
5963                _ => None,
5964            }
5965        }
5966    }
5967    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5968    #[repr(i32)]
5969    pub enum BracketType {
5970        StopOnly = 1,
5971        TargetOnly = 2,
5972        TargetAndStop = 3,
5973        StopOnlyStatic = 4,
5974        TargetOnlyStatic = 5,
5975        TargetAndStopStatic = 6,
5976    }
5977    impl BracketType {
5978        /// String value of the enum field names used in the ProtoBuf definition.
5979        ///
5980        /// The values are not transformed in any way and thus are considered stable
5981        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5982        pub fn as_str_name(&self) -> &'static str {
5983            match self {
5984                Self::StopOnly => "STOP_ONLY",
5985                Self::TargetOnly => "TARGET_ONLY",
5986                Self::TargetAndStop => "TARGET_AND_STOP",
5987                Self::StopOnlyStatic => "STOP_ONLY_STATIC",
5988                Self::TargetOnlyStatic => "TARGET_ONLY_STATIC",
5989                Self::TargetAndStopStatic => "TARGET_AND_STOP_STATIC",
5990            }
5991        }
5992        /// Creates an enum from field names used in the ProtoBuf definition.
5993        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5994            match value {
5995                "STOP_ONLY" => Some(Self::StopOnly),
5996                "TARGET_ONLY" => Some(Self::TargetOnly),
5997                "TARGET_AND_STOP" => Some(Self::TargetAndStop),
5998                "STOP_ONLY_STATIC" => Some(Self::StopOnlyStatic),
5999                "TARGET_ONLY_STATIC" => Some(Self::TargetOnlyStatic),
6000                "TARGET_AND_STOP_STATIC" => Some(Self::TargetAndStopStatic),
6001                _ => None,
6002            }
6003        }
6004    }
6005    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6006    #[repr(i32)]
6007    pub enum OrderPlacement {
6008        Manual = 1,
6009        Auto = 2,
6010    }
6011    impl OrderPlacement {
6012        /// String value of the enum field names used in the ProtoBuf definition.
6013        ///
6014        /// The values are not transformed in any way and thus are considered stable
6015        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6016        pub fn as_str_name(&self) -> &'static str {
6017            match self {
6018                Self::Manual => "MANUAL",
6019                Self::Auto => "AUTO",
6020            }
6021        }
6022        /// Creates an enum from field names used in the ProtoBuf definition.
6023        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6024            match value {
6025                "MANUAL" => Some(Self::Manual),
6026                "AUTO" => Some(Self::Auto),
6027                _ => None,
6028            }
6029        }
6030    }
6031}
6032/// PB_OFFSET = 100000, is the offset added for each MNM field id
6033#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6034pub struct AccountListUpdates {
6035    /// PB_OFFSET + MNM_TEMPLATE_ID
6036    #[prost(int32, required, tag = "154467")]
6037    pub template_id: i32,
6038    /// PB_OFFSET + MNM_FCM_ID
6039    #[prost(string, optional, tag = "154013")]
6040    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6041    /// PB_OFFSET + MNM_IB_ID
6042    #[prost(string, optional, tag = "154014")]
6043    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6044    /// PB_OFFSET + MNM_ACCOUNT_ID
6045    #[prost(string, optional, tag = "154008")]
6046    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6047    /// PB_OFFSET + MNM_AUTO_LIQ_THRESHOLD_CURRENT_VALUE
6048    #[prost(string, optional, tag = "131040")]
6049    pub auto_liq_threshold_current_value: ::core::option::Option<::prost::alloc::string::String>,
6050}
6051/// PB_OFFSET = 100000, is the offset added for each MNM field id
6052#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6053pub struct UpdateEasyToBorrowList {
6054    /// PB_OFFSET + MNM_TEMPLATE_ID
6055    #[prost(int32, required, tag = "154467")]
6056    pub template_id: i32,
6057    /// PB_OFFSET + MNM_BROKER_DEALER
6058    #[prost(string, optional, tag = "154612")]
6059    pub broker_dealer: ::core::option::Option<::prost::alloc::string::String>,
6060    /// PB_OFFSET + MNM_SYMBOL
6061    #[prost(string, optional, tag = "110100")]
6062    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6063    /// PB_OFFSET + MNM_SYMBOL_NAME
6064    #[prost(string, optional, tag = "100003")]
6065    pub symbol_name: ::core::option::Option<::prost::alloc::string::String>,
6066    /// PB_OFFSET + MNM_TOTAL_AVAILABLE_QTY
6067    #[prost(int32, optional, tag = "154613")]
6068    pub qty_available: ::core::option::Option<i32>,
6069    /// PB_OFFSET + MNM_TOTAL_USED_QTY
6070    #[prost(int32, optional, tag = "154614")]
6071    pub qty_needed: ::core::option::Option<i32>,
6072    /// PB_OFFSET + MNM_SHORT_LIST_INDICATOR
6073    #[prost(bool, optional, tag = "110353")]
6074    pub borrowable: ::core::option::Option<bool>,
6075}
6076#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6077pub struct AccountRmsUpdates {
6078    #[prost(int32, required, tag = "154467")]
6079    pub template_id: i32,
6080    #[prost(int32, optional, tag = "154211")]
6081    pub update_bits: ::core::option::Option<i32>,
6082    #[prost(string, optional, tag = "154013")]
6083    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6084    #[prost(string, optional, tag = "154014")]
6085    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6086    #[prost(string, optional, tag = "154008")]
6087    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6088    #[prost(string, optional, tag = "131040")]
6089    pub auto_liq_threshold_current_value: ::core::option::Option<::prost::alloc::string::String>,
6090    #[prost(string, optional, tag = "131049")]
6091    pub auto_liq_peak_account_balance: ::core::option::Option<::prost::alloc::string::String>,
6092    #[prost(string, optional, tag = "131050")]
6093    pub auto_liq_peak_account_balance_ssboe: ::core::option::Option<::prost::alloc::string::String>,
6094}
6095/// Nested message and enum types in `AccountRmsUpdates`.
6096pub mod account_rms_updates {
6097    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6098    #[repr(i32)]
6099    pub enum UpdateBits {
6100        AutoLiqThresholdCurrentValue = 1,
6101    }
6102    impl UpdateBits {
6103        /// String value of the enum field names used in the ProtoBuf definition.
6104        ///
6105        /// The values are not transformed in any way and thus are considered stable
6106        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6107        pub fn as_str_name(&self) -> &'static str {
6108            match self {
6109                Self::AutoLiqThresholdCurrentValue => "AUTO_LIQ_THRESHOLD_CURRENT_VALUE",
6110            }
6111        }
6112        /// Creates an enum from field names used in the ProtoBuf definition.
6113        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6114            match value {
6115                "AUTO_LIQ_THRESHOLD_CURRENT_VALUE" => Some(Self::AutoLiqThresholdCurrentValue),
6116                _ => None,
6117            }
6118        }
6119    }
6120}
6121/// PB_OFFSET = 100000, is the offset added for each MNM field id
6122#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6123pub struct RequestPnLPositionUpdates {
6124    /// PB_OFFSET + MNM_TEMPLATE_ID
6125    #[prost(int32, required, tag = "154467")]
6126    pub template_id: i32,
6127    /// PB_OFFSET + MNM_USER_MSG
6128    #[prost(string, repeated, tag = "132760")]
6129    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6130    /// PB_OFFSET + MNM_REQUEST
6131    #[prost(
6132        enumeration = "request_pn_l_position_updates::Request",
6133        optional,
6134        tag = "100000"
6135    )]
6136    pub request: ::core::option::Option<i32>,
6137    /// PB_OFFSET + MNM_FCM_ID
6138    #[prost(string, optional, tag = "154013")]
6139    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6140    /// PB_OFFSET + MNM_IB_ID
6141    #[prost(string, optional, tag = "154014")]
6142    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6143    /// PB_OFFSET + MNM_ACCOUNT_ID
6144    #[prost(string, optional, tag = "154008")]
6145    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6146}
6147/// Nested message and enum types in `RequestPnLPositionUpdates`.
6148pub mod request_pn_l_position_updates {
6149    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6150    #[repr(i32)]
6151    pub enum Request {
6152        Subscribe = 1,
6153        Unsubscribe = 2,
6154    }
6155    impl Request {
6156        /// String value of the enum field names used in the ProtoBuf definition.
6157        ///
6158        /// The values are not transformed in any way and thus are considered stable
6159        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6160        pub fn as_str_name(&self) -> &'static str {
6161            match self {
6162                Self::Subscribe => "SUBSCRIBE",
6163                Self::Unsubscribe => "UNSUBSCRIBE",
6164            }
6165        }
6166        /// Creates an enum from field names used in the ProtoBuf definition.
6167        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6168            match value {
6169                "SUBSCRIBE" => Some(Self::Subscribe),
6170                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
6171                _ => None,
6172            }
6173        }
6174    }
6175}
6176/// PB_OFFSET = 100000, is the offset added for each MNM field id
6177#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6178pub struct ResponsePnLPositionUpdates {
6179    /// PB_OFFSET + MNM_TEMPLATE_ID
6180    #[prost(int32, required, tag = "154467")]
6181    pub template_id: i32,
6182    /// PB_OFFSET + MNM_USER_MSG
6183    #[prost(string, repeated, tag = "132760")]
6184    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6185    /// PB_OFFSET + MNM_RESPONSE_CODE
6186    #[prost(string, repeated, tag = "132766")]
6187    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6188}
6189/// PB_OFFSET = 100000, is the offset added for each MNM field id
6190#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6191pub struct RequestPnLPositionSnapshot {
6192    /// PB_OFFSET + MNM_TEMPLATE_ID
6193    #[prost(int32, required, tag = "154467")]
6194    pub template_id: i32,
6195    /// PB_OFFSET + MNM_USER_MSG
6196    #[prost(string, repeated, tag = "132760")]
6197    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6198    /// PB_OFFSET + MNM_FCM_ID
6199    #[prost(string, optional, tag = "154013")]
6200    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6201    /// PB_OFFSET + MNM_IB_ID
6202    #[prost(string, optional, tag = "154014")]
6203    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6204    /// PB_OFFSET + MNM_ACCOUNT_ID
6205    #[prost(string, optional, tag = "154008")]
6206    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6207}
6208/// PB_OFFSET = 100000, is the offset added for each MNM field id
6209#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6210pub struct ResponsePnLPositionSnapshot {
6211    /// PB_OFFSET + MNM_TEMPLATE_ID
6212    #[prost(int32, required, tag = "154467")]
6213    pub template_id: i32,
6214    /// PB_OFFSET + MNM_USER_MSG
6215    #[prost(string, repeated, tag = "132760")]
6216    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6217    /// PB_OFFSET + MNM_RESPONSE_CODE
6218    #[prost(string, repeated, tag = "132766")]
6219    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6220}
6221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6222pub struct AccountPnLPositionUpdate {
6223    #[prost(int32, required, tag = "154467")]
6224    pub template_id: i32,
6225    #[prost(bool, optional, tag = "110121")]
6226    pub is_snapshot: ::core::option::Option<bool>,
6227    #[prost(string, optional, tag = "154013")]
6228    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6229    #[prost(string, optional, tag = "154014")]
6230    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6231    #[prost(string, optional, tag = "154008")]
6232    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6233    #[prost(int32, optional, tag = "154041")]
6234    pub fill_buy_qty: ::core::option::Option<i32>,
6235    #[prost(int32, optional, tag = "154042")]
6236    pub fill_sell_qty: ::core::option::Option<i32>,
6237    #[prost(int32, optional, tag = "154037")]
6238    pub order_buy_qty: ::core::option::Option<i32>,
6239    #[prost(int32, optional, tag = "154038")]
6240    pub order_sell_qty: ::core::option::Option<i32>,
6241    #[prost(int32, optional, tag = "154260")]
6242    pub buy_qty: ::core::option::Option<i32>,
6243    #[prost(int32, optional, tag = "154261")]
6244    pub sell_qty: ::core::option::Option<i32>,
6245    #[prost(string, optional, tag = "157105")]
6246    pub open_long_options_value: ::core::option::Option<::prost::alloc::string::String>,
6247    #[prost(string, optional, tag = "157106")]
6248    pub open_short_options_value: ::core::option::Option<::prost::alloc::string::String>,
6249    #[prost(string, optional, tag = "157107")]
6250    pub closed_options_value: ::core::option::Option<::prost::alloc::string::String>,
6251    #[prost(string, optional, tag = "157111")]
6252    pub option_cash_reserved: ::core::option::Option<::prost::alloc::string::String>,
6253    #[prost(string, optional, tag = "157113")]
6254    pub rms_account_commission: ::core::option::Option<::prost::alloc::string::String>,
6255    #[prost(string, optional, tag = "156961")]
6256    pub open_position_pnl: ::core::option::Option<::prost::alloc::string::String>,
6257    #[prost(int32, optional, tag = "156962")]
6258    pub open_position_quantity: ::core::option::Option<i32>,
6259    #[prost(string, optional, tag = "156963")]
6260    pub closed_position_pnl: ::core::option::Option<::prost::alloc::string::String>,
6261    #[prost(int32, optional, tag = "156964")]
6262    pub closed_position_quantity: ::core::option::Option<i32>,
6263    #[prost(int32, optional, tag = "156967")]
6264    pub net_quantity: ::core::option::Option<i32>,
6265    #[prost(string, optional, tag = "156991")]
6266    pub excess_buy_margin: ::core::option::Option<::prost::alloc::string::String>,
6267    #[prost(string, optional, tag = "156977")]
6268    pub margin_balance: ::core::option::Option<::prost::alloc::string::String>,
6269    #[prost(string, optional, tag = "156976")]
6270    pub min_margin_balance: ::core::option::Option<::prost::alloc::string::String>,
6271    #[prost(string, optional, tag = "156968")]
6272    pub min_account_balance: ::core::option::Option<::prost::alloc::string::String>,
6273    #[prost(string, optional, tag = "156970")]
6274    pub account_balance: ::core::option::Option<::prost::alloc::string::String>,
6275    #[prost(string, optional, tag = "156971")]
6276    pub cash_on_hand: ::core::option::Option<::prost::alloc::string::String>,
6277    #[prost(string, optional, tag = "157118")]
6278    pub option_closed_pnl: ::core::option::Option<::prost::alloc::string::String>,
6279    #[prost(string, optional, tag = "156965")]
6280    pub percent_maximum_allowable_loss: ::core::option::Option<::prost::alloc::string::String>,
6281    #[prost(string, optional, tag = "157117")]
6282    pub option_open_pnl: ::core::option::Option<::prost::alloc::string::String>,
6283    #[prost(string, optional, tag = "154262")]
6284    pub mtm_account: ::core::option::Option<::prost::alloc::string::String>,
6285    #[prost(string, optional, tag = "157015")]
6286    pub available_buying_power: ::core::option::Option<::prost::alloc::string::String>,
6287    #[prost(string, optional, tag = "157014")]
6288    pub used_buying_power: ::core::option::Option<::prost::alloc::string::String>,
6289    #[prost(string, optional, tag = "157013")]
6290    pub reserved_buying_power: ::core::option::Option<::prost::alloc::string::String>,
6291    #[prost(string, optional, tag = "156992")]
6292    pub excess_sell_margin: ::core::option::Option<::prost::alloc::string::String>,
6293    #[prost(string, optional, tag = "157954")]
6294    pub day_open_pnl: ::core::option::Option<::prost::alloc::string::String>,
6295    #[prost(string, optional, tag = "157955")]
6296    pub day_closed_pnl: ::core::option::Option<::prost::alloc::string::String>,
6297    #[prost(string, optional, tag = "157956")]
6298    pub day_pnl: ::core::option::Option<::prost::alloc::string::String>,
6299    #[prost(string, optional, tag = "157957")]
6300    pub day_open_pnl_offset: ::core::option::Option<::prost::alloc::string::String>,
6301    #[prost(string, optional, tag = "157958")]
6302    pub day_closed_pnl_offset: ::core::option::Option<::prost::alloc::string::String>,
6303    #[prost(int32, optional, tag = "150100")]
6304    pub ssboe: ::core::option::Option<i32>,
6305    #[prost(int32, optional, tag = "150101")]
6306    pub usecs: ::core::option::Option<i32>,
6307}
6308#[derive(Clone, PartialEq, ::prost::Message)]
6309pub struct InstrumentPnLPositionUpdate {
6310    #[prost(int32, required, tag = "154467")]
6311    pub template_id: i32,
6312    #[prost(bool, optional, tag = "110121")]
6313    pub is_snapshot: ::core::option::Option<bool>,
6314    #[prost(string, optional, tag = "154013")]
6315    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
6316    #[prost(string, optional, tag = "154014")]
6317    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
6318    #[prost(string, optional, tag = "154008")]
6319    pub account_id: ::core::option::Option<::prost::alloc::string::String>,
6320    #[prost(string, optional, tag = "110100")]
6321    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6322    #[prost(string, optional, tag = "110101")]
6323    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6324    #[prost(string, optional, tag = "100749")]
6325    pub product_code: ::core::option::Option<::prost::alloc::string::String>,
6326    #[prost(string, optional, tag = "110116")]
6327    pub instrument_type: ::core::option::Option<::prost::alloc::string::String>,
6328    #[prost(int32, optional, tag = "154041")]
6329    pub fill_buy_qty: ::core::option::Option<i32>,
6330    #[prost(int32, optional, tag = "154042")]
6331    pub fill_sell_qty: ::core::option::Option<i32>,
6332    #[prost(int32, optional, tag = "154037")]
6333    pub order_buy_qty: ::core::option::Option<i32>,
6334    #[prost(int32, optional, tag = "154038")]
6335    pub order_sell_qty: ::core::option::Option<i32>,
6336    #[prost(int32, optional, tag = "154260")]
6337    pub buy_qty: ::core::option::Option<i32>,
6338    #[prost(int32, optional, tag = "154261")]
6339    pub sell_qty: ::core::option::Option<i32>,
6340    #[prost(double, optional, tag = "154434")]
6341    pub avg_open_fill_price: ::core::option::Option<f64>,
6342    #[prost(double, optional, tag = "157954")]
6343    pub day_open_pnl: ::core::option::Option<f64>,
6344    #[prost(double, optional, tag = "157955")]
6345    pub day_closed_pnl: ::core::option::Option<f64>,
6346    #[prost(double, optional, tag = "157956")]
6347    pub day_pnl: ::core::option::Option<f64>,
6348    #[prost(double, optional, tag = "157957")]
6349    pub day_open_pnl_offset: ::core::option::Option<f64>,
6350    #[prost(double, optional, tag = "157958")]
6351    pub day_closed_pnl_offset: ::core::option::Option<f64>,
6352    #[prost(string, optional, tag = "154263")]
6353    pub mtm_security: ::core::option::Option<::prost::alloc::string::String>,
6354    #[prost(string, optional, tag = "157105")]
6355    pub open_long_options_value: ::core::option::Option<::prost::alloc::string::String>,
6356    #[prost(string, optional, tag = "157106")]
6357    pub open_short_options_value: ::core::option::Option<::prost::alloc::string::String>,
6358    #[prost(string, optional, tag = "157107")]
6359    pub closed_options_value: ::core::option::Option<::prost::alloc::string::String>,
6360    #[prost(string, optional, tag = "157111")]
6361    pub option_cash_reserved: ::core::option::Option<::prost::alloc::string::String>,
6362    #[prost(string, optional, tag = "156961")]
6363    pub open_position_pnl: ::core::option::Option<::prost::alloc::string::String>,
6364    #[prost(int32, optional, tag = "156962")]
6365    pub open_position_quantity: ::core::option::Option<i32>,
6366    #[prost(string, optional, tag = "156963")]
6367    pub closed_position_pnl: ::core::option::Option<::prost::alloc::string::String>,
6368    #[prost(int32, optional, tag = "156964")]
6369    pub closed_position_quantity: ::core::option::Option<i32>,
6370    #[prost(int32, optional, tag = "156967")]
6371    pub net_quantity: ::core::option::Option<i32>,
6372    #[prost(int32, optional, tag = "150100")]
6373    pub ssboe: ::core::option::Option<i32>,
6374    #[prost(int32, optional, tag = "150101")]
6375    pub usecs: ::core::option::Option<i32>,
6376}
6377#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6378pub struct RequestTickBarReplay {
6379    #[prost(int32, required, tag = "154467")]
6380    pub template_id: i32,
6381    #[prost(string, repeated, tag = "132760")]
6382    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6383    #[prost(string, optional, tag = "110100")]
6384    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6385    #[prost(string, optional, tag = "110101")]
6386    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6387    #[prost(
6388        enumeration = "request_tick_bar_replay::BarType",
6389        optional,
6390        tag = "119200"
6391    )]
6392    pub bar_type: ::core::option::Option<i32>,
6393    #[prost(
6394        enumeration = "request_tick_bar_replay::BarSubType",
6395        optional,
6396        tag = "119208"
6397    )]
6398    pub bar_sub_type: ::core::option::Option<i32>,
6399    #[prost(string, optional, tag = "148162")]
6400    pub bar_type_specifier: ::core::option::Option<::prost::alloc::string::String>,
6401    #[prost(int32, optional, tag = "153002")]
6402    pub start_index: ::core::option::Option<i32>,
6403    #[prost(int32, optional, tag = "153003")]
6404    pub finish_index: ::core::option::Option<i32>,
6405    #[prost(int32, optional, tag = "154020")]
6406    pub user_max_count: ::core::option::Option<i32>,
6407    #[prost(int32, optional, tag = "119209")]
6408    pub custom_session_open_ssm: ::core::option::Option<i32>,
6409    #[prost(int32, optional, tag = "119210")]
6410    pub custom_session_close_ssm: ::core::option::Option<i32>,
6411    #[prost(
6412        enumeration = "request_tick_bar_replay::Direction",
6413        optional,
6414        tag = "149253"
6415    )]
6416    pub direction: ::core::option::Option<i32>,
6417    #[prost(
6418        enumeration = "request_tick_bar_replay::TimeOrder",
6419        optional,
6420        tag = "149307"
6421    )]
6422    pub time_order: ::core::option::Option<i32>,
6423    #[prost(bool, optional, tag = "153642")]
6424    pub resume_bars: ::core::option::Option<bool>,
6425}
6426/// Nested message and enum types in `RequestTickBarReplay`.
6427pub mod request_tick_bar_replay {
6428    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6429    #[repr(i32)]
6430    pub enum BarType {
6431        TickBar = 1,
6432        RangeBar = 2,
6433        VolumeBar = 3,
6434    }
6435    impl BarType {
6436        /// String value of the enum field names used in the ProtoBuf definition.
6437        ///
6438        /// The values are not transformed in any way and thus are considered stable
6439        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6440        pub fn as_str_name(&self) -> &'static str {
6441            match self {
6442                Self::TickBar => "TICK_BAR",
6443                Self::RangeBar => "RANGE_BAR",
6444                Self::VolumeBar => "VOLUME_BAR",
6445            }
6446        }
6447        /// Creates an enum from field names used in the ProtoBuf definition.
6448        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6449            match value {
6450                "TICK_BAR" => Some(Self::TickBar),
6451                "RANGE_BAR" => Some(Self::RangeBar),
6452                "VOLUME_BAR" => Some(Self::VolumeBar),
6453                _ => None,
6454            }
6455        }
6456    }
6457    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6458    #[repr(i32)]
6459    pub enum BarSubType {
6460        Regular = 1,
6461        Custom = 2,
6462    }
6463    impl BarSubType {
6464        /// String value of the enum field names used in the ProtoBuf definition.
6465        ///
6466        /// The values are not transformed in any way and thus are considered stable
6467        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6468        pub fn as_str_name(&self) -> &'static str {
6469            match self {
6470                Self::Regular => "REGULAR",
6471                Self::Custom => "CUSTOM",
6472            }
6473        }
6474        /// Creates an enum from field names used in the ProtoBuf definition.
6475        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6476            match value {
6477                "REGULAR" => Some(Self::Regular),
6478                "CUSTOM" => Some(Self::Custom),
6479                _ => None,
6480            }
6481        }
6482    }
6483    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6484    #[repr(i32)]
6485    pub enum Direction {
6486        First = 1,
6487        Last = 2,
6488    }
6489    impl Direction {
6490        /// String value of the enum field names used in the ProtoBuf definition.
6491        ///
6492        /// The values are not transformed in any way and thus are considered stable
6493        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6494        pub fn as_str_name(&self) -> &'static str {
6495            match self {
6496                Self::First => "FIRST",
6497                Self::Last => "LAST",
6498            }
6499        }
6500        /// Creates an enum from field names used in the ProtoBuf definition.
6501        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6502            match value {
6503                "FIRST" => Some(Self::First),
6504                "LAST" => Some(Self::Last),
6505                _ => None,
6506            }
6507        }
6508    }
6509    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6510    #[repr(i32)]
6511    pub enum TimeOrder {
6512        Forwards = 1,
6513        Backwards = 2,
6514    }
6515    impl TimeOrder {
6516        /// String value of the enum field names used in the ProtoBuf definition.
6517        ///
6518        /// The values are not transformed in any way and thus are considered stable
6519        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6520        pub fn as_str_name(&self) -> &'static str {
6521            match self {
6522                Self::Forwards => "FORWARDS",
6523                Self::Backwards => "BACKWARDS",
6524            }
6525        }
6526        /// Creates an enum from field names used in the ProtoBuf definition.
6527        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6528            match value {
6529                "FORWARDS" => Some(Self::Forwards),
6530                "BACKWARDS" => Some(Self::Backwards),
6531                _ => None,
6532            }
6533        }
6534    }
6535}
6536#[derive(Clone, PartialEq, ::prost::Message)]
6537pub struct ResponseTickBarReplay {
6538    #[prost(int32, required, tag = "154467")]
6539    pub template_id: i32,
6540    #[prost(string, optional, tag = "132758")]
6541    pub request_key: ::core::option::Option<::prost::alloc::string::String>,
6542    #[prost(string, repeated, tag = "132760")]
6543    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6544    #[prost(string, repeated, tag = "132764")]
6545    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6546    #[prost(string, repeated, tag = "132766")]
6547    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6548    #[prost(string, optional, tag = "110100")]
6549    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6550    #[prost(string, optional, tag = "110101")]
6551    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6552    #[prost(
6553        enumeration = "response_tick_bar_replay::BarType",
6554        optional,
6555        tag = "119200"
6556    )]
6557    pub r#type: ::core::option::Option<i32>,
6558    #[prost(
6559        enumeration = "response_tick_bar_replay::BarSubType",
6560        optional,
6561        tag = "119208"
6562    )]
6563    pub sub_type: ::core::option::Option<i32>,
6564    #[prost(string, optional, tag = "148162")]
6565    pub type_specifier: ::core::option::Option<::prost::alloc::string::String>,
6566    #[prost(uint64, optional, tag = "119204")]
6567    pub num_trades: ::core::option::Option<u64>,
6568    #[prost(uint64, optional, tag = "119205")]
6569    pub volume: ::core::option::Option<u64>,
6570    #[prost(uint64, optional, tag = "119213")]
6571    pub bid_volume: ::core::option::Option<u64>,
6572    #[prost(uint64, optional, tag = "119214")]
6573    pub ask_volume: ::core::option::Option<u64>,
6574    #[prost(double, optional, tag = "100019")]
6575    pub open_price: ::core::option::Option<f64>,
6576    #[prost(double, optional, tag = "100021")]
6577    pub close_price: ::core::option::Option<f64>,
6578    #[prost(double, optional, tag = "100012")]
6579    pub high_price: ::core::option::Option<f64>,
6580    #[prost(double, optional, tag = "100013")]
6581    pub low_price: ::core::option::Option<f64>,
6582    #[prost(int32, optional, tag = "119209")]
6583    pub custom_session_open_ssm: ::core::option::Option<i32>,
6584    #[prost(int32, repeated, packed = "false", tag = "119202")]
6585    pub data_bar_ssboe: ::prost::alloc::vec::Vec<i32>,
6586    #[prost(int32, repeated, packed = "false", tag = "119203")]
6587    pub data_bar_usecs: ::prost::alloc::vec::Vec<i32>,
6588}
6589/// Nested message and enum types in `ResponseTickBarReplay`.
6590pub mod response_tick_bar_replay {
6591    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6592    #[repr(i32)]
6593    pub enum BarType {
6594        TickBar = 1,
6595        RangeBar = 2,
6596        VolumeBar = 3,
6597    }
6598    impl BarType {
6599        /// String value of the enum field names used in the ProtoBuf definition.
6600        ///
6601        /// The values are not transformed in any way and thus are considered stable
6602        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6603        pub fn as_str_name(&self) -> &'static str {
6604            match self {
6605                Self::TickBar => "TICK_BAR",
6606                Self::RangeBar => "RANGE_BAR",
6607                Self::VolumeBar => "VOLUME_BAR",
6608            }
6609        }
6610        /// Creates an enum from field names used in the ProtoBuf definition.
6611        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6612            match value {
6613                "TICK_BAR" => Some(Self::TickBar),
6614                "RANGE_BAR" => Some(Self::RangeBar),
6615                "VOLUME_BAR" => Some(Self::VolumeBar),
6616                _ => None,
6617            }
6618        }
6619    }
6620    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6621    #[repr(i32)]
6622    pub enum BarSubType {
6623        Regular = 1,
6624        Custom = 2,
6625    }
6626    impl BarSubType {
6627        /// String value of the enum field names used in the ProtoBuf definition.
6628        ///
6629        /// The values are not transformed in any way and thus are considered stable
6630        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6631        pub fn as_str_name(&self) -> &'static str {
6632            match self {
6633                Self::Regular => "REGULAR",
6634                Self::Custom => "CUSTOM",
6635            }
6636        }
6637        /// Creates an enum from field names used in the ProtoBuf definition.
6638        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6639            match value {
6640                "REGULAR" => Some(Self::Regular),
6641                "CUSTOM" => Some(Self::Custom),
6642                _ => None,
6643            }
6644        }
6645    }
6646}
6647/// PB_OFFSET = 100000, is the offset added for each MNM field id
6648#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6649pub struct RequestTickBarUpdate {
6650    /// PB_OFFSET + MNM_TEMPLATE_ID
6651    #[prost(int32, required, tag = "154467")]
6652    pub template_id: i32,
6653    /// PB_OFFSET + MNM_USER_MSG
6654    #[prost(string, repeated, tag = "132760")]
6655    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6656    /// PB_OFFSET + MNM_SYMBOL
6657    #[prost(string, optional, tag = "110100")]
6658    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6659    /// PB_OFFSET + MNM_EXCHANGE
6660    #[prost(string, optional, tag = "110101")]
6661    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6662    /// PB_OFFSET + MNM_REQUEST
6663    #[prost(
6664        enumeration = "request_tick_bar_update::Request",
6665        optional,
6666        tag = "100000"
6667    )]
6668    pub request: ::core::option::Option<i32>,
6669    /// PB_OFFSET + MNM_DATA_BAR_TYPE
6670    #[prost(
6671        enumeration = "request_tick_bar_update::BarType",
6672        optional,
6673        tag = "119200"
6674    )]
6675    pub bar_type: ::core::option::Option<i32>,
6676    /// PB_OFFSET + MNM_DATA_BAR_SUB_TYPE
6677    #[prost(
6678        enumeration = "request_tick_bar_update::BarSubType",
6679        optional,
6680        tag = "119208"
6681    )]
6682    pub bar_sub_type: ::core::option::Option<i32>,
6683    /// PB_OFFSET + MNM_CATEGORY_SPECIFIC_INFO
6684    #[prost(string, optional, tag = "148162")]
6685    pub bar_type_specifier: ::core::option::Option<::prost::alloc::string::String>,
6686    /// PB_OFFSET + MNM_CUSTOM_SESSION_OPEN_SSM
6687    #[prost(int32, optional, tag = "119209")]
6688    pub custom_session_open_ssm: ::core::option::Option<i32>,
6689    /// PB_OFFSET + MNM_CUSTOM_SESSION_CLOSE_SSM
6690    #[prost(int32, optional, tag = "119210")]
6691    pub custom_session_close_ssm: ::core::option::Option<i32>,
6692}
6693/// Nested message and enum types in `RequestTickBarUpdate`.
6694pub mod request_tick_bar_update {
6695    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6696    #[repr(i32)]
6697    pub enum BarType {
6698        TickBar = 1,
6699        RangeBar = 2,
6700        VolumeBar = 3,
6701    }
6702    impl BarType {
6703        /// String value of the enum field names used in the ProtoBuf definition.
6704        ///
6705        /// The values are not transformed in any way and thus are considered stable
6706        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6707        pub fn as_str_name(&self) -> &'static str {
6708            match self {
6709                Self::TickBar => "TICK_BAR",
6710                Self::RangeBar => "RANGE_BAR",
6711                Self::VolumeBar => "VOLUME_BAR",
6712            }
6713        }
6714        /// Creates an enum from field names used in the ProtoBuf definition.
6715        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6716            match value {
6717                "TICK_BAR" => Some(Self::TickBar),
6718                "RANGE_BAR" => Some(Self::RangeBar),
6719                "VOLUME_BAR" => Some(Self::VolumeBar),
6720                _ => None,
6721            }
6722        }
6723    }
6724    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6725    #[repr(i32)]
6726    pub enum BarSubType {
6727        Regular = 1,
6728        Custom = 2,
6729    }
6730    impl BarSubType {
6731        /// String value of the enum field names used in the ProtoBuf definition.
6732        ///
6733        /// The values are not transformed in any way and thus are considered stable
6734        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6735        pub fn as_str_name(&self) -> &'static str {
6736            match self {
6737                Self::Regular => "REGULAR",
6738                Self::Custom => "CUSTOM",
6739            }
6740        }
6741        /// Creates an enum from field names used in the ProtoBuf definition.
6742        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6743            match value {
6744                "REGULAR" => Some(Self::Regular),
6745                "CUSTOM" => Some(Self::Custom),
6746                _ => None,
6747            }
6748        }
6749    }
6750    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6751    #[repr(i32)]
6752    pub enum Request {
6753        Subscribe = 1,
6754        Unsubscribe = 2,
6755    }
6756    impl Request {
6757        /// String value of the enum field names used in the ProtoBuf definition.
6758        ///
6759        /// The values are not transformed in any way and thus are considered stable
6760        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6761        pub fn as_str_name(&self) -> &'static str {
6762            match self {
6763                Self::Subscribe => "SUBSCRIBE",
6764                Self::Unsubscribe => "UNSUBSCRIBE",
6765            }
6766        }
6767        /// Creates an enum from field names used in the ProtoBuf definition.
6768        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6769            match value {
6770                "SUBSCRIBE" => Some(Self::Subscribe),
6771                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
6772                _ => None,
6773            }
6774        }
6775    }
6776}
6777/// PB_OFFSET = 100000, is the offset added for each MNM field id
6778#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6779pub struct ResponseTickBarUpdate {
6780    /// PB_OFFSET + MNM_TEMPLATE_ID
6781    #[prost(int32, required, tag = "154467")]
6782    pub template_id: i32,
6783    /// PB_OFFSET + MNM_USER_MSG
6784    #[prost(string, repeated, tag = "132760")]
6785    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6786    /// PB_OFFSET + MNM_RESPONSE_CODE
6787    #[prost(string, repeated, tag = "132766")]
6788    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6789}
6790#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6791pub struct RequestTimeBarReplay {
6792    #[prost(int32, required, tag = "154467")]
6793    pub template_id: i32,
6794    #[prost(string, repeated, tag = "132760")]
6795    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6796    #[prost(string, optional, tag = "110100")]
6797    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6798    #[prost(string, optional, tag = "110101")]
6799    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6800    #[prost(
6801        enumeration = "request_time_bar_replay::BarType",
6802        optional,
6803        tag = "119200"
6804    )]
6805    pub bar_type: ::core::option::Option<i32>,
6806    #[prost(int32, optional, tag = "119112")]
6807    pub bar_type_period: ::core::option::Option<i32>,
6808    #[prost(int32, optional, tag = "153002")]
6809    pub start_index: ::core::option::Option<i32>,
6810    #[prost(int32, optional, tag = "153003")]
6811    pub finish_index: ::core::option::Option<i32>,
6812    #[prost(int32, optional, tag = "154020")]
6813    pub user_max_count: ::core::option::Option<i32>,
6814    #[prost(
6815        enumeration = "request_time_bar_replay::Direction",
6816        optional,
6817        tag = "149253"
6818    )]
6819    pub direction: ::core::option::Option<i32>,
6820    #[prost(
6821        enumeration = "request_time_bar_replay::TimeOrder",
6822        optional,
6823        tag = "149307"
6824    )]
6825    pub time_order: ::core::option::Option<i32>,
6826    #[prost(bool, optional, tag = "153642")]
6827    pub resume_bars: ::core::option::Option<bool>,
6828}
6829/// Nested message and enum types in `RequestTimeBarReplay`.
6830pub mod request_time_bar_replay {
6831    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6832    #[repr(i32)]
6833    pub enum BarType {
6834        SecondBar = 1,
6835        MinuteBar = 2,
6836        DailyBar = 3,
6837        WeeklyBar = 4,
6838    }
6839    impl BarType {
6840        /// String value of the enum field names used in the ProtoBuf definition.
6841        ///
6842        /// The values are not transformed in any way and thus are considered stable
6843        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6844        pub fn as_str_name(&self) -> &'static str {
6845            match self {
6846                Self::SecondBar => "SECOND_BAR",
6847                Self::MinuteBar => "MINUTE_BAR",
6848                Self::DailyBar => "DAILY_BAR",
6849                Self::WeeklyBar => "WEEKLY_BAR",
6850            }
6851        }
6852        /// Creates an enum from field names used in the ProtoBuf definition.
6853        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6854            match value {
6855                "SECOND_BAR" => Some(Self::SecondBar),
6856                "MINUTE_BAR" => Some(Self::MinuteBar),
6857                "DAILY_BAR" => Some(Self::DailyBar),
6858                "WEEKLY_BAR" => Some(Self::WeeklyBar),
6859                _ => None,
6860            }
6861        }
6862    }
6863    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6864    #[repr(i32)]
6865    pub enum Direction {
6866        First = 1,
6867        Last = 2,
6868    }
6869    impl Direction {
6870        /// String value of the enum field names used in the ProtoBuf definition.
6871        ///
6872        /// The values are not transformed in any way and thus are considered stable
6873        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6874        pub fn as_str_name(&self) -> &'static str {
6875            match self {
6876                Self::First => "FIRST",
6877                Self::Last => "LAST",
6878            }
6879        }
6880        /// Creates an enum from field names used in the ProtoBuf definition.
6881        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6882            match value {
6883                "FIRST" => Some(Self::First),
6884                "LAST" => Some(Self::Last),
6885                _ => None,
6886            }
6887        }
6888    }
6889    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6890    #[repr(i32)]
6891    pub enum TimeOrder {
6892        Forwards = 1,
6893        Backwards = 2,
6894    }
6895    impl TimeOrder {
6896        /// String value of the enum field names used in the ProtoBuf definition.
6897        ///
6898        /// The values are not transformed in any way and thus are considered stable
6899        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6900        pub fn as_str_name(&self) -> &'static str {
6901            match self {
6902                Self::Forwards => "FORWARDS",
6903                Self::Backwards => "BACKWARDS",
6904            }
6905        }
6906        /// Creates an enum from field names used in the ProtoBuf definition.
6907        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6908            match value {
6909                "FORWARDS" => Some(Self::Forwards),
6910                "BACKWARDS" => Some(Self::Backwards),
6911                _ => None,
6912            }
6913        }
6914    }
6915}
6916#[derive(Clone, PartialEq, ::prost::Message)]
6917pub struct ResponseTimeBarReplay {
6918    #[prost(int32, required, tag = "154467")]
6919    pub template_id: i32,
6920    #[prost(string, optional, tag = "132758")]
6921    pub request_key: ::core::option::Option<::prost::alloc::string::String>,
6922    #[prost(string, repeated, tag = "132760")]
6923    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6924    #[prost(string, repeated, tag = "132764")]
6925    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6926    #[prost(string, repeated, tag = "132766")]
6927    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6928    #[prost(string, optional, tag = "110100")]
6929    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
6930    #[prost(string, optional, tag = "110101")]
6931    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
6932    #[prost(
6933        enumeration = "response_time_bar_replay::BarType",
6934        optional,
6935        tag = "119200"
6936    )]
6937    pub r#type: ::core::option::Option<i32>,
6938    #[prost(string, optional, tag = "119112")]
6939    pub period: ::core::option::Option<::prost::alloc::string::String>,
6940    #[prost(int32, optional, tag = "119100")]
6941    pub marker: ::core::option::Option<i32>,
6942    #[prost(uint64, optional, tag = "119109")]
6943    pub num_trades: ::core::option::Option<u64>,
6944    #[prost(uint64, optional, tag = "119110")]
6945    pub volume: ::core::option::Option<u64>,
6946    #[prost(uint64, optional, tag = "119117")]
6947    pub bid_volume: ::core::option::Option<u64>,
6948    #[prost(uint64, optional, tag = "119118")]
6949    pub ask_volume: ::core::option::Option<u64>,
6950    #[prost(double, optional, tag = "100019")]
6951    pub open_price: ::core::option::Option<f64>,
6952    #[prost(double, optional, tag = "100021")]
6953    pub close_price: ::core::option::Option<f64>,
6954    #[prost(double, optional, tag = "100012")]
6955    pub high_price: ::core::option::Option<f64>,
6956    #[prost(double, optional, tag = "100013")]
6957    pub low_price: ::core::option::Option<f64>,
6958    #[prost(double, optional, tag = "100070")]
6959    pub settlement_price: ::core::option::Option<f64>,
6960    #[prost(bool, optional, tag = "149138")]
6961    pub has_settlement_price: ::core::option::Option<bool>,
6962    #[prost(bool, optional, tag = "154571")]
6963    pub must_clear_settlement_price: ::core::option::Option<bool>,
6964}
6965/// Nested message and enum types in `ResponseTimeBarReplay`.
6966pub mod response_time_bar_replay {
6967    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6968    #[repr(i32)]
6969    pub enum BarType {
6970        SecondBar = 1,
6971        MinuteBar = 2,
6972        DailyBar = 3,
6973        WeeklyBar = 4,
6974    }
6975    impl BarType {
6976        /// String value of the enum field names used in the ProtoBuf definition.
6977        ///
6978        /// The values are not transformed in any way and thus are considered stable
6979        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6980        pub fn as_str_name(&self) -> &'static str {
6981            match self {
6982                Self::SecondBar => "SECOND_BAR",
6983                Self::MinuteBar => "MINUTE_BAR",
6984                Self::DailyBar => "DAILY_BAR",
6985                Self::WeeklyBar => "WEEKLY_BAR",
6986            }
6987        }
6988        /// Creates an enum from field names used in the ProtoBuf definition.
6989        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6990            match value {
6991                "SECOND_BAR" => Some(Self::SecondBar),
6992                "MINUTE_BAR" => Some(Self::MinuteBar),
6993                "DAILY_BAR" => Some(Self::DailyBar),
6994                "WEEKLY_BAR" => Some(Self::WeeklyBar),
6995                _ => None,
6996            }
6997        }
6998    }
6999}
7000/// PB_OFFSET = 100000, is the offset added for each MNM field id
7001#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7002pub struct RequestTimeBarUpdate {
7003    /// PB_OFFSET + MNM_TEMPLATE_ID
7004    #[prost(int32, required, tag = "154467")]
7005    pub template_id: i32,
7006    /// PB_OFFSET + MNM_USER_MSG
7007    #[prost(string, repeated, tag = "132760")]
7008    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7009    /// PB_OFFSET + MNM_SYMBOL
7010    #[prost(string, optional, tag = "110100")]
7011    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
7012    /// PB_OFFSET + MNM_EXCHANGE
7013    #[prost(string, optional, tag = "110101")]
7014    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
7015    /// PB_OFFSET + MNM_REQUEST
7016    #[prost(
7017        enumeration = "request_time_bar_update::Request",
7018        optional,
7019        tag = "100000"
7020    )]
7021    pub request: ::core::option::Option<i32>,
7022    /// PB_OFFSET + MNM_DATA_BAR_TYPE
7023    #[prost(
7024        enumeration = "request_time_bar_update::BarType",
7025        optional,
7026        tag = "119200"
7027    )]
7028    pub bar_type: ::core::option::Option<i32>,
7029    /// PB_OFFSET + MNM_TIME_BAR_PERIOD
7030    #[prost(int32, optional, tag = "119112")]
7031    pub bar_type_period: ::core::option::Option<i32>,
7032}
7033/// Nested message and enum types in `RequestTimeBarUpdate`.
7034pub mod request_time_bar_update {
7035    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7036    #[repr(i32)]
7037    pub enum BarType {
7038        SecondBar = 1,
7039        MinuteBar = 2,
7040        DailyBar = 3,
7041        WeeklyBar = 4,
7042    }
7043    impl BarType {
7044        /// String value of the enum field names used in the ProtoBuf definition.
7045        ///
7046        /// The values are not transformed in any way and thus are considered stable
7047        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7048        pub fn as_str_name(&self) -> &'static str {
7049            match self {
7050                Self::SecondBar => "SECOND_BAR",
7051                Self::MinuteBar => "MINUTE_BAR",
7052                Self::DailyBar => "DAILY_BAR",
7053                Self::WeeklyBar => "WEEKLY_BAR",
7054            }
7055        }
7056        /// Creates an enum from field names used in the ProtoBuf definition.
7057        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7058            match value {
7059                "SECOND_BAR" => Some(Self::SecondBar),
7060                "MINUTE_BAR" => Some(Self::MinuteBar),
7061                "DAILY_BAR" => Some(Self::DailyBar),
7062                "WEEKLY_BAR" => Some(Self::WeeklyBar),
7063                _ => None,
7064            }
7065        }
7066    }
7067    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7068    #[repr(i32)]
7069    pub enum Request {
7070        Subscribe = 1,
7071        Unsubscribe = 2,
7072    }
7073    impl Request {
7074        /// String value of the enum field names used in the ProtoBuf definition.
7075        ///
7076        /// The values are not transformed in any way and thus are considered stable
7077        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7078        pub fn as_str_name(&self) -> &'static str {
7079            match self {
7080                Self::Subscribe => "SUBSCRIBE",
7081                Self::Unsubscribe => "UNSUBSCRIBE",
7082            }
7083        }
7084        /// Creates an enum from field names used in the ProtoBuf definition.
7085        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7086            match value {
7087                "SUBSCRIBE" => Some(Self::Subscribe),
7088                "UNSUBSCRIBE" => Some(Self::Unsubscribe),
7089                _ => None,
7090            }
7091        }
7092    }
7093}
7094/// PB_OFFSET = 100000, is the offset added for each MNM field id
7095#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7096pub struct ResponseTimeBarUpdate {
7097    /// PB_OFFSET + MNM_TEMPLATE_ID
7098    #[prost(int32, required, tag = "154467")]
7099    pub template_id: i32,
7100    /// PB_OFFSET + MNM_USER_MSG
7101    #[prost(string, repeated, tag = "132760")]
7102    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7103    /// PB_OFFSET + MNM_RESPONSE_CODE
7104    #[prost(string, repeated, tag = "132766")]
7105    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7106}
7107#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7108pub struct RequestVolumeProfileMinuteBars {
7109    #[prost(int32, required, tag = "154467")]
7110    pub template_id: i32,
7111    #[prost(string, repeated, tag = "132760")]
7112    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7113    #[prost(string, optional, tag = "110100")]
7114    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
7115    #[prost(string, optional, tag = "110101")]
7116    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
7117    #[prost(int32, optional, tag = "119215")]
7118    pub bar_type_period: ::core::option::Option<i32>,
7119    #[prost(int32, optional, tag = "153002")]
7120    pub start_index: ::core::option::Option<i32>,
7121    #[prost(int32, optional, tag = "153003")]
7122    pub finish_index: ::core::option::Option<i32>,
7123    #[prost(int32, optional, tag = "154020")]
7124    pub user_max_count: ::core::option::Option<i32>,
7125    #[prost(bool, optional, tag = "153642")]
7126    pub resume_bars: ::core::option::Option<bool>,
7127}
7128#[derive(Clone, PartialEq, ::prost::Message)]
7129pub struct ResponseVolumeProfileMinuteBars {
7130    #[prost(int32, required, tag = "154467")]
7131    pub template_id: i32,
7132    #[prost(string, optional, tag = "132758")]
7133    pub request_key: ::core::option::Option<::prost::alloc::string::String>,
7134    #[prost(string, repeated, tag = "132760")]
7135    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7136    #[prost(string, repeated, tag = "132764")]
7137    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7138    #[prost(string, repeated, tag = "132766")]
7139    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7140    #[prost(string, optional, tag = "110100")]
7141    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
7142    #[prost(string, optional, tag = "110101")]
7143    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
7144    #[prost(string, optional, tag = "119215")]
7145    pub period: ::core::option::Option<::prost::alloc::string::String>,
7146    #[prost(int32, optional, tag = "119100")]
7147    pub marker: ::core::option::Option<i32>,
7148    #[prost(uint64, optional, tag = "119204")]
7149    pub num_trades: ::core::option::Option<u64>,
7150    #[prost(uint64, optional, tag = "119205")]
7151    pub volume: ::core::option::Option<u64>,
7152    #[prost(uint64, optional, tag = "119213")]
7153    pub bid_volume: ::core::option::Option<u64>,
7154    #[prost(uint64, optional, tag = "119214")]
7155    pub ask_volume: ::core::option::Option<u64>,
7156    #[prost(double, optional, tag = "100019")]
7157    pub open_price: ::core::option::Option<f64>,
7158    #[prost(double, optional, tag = "100021")]
7159    pub close_price: ::core::option::Option<f64>,
7160    #[prost(double, optional, tag = "100012")]
7161    pub high_price: ::core::option::Option<f64>,
7162    #[prost(double, optional, tag = "100013")]
7163    pub low_price: ::core::option::Option<f64>,
7164    #[prost(double, repeated, packed = "false", tag = "119216")]
7165    pub profile_price: ::prost::alloc::vec::Vec<f64>,
7166    #[prost(int32, repeated, packed = "false", tag = "119217")]
7167    pub profile_no_aggressor_volume: ::prost::alloc::vec::Vec<i32>,
7168    #[prost(int32, repeated, packed = "false", tag = "119218")]
7169    pub profile_bid_volume: ::prost::alloc::vec::Vec<i32>,
7170    #[prost(int32, repeated, packed = "false", tag = "119219")]
7171    pub profile_ask_volume: ::prost::alloc::vec::Vec<i32>,
7172    #[prost(int32, repeated, packed = "false", tag = "119220")]
7173    pub profile_no_aggressor_trades: ::prost::alloc::vec::Vec<i32>,
7174    #[prost(int32, repeated, packed = "false", tag = "119221")]
7175    pub profile_bid_aggressor_trades: ::prost::alloc::vec::Vec<i32>,
7176    #[prost(int32, repeated, packed = "false", tag = "119222")]
7177    pub profile_ask_aggressor_trades: ::prost::alloc::vec::Vec<i32>,
7178}
7179#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7180pub struct RequestResumeBars {
7181    #[prost(int32, required, tag = "154467")]
7182    pub template_id: i32,
7183    #[prost(string, repeated, tag = "132760")]
7184    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7185    #[prost(string, optional, tag = "132758")]
7186    pub request_key: ::core::option::Option<::prost::alloc::string::String>,
7187}
7188#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7189pub struct ResponseResumeBars {
7190    #[prost(int32, required, tag = "154467")]
7191    pub template_id: i32,
7192    #[prost(string, repeated, tag = "132760")]
7193    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7194    #[prost(string, repeated, tag = "132766")]
7195    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7196}
7197/// PB_OFFSET = 100000, is the offset added for each MNM field id
7198#[derive(Clone, PartialEq, ::prost::Message)]
7199pub struct TickBar {
7200    /// PB_OFFSET + MNM_TEMPLATE_ID
7201    #[prost(int32, required, tag = "154467")]
7202    pub template_id: i32,
7203    /// PB_OFFSET + MNM_SYMBOL
7204    #[prost(string, optional, tag = "110100")]
7205    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
7206    /// PB_OFFSET + MNM_EXCHANGE
7207    #[prost(string, optional, tag = "110101")]
7208    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
7209    /// PB_OFFSET + MNM_DATA_BAR_TYPE
7210    #[prost(enumeration = "tick_bar::BarType", optional, tag = "119200")]
7211    pub r#type: ::core::option::Option<i32>,
7212    /// PB_OFFSET + MNM_DATA_BAR_SUB_TYPE
7213    #[prost(enumeration = "tick_bar::BarSubType", optional, tag = "119208")]
7214    pub sub_type: ::core::option::Option<i32>,
7215    /// PB_OFFSET + MNM_CATEGORY_SPECIFIC_INFO
7216    #[prost(string, optional, tag = "148162")]
7217    pub type_specifier: ::core::option::Option<::prost::alloc::string::String>,
7218    /// PB_OFFSET + MNM_DATA_BAR_NUM_TRADES
7219    #[prost(uint64, optional, tag = "119204")]
7220    pub num_trades: ::core::option::Option<u64>,
7221    /// PB_OFFSET + MNM_DATA_BAR_TRADE_VOLUME
7222    #[prost(uint64, optional, tag = "119205")]
7223    pub volume: ::core::option::Option<u64>,
7224    /// PB_OFFSET + MNM_DATA_BAR_BID_VOLUME
7225    #[prost(uint64, optional, tag = "119213")]
7226    pub bid_volume: ::core::option::Option<u64>,
7227    /// PB_OFFSET + MNM_DATA_BAR_ASK_VOLUME
7228    #[prost(uint64, optional, tag = "119214")]
7229    pub ask_volume: ::core::option::Option<u64>,
7230    /// PB_OFFSET + MNM_OPEN_PRICE
7231    #[prost(double, optional, tag = "100019")]
7232    pub open_price: ::core::option::Option<f64>,
7233    /// PB_OFFSET + MNM_CLOSE_TRADE_PRICE
7234    #[prost(double, optional, tag = "100021")]
7235    pub close_price: ::core::option::Option<f64>,
7236    /// PB_OFFSET + MNM_HIGH_PRICE
7237    #[prost(double, optional, tag = "100012")]
7238    pub high_price: ::core::option::Option<f64>,
7239    /// PB_OFFSET + MNM_LOW_PRICE
7240    #[prost(double, optional, tag = "100013")]
7241    pub low_price: ::core::option::Option<f64>,
7242    /// PB_OFFSET + MNM_CUSTOM_SESSION_OPEN_SSM
7243    #[prost(int32, optional, tag = "119209")]
7244    pub custom_session_open_ssm: ::core::option::Option<i32>,
7245    /// PB_OFFSET + MNM_DATA_BAR_SSBOE
7246    #[prost(int32, repeated, packed = "false", tag = "119202")]
7247    pub data_bar_ssboe: ::prost::alloc::vec::Vec<i32>,
7248    /// PB_OFFSTE + MNM_DATA_BAR_USECS
7249    #[prost(int32, repeated, packed = "false", tag = "119203")]
7250    pub data_bar_usecs: ::prost::alloc::vec::Vec<i32>,
7251}
7252/// Nested message and enum types in `TickBar`.
7253pub mod tick_bar {
7254    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7255    #[repr(i32)]
7256    pub enum BarType {
7257        TickBar = 1,
7258        RangeBar = 2,
7259        VolumeBar = 3,
7260    }
7261    impl BarType {
7262        /// String value of the enum field names used in the ProtoBuf definition.
7263        ///
7264        /// The values are not transformed in any way and thus are considered stable
7265        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7266        pub fn as_str_name(&self) -> &'static str {
7267            match self {
7268                Self::TickBar => "TICK_BAR",
7269                Self::RangeBar => "RANGE_BAR",
7270                Self::VolumeBar => "VOLUME_BAR",
7271            }
7272        }
7273        /// Creates an enum from field names used in the ProtoBuf definition.
7274        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7275            match value {
7276                "TICK_BAR" => Some(Self::TickBar),
7277                "RANGE_BAR" => Some(Self::RangeBar),
7278                "VOLUME_BAR" => Some(Self::VolumeBar),
7279                _ => None,
7280            }
7281        }
7282    }
7283    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7284    #[repr(i32)]
7285    pub enum BarSubType {
7286        Regular = 1,
7287        Custom = 2,
7288    }
7289    impl BarSubType {
7290        /// String value of the enum field names used in the ProtoBuf definition.
7291        ///
7292        /// The values are not transformed in any way and thus are considered stable
7293        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7294        pub fn as_str_name(&self) -> &'static str {
7295            match self {
7296                Self::Regular => "REGULAR",
7297                Self::Custom => "CUSTOM",
7298            }
7299        }
7300        /// Creates an enum from field names used in the ProtoBuf definition.
7301        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7302            match value {
7303                "REGULAR" => Some(Self::Regular),
7304                "CUSTOM" => Some(Self::Custom),
7305                _ => None,
7306            }
7307        }
7308    }
7309}
7310/// PB_OFFSET = 100000, is the offset added for each MNM field id
7311#[derive(Clone, PartialEq, ::prost::Message)]
7312pub struct TimeBar {
7313    /// PB_OFFSET + MNM_TEMPLATE_ID
7314    #[prost(int32, required, tag = "154467")]
7315    pub template_id: i32,
7316    /// PB_OFFSET + MNM_SYMBOL
7317    #[prost(string, optional, tag = "110100")]
7318    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
7319    /// PB_OFFSET + MNM_EXCHANGE
7320    #[prost(string, optional, tag = "110101")]
7321    pub exchange: ::core::option::Option<::prost::alloc::string::String>,
7322    /// PB_OFFSET + MNM_DATA_BAR_TYPE
7323    #[prost(enumeration = "time_bar::BarType", optional, tag = "119200")]
7324    pub r#type: ::core::option::Option<i32>,
7325    /// PB_OFFSET + MNM_TIME_BAR_PERIOD
7326    #[prost(string, optional, tag = "119112")]
7327    pub period: ::core::option::Option<::prost::alloc::string::String>,
7328    /// PB_OFFSET + MNM_TIME_BAR_MARKER
7329    #[prost(int32, optional, tag = "119100")]
7330    pub marker: ::core::option::Option<i32>,
7331    /// PB_OFFSET + MNM_TIME_BAR_NUM_TRADES
7332    #[prost(uint64, optional, tag = "119109")]
7333    pub num_trades: ::core::option::Option<u64>,
7334    /// PB_OFFSET + MNM_TIME_BAR_TRADE_VOLUME
7335    #[prost(uint64, optional, tag = "119110")]
7336    pub volume: ::core::option::Option<u64>,
7337    /// PB_OFFSET + MNM_TIME_BAR_BID_VOLUME
7338    #[prost(uint64, optional, tag = "119117")]
7339    pub bid_volume: ::core::option::Option<u64>,
7340    /// PB_OFFSET + MNM_TIME_BAR_ASK_VOLUME
7341    #[prost(uint64, optional, tag = "119118")]
7342    pub ask_volume: ::core::option::Option<u64>,
7343    /// PB_OFFSET + MNM_OPEN_PRICE
7344    #[prost(double, optional, tag = "100019")]
7345    pub open_price: ::core::option::Option<f64>,
7346    /// PB_OFFSET + MNM_CLOSE_TRADE_PRICE
7347    #[prost(double, optional, tag = "100021")]
7348    pub close_price: ::core::option::Option<f64>,
7349    /// PB_OFFSET + MNM_HIGH_PRICE
7350    #[prost(double, optional, tag = "100012")]
7351    pub high_price: ::core::option::Option<f64>,
7352    /// PB_OFFSET + MNM_LOW_PRICE
7353    #[prost(double, optional, tag = "100013")]
7354    pub low_price: ::core::option::Option<f64>,
7355    /// PB_OFFSET + MNM_SETTLEMENT_PRICE
7356    #[prost(double, optional, tag = "100070")]
7357    pub settlement_price: ::core::option::Option<f64>,
7358    /// PB_OFFSET + MNM_PRICING_INDICATOR
7359    #[prost(bool, optional, tag = "149138")]
7360    pub has_settlement_price: ::core::option::Option<bool>,
7361    /// PB_OFFSET + MNM_DISPLAY_INDICATOR
7362    #[prost(bool, optional, tag = "154571")]
7363    pub must_clear_settlement_price: ::core::option::Option<bool>,
7364}
7365/// Nested message and enum types in `TimeBar`.
7366pub mod time_bar {
7367    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7368    #[repr(i32)]
7369    pub enum BarType {
7370        SecondBar = 1,
7371        MinuteBar = 2,
7372        DailyBar = 3,
7373        WeeklyBar = 4,
7374    }
7375    impl BarType {
7376        /// String value of the enum field names used in the ProtoBuf definition.
7377        ///
7378        /// The values are not transformed in any way and thus are considered stable
7379        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7380        pub fn as_str_name(&self) -> &'static str {
7381            match self {
7382                Self::SecondBar => "SECOND_BAR",
7383                Self::MinuteBar => "MINUTE_BAR",
7384                Self::DailyBar => "DAILY_BAR",
7385                Self::WeeklyBar => "WEEKLY_BAR",
7386            }
7387        }
7388        /// Creates an enum from field names used in the ProtoBuf definition.
7389        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7390            match value {
7391                "SECOND_BAR" => Some(Self::SecondBar),
7392                "MINUTE_BAR" => Some(Self::MinuteBar),
7393                "DAILY_BAR" => Some(Self::DailyBar),
7394                "WEEKLY_BAR" => Some(Self::WeeklyBar),
7395                _ => None,
7396            }
7397        }
7398    }
7399}
7400#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7401pub struct RequestListUnacceptedAgreements {
7402    #[prost(int32, required, tag = "154467")]
7403    pub template_id: i32,
7404    #[prost(string, repeated, tag = "132760")]
7405    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7406}
7407#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7408pub struct ResponseListUnacceptedAgreements {
7409    #[prost(int32, required, tag = "154467")]
7410    pub template_id: i32,
7411    #[prost(string, repeated, tag = "132760")]
7412    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7413    #[prost(string, repeated, tag = "132764")]
7414    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7415    #[prost(string, repeated, tag = "132766")]
7416    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7417    #[prost(string, optional, tag = "154013")]
7418    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
7419    #[prost(string, optional, tag = "154014")]
7420    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
7421    #[prost(string, optional, tag = "153406")]
7422    pub agreement_title: ::core::option::Option<::prost::alloc::string::String>,
7423    #[prost(string, optional, tag = "153407")]
7424    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7425    #[prost(string, optional, tag = "153430")]
7426    pub agreement_acceptance_request: ::core::option::Option<::prost::alloc::string::String>,
7427}
7428#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7429pub struct RequestListAcceptedAgreements {
7430    #[prost(int32, required, tag = "154467")]
7431    pub template_id: i32,
7432    #[prost(string, repeated, tag = "132760")]
7433    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7434}
7435#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7436pub struct ResponseListAcceptedAgreements {
7437    #[prost(int32, required, tag = "154467")]
7438    pub template_id: i32,
7439    #[prost(string, repeated, tag = "132760")]
7440    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7441    #[prost(string, repeated, tag = "132764")]
7442    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7443    #[prost(string, repeated, tag = "132766")]
7444    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7445    #[prost(string, optional, tag = "154013")]
7446    pub fcm_id: ::core::option::Option<::prost::alloc::string::String>,
7447    #[prost(string, optional, tag = "154014")]
7448    pub ib_id: ::core::option::Option<::prost::alloc::string::String>,
7449    #[prost(int32, optional, tag = "153427")]
7450    pub agreement_acceptance_ssboe: ::core::option::Option<i32>,
7451    #[prost(string, optional, tag = "153426")]
7452    pub agreement_acceptance_status: ::core::option::Option<::prost::alloc::string::String>,
7453    #[prost(string, optional, tag = "153430")]
7454    pub agreement_acceptance_request: ::core::option::Option<::prost::alloc::string::String>,
7455    #[prost(string, optional, tag = "153406")]
7456    pub agreement_title: ::core::option::Option<::prost::alloc::string::String>,
7457    #[prost(string, optional, tag = "153407")]
7458    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7459}
7460#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7461pub struct RequestAcceptAgreement {
7462    #[prost(int32, required, tag = "154467")]
7463    pub template_id: i32,
7464    #[prost(string, repeated, tag = "132760")]
7465    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7466    #[prost(string, optional, tag = "153407")]
7467    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7468    /// Professional or Non-Professional
7469    #[prost(string, optional, tag = "153431")]
7470    pub market_data_usage_capacity: ::core::option::Option<::prost::alloc::string::String>,
7471}
7472#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7473pub struct ResponseAcceptAgreement {
7474    #[prost(int32, required, tag = "154467")]
7475    pub template_id: i32,
7476    #[prost(string, repeated, tag = "132760")]
7477    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7478    #[prost(string, repeated, tag = "132766")]
7479    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7480}
7481#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7482pub struct RequestSetRithmicMrktDataSelfCertStatus {
7483    #[prost(int32, required, tag = "154467")]
7484    pub template_id: i32,
7485    #[prost(string, repeated, tag = "132760")]
7486    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7487    #[prost(string, optional, tag = "153407")]
7488    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7489    #[prost(string, optional, tag = "153431")]
7490    pub market_data_usage_capacity: ::core::option::Option<::prost::alloc::string::String>,
7491}
7492#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7493pub struct ResponseSetRithmicMrktDataSelfCertStatus {
7494    #[prost(int32, required, tag = "154467")]
7495    pub template_id: i32,
7496    #[prost(string, repeated, tag = "132760")]
7497    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7498    #[prost(string, repeated, tag = "132766")]
7499    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7500}
7501#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7502pub struct RequestShowAgreement {
7503    #[prost(int32, required, tag = "154467")]
7504    pub template_id: i32,
7505    #[prost(string, repeated, tag = "132760")]
7506    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7507    #[prost(string, optional, tag = "153407")]
7508    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7509}
7510#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7511pub struct ResponseShowAgreement {
7512    #[prost(int32, required, tag = "154467")]
7513    pub template_id: i32,
7514    #[prost(string, repeated, tag = "132760")]
7515    pub user_msg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7516    #[prost(string, repeated, tag = "132764")]
7517    pub rq_handler_rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7518    #[prost(string, repeated, tag = "132766")]
7519    pub rp_code: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7520    #[prost(string, optional, tag = "153406")]
7521    pub agreement_title: ::core::option::Option<::prost::alloc::string::String>,
7522    #[prost(string, optional, tag = "153407")]
7523    pub agreement_id: ::core::option::Option<::prost::alloc::string::String>,
7524    #[prost(bytes = "vec", optional, tag = "153405")]
7525    pub agreement: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
7526    #[prost(bytes = "vec", optional, tag = "153432")]
7527    pub agreement_html: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
7528    #[prost(string, optional, tag = "153410")]
7529    pub agreement_mandatory_flag: ::core::option::Option<::prost::alloc::string::String>,
7530    #[prost(string, optional, tag = "153415")]
7531    pub agreement_status: ::core::option::Option<::prost::alloc::string::String>,
7532    #[prost(string, optional, tag = "153430")]
7533    pub agreement_acceptance_request: ::core::option::Option<::prost::alloc::string::String>,
7534}