syntax = "proto3"; package optiver.exchange; enum MessageType { // Auth AUTH_LOGIN_REQUEST = 0; AUTH_LOGIN_RESPONSE = 1; // Instrument admin ADMIN_CREATE_INSTRUMENT_REQUEST = 20; ADMIN_CREATE_INSTRUMENT_RESPONSE = 21; // Info INFO_ON_INSTRUMENT = 30; INFO_SUBSCRIBE_REQUEST = 31; INFO_SUBSCRIBE_RESPONSE = 32; INFO_ON_TOP_OF_BOOK = 33; INFO_ON_PRICE_DEPTH_BOOK = 34; INFO_ON_TRADE = 35; // Internal management messages (used by admin service) INFO_CREATE_INSTRUMENT_REQUEST = 130; INFO_CREATE_INSTRUMENT_RESPONSE = 131; // Order Book ORDER_BOOK_ON_ORDER_BOOK_CREATED = 40; ORDER_BOOK_ON_ORDER_INSERTED = 41; ORDER_BOOK_ON_ORDER_CANCELLED = 42; ORDER_BOOK_ON_TRADE = 43; ORDER_BOOK_GET_ALL_REQUEST = 44; ORDER_BOOK_GET_ALL_RESPONSE = 45; ORDER_BOOK_INSERT_ORDER_REQUEST = 46; ORDER_BOOK_INSERT_ORDER_RESPONSE = 47; ORDER_BOOK_CANCEL_ORDER_REQUEST = 48; ORDER_BOOK_CANCEL_ORDER_RESPONSE = 49; // Internal management messages (used by admin service) ORDER_BOOK_CREATE_REQUEST = 140; ORDER_BOOK_CREATE_RESPONSE = 141; ORDER_BOOK_DELETE_REQUEST = 142; ORDER_BOOK_DELETE_RESPONSE = 143; // Execution EXEC_INSERT_ORDER_REQUEST = 50; EXEC_INSERT_ORDER_RESPONSE = 51; EXEC_CANCEL_ORDER_REQUEST = 52; EXEC_CANCEL_ORDER_RESPONSE = 53; EXEC_ON_TRADE = 54; // Risk RISK_GET_USER_LIMITS_REQUEST = 60; RISK_GET_USER_LIMITS_RESPONSE = 61; RISK_SET_USER_LIMITS_REQUEST = 62; RISK_SET_USER_LIMITS_RESPONSE = 63; RISK_GET_INSTRUMENT_LIMITS_REQUEST = 64; RISK_GET_INSTRUMENT_LIMITS_RESPONSE = 65; RISK_SET_INSTRUMENT_LIMITS_REQUEST = 66; RISK_SET_INSTRUMENT_LIMITS_RESPONSE = 67; } message LoginRequest { int64 request_id = 1; string username = 2; string password = 3; } message LoginResponse { int64 request_id = 1; string error_message = 2; } enum Side { BUY = 0; SELL = 1; } message Instrument { string symbol = 1; string description = 2; string currency = 3; double multiplier = 4; }