#[cfg(feature = "tonic")]
fn build_grpc_stubs() {
use std::path::PathBuf;
let json_codec = "crate::grpc::json_codec::JsonCodec";
let msgpack_codec = "crate::grpc::msgpack_codec::MsgPackCodec";
let health_service = tonic_build::manual::Service::builder()
.name("Health")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("check")
.route_name("Check")
.input_type("crate::grpc::health::HealthCheckRequest")
.output_type("crate::grpc::health::HealthCheckResponse")
.codec_path(json_codec)
.additional_codec_path("application/grpc+msgpack", msgpack_codec)
.build(),
)
.build();
let auth_service = tonic_build::manual::Service::builder()
.name("Auth")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("create_jwt")
.route_name("CreateJwt")
.input_type("crate::auth::CreateJwtRequest")
.output_type("crate::auth::CreateJwtResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("auth_info")
.route_name("AuthInfo")
.input_type("crate::auth::AuthInfoRequest")
.output_type("crate::auth::AuthInfoResponse")
.codec_path(json_codec)
.build(),
)
.build();
let core_service = tonic_build::manual::Service::builder()
.name("Core")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("config")
.route_name("Config")
.input_type("crate::core::ConfigRequest")
.output_type("crate::core::ConfigResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("restart_cpty")
.route_name("RestartCpty")
.input_type("crate::core::RestartCptyRequest")
.output_type("crate::core::RestartCptyResponse")
.codec_path(json_codec)
.build(),
)
.build();
let accounts_service = tonic_build::manual::Service::builder()
.name("Accounts")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("accounts")
.route_name("Accounts")
.input_type("crate::accounts::AccountsRequest")
.output_type("crate::accounts::AccountsResponse")
.codec_path(json_codec)
.build(),
)
.build();
let symbology_service = tonic_build::manual::Service::builder()
.name("Symbology")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("symbols")
.route_name("Symbols")
.input_type("crate::symbology::protocol::SymbolsRequest")
.output_type("crate::symbology::protocol::SymbolsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("execution_info")
.route_name("ExecutionInfo")
.input_type("crate::symbology::protocol::ExecutionInfoRequest")
.output_type("crate::symbology::protocol::ExecutionInfoResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("symbology")
.route_name("Symbology")
.input_type("crate::symbology::protocol::SymbologyRequest")
.output_type("crate::symbology::protocol::SymbologySnapshot")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_symbology")
.route_name("SubscribeSymbology")
.input_type("crate::symbology::protocol::SubscribeSymbology")
.output_type("crate::symbology::protocol::SymbologyUpdate")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("upload_symbology")
.route_name("UploadSymbology")
.input_type("crate::symbology::protocol::UploadSymbologyRequest")
.output_type("crate::symbology::protocol::UploadSymbologyResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("prune_expired_symbols")
.route_name("PruneExpiredSymbols")
.input_type("crate::symbology::protocol::PruneExpiredSymbolsRequest")
.output_type("crate::symbology::protocol::PruneExpiredSymbolsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("upload_product_catalog")
.route_name("UploadProductCatalog")
.input_type("crate::symbology::protocol::UploadProductCatalogRequest")
.output_type("crate::symbology::protocol::UploadProductCatalogResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("download_product_catalog")
.route_name("DownloadProductCatalog")
.input_type("crate::symbology::protocol::DownloadProductCatalogRequest")
.output_type("crate::symbology::protocol::DownloadProductCatalogResponse")
.codec_path(json_codec)
.build(),
)
.build();
let marketdata_service = tonic_build::manual::Service::builder()
.name("Marketdata")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("l1_book_snapshot")
.route_name("L1BookSnapshot")
.input_type("crate::marketdata::L1BookSnapshotRequest")
.output_type("crate::marketdata::L1BookSnapshot")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("l1_book_snapshots")
.route_name("L1BookSnapshots")
.input_type("crate::marketdata::L1BookSnapshotsRequest")
.output_type("crate::marketdata::L1BookSnapshots")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_l1_book_snapshots")
.route_name("SubscribeL1BookSnapshots")
.input_type("crate::marketdata::SubscribeL1BookSnapshotsRequest")
.output_type("crate::marketdata::L1BookSnapshot")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_l2_book_updates")
.route_name("SubscribeL2BookUpdates")
.input_type("crate::marketdata::SubscribeL2BookUpdatesRequest")
.output_type("crate::marketdata::L2BookUpdate")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("l2_book_snapshot")
.route_name("L2BookSnapshot")
.input_type("crate::marketdata::L2BookSnapshotRequest")
.output_type("crate::marketdata::L2BookSnapshot")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_candles")
.route_name("SubscribeCandles")
.input_type("crate::marketdata::SubscribeCandlesRequest")
.output_type("crate::marketdata::Candle")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_many_candles")
.route_name("SubscribeManyCandles")
.input_type("crate::marketdata::SubscribeManyCandlesRequest")
.output_type("crate::marketdata::Candle")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_current_candles")
.route_name("SubscribeCurrentCandles")
.input_type("crate::marketdata::SubscribeCurrentCandlesRequest")
.output_type("crate::marketdata::Candle")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("historical_candles")
.route_name("HistoricalCandles")
.input_type("crate::marketdata::HistoricalCandlesRequest")
.output_type("crate::marketdata::HistoricalCandlesResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_trades")
.route_name("SubscribeTrades")
.input_type("crate::marketdata::SubscribeTradesRequest")
.output_type("crate::marketdata::Trade")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("market_status")
.route_name("MarketStatus")
.input_type("crate::marketdata::MarketStatusRequest")
.output_type("crate::marketdata::MarketStatus")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("ticker")
.route_name("Ticker")
.input_type("crate::marketdata::TickerRequest")
.output_type("crate::marketdata::Ticker")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("tickers")
.route_name("Tickers")
.input_type("crate::marketdata::TickersRequest")
.output_type("crate::marketdata::TickersResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_tickers")
.route_name("SubscribeTickers")
.input_type("crate::marketdata::SubscribeTickersRequest")
.output_type("crate::marketdata::TickerUpdate")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_liquidations")
.route_name("SubscribeLiquidations")
.input_type("crate::marketdata::SubscribeLiquidationsRequest")
.output_type("crate::marketdata::Liquidation")
.codec_path(json_codec)
.server_streaming()
.build(),
)
.build();
let options_marketdata_service = tonic_build::manual::Service::builder()
.name("OptionsMarketdata")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("options_expirations")
.route_name("OptionsExpirations")
.input_type(
"crate::marketdata::options_marketdata::OptionsExpirationsRequest",
)
.output_type("crate::marketdata::options_marketdata::OptionsExpirations")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("options_chain")
.route_name("OptionsChain")
.input_type("crate::marketdata::options_marketdata::OptionsChainRequest")
.output_type("crate::marketdata::options_marketdata::OptionsChain")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("options_chain_greeks")
.route_name("OptionsChainGreeks")
.input_type(
"crate::marketdata::options_marketdata::OptionsChainGreeksRequest",
)
.output_type("crate::marketdata::options_marketdata::OptionsChainGreeks")
.codec_path(json_codec)
.build(),
)
.build();
let orderflow_service = tonic_build::manual::Service::builder()
.name("Orderflow")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("orderflow")
.route_name("Orderflow")
.input_type("crate::orderflow::OrderflowRequest")
.output_type("crate::orderflow::Orderflow")
.client_streaming()
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("subscribe_orderflow")
.route_name("SubscribeOrderflow")
.input_type("crate::orderflow::SubscribeOrderflowRequest")
.output_type("crate::orderflow::Orderflow")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("dropcopy")
.route_name("Dropcopy")
.input_type("crate::orderflow::DropcopyRequest")
.output_type("crate::orderflow::Dropcopy")
.server_streaming()
.codec_path(json_codec)
.build(),
)
.build();
let oms_service = tonic_build::manual::Service::builder()
.name("Oms")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("place_order")
.route_name("PlaceOrder")
.input_type("crate::oms::PlaceOrderRequest")
.output_type("crate::orderflow::Order")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("cancel_order")
.route_name("CancelOrder")
.input_type("crate::oms::CancelOrderRequest")
.output_type("crate::orderflow::Cancel")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("cancel_all_orders")
.route_name("CancelAllOrders")
.input_type("crate::oms::CancelAllOrdersRequest")
.output_type("crate::oms::CancelAllOrdersResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("open_orders")
.route_name("OpenOrders")
.input_type("crate::oms::OpenOrdersRequest")
.output_type("crate::oms::OpenOrdersResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("pending_cancels")
.route_name("PendingCancels")
.input_type("crate::oms::PendingCancelsRequest")
.output_type("crate::oms::PendingCancelsResponse")
.codec_path(json_codec)
.build(),
)
.build();
let folio_service = tonic_build::manual::Service::builder()
.name("Folio")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("account_summary")
.route_name("AccountSummary")
.input_type("crate::folio::AccountSummaryRequest")
.output_type("crate::folio::AccountSummary")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("account_summaries")
.route_name("AccountSummaries")
.input_type("crate::folio::AccountSummariesRequest")
.output_type("crate::folio::AccountSummariesResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("account_history")
.route_name("AccountHistory")
.input_type("crate::folio::AccountHistoryRequest")
.output_type("crate::folio::AccountHistoryResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("historical_fills")
.route_name("HistoricalFills")
.input_type("crate::folio::HistoricalFillsRequest")
.output_type("crate::folio::HistoricalFillsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("historical_orders")
.route_name("HistoricalOrders")
.input_type("crate::folio::HistoricalOrdersRequest")
.output_type("crate::folio::HistoricalOrdersResponse")
.codec_path(json_codec)
.build(),
)
.build();
let cpty_service = tonic_build::manual::Service::builder()
.name("Cpty")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("cpty")
.route_name("Cpty")
.input_type("crate::cpty::CptyRequest")
.output_type("crate::cpty::CptyResponse")
.codec_path(json_codec)
.client_streaming()
.server_streaming()
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("cpty_status")
.route_name("CptyStatus")
.input_type("crate::cpty::CptyStatusRequest")
.output_type("crate::cpty::CptyStatus")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("cptys")
.route_name("Cptys")
.input_type("crate::cpty::CptysRequest")
.output_type("crate::cpty::CptysResponse")
.codec_path(json_codec)
.build(),
)
.build();
let algo_service_helper = tonic_build::manual::Service::builder()
.name("AlgoHelper")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("_algo_param_types")
.route_name("_AlgoParamTypes")
.input_type("crate::algo::AlgoParamTypes")
.output_type("crate::algo::AlgoParamTypes")
.codec_path(json_codec)
.build(),
)
.build();
let algo_service = tonic_build::manual::Service::builder()
.name("Algo")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("create_algo_order")
.route_name("CreateAlgoOrder")
.input_type("crate::algo::CreateAlgoOrderRequest")
.output_type("crate::algo::AlgoOrder")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("start_algo")
.route_name("StartAlgo")
.input_type("crate::algo::StartAlgoRequest")
.output_type("crate::algo::StartAlgoResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("pause_algo")
.route_name("PauseAlgo")
.input_type("crate::algo::PauseAlgoRequest")
.output_type("crate::algo::PauseAlgoResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("stop_algo")
.route_name("StopAlgo")
.input_type("crate::algo::StopAlgoRequest")
.output_type("crate::algo::StopAlgoResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("algo_order")
.route_name("AlgoOrder")
.input_type("crate::algo::AlgoOrderRequest")
.output_type("crate::algo::AlgoOrder")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("algo_orders")
.route_name("AlgoOrders")
.input_type("crate::algo::AlgoOrdersRequest")
.output_type("crate::algo::AlgoOrdersResponse")
.codec_path(json_codec)
.build(),
)
.build();
let boss_service = tonic_build::manual::Service::builder()
.name("Boss")
.package("json.architect")
.method(
tonic_build::manual::Method::builder()
.name("statements")
.route_name("Statements")
.input_type("crate::boss::protocol::StatementsRequest")
.output_type("crate::boss::protocol::StatementsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("statement_url")
.route_name("StatementUrl")
.input_type("crate::boss::protocol::StatementUrlRequest")
.output_type("crate::boss::protocol::StatementUrlResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("rqd_account_statistics")
.route_name("RqdAccountStatistics")
.input_type("crate::boss::protocol::RqdAccountStatisticsRequest")
.output_type("crate::boss::protocol::RqdAccountStatisticsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("deposits")
.route_name("Deposits")
.input_type("crate::boss::protocol::DepositsRequest")
.output_type("crate::boss::protocol::DepositsResponse")
.codec_path(json_codec)
.build(),
)
.method(
tonic_build::manual::Method::builder()
.name("withdrawals")
.route_name("Withdrawals")
.input_type("crate::boss::protocol::WithdrawalsRequest")
.output_type("crate::boss::protocol::WithdrawalsResponse")
.codec_path(json_codec)
.build(),
)
.build();
let target_dir = "src/grpc/generated";
let mut schema_gen_dir = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap());
schema_gen_dir.push(target_dir);
schema_builder::manual::Builder::new()
.rewrite_crate("architect_api")
.out_dir(schema_gen_dir)
.emit_composite_package(true)
.compile(&[
&health_service,
&auth_service,
&core_service,
&accounts_service,
&symbology_service,
&marketdata_service,
&options_marketdata_service,
&orderflow_service,
&oms_service,
&folio_service,
&cpty_service,
&algo_service,
&algo_service_helper,
&boss_service,
]);
tonic_build::manual::Builder::new().out_dir(target_dir).compile(&[
health_service,
auth_service,
core_service,
accounts_service,
symbology_service,
marketdata_service,
options_marketdata_service,
orderflow_service,
oms_service,
folio_service,
cpty_service,
algo_service,
boss_service,
]);
}
fn main() {
#[cfg(feature = "tonic")]
build_grpc_stubs();
}