pub const DEFAULT_LIMITS_TOML: &str = "# Finam Trade API rate limits for brokapi-finam.\n#\n# Sources:\n# - \"\u{421}\u{43b}\u{438}\u{448}\u{43a}\u{43e}\u{43c} \u{43c}\u{43d}\u{43e}\u{433}\u{43e} \u{437}\u{430}\u{43f}\u{440}\u{43e}\u{441}\u{43e}\u{432}. \u{414}\u{43e}\u{441}\u{442}\u{443}\u{43f}\u{43d}\u{44b}\u{439} \u{43b}\u{438}\u{43c}\u{438}\u{442} - 200 \u{437}\u{430}\u{43f}\u{440}\u{43e}\u{441}\u{43e}\u{432} \u{432} \u{43c}\u{438}\u{43d}\u{443}\u{442}\u{443}\" - 429 description of every\n# method in the official swagger (finam-trade-api, docs/swagger/api.swagger.json). This is the\n# only number Finam documents. No separate limit for orders, no limit for streams is published.\n# - 429 maps to gRPC RESOURCE_EXHAUSTED.\n# - UsageMetricsService.GetUsageMetrics (\"\u{43c}\u{435}\u{442}\u{440}\u{438}\u{43a}\u{438} \u{438}\u{441}\u{43f}\u{43e}\u{43b}\u{44c}\u{437}\u{43e}\u{432}\u{430}\u{43d}\u{438}\u{44f} \u{434}\u{43b}\u{44f} \u{43f}\u{43e}\u{43b}\u{44c}\u{437}\u{43e}\u{432}\u{430}\u{442}\u{435}\u{43b}\u{44f}\", GET /v1/usage)\n# returns the live quotas (name, limit, remaining, reset_time) without any account parameter.\n#\n# LIMIT SCOPE: Finam does not state it in words. The quota call is \"for the user\" and takes no\n# account_id, so the quota is read as PER USER (all tokens/secrets of one Finam user and all of his\n# accounts spend one budget). Spec 3.1 consequence: ONE BrokerLimiter per Finam user, shared by all\n# MarketDataConnector and UserDataConnector instances of that user, however many accounts or\n# secrets they cover. Open question for the live run: compare GetUsageMetrics between two secrets.\n#\n# Values below are deliberately below 200/min (conservative when data is missing).\n# Bucket \"orders\" is capped well under \"global\" so that \"cancel\" (its own bucket) always has room:\n# cancelling must not starve behind placing.\n\n[finam.buckets.global]\nrate = 200\nper = \"60s\"\nburst = 40\n\n[finam.buckets.orders]\nrate = 60\nper = \"60s\"\nburst = 5\n\n[finam.buckets.cancel]\nrate = 100\nper = \"60s\"\nburst = 10\n\n[finam.buckets.market_data]\nrate = 120\nper = \"60s\"\nburst = 20\n\n[finam.buckets.reference]\nrate = 100\nper = \"60s\"\nburst = 30\n\n[finam.buckets.reports]\n# Report generation is heavy on Finam\'s side and not documented separately; kept low on purpose.\nrate = 20\nper = \"60s\"\nburst = 3\n\n[finam.route]\n# \"*\" = any method with no route below (raw() calls to methods the library never named). Finam\n# documents one number for the whole API, so the default is the general \"reference\" budget.\n\"*\" = [\"global\", \"reference\"]\nPlaceOrder = [\"global\", \"orders\"]\nCancelOrder = [\"global\", \"cancel\"]\nGetOrder = [\"global\", \"reference\"]\nGetOrders = [\"global\", \"reference\"]\nGetAccount = [\"global\", \"reference\"]\nTrades = [\"global\", \"reference\"]\nGetAsset = [\"global\", \"reference\"]\nGetAssetParams = [\"global\", \"reference\"]\nAssets = [\"global\", \"reference\"]\nSchedule = [\"global\", \"reference\"]\nOrderBook = [\"global\", \"market_data\"]\nLatestTrades = [\"global\", \"market_data\"]\nBars = [\"global\", \"market_data\"]\n# Opening a stream is a request too (assumed to count against the same minute budget).\nSubscribeOrderBook = [\"global\", \"market_data\"]\nSubscribeQuote = [\"global\", \"market_data\"]\nSubscribeLatestTrades = [\"global\", \"market_data\"]\nSubscribeBars = [\"global\", \"market_data\"]\nSubscribeOrders = [\"global\", \"reference\"]\nSubscribeTrades = [\"global\", \"reference\"]\nSubscribeAccount = [\"global\", \"reference\"]\n# The rest of the API, reachable through raw() and the stop order trait.\nPlaceSLTPOrder = [\"global\", \"orders\"]\nTransactions = [\"global\", \"reference\"]\nExchanges = [\"global\", \"reference\"]\nOptionsChain = [\"global\", \"reference\"]\nClock = [\"global\", \"reference\"]\nGetConstituents = [\"global\", \"reference\"]\nAllAssets = [\"global\", \"reference\"]\nLastQuote = [\"global\", \"market_data\"]\nGetUsageMetrics = [\"global\", \"reference\"]\nTokenDetails = [\"global\", \"reference\"]\nCreateAccountReport = [\"global\", \"reports\"]\nGetAccountReportInfo = [\"global\", \"reports\"]\nSubscribeAccountReportInfo = [\"global\", \"reports\"]\nGetFutureSplits = [\"global\", \"reference\"]\nGetPastSplits = [\"global\", \"reference\"]\nGetFutureBondsEvents = [\"global\", \"reference\"]\nGetPastBondsEvents = [\"global\", \"reference\"]\nGetFutureDividends = [\"global\", \"reference\"]\nGetPastDividends = [\"global\", \"reference\"]\n\n[finam.conns]\n# One HTTP/2 connection per connector, streams are multiplexed over it. The number of concurrent\n# streams per connection is not documented; 100 is the HTTP/2 default most servers advertise.\nmax_conns = 1\nmax_subs_per_conn = 100\nsupports_multiplex = true\n";Expand description
Text of the bundled limits file. Written from the broker documentation, see the file header for sources.