snaptrade 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (422) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +84 -0
  4. data/README.md +254 -0
  5. data/Rakefile +10 -0
  6. data/docs/APIStatusApi.md +57 -0
  7. data/docs/Account.md +36 -0
  8. data/docs/AccountHoldings.md +24 -0
  9. data/docs/AccountHoldingsAccount.md +26 -0
  10. data/docs/AccountInformationApi.md +535 -0
  11. data/docs/AccountOrderRecord.md +52 -0
  12. data/docs/AccountOrderRecordStatus.md +15 -0
  13. data/docs/AccountSimple.md +24 -0
  14. data/docs/AccountSyncStatus.md +18 -0
  15. data/docs/Action.md +15 -0
  16. data/docs/AuthType.md +15 -0
  17. data/docs/AuthenticationApi.md +314 -0
  18. data/docs/AuthenticationLoginSnapTradeUser200Response.md +49 -0
  19. data/docs/Balance.md +20 -0
  20. data/docs/Brokerage.md +52 -0
  21. data/docs/BrokerageAuthorization.md +34 -0
  22. data/docs/BrokerageAuthorizationType.md +18 -0
  23. data/docs/BrokerageAuthorizationTypeReadOnly.md +24 -0
  24. data/docs/BrokerageAuthorizationTypeReadOnlyBrokerage.md +22 -0
  25. data/docs/BrokerageAuthorizationTypeReadOnlyType.md +15 -0
  26. data/docs/BrokerageAuthorizationTypeType.md +15 -0
  27. data/docs/BrokerageSymbol.md +26 -0
  28. data/docs/BrokerageType.md +20 -0
  29. data/docs/CalculatedTrade.md +20 -0
  30. data/docs/CashRestriction.md +26 -0
  31. data/docs/ConnectionType.md +15 -0
  32. data/docs/ConnectionsApi.md +265 -0
  33. data/docs/ConnectionsSessionEvents200ResponseInner.md +30 -0
  34. data/docs/Currency.md +22 -0
  35. data/docs/DeleteUserResponse.md +20 -0
  36. data/docs/DividendAtDate.md +22 -0
  37. data/docs/EncryptedResponse.md +20 -0
  38. data/docs/EncryptedResponseEncryptedMessageData.md +22 -0
  39. data/docs/ErrorLogsApi.md +68 -0
  40. data/docs/Exchange.md +32 -0
  41. data/docs/ExchangeRatePairs.md +22 -0
  42. data/docs/ExcludedAsset.md +18 -0
  43. data/docs/JWT.md +18 -0
  44. data/docs/LoginRedirectURI.md +20 -0
  45. data/docs/ManualTrade.md +32 -0
  46. data/docs/ManualTradeAndImpact.md +22 -0
  47. data/docs/ManualTradeBalance.md +22 -0
  48. data/docs/ManualTradeForm.md +32 -0
  49. data/docs/ManualTradeSymbol.md +28 -0
  50. data/docs/Model400FailedRequestResponse.md +20 -0
  51. data/docs/Model401FailedRequestResponse.md +20 -0
  52. data/docs/Model403FailedRequestResponse.md +20 -0
  53. data/docs/Model404FailedRequestResponse.md +20 -0
  54. data/docs/ModelAssetClass.md +20 -0
  55. data/docs/ModelAssetClassDetails.md +20 -0
  56. data/docs/ModelAssetClassTarget.md +18 -0
  57. data/docs/ModelPortfolio.md +22 -0
  58. data/docs/ModelPortfolioAssetClass.md +20 -0
  59. data/docs/ModelPortfolioDetails.md +22 -0
  60. data/docs/ModelPortfolioSecurity.md +20 -0
  61. data/docs/ModelType.md +15 -0
  62. data/docs/MonthlyDividends.md +20 -0
  63. data/docs/NetContributions.md +22 -0
  64. data/docs/NetDividend.md +22 -0
  65. data/docs/OptionChainInner.md +26 -0
  66. data/docs/OptionChainInnerChainPerRootInner.md +22 -0
  67. data/docs/OptionChainInnerChainPerRootInnerChainPerStrikePriceInner.md +22 -0
  68. data/docs/OptionLeg.md +22 -0
  69. data/docs/OptionLegAction.md +15 -0
  70. data/docs/OptionStrategy.md +26 -0
  71. data/docs/OptionStrategyLegsInner.md +24 -0
  72. data/docs/OptionsApi.md +390 -0
  73. data/docs/OptionsGetOptionStrategyRequest.md +22 -0
  74. data/docs/OptionsHoldings.md +28 -0
  75. data/docs/OptionsPlaceOptionStrategyRequest.md +22 -0
  76. data/docs/OptionsPosition.md +30 -0
  77. data/docs/OptionsSymbol.md +38 -0
  78. data/docs/OrderStrategyExecuteBodyOrderType.md +15 -0
  79. data/docs/OrderStrategyExecuteBodyTimeInForce.md +15 -0
  80. data/docs/OrderType.md +15 -0
  81. data/docs/PartnerData.md +40 -0
  82. data/docs/PastValue.md +22 -0
  83. data/docs/PerformanceCustom.md +54 -0
  84. data/docs/PortfolioGroup.md +20 -0
  85. data/docs/PortfolioGroupInfo.md +38 -0
  86. data/docs/PortfolioGroupPosition.md +22 -0
  87. data/docs/PortfolioGroupSettings.md +26 -0
  88. data/docs/PortfolioManagementApi.md +2014 -0
  89. data/docs/Position.md +28 -0
  90. data/docs/PositionSymbol.md +28 -0
  91. data/docs/RedirectTokenandPin.md +20 -0
  92. data/docs/ReferenceDataApi.md +595 -0
  93. data/docs/SecurityType.md +24 -0
  94. data/docs/SessionEvent.md +30 -0
  95. data/docs/SessionEventType.md +15 -0
  96. data/docs/SnapTradeAPIDisclaimerAcceptStatus.md +20 -0
  97. data/docs/SnapTradeHoldingsAccount.md +32 -0
  98. data/docs/SnapTradeHoldingsAccountAccountId.md +34 -0
  99. data/docs/SnapTradeHoldingsTotalValue.md +20 -0
  100. data/docs/SnapTradeLoginUserRequestBody.md +26 -0
  101. data/docs/SnapTradeRegisterUserRequestBody.md +20 -0
  102. data/docs/State.md +15 -0
  103. data/docs/Status.md +22 -0
  104. data/docs/StrategyImpact.md +38 -0
  105. data/docs/StrategyImpactLegsInner.md +30 -0
  106. data/docs/StrategyOrderPlace.md +20 -0
  107. data/docs/StrategyOrderPlaceOrdersInner.md +102 -0
  108. data/docs/StrategyOrderPlaceOrdersInnerLegsInner.md +30 -0
  109. data/docs/StrategyOrderRecord.md +38 -0
  110. data/docs/StrategyOrderRecordOrderType.md +15 -0
  111. data/docs/StrategyOrderRecordStatus.md +15 -0
  112. data/docs/StrategyOrderRecordTimeInForce.md +15 -0
  113. data/docs/StrategyQuotes.md +28 -0
  114. data/docs/StrategyQuotesGreek.md +26 -0
  115. data/docs/StrategyType.md +15 -0
  116. data/docs/SubPeriodReturnRate.md +22 -0
  117. data/docs/Symbol.md +30 -0
  118. data/docs/SymbolQuery.md +18 -0
  119. data/docs/SymbolsQuotes.md +28 -0
  120. data/docs/TargetAsset.md +28 -0
  121. data/docs/TimeInForce.md +15 -0
  122. data/docs/Trade.md +32 -0
  123. data/docs/TradeAction.md +15 -0
  124. data/docs/TradeExecutionStatus.md +34 -0
  125. data/docs/TradeExecutionStatusAction.md +15 -0
  126. data/docs/TradeImpact.md +26 -0
  127. data/docs/TradingApi.md +799 -0
  128. data/docs/TradingCancelUserAccountOrderRequest.md +18 -0
  129. data/docs/TradingPlaceOCOOrderRequest.md +20 -0
  130. data/docs/TransactionsAndReportingApi.md +183 -0
  131. data/docs/TransactionsStatus.md +20 -0
  132. data/docs/Type.md +15 -0
  133. data/docs/USExchange.md +34 -0
  134. data/docs/UnderlyingSymbol.md +30 -0
  135. data/docs/UniversalActivity.md +46 -0
  136. data/docs/UniversalSymbol.md +32 -0
  137. data/docs/UniversalSymbolTicker.md +32 -0
  138. data/docs/UserErrorLog.md +28 -0
  139. data/docs/UserIDandSecret.md +20 -0
  140. data/docs/UserSettings.md +36 -0
  141. data/lib/snaptrade/api/account_information_api.rb +801 -0
  142. data/lib/snaptrade/api/api_status_api.rb +98 -0
  143. data/lib/snaptrade/api/authentication_api.rb +481 -0
  144. data/lib/snaptrade/api/connections_api.rb +398 -0
  145. data/lib/snaptrade/api/error_logs_api.rb +112 -0
  146. data/lib/snaptrade/api/options_api.rb +591 -0
  147. data/lib/snaptrade/api/portfolio_management_api.rb +2791 -0
  148. data/lib/snaptrade/api/reference_data_api.rb +894 -0
  149. data/lib/snaptrade/api/trading_api.rb +1150 -0
  150. data/lib/snaptrade/api/transactions_and_reporting_api.rb +283 -0
  151. data/lib/snaptrade/api_client.rb +427 -0
  152. data/lib/snaptrade/api_client_custom.rb +32 -0
  153. data/lib/snaptrade/api_error.rb +55 -0
  154. data/lib/snaptrade/configuration.rb +374 -0
  155. data/lib/snaptrade/models/account.rb +303 -0
  156. data/lib/snaptrade/models/account_holdings.rb +249 -0
  157. data/lib/snaptrade/models/account_holdings_account.rb +260 -0
  158. data/lib/snaptrade/models/account_order_record.rb +382 -0
  159. data/lib/snaptrade/models/account_order_record_status.rb +56 -0
  160. data/lib/snaptrade/models/account_simple.rb +245 -0
  161. data/lib/snaptrade/models/account_sync_status.rb +218 -0
  162. data/lib/snaptrade/models/action.rb +38 -0
  163. data/lib/snaptrade/models/auth_type.rb +40 -0
  164. data/lib/snaptrade/models/authentication_login_snap_trade_user200_response.rb +103 -0
  165. data/lib/snaptrade/models/balance.rb +228 -0
  166. data/lib/snaptrade/models/brokerage.rb +377 -0
  167. data/lib/snaptrade/models/brokerage_authorization.rb +297 -0
  168. data/lib/snaptrade/models/brokerage_authorization_type.rb +217 -0
  169. data/lib/snaptrade/models/brokerage_authorization_type_read_only.rb +244 -0
  170. data/lib/snaptrade/models/brokerage_authorization_type_read_only_brokerage.rb +237 -0
  171. data/lib/snaptrade/models/brokerage_authorization_type_read_only_type.rb +38 -0
  172. data/lib/snaptrade/models/brokerage_authorization_type_type.rb +38 -0
  173. data/lib/snaptrade/models/brokerage_symbol.rb +255 -0
  174. data/lib/snaptrade/models/brokerage_type.rb +227 -0
  175. data/lib/snaptrade/models/calculated_trade.rb +229 -0
  176. data/lib/snaptrade/models/cash_restriction.rb +254 -0
  177. data/lib/snaptrade/models/connection_type.rb +38 -0
  178. data/lib/snaptrade/models/connections_session_events200_response_inner.rb +293 -0
  179. data/lib/snaptrade/models/currency.rb +236 -0
  180. data/lib/snaptrade/models/delete_user_response.rb +229 -0
  181. data/lib/snaptrade/models/dividend_at_date.rb +240 -0
  182. data/lib/snaptrade/models/encrypted_response.rb +227 -0
  183. data/lib/snaptrade/models/encrypted_response_encrypted_message_data.rb +235 -0
  184. data/lib/snaptrade/models/exchange.rb +282 -0
  185. data/lib/snaptrade/models/exchange_rate_pairs.rb +236 -0
  186. data/lib/snaptrade/models/excluded_asset.rb +218 -0
  187. data/lib/snaptrade/models/jwt.rb +218 -0
  188. data/lib/snaptrade/models/login_redirect_uri.rb +228 -0
  189. data/lib/snaptrade/models/manual_trade.rb +283 -0
  190. data/lib/snaptrade/models/manual_trade_and_impact.rb +238 -0
  191. data/lib/snaptrade/models/manual_trade_balance.rb +238 -0
  192. data/lib/snaptrade/models/manual_trade_form.rb +285 -0
  193. data/lib/snaptrade/models/manual_trade_symbol.rb +264 -0
  194. data/lib/snaptrade/models/model400_failed_request_response.rb +229 -0
  195. data/lib/snaptrade/models/model401_failed_request_response.rb +229 -0
  196. data/lib/snaptrade/models/model403_failed_request_response.rb +229 -0
  197. data/lib/snaptrade/models/model404_failed_request_response.rb +229 -0
  198. data/lib/snaptrade/models/model_asset_class.rb +226 -0
  199. data/lib/snaptrade/models/model_asset_class_details.rb +228 -0
  200. data/lib/snaptrade/models/model_asset_class_target.rb +217 -0
  201. data/lib/snaptrade/models/model_portfolio.rb +237 -0
  202. data/lib/snaptrade/models/model_portfolio_asset_class.rb +250 -0
  203. data/lib/snaptrade/models/model_portfolio_details.rb +239 -0
  204. data/lib/snaptrade/models/model_portfolio_security.rb +250 -0
  205. data/lib/snaptrade/models/model_type.rb +39 -0
  206. data/lib/snaptrade/models/monthly_dividends.rb +229 -0
  207. data/lib/snaptrade/models/net_contributions.rb +237 -0
  208. data/lib/snaptrade/models/net_dividend.rb +237 -0
  209. data/lib/snaptrade/models/option_chain_inner.rb +255 -0
  210. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner.rb +237 -0
  211. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner.rb +238 -0
  212. data/lib/snaptrade/models/option_leg.rb +237 -0
  213. data/lib/snaptrade/models/option_leg_action.rb +40 -0
  214. data/lib/snaptrade/models/option_strategy.rb +255 -0
  215. data/lib/snaptrade/models/option_strategy_legs_inner.rb +244 -0
  216. data/lib/snaptrade/models/options_get_option_strategy_request.rb +252 -0
  217. data/lib/snaptrade/models/options_holdings.rb +267 -0
  218. data/lib/snaptrade/models/options_place_option_strategy_request.rb +251 -0
  219. data/lib/snaptrade/models/options_position.rb +275 -0
  220. data/lib/snaptrade/models/options_symbol.rb +310 -0
  221. data/lib/snaptrade/models/order_strategy_execute_body_order_type.rb +40 -0
  222. data/lib/snaptrade/models/order_strategy_execute_body_time_in_force.rb +38 -0
  223. data/lib/snaptrade/models/order_type.rb +40 -0
  224. data/lib/snaptrade/models/partner_data.rb +331 -0
  225. data/lib/snaptrade/models/past_value.rb +236 -0
  226. data/lib/snaptrade/models/performance_custom.rb +416 -0
  227. data/lib/snaptrade/models/portfolio_group.rb +226 -0
  228. data/lib/snaptrade/models/portfolio_group_info.rb +326 -0
  229. data/lib/snaptrade/models/portfolio_group_position.rb +238 -0
  230. data/lib/snaptrade/models/portfolio_group_settings.rb +277 -0
  231. data/lib/snaptrade/models/position.rb +271 -0
  232. data/lib/snaptrade/models/position_symbol.rb +264 -0
  233. data/lib/snaptrade/models/redirect_tokenand_pin.rb +227 -0
  234. data/lib/snaptrade/models/security_type.rb +245 -0
  235. data/lib/snaptrade/models/session_event.rb +274 -0
  236. data/lib/snaptrade/models/session_event_type.rb +43 -0
  237. data/lib/snaptrade/models/snap_trade_api_disclaimer_accept_status.rb +227 -0
  238. data/lib/snaptrade/models/snap_trade_holdings_account.rb +284 -0
  239. data/lib/snaptrade/models/snap_trade_holdings_account_account_id.rb +296 -0
  240. data/lib/snaptrade/models/snap_trade_holdings_total_value.rb +227 -0
  241. data/lib/snaptrade/models/snap_trade_login_user_request_body.rb +254 -0
  242. data/lib/snaptrade/models/snap_trade_register_user_request_body.rb +229 -0
  243. data/lib/snaptrade/models/state.rb +41 -0
  244. data/lib/snaptrade/models/status.rb +236 -0
  245. data/lib/snaptrade/models/strategy_impact.rb +310 -0
  246. data/lib/snaptrade/models/strategy_impact_legs_inner.rb +271 -0
  247. data/lib/snaptrade/models/strategy_order_place.rb +229 -0
  248. data/lib/snaptrade/models/strategy_order_place_orders_inner.rb +597 -0
  249. data/lib/snaptrade/models/strategy_order_place_orders_inner_legs_inner.rb +271 -0
  250. data/lib/snaptrade/models/strategy_order_record.rb +312 -0
  251. data/lib/snaptrade/models/strategy_order_record_order_type.rb +40 -0
  252. data/lib/snaptrade/models/strategy_order_record_status.rb +55 -0
  253. data/lib/snaptrade/models/strategy_order_record_time_in_force.rb +38 -0
  254. data/lib/snaptrade/models/strategy_quotes.rb +265 -0
  255. data/lib/snaptrade/models/strategy_quotes_greek.rb +253 -0
  256. data/lib/snaptrade/models/strategy_type.rb +37 -0
  257. data/lib/snaptrade/models/sub_period_return_rate.rb +239 -0
  258. data/lib/snaptrade/models/symbol.rb +272 -0
  259. data/lib/snaptrade/models/symbol_query.rb +218 -0
  260. data/lib/snaptrade/models/symbols_quotes.rb +263 -0
  261. data/lib/snaptrade/models/target_asset.rb +290 -0
  262. data/lib/snaptrade/models/time_in_force.rb +39 -0
  263. data/lib/snaptrade/models/trade.rb +281 -0
  264. data/lib/snaptrade/models/trade_action.rb +38 -0
  265. data/lib/snaptrade/models/trade_execution_status.rb +296 -0
  266. data/lib/snaptrade/models/trade_execution_status_action.rb +38 -0
  267. data/lib/snaptrade/models/trade_impact.rb +257 -0
  268. data/lib/snaptrade/models/trading_cancel_user_account_order_request.rb +217 -0
  269. data/lib/snaptrade/models/trading_place_oco_order_request.rb +230 -0
  270. data/lib/snaptrade/models/transactions_status.rb +229 -0
  271. data/lib/snaptrade/models/type.rb +38 -0
  272. data/lib/snaptrade/models/underlying_symbol.rb +275 -0
  273. data/lib/snaptrade/models/universal_activity.rb +349 -0
  274. data/lib/snaptrade/models/universal_symbol.rb +284 -0
  275. data/lib/snaptrade/models/universal_symbol_ticker.rb +283 -0
  276. data/lib/snaptrade/models/us_exchange.rb +291 -0
  277. data/lib/snaptrade/models/user_error_log.rb +263 -0
  278. data/lib/snaptrade/models/user_i_dand_secret.rb +229 -0
  279. data/lib/snaptrade/models/user_settings.rb +299 -0
  280. data/lib/snaptrade/version.rb +13 -0
  281. data/lib/snaptrade.rb +214 -0
  282. data/snaptrade.gemspec +41 -0
  283. data/spec/api/account_information_api_spec.rb +135 -0
  284. data/spec/api/api_status_api_spec.rb +42 -0
  285. data/spec/api/authentication_api_spec.rb +88 -0
  286. data/spec/api/connections_api_spec.rb +82 -0
  287. data/spec/api/error_logs_api_spec.rb +43 -0
  288. data/spec/api/options_api_spec.rb +101 -0
  289. data/spec/api/portfolio_management_api_spec.rb +395 -0
  290. data/spec/api/reference_data_api_spec.rb +150 -0
  291. data/spec/api/trading_api_spec.rb +163 -0
  292. data/spec/api/transactions_and_reporting_api_spec.rb +67 -0
  293. data/spec/api_client_spec.rb +193 -0
  294. data/spec/configuration_spec.rb +40 -0
  295. data/spec/getting_started_spec.rb +144 -0
  296. data/spec/models/account_holdings_account_spec.rb +54 -0
  297. data/spec/models/account_holdings_spec.rb +48 -0
  298. data/spec/models/account_order_record_spec.rb +132 -0
  299. data/spec/models/account_order_record_status_spec.rb +24 -0
  300. data/spec/models/account_simple_spec.rb +48 -0
  301. data/spec/models/account_spec.rb +84 -0
  302. data/spec/models/account_sync_status_spec.rb +30 -0
  303. data/spec/models/action_spec.rb +24 -0
  304. data/spec/models/auth_type_spec.rb +24 -0
  305. data/spec/models/authentication_login_snap_trade_user200_response_spec.rb +27 -0
  306. data/spec/models/balance_spec.rb +36 -0
  307. data/spec/models/brokerage_authorization_spec.rb +78 -0
  308. data/spec/models/brokerage_authorization_type_read_only_brokerage_spec.rb +42 -0
  309. data/spec/models/brokerage_authorization_type_read_only_spec.rb +48 -0
  310. data/spec/models/brokerage_authorization_type_read_only_type_spec.rb +24 -0
  311. data/spec/models/brokerage_authorization_type_spec.rb +30 -0
  312. data/spec/models/brokerage_authorization_type_type_spec.rb +24 -0
  313. data/spec/models/brokerage_spec.rb +132 -0
  314. data/spec/models/brokerage_symbol_spec.rb +54 -0
  315. data/spec/models/brokerage_type_spec.rb +36 -0
  316. data/spec/models/calculated_trade_spec.rb +36 -0
  317. data/spec/models/cash_restriction_spec.rb +54 -0
  318. data/spec/models/connection_type_spec.rb +24 -0
  319. data/spec/models/connections_session_events200_response_inner_spec.rb +66 -0
  320. data/spec/models/currency_spec.rb +42 -0
  321. data/spec/models/delete_user_response_spec.rb +36 -0
  322. data/spec/models/dividend_at_date_spec.rb +42 -0
  323. data/spec/models/encrypted_response_encrypted_message_data_spec.rb +42 -0
  324. data/spec/models/encrypted_response_spec.rb +36 -0
  325. data/spec/models/exchange_rate_pairs_spec.rb +42 -0
  326. data/spec/models/exchange_spec.rb +72 -0
  327. data/spec/models/excluded_asset_spec.rb +30 -0
  328. data/spec/models/jwt_spec.rb +30 -0
  329. data/spec/models/login_redirect_uri_spec.rb +36 -0
  330. data/spec/models/manual_trade_and_impact_spec.rb +42 -0
  331. data/spec/models/manual_trade_balance_spec.rb +42 -0
  332. data/spec/models/manual_trade_form_spec.rb +72 -0
  333. data/spec/models/manual_trade_spec.rb +72 -0
  334. data/spec/models/manual_trade_symbol_spec.rb +60 -0
  335. data/spec/models/model400_failed_request_response_spec.rb +36 -0
  336. data/spec/models/model401_failed_request_response_spec.rb +36 -0
  337. data/spec/models/model403_failed_request_response_spec.rb +36 -0
  338. data/spec/models/model404_failed_request_response_spec.rb +36 -0
  339. data/spec/models/model_asset_class_details_spec.rb +36 -0
  340. data/spec/models/model_asset_class_spec.rb +36 -0
  341. data/spec/models/model_asset_class_target_spec.rb +30 -0
  342. data/spec/models/model_portfolio_asset_class_spec.rb +36 -0
  343. data/spec/models/model_portfolio_details_spec.rb +42 -0
  344. data/spec/models/model_portfolio_security_spec.rb +36 -0
  345. data/spec/models/model_portfolio_spec.rb +42 -0
  346. data/spec/models/model_type_spec.rb +24 -0
  347. data/spec/models/monthly_dividends_spec.rb +36 -0
  348. data/spec/models/net_contributions_spec.rb +42 -0
  349. data/spec/models/net_dividend_spec.rb +42 -0
  350. data/spec/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner_spec.rb +42 -0
  351. data/spec/models/option_chain_inner_chain_per_root_inner_spec.rb +42 -0
  352. data/spec/models/option_chain_inner_spec.rb +54 -0
  353. data/spec/models/option_leg_action_spec.rb +24 -0
  354. data/spec/models/option_leg_spec.rb +42 -0
  355. data/spec/models/option_strategy_legs_inner_spec.rb +48 -0
  356. data/spec/models/option_strategy_spec.rb +54 -0
  357. data/spec/models/options_get_option_strategy_request_spec.rb +42 -0
  358. data/spec/models/options_holdings_spec.rb +60 -0
  359. data/spec/models/options_place_option_strategy_request_spec.rb +42 -0
  360. data/spec/models/options_position_spec.rb +66 -0
  361. data/spec/models/options_symbol_spec.rb +90 -0
  362. data/spec/models/order_strategy_execute_body_order_type_spec.rb +24 -0
  363. data/spec/models/order_strategy_execute_body_time_in_force_spec.rb +24 -0
  364. data/spec/models/order_type_spec.rb +24 -0
  365. data/spec/models/partner_data_spec.rb +96 -0
  366. data/spec/models/past_value_spec.rb +42 -0
  367. data/spec/models/performance_custom_spec.rb +138 -0
  368. data/spec/models/portfolio_group_info_spec.rb +90 -0
  369. data/spec/models/portfolio_group_position_spec.rb +42 -0
  370. data/spec/models/portfolio_group_settings_spec.rb +54 -0
  371. data/spec/models/portfolio_group_spec.rb +36 -0
  372. data/spec/models/position_spec.rb +60 -0
  373. data/spec/models/position_symbol_spec.rb +60 -0
  374. data/spec/models/redirect_tokenand_pin_spec.rb +36 -0
  375. data/spec/models/security_type_spec.rb +48 -0
  376. data/spec/models/session_event_spec.rb +66 -0
  377. data/spec/models/session_event_type_spec.rb +24 -0
  378. data/spec/models/snap_trade_api_disclaimer_accept_status_spec.rb +36 -0
  379. data/spec/models/snap_trade_holdings_account_account_id_spec.rb +78 -0
  380. data/spec/models/snap_trade_holdings_account_spec.rb +72 -0
  381. data/spec/models/snap_trade_holdings_total_value_spec.rb +36 -0
  382. data/spec/models/snap_trade_login_user_request_body_spec.rb +54 -0
  383. data/spec/models/snap_trade_register_user_request_body_spec.rb +36 -0
  384. data/spec/models/state_spec.rb +24 -0
  385. data/spec/models/status_spec.rb +42 -0
  386. data/spec/models/strategy_impact_legs_inner_spec.rb +66 -0
  387. data/spec/models/strategy_impact_spec.rb +90 -0
  388. data/spec/models/strategy_order_place_orders_inner_legs_inner_spec.rb +66 -0
  389. data/spec/models/strategy_order_place_orders_inner_spec.rb +282 -0
  390. data/spec/models/strategy_order_place_spec.rb +36 -0
  391. data/spec/models/strategy_order_record_order_type_spec.rb +24 -0
  392. data/spec/models/strategy_order_record_spec.rb +90 -0
  393. data/spec/models/strategy_order_record_status_spec.rb +24 -0
  394. data/spec/models/strategy_order_record_time_in_force_spec.rb +24 -0
  395. data/spec/models/strategy_quotes_greek_spec.rb +54 -0
  396. data/spec/models/strategy_quotes_spec.rb +60 -0
  397. data/spec/models/strategy_type_spec.rb +24 -0
  398. data/spec/models/sub_period_return_rate_spec.rb +42 -0
  399. data/spec/models/symbol_query_spec.rb +30 -0
  400. data/spec/models/symbol_spec.rb +66 -0
  401. data/spec/models/symbols_quotes_spec.rb +60 -0
  402. data/spec/models/target_asset_spec.rb +60 -0
  403. data/spec/models/time_in_force_spec.rb +24 -0
  404. data/spec/models/trade_action_spec.rb +24 -0
  405. data/spec/models/trade_execution_status_action_spec.rb +24 -0
  406. data/spec/models/trade_execution_status_spec.rb +78 -0
  407. data/spec/models/trade_impact_spec.rb +54 -0
  408. data/spec/models/trade_spec.rb +72 -0
  409. data/spec/models/trading_cancel_user_account_order_request_spec.rb +30 -0
  410. data/spec/models/trading_place_oco_order_request_spec.rb +36 -0
  411. data/spec/models/transactions_status_spec.rb +36 -0
  412. data/spec/models/type_spec.rb +24 -0
  413. data/spec/models/underlying_symbol_spec.rb +66 -0
  414. data/spec/models/universal_activity_spec.rb +114 -0
  415. data/spec/models/universal_symbol_spec.rb +72 -0
  416. data/spec/models/universal_symbol_ticker_spec.rb +72 -0
  417. data/spec/models/us_exchange_spec.rb +78 -0
  418. data/spec/models/user_error_log_spec.rb +60 -0
  419. data/spec/models/user_i_dand_secret_spec.rb +36 -0
  420. data/spec/models/user_settings_spec.rb +84 -0
  421. data/spec/spec_helper.rb +109 -0
  422. metadata +664 -0
@@ -0,0 +1,1150 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'cgi'
12
+
13
+ module SnapTrade
14
+ class TradingApi
15
+ attr_accessor :api_client
16
+
17
+ def initialize(api_client = ApiClient.default)
18
+ @api_client = api_client
19
+ end
20
+
21
+ # Cancel open order in account
22
+ # @param user_id [String]
23
+ # @param user_secret [String]
24
+ # @param account_id [String] The ID of the account get positions.
25
+ # @param brokerage_order_id [String]
26
+ # @param body [TradingCancelUserAccountOrderRequest] The Order ID to be canceled
27
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
28
+ def cancel_user_account_order(user_id:, user_secret:, account_id:, brokerage_order_id: SENTINEL, extra: {})
29
+ _body = {}
30
+ _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
31
+ trading_cancel_user_account_order_request = _body
32
+
33
+ data, _status_code, _headers = cancel_user_account_order_with_http_info_impl(user_id, user_secret, account_id, trading_cancel_user_account_order_request, extra)
34
+ data
35
+ end
36
+
37
+ # Cancel open order in account
38
+ # @param user_id [String]
39
+ # @param user_secret [String]
40
+ # @param account_id [String] The ID of the account get positions.
41
+ # @param brokerage_order_id [String]
42
+ # @param body [TradingCancelUserAccountOrderRequest] The Order ID to be canceled
43
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
44
+ def cancel_user_account_order_with_http_info(user_id:, user_secret:, account_id:, brokerage_order_id: SENTINEL, extra: {})
45
+ _body = {}
46
+ _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
47
+ trading_cancel_user_account_order_request = _body
48
+
49
+ cancel_user_account_order_with_http_info_impl(user_id, user_secret, account_id, trading_cancel_user_account_order_request, extra)
50
+ end
51
+
52
+ # Cancel open order in account
53
+ # @param user_id [String]
54
+ # @param user_secret [String]
55
+ # @param account_id [String] The ID of the account get positions.
56
+ # @param trading_cancel_user_account_order_request [TradingCancelUserAccountOrderRequest] The Order ID to be canceled
57
+ # @param [Hash] opts the optional parameters
58
+ # @return [AccountOrderRecord]
59
+ def cancel_user_account_order_impl(user_id, user_secret, account_id, trading_cancel_user_account_order_request, opts = {})
60
+ data, _status_code, _headers = cancel_user_account_order_with_http_info(user_id, user_secret, account_id, trading_cancel_user_account_order_request, opts)
61
+ data
62
+ end
63
+
64
+ # Cancel open order in account
65
+ # @param user_id [String]
66
+ # @param user_secret [String]
67
+ # @param account_id [String] The ID of the account get positions.
68
+ # @param trading_cancel_user_account_order_request [TradingCancelUserAccountOrderRequest] The Order ID to be canceled
69
+ # @param [Hash] opts the optional parameters
70
+ # @return [Array<(AccountOrderRecord, Integer, Hash)>] AccountOrderRecord data, response status code and response headers
71
+ def cancel_user_account_order_with_http_info_impl(user_id, user_secret, account_id, trading_cancel_user_account_order_request, opts = {})
72
+ if @api_client.config.debugging
73
+ @api_client.config.logger.debug 'Calling API: TradingApi.cancel_user_account_order ...'
74
+ end
75
+ # verify the required parameter 'user_id' is set
76
+ if @api_client.config.client_side_validation && user_id.nil?
77
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.cancel_user_account_order"
78
+ end
79
+ # verify the required parameter 'user_secret' is set
80
+ if @api_client.config.client_side_validation && user_secret.nil?
81
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.cancel_user_account_order"
82
+ end
83
+ # verify the required parameter 'account_id' is set
84
+ if @api_client.config.client_side_validation && account_id.nil?
85
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling TradingApi.cancel_user_account_order"
86
+ end
87
+ # verify the required parameter 'trading_cancel_user_account_order_request' is set
88
+ if @api_client.config.client_side_validation && trading_cancel_user_account_order_request.nil?
89
+ fail ArgumentError, "Missing the required parameter 'trading_cancel_user_account_order_request' when calling TradingApi.cancel_user_account_order"
90
+ end
91
+ # resource path
92
+ local_var_path = '/accounts/{accountId}/orders/cancel'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
93
+
94
+ # query parameters
95
+ query_params = opts[:query_params] || {}
96
+ query_params[:'userId'] = user_id
97
+ query_params[:'userSecret'] = user_secret
98
+
99
+ # header parameters
100
+ header_params = opts[:header_params] || {}
101
+ # HTTP header 'Accept' (if needed)
102
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
103
+ # HTTP header 'Content-Type'
104
+ content_type = @api_client.select_header_content_type(['application/json'])
105
+ if !content_type.nil?
106
+ header_params['Content-Type'] = content_type
107
+ end
108
+
109
+ # form parameters
110
+ form_params = opts[:form_params] || {}
111
+
112
+ # http body (model)
113
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(trading_cancel_user_account_order_request)
114
+
115
+ # return_type
116
+ return_type = opts[:debug_return_type] || 'AccountOrderRecord'
117
+
118
+ # auth_names
119
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
120
+
121
+ new_options = opts.merge(
122
+ :operation => :"TradingApi.cancel_user_account_order",
123
+ :header_params => header_params,
124
+ :query_params => query_params,
125
+ :form_params => form_params,
126
+ :body => post_body,
127
+ :auth_names => auth_names,
128
+ :return_type => return_type
129
+ )
130
+
131
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
132
+ if @api_client.config.debugging
133
+ @api_client.config.logger.debug "API called: TradingApi#cancel_user_account_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
134
+ end
135
+ return data, status_code, headers, response
136
+ end
137
+
138
+
139
+ # Return details of a specific trade before it's placed
140
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
141
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
142
+ # @param trade_id [String] The ID of trade object
143
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
144
+ def get_calculated_trade_impact_by_id(portfolio_group_id:, calculated_trade_id:, trade_id:, extra: {})
145
+
146
+ data, _status_code, _headers = get_calculated_trade_impact_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, extra)
147
+ data
148
+ end
149
+
150
+ # Return details of a specific trade before it's placed
151
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
152
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
153
+ # @param trade_id [String] The ID of trade object
154
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
155
+ def get_calculated_trade_impact_by_id_with_http_info(portfolio_group_id:, calculated_trade_id:, trade_id:, extra: {})
156
+
157
+ get_calculated_trade_impact_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, extra)
158
+ end
159
+
160
+ # Return details of a specific trade before it's placed
161
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
162
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
163
+ # @param trade_id [String] The ID of trade object
164
+ # @param [Hash] opts the optional parameters
165
+ # @return [Trade]
166
+ def get_calculated_trade_impact_by_id_impl(portfolio_group_id, calculated_trade_id, trade_id, opts = {})
167
+ data, _status_code, _headers = get_calculated_trade_impact_by_id_with_http_info(portfolio_group_id, calculated_trade_id, trade_id, opts)
168
+ data
169
+ end
170
+
171
+ # Return details of a specific trade before it&#39;s placed
172
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
173
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
174
+ # @param trade_id [String] The ID of trade object
175
+ # @param [Hash] opts the optional parameters
176
+ # @return [Array<(Trade, Integer, Hash)>] Trade data, response status code and response headers
177
+ def get_calculated_trade_impact_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, opts = {})
178
+ if @api_client.config.debugging
179
+ @api_client.config.logger.debug 'Calling API: TradingApi.get_calculated_trade_impact_by_id ...'
180
+ end
181
+ # verify the required parameter 'portfolio_group_id' is set
182
+ if @api_client.config.client_side_validation && portfolio_group_id.nil?
183
+ fail ArgumentError, "Missing the required parameter 'portfolio_group_id' when calling TradingApi.get_calculated_trade_impact_by_id"
184
+ end
185
+ # verify the required parameter 'calculated_trade_id' is set
186
+ if @api_client.config.client_side_validation && calculated_trade_id.nil?
187
+ fail ArgumentError, "Missing the required parameter 'calculated_trade_id' when calling TradingApi.get_calculated_trade_impact_by_id"
188
+ end
189
+ # verify the required parameter 'trade_id' is set
190
+ if @api_client.config.client_side_validation && trade_id.nil?
191
+ fail ArgumentError, "Missing the required parameter 'trade_id' when calling TradingApi.get_calculated_trade_impact_by_id"
192
+ end
193
+ # resource path
194
+ local_var_path = '/portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/modify/{tradeId}'.sub('{' + 'portfolioGroupId' + '}', CGI.escape(portfolio_group_id.to_s)).sub('{' + 'calculatedTradeId' + '}', CGI.escape(calculated_trade_id.to_s)).sub('{' + 'tradeId' + '}', CGI.escape(trade_id.to_s))
195
+
196
+ # query parameters
197
+ query_params = opts[:query_params] || {}
198
+
199
+ # header parameters
200
+ header_params = opts[:header_params] || {}
201
+ # HTTP header 'Accept' (if needed)
202
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
203
+
204
+ # form parameters
205
+ form_params = opts[:form_params] || {}
206
+
207
+ # http body (model)
208
+ post_body = opts[:debug_body]
209
+
210
+ # return_type
211
+ return_type = opts[:debug_return_type] || 'Trade'
212
+
213
+ # auth_names
214
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
215
+
216
+ new_options = opts.merge(
217
+ :operation => :"TradingApi.get_calculated_trade_impact_by_id",
218
+ :header_params => header_params,
219
+ :query_params => query_params,
220
+ :form_params => form_params,
221
+ :body => post_body,
222
+ :auth_names => auth_names,
223
+ :return_type => return_type
224
+ )
225
+
226
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
227
+ if @api_client.config.debugging
228
+ @api_client.config.logger.debug "API called: TradingApi#get_calculated_trade_impact_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
229
+ end
230
+ return data, status_code, headers, response
231
+ end
232
+
233
+
234
+ # Return the impact of placing a series of trades on the portfolio
235
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
236
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
237
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
238
+ def get_calculated_trades_impact(portfolio_group_id:, calculated_trade_id:, extra: {})
239
+
240
+ data, _status_code, _headers = get_calculated_trades_impact_with_http_info_impl(portfolio_group_id, calculated_trade_id, extra)
241
+ data
242
+ end
243
+
244
+ # Return the impact of placing a series of trades on the portfolio
245
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
246
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
247
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
248
+ def get_calculated_trades_impact_with_http_info(portfolio_group_id:, calculated_trade_id:, extra: {})
249
+
250
+ get_calculated_trades_impact_with_http_info_impl(portfolio_group_id, calculated_trade_id, extra)
251
+ end
252
+
253
+ # Return the impact of placing a series of trades on the portfolio
254
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
255
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
256
+ # @param [Hash] opts the optional parameters
257
+ # @return [Array<TradeImpact>]
258
+ def get_calculated_trades_impact_impl(portfolio_group_id, calculated_trade_id, opts = {})
259
+ data, _status_code, _headers = get_calculated_trades_impact_with_http_info(portfolio_group_id, calculated_trade_id, opts)
260
+ data
261
+ end
262
+
263
+ # Return the impact of placing a series of trades on the portfolio
264
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
265
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
266
+ # @param [Hash] opts the optional parameters
267
+ # @return [Array<(Array<TradeImpact>, Integer, Hash)>] Array<TradeImpact> data, response status code and response headers
268
+ def get_calculated_trades_impact_with_http_info_impl(portfolio_group_id, calculated_trade_id, opts = {})
269
+ if @api_client.config.debugging
270
+ @api_client.config.logger.debug 'Calling API: TradingApi.get_calculated_trades_impact ...'
271
+ end
272
+ # verify the required parameter 'portfolio_group_id' is set
273
+ if @api_client.config.client_side_validation && portfolio_group_id.nil?
274
+ fail ArgumentError, "Missing the required parameter 'portfolio_group_id' when calling TradingApi.get_calculated_trades_impact"
275
+ end
276
+ # verify the required parameter 'calculated_trade_id' is set
277
+ if @api_client.config.client_side_validation && calculated_trade_id.nil?
278
+ fail ArgumentError, "Missing the required parameter 'calculated_trade_id' when calling TradingApi.get_calculated_trades_impact"
279
+ end
280
+ # resource path
281
+ local_var_path = '/portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/impact'.sub('{' + 'portfolioGroupId' + '}', CGI.escape(portfolio_group_id.to_s)).sub('{' + 'calculatedTradeId' + '}', CGI.escape(calculated_trade_id.to_s))
282
+
283
+ # query parameters
284
+ query_params = opts[:query_params] || {}
285
+
286
+ # header parameters
287
+ header_params = opts[:header_params] || {}
288
+ # HTTP header 'Accept' (if needed)
289
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
290
+
291
+ # form parameters
292
+ form_params = opts[:form_params] || {}
293
+
294
+ # http body (model)
295
+ post_body = opts[:debug_body]
296
+
297
+ # return_type
298
+ return_type = opts[:debug_return_type] || 'Array<TradeImpact>'
299
+
300
+ # auth_names
301
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
302
+
303
+ new_options = opts.merge(
304
+ :operation => :"TradingApi.get_calculated_trades_impact",
305
+ :header_params => header_params,
306
+ :query_params => query_params,
307
+ :form_params => form_params,
308
+ :body => post_body,
309
+ :auth_names => auth_names,
310
+ :return_type => return_type
311
+ )
312
+
313
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
314
+ if @api_client.config.debugging
315
+ @api_client.config.logger.debug "API called: TradingApi#get_calculated_trades_impact\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
316
+ end
317
+ return data, status_code, headers, response
318
+ end
319
+
320
+
321
+ # Check impact of trades on account.
322
+ # @param user_id [String]
323
+ # @param user_secret [String]
324
+ # @param account_id [String]
325
+ # @param action [Action]
326
+ # @param order_type [OrderType]
327
+ # @param price [Float] Trade Price if limit or stop limit order
328
+ # @param stop [Float] Stop Price. If stop loss or stop limit order, the price to trigger the stop
329
+ # @param time_in_force [TimeInForce]
330
+ # @param units [Float] Trade Units
331
+ # @param universal_symbol_id [String]
332
+ # @param body [ManualTradeForm]
333
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
334
+ def get_order_impact(user_id:, user_secret:, account_id: SENTINEL, action: SENTINEL, order_type: SENTINEL, price: SENTINEL, stop: SENTINEL, time_in_force: SENTINEL, units: SENTINEL, universal_symbol_id: SENTINEL, extra: {})
335
+ _body = {}
336
+ _body[:account_id] = account_id if account_id != SENTINEL
337
+ _body[:action] = action if action != SENTINEL
338
+ _body[:order_type] = order_type if order_type != SENTINEL
339
+ _body[:price] = price if price != SENTINEL
340
+ _body[:stop] = stop if stop != SENTINEL
341
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
342
+ _body[:units] = units if units != SENTINEL
343
+ _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
344
+ manual_trade_form = _body
345
+
346
+ data, _status_code, _headers = get_order_impact_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
347
+ data
348
+ end
349
+
350
+ # Check impact of trades on account.
351
+ # @param user_id [String]
352
+ # @param user_secret [String]
353
+ # @param account_id [String]
354
+ # @param action [Action]
355
+ # @param order_type [OrderType]
356
+ # @param price [Float] Trade Price if limit or stop limit order
357
+ # @param stop [Float] Stop Price. If stop loss or stop limit order, the price to trigger the stop
358
+ # @param time_in_force [TimeInForce]
359
+ # @param units [Float] Trade Units
360
+ # @param universal_symbol_id [String]
361
+ # @param body [ManualTradeForm]
362
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
363
+ def get_order_impact_with_http_info(user_id:, user_secret:, account_id: SENTINEL, action: SENTINEL, order_type: SENTINEL, price: SENTINEL, stop: SENTINEL, time_in_force: SENTINEL, units: SENTINEL, universal_symbol_id: SENTINEL, extra: {})
364
+ _body = {}
365
+ _body[:account_id] = account_id if account_id != SENTINEL
366
+ _body[:action] = action if action != SENTINEL
367
+ _body[:order_type] = order_type if order_type != SENTINEL
368
+ _body[:price] = price if price != SENTINEL
369
+ _body[:stop] = stop if stop != SENTINEL
370
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
371
+ _body[:units] = units if units != SENTINEL
372
+ _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
373
+ manual_trade_form = _body
374
+
375
+ get_order_impact_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
376
+ end
377
+
378
+ # Check impact of trades on account.
379
+ # @param user_id [String]
380
+ # @param user_secret [String]
381
+ # @param manual_trade_form [ManualTradeForm]
382
+ # @param [Hash] opts the optional parameters
383
+ # @return [ManualTradeAndImpact]
384
+ def get_order_impact_impl(user_id, user_secret, manual_trade_form, opts = {})
385
+ data, _status_code, _headers = get_order_impact_with_http_info(user_id, user_secret, manual_trade_form, opts)
386
+ data
387
+ end
388
+
389
+ # Check impact of trades on account.
390
+ # @param user_id [String]
391
+ # @param user_secret [String]
392
+ # @param manual_trade_form [ManualTradeForm]
393
+ # @param [Hash] opts the optional parameters
394
+ # @return [Array<(ManualTradeAndImpact, Integer, Hash)>] ManualTradeAndImpact data, response status code and response headers
395
+ def get_order_impact_with_http_info_impl(user_id, user_secret, manual_trade_form, opts = {})
396
+ if @api_client.config.debugging
397
+ @api_client.config.logger.debug 'Calling API: TradingApi.get_order_impact ...'
398
+ end
399
+ # verify the required parameter 'user_id' is set
400
+ if @api_client.config.client_side_validation && user_id.nil?
401
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.get_order_impact"
402
+ end
403
+ # verify the required parameter 'user_secret' is set
404
+ if @api_client.config.client_side_validation && user_secret.nil?
405
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.get_order_impact"
406
+ end
407
+ # verify the required parameter 'manual_trade_form' is set
408
+ if @api_client.config.client_side_validation && manual_trade_form.nil?
409
+ fail ArgumentError, "Missing the required parameter 'manual_trade_form' when calling TradingApi.get_order_impact"
410
+ end
411
+ # resource path
412
+ local_var_path = '/trade/impact'
413
+
414
+ # query parameters
415
+ query_params = opts[:query_params] || {}
416
+ query_params[:'userId'] = user_id
417
+ query_params[:'userSecret'] = user_secret
418
+
419
+ # header parameters
420
+ header_params = opts[:header_params] || {}
421
+ # HTTP header 'Accept' (if needed)
422
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
423
+ # HTTP header 'Content-Type'
424
+ content_type = @api_client.select_header_content_type(['application/json'])
425
+ if !content_type.nil?
426
+ header_params['Content-Type'] = content_type
427
+ end
428
+
429
+ # form parameters
430
+ form_params = opts[:form_params] || {}
431
+
432
+ # http body (model)
433
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(manual_trade_form)
434
+
435
+ # return_type
436
+ return_type = opts[:debug_return_type] || 'ManualTradeAndImpact'
437
+
438
+ # auth_names
439
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
440
+
441
+ new_options = opts.merge(
442
+ :operation => :"TradingApi.get_order_impact",
443
+ :header_params => header_params,
444
+ :query_params => query_params,
445
+ :form_params => form_params,
446
+ :body => post_body,
447
+ :auth_names => auth_names,
448
+ :return_type => return_type
449
+ )
450
+
451
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
452
+ if @api_client.config.debugging
453
+ @api_client.config.logger.debug "API called: TradingApi#get_order_impact\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
454
+ end
455
+ return data, status_code, headers, response
456
+ end
457
+
458
+
459
+ # Get symbol quotes
460
+ # @param user_id [String]
461
+ # @param user_secret [String]
462
+ # @param symbols [String] List of universal_symbol_id or tickers to get quotes for.
463
+ # @param account_id [String] The ID of the account to get quotes.
464
+ # @param use_ticker [Boolean] Should be set to True if providing tickers.
465
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
466
+ def get_user_account_quotes(user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {})
467
+ extra[:use_ticker] = use_ticker if use_ticker != SENTINEL
468
+
469
+ data, _status_code, _headers = get_user_account_quotes_with_http_info_impl(user_id, user_secret, symbols, account_id, extra)
470
+ data
471
+ end
472
+
473
+ # Get symbol quotes
474
+ # @param user_id [String]
475
+ # @param user_secret [String]
476
+ # @param symbols [String] List of universal_symbol_id or tickers to get quotes for.
477
+ # @param account_id [String] The ID of the account to get quotes.
478
+ # @param use_ticker [Boolean] Should be set to True if providing tickers.
479
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
480
+ def get_user_account_quotes_with_http_info(user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {})
481
+ extra[:use_ticker] = use_ticker if use_ticker != SENTINEL
482
+
483
+ get_user_account_quotes_with_http_info_impl(user_id, user_secret, symbols, account_id, extra)
484
+ end
485
+
486
+ # Get symbol quotes
487
+ # @param user_id [String]
488
+ # @param user_secret [String]
489
+ # @param symbols [String] List of universal_symbol_id or tickers to get quotes for.
490
+ # @param account_id [String] The ID of the account to get quotes.
491
+ # @param [Hash] opts the optional parameters
492
+ # @option opts [Boolean] :use_ticker Should be set to True if providing tickers.
493
+ # @return [SymbolsQuotes]
494
+ def get_user_account_quotes_impl(user_id, user_secret, symbols, account_id, opts = {})
495
+ data, _status_code, _headers = get_user_account_quotes_with_http_info(user_id, user_secret, symbols, account_id, opts)
496
+ data
497
+ end
498
+
499
+ # Get symbol quotes
500
+ # @param user_id [String]
501
+ # @param user_secret [String]
502
+ # @param symbols [String] List of universal_symbol_id or tickers to get quotes for.
503
+ # @param account_id [String] The ID of the account to get quotes.
504
+ # @param [Hash] opts the optional parameters
505
+ # @option opts [Boolean] :use_ticker Should be set to True if providing tickers.
506
+ # @return [Array<(SymbolsQuotes, Integer, Hash)>] SymbolsQuotes data, response status code and response headers
507
+ def get_user_account_quotes_with_http_info_impl(user_id, user_secret, symbols, account_id, opts = {})
508
+ if @api_client.config.debugging
509
+ @api_client.config.logger.debug 'Calling API: TradingApi.get_user_account_quotes ...'
510
+ end
511
+ # verify the required parameter 'user_id' is set
512
+ if @api_client.config.client_side_validation && user_id.nil?
513
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.get_user_account_quotes"
514
+ end
515
+ # verify the required parameter 'user_secret' is set
516
+ if @api_client.config.client_side_validation && user_secret.nil?
517
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.get_user_account_quotes"
518
+ end
519
+ # verify the required parameter 'symbols' is set
520
+ if @api_client.config.client_side_validation && symbols.nil?
521
+ fail ArgumentError, "Missing the required parameter 'symbols' when calling TradingApi.get_user_account_quotes"
522
+ end
523
+ # verify the required parameter 'account_id' is set
524
+ if @api_client.config.client_side_validation && account_id.nil?
525
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling TradingApi.get_user_account_quotes"
526
+ end
527
+ # resource path
528
+ local_var_path = '/accounts/{accountId}/quotes'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
529
+
530
+ # query parameters
531
+ query_params = opts[:query_params] || {}
532
+ query_params[:'userId'] = user_id
533
+ query_params[:'userSecret'] = user_secret
534
+ query_params[:'symbols'] = symbols
535
+ query_params[:'use_ticker'] = opts[:'use_ticker'] if !opts[:'use_ticker'].nil?
536
+
537
+ # header parameters
538
+ header_params = opts[:header_params] || {}
539
+ # HTTP header 'Accept' (if needed)
540
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
541
+
542
+ # form parameters
543
+ form_params = opts[:form_params] || {}
544
+
545
+ # http body (model)
546
+ post_body = opts[:debug_body]
547
+
548
+ # return_type
549
+ return_type = opts[:debug_return_type] || 'SymbolsQuotes'
550
+
551
+ # auth_names
552
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
553
+
554
+ new_options = opts.merge(
555
+ :operation => :"TradingApi.get_user_account_quotes",
556
+ :header_params => header_params,
557
+ :query_params => query_params,
558
+ :form_params => form_params,
559
+ :body => post_body,
560
+ :auth_names => auth_names,
561
+ :return_type => return_type
562
+ )
563
+
564
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
565
+ if @api_client.config.debugging
566
+ @api_client.config.logger.debug "API called: TradingApi#get_user_account_quotes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
567
+ end
568
+ return data, status_code, headers, response
569
+ end
570
+
571
+
572
+ # Modify units of a trade before it is placed
573
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
574
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
575
+ # @param trade_id [String] The ID of trade object
576
+ # @param id [String]
577
+ # @param account [Account]
578
+ # @param symbol [BrokerageSymbol]
579
+ # @param universal_symbol [UniversalSymbol]
580
+ # @param action [TradeAction]
581
+ # @param units [Integer]
582
+ # @param price [Float]
583
+ # @param sequence [Integer]
584
+ # @param body [Trade]
585
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
586
+ def modify_calculated_trade_by_id(portfolio_group_id:, calculated_trade_id:, trade_id:, id: SENTINEL, account: SENTINEL, symbol: SENTINEL, universal_symbol: SENTINEL, action: SENTINEL, units: SENTINEL, price: SENTINEL, sequence: SENTINEL, extra: {})
587
+ _body = {}
588
+ _body[:id] = id if id != SENTINEL
589
+ _body[:account] = account if account != SENTINEL
590
+ _body[:symbol] = symbol if symbol != SENTINEL
591
+ _body[:universal_symbol] = universal_symbol if universal_symbol != SENTINEL
592
+ _body[:action] = action if action != SENTINEL
593
+ _body[:units] = units if units != SENTINEL
594
+ _body[:price] = price if price != SENTINEL
595
+ _body[:sequence] = sequence if sequence != SENTINEL
596
+ extra[:trade] = _body if !_body.empty?
597
+
598
+ data, _status_code, _headers = modify_calculated_trade_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, extra)
599
+ data
600
+ end
601
+
602
+ # Modify units of a trade before it is placed
603
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
604
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
605
+ # @param trade_id [String] The ID of trade object
606
+ # @param id [String]
607
+ # @param account [Account]
608
+ # @param symbol [BrokerageSymbol]
609
+ # @param universal_symbol [UniversalSymbol]
610
+ # @param action [TradeAction]
611
+ # @param units [Integer]
612
+ # @param price [Float]
613
+ # @param sequence [Integer]
614
+ # @param body [Trade]
615
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
616
+ def modify_calculated_trade_by_id_with_http_info(portfolio_group_id:, calculated_trade_id:, trade_id:, id: SENTINEL, account: SENTINEL, symbol: SENTINEL, universal_symbol: SENTINEL, action: SENTINEL, units: SENTINEL, price: SENTINEL, sequence: SENTINEL, extra: {})
617
+ _body = {}
618
+ _body[:id] = id if id != SENTINEL
619
+ _body[:account] = account if account != SENTINEL
620
+ _body[:symbol] = symbol if symbol != SENTINEL
621
+ _body[:universal_symbol] = universal_symbol if universal_symbol != SENTINEL
622
+ _body[:action] = action if action != SENTINEL
623
+ _body[:units] = units if units != SENTINEL
624
+ _body[:price] = price if price != SENTINEL
625
+ _body[:sequence] = sequence if sequence != SENTINEL
626
+ extra[:trade] = _body if !_body.empty?
627
+
628
+ modify_calculated_trade_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, extra)
629
+ end
630
+
631
+ # Modify units of a trade before it is placed
632
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
633
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
634
+ # @param trade_id [String] The ID of trade object
635
+ # @param [Hash] opts the optional parameters
636
+ # @option opts [Trade] :trade
637
+ # @return [Trade]
638
+ def modify_calculated_trade_by_id_impl(portfolio_group_id, calculated_trade_id, trade_id, opts = {})
639
+ data, _status_code, _headers = modify_calculated_trade_by_id_with_http_info(portfolio_group_id, calculated_trade_id, trade_id, opts)
640
+ data
641
+ end
642
+
643
+ # Modify units of a trade before it is placed
644
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
645
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
646
+ # @param trade_id [String] The ID of trade object
647
+ # @param [Hash] opts the optional parameters
648
+ # @option opts [Trade] :trade
649
+ # @return [Array<(Trade, Integer, Hash)>] Trade data, response status code and response headers
650
+ def modify_calculated_trade_by_id_with_http_info_impl(portfolio_group_id, calculated_trade_id, trade_id, opts = {})
651
+ if @api_client.config.debugging
652
+ @api_client.config.logger.debug 'Calling API: TradingApi.modify_calculated_trade_by_id ...'
653
+ end
654
+ # verify the required parameter 'portfolio_group_id' is set
655
+ if @api_client.config.client_side_validation && portfolio_group_id.nil?
656
+ fail ArgumentError, "Missing the required parameter 'portfolio_group_id' when calling TradingApi.modify_calculated_trade_by_id"
657
+ end
658
+ # verify the required parameter 'calculated_trade_id' is set
659
+ if @api_client.config.client_side_validation && calculated_trade_id.nil?
660
+ fail ArgumentError, "Missing the required parameter 'calculated_trade_id' when calling TradingApi.modify_calculated_trade_by_id"
661
+ end
662
+ # verify the required parameter 'trade_id' is set
663
+ if @api_client.config.client_side_validation && trade_id.nil?
664
+ fail ArgumentError, "Missing the required parameter 'trade_id' when calling TradingApi.modify_calculated_trade_by_id"
665
+ end
666
+ # resource path
667
+ local_var_path = '/portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/modify/{tradeId}'.sub('{' + 'portfolioGroupId' + '}', CGI.escape(portfolio_group_id.to_s)).sub('{' + 'calculatedTradeId' + '}', CGI.escape(calculated_trade_id.to_s)).sub('{' + 'tradeId' + '}', CGI.escape(trade_id.to_s))
668
+
669
+ # query parameters
670
+ query_params = opts[:query_params] || {}
671
+
672
+ # header parameters
673
+ header_params = opts[:header_params] || {}
674
+ # HTTP header 'Accept' (if needed)
675
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
676
+ # HTTP header 'Content-Type'
677
+ content_type = @api_client.select_header_content_type(['application/json'])
678
+ if !content_type.nil?
679
+ header_params['Content-Type'] = content_type
680
+ end
681
+
682
+ # form parameters
683
+ form_params = opts[:form_params] || {}
684
+
685
+ # http body (model)
686
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'trade'])
687
+
688
+ # return_type
689
+ return_type = opts[:debug_return_type] || 'Trade'
690
+
691
+ # auth_names
692
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
693
+
694
+ new_options = opts.merge(
695
+ :operation => :"TradingApi.modify_calculated_trade_by_id",
696
+ :header_params => header_params,
697
+ :query_params => query_params,
698
+ :form_params => form_params,
699
+ :body => post_body,
700
+ :auth_names => auth_names,
701
+ :return_type => return_type
702
+ )
703
+
704
+ data, status_code, headers, response = @api_client.call_api(:PATCH, local_var_path, new_options)
705
+ if @api_client.config.debugging
706
+ @api_client.config.logger.debug "API called: TradingApi#modify_calculated_trade_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
707
+ end
708
+ return data, status_code, headers, response
709
+ end
710
+
711
+
712
+ # Place orders for the CalculatedTrades in series
713
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
714
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
715
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
716
+ def place_calculated_trades(portfolio_group_id:, calculated_trade_id:, extra: {})
717
+
718
+ data, _status_code, _headers = place_calculated_trades_with_http_info_impl(portfolio_group_id, calculated_trade_id, extra)
719
+ data
720
+ end
721
+
722
+ # Place orders for the CalculatedTrades in series
723
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
724
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
725
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
726
+ def place_calculated_trades_with_http_info(portfolio_group_id:, calculated_trade_id:, extra: {})
727
+
728
+ place_calculated_trades_with_http_info_impl(portfolio_group_id, calculated_trade_id, extra)
729
+ end
730
+
731
+ # Place orders for the CalculatedTrades in series
732
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
733
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
734
+ # @param [Hash] opts the optional parameters
735
+ # @return [Array<TradeExecutionStatus>]
736
+ def place_calculated_trades_impl(portfolio_group_id, calculated_trade_id, opts = {})
737
+ data, _status_code, _headers = place_calculated_trades_with_http_info(portfolio_group_id, calculated_trade_id, opts)
738
+ data
739
+ end
740
+
741
+ # Place orders for the CalculatedTrades in series
742
+ # @param portfolio_group_id [String] The ID of the PortfolioGroup to perform rebalancing calculations
743
+ # @param calculated_trade_id [String] The ID of calculated trade to get account impact
744
+ # @param [Hash] opts the optional parameters
745
+ # @return [Array<(Array<TradeExecutionStatus>, Integer, Hash)>] Array<TradeExecutionStatus> data, response status code and response headers
746
+ def place_calculated_trades_with_http_info_impl(portfolio_group_id, calculated_trade_id, opts = {})
747
+ if @api_client.config.debugging
748
+ @api_client.config.logger.debug 'Calling API: TradingApi.place_calculated_trades ...'
749
+ end
750
+ # verify the required parameter 'portfolio_group_id' is set
751
+ if @api_client.config.client_side_validation && portfolio_group_id.nil?
752
+ fail ArgumentError, "Missing the required parameter 'portfolio_group_id' when calling TradingApi.place_calculated_trades"
753
+ end
754
+ # verify the required parameter 'calculated_trade_id' is set
755
+ if @api_client.config.client_side_validation && calculated_trade_id.nil?
756
+ fail ArgumentError, "Missing the required parameter 'calculated_trade_id' when calling TradingApi.place_calculated_trades"
757
+ end
758
+ # resource path
759
+ local_var_path = '/portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/placeOrders'.sub('{' + 'portfolioGroupId' + '}', CGI.escape(portfolio_group_id.to_s)).sub('{' + 'calculatedTradeId' + '}', CGI.escape(calculated_trade_id.to_s))
760
+
761
+ # query parameters
762
+ query_params = opts[:query_params] || {}
763
+
764
+ # header parameters
765
+ header_params = opts[:header_params] || {}
766
+ # HTTP header 'Accept' (if needed)
767
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
768
+
769
+ # form parameters
770
+ form_params = opts[:form_params] || {}
771
+
772
+ # http body (model)
773
+ post_body = opts[:debug_body]
774
+
775
+ # return_type
776
+ return_type = opts[:debug_return_type] || 'Array<TradeExecutionStatus>'
777
+
778
+ # auth_names
779
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
780
+
781
+ new_options = opts.merge(
782
+ :operation => :"TradingApi.place_calculated_trades",
783
+ :header_params => header_params,
784
+ :query_params => query_params,
785
+ :form_params => form_params,
786
+ :body => post_body,
787
+ :auth_names => auth_names,
788
+ :return_type => return_type
789
+ )
790
+
791
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
792
+ if @api_client.config.debugging
793
+ @api_client.config.logger.debug "API called: TradingApi#place_calculated_trades\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
794
+ end
795
+ return data, status_code, headers, response
796
+ end
797
+
798
+
799
+ # Place a trade with NO validation.
800
+ # @param user_id [String]
801
+ # @param user_secret [String]
802
+ # @param account_id [String]
803
+ # @param action [Action]
804
+ # @param order_type [OrderType]
805
+ # @param price [Float] Trade Price if limit or stop limit order
806
+ # @param stop [Float] Stop Price. If stop loss or stop limit order, the price to trigger the stop
807
+ # @param time_in_force [TimeInForce]
808
+ # @param units [Float] Trade Units
809
+ # @param universal_symbol_id [String]
810
+ # @param body [ManualTradeForm]
811
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
812
+ def place_force_order(user_id:, user_secret:, account_id: SENTINEL, action: SENTINEL, order_type: SENTINEL, price: SENTINEL, stop: SENTINEL, time_in_force: SENTINEL, units: SENTINEL, universal_symbol_id: SENTINEL, extra: {})
813
+ _body = {}
814
+ _body[:account_id] = account_id if account_id != SENTINEL
815
+ _body[:action] = action if action != SENTINEL
816
+ _body[:order_type] = order_type if order_type != SENTINEL
817
+ _body[:price] = price if price != SENTINEL
818
+ _body[:stop] = stop if stop != SENTINEL
819
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
820
+ _body[:units] = units if units != SENTINEL
821
+ _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
822
+ manual_trade_form = _body
823
+
824
+ data, _status_code, _headers = place_force_order_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
825
+ data
826
+ end
827
+
828
+ # Place a trade with NO validation.
829
+ # @param user_id [String]
830
+ # @param user_secret [String]
831
+ # @param account_id [String]
832
+ # @param action [Action]
833
+ # @param order_type [OrderType]
834
+ # @param price [Float] Trade Price if limit or stop limit order
835
+ # @param stop [Float] Stop Price. If stop loss or stop limit order, the price to trigger the stop
836
+ # @param time_in_force [TimeInForce]
837
+ # @param units [Float] Trade Units
838
+ # @param universal_symbol_id [String]
839
+ # @param body [ManualTradeForm]
840
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
841
+ def place_force_order_with_http_info(user_id:, user_secret:, account_id: SENTINEL, action: SENTINEL, order_type: SENTINEL, price: SENTINEL, stop: SENTINEL, time_in_force: SENTINEL, units: SENTINEL, universal_symbol_id: SENTINEL, extra: {})
842
+ _body = {}
843
+ _body[:account_id] = account_id if account_id != SENTINEL
844
+ _body[:action] = action if action != SENTINEL
845
+ _body[:order_type] = order_type if order_type != SENTINEL
846
+ _body[:price] = price if price != SENTINEL
847
+ _body[:stop] = stop if stop != SENTINEL
848
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
849
+ _body[:units] = units if units != SENTINEL
850
+ _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
851
+ manual_trade_form = _body
852
+
853
+ place_force_order_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
854
+ end
855
+
856
+ # Place a trade with NO validation.
857
+ # @param user_id [String]
858
+ # @param user_secret [String]
859
+ # @param manual_trade_form [ManualTradeForm]
860
+ # @param [Hash] opts the optional parameters
861
+ # @return [AccountOrderRecord]
862
+ def place_force_order_impl(user_id, user_secret, manual_trade_form, opts = {})
863
+ data, _status_code, _headers = place_force_order_with_http_info(user_id, user_secret, manual_trade_form, opts)
864
+ data
865
+ end
866
+
867
+ # Place a trade with NO validation.
868
+ # @param user_id [String]
869
+ # @param user_secret [String]
870
+ # @param manual_trade_form [ManualTradeForm]
871
+ # @param [Hash] opts the optional parameters
872
+ # @return [Array<(AccountOrderRecord, Integer, Hash)>] AccountOrderRecord data, response status code and response headers
873
+ def place_force_order_with_http_info_impl(user_id, user_secret, manual_trade_form, opts = {})
874
+ if @api_client.config.debugging
875
+ @api_client.config.logger.debug 'Calling API: TradingApi.place_force_order ...'
876
+ end
877
+ # verify the required parameter 'user_id' is set
878
+ if @api_client.config.client_side_validation && user_id.nil?
879
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.place_force_order"
880
+ end
881
+ # verify the required parameter 'user_secret' is set
882
+ if @api_client.config.client_side_validation && user_secret.nil?
883
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.place_force_order"
884
+ end
885
+ # verify the required parameter 'manual_trade_form' is set
886
+ if @api_client.config.client_side_validation && manual_trade_form.nil?
887
+ fail ArgumentError, "Missing the required parameter 'manual_trade_form' when calling TradingApi.place_force_order"
888
+ end
889
+ # resource path
890
+ local_var_path = '/trade/place'
891
+
892
+ # query parameters
893
+ query_params = opts[:query_params] || {}
894
+ query_params[:'userId'] = user_id
895
+ query_params[:'userSecret'] = user_secret
896
+
897
+ # header parameters
898
+ header_params = opts[:header_params] || {}
899
+ # HTTP header 'Accept' (if needed)
900
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
901
+ # HTTP header 'Content-Type'
902
+ content_type = @api_client.select_header_content_type(['application/json'])
903
+ if !content_type.nil?
904
+ header_params['Content-Type'] = content_type
905
+ end
906
+
907
+ # form parameters
908
+ form_params = opts[:form_params] || {}
909
+
910
+ # http body (model)
911
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(manual_trade_form)
912
+
913
+ # return_type
914
+ return_type = opts[:debug_return_type] || 'AccountOrderRecord'
915
+
916
+ # auth_names
917
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
918
+
919
+ new_options = opts.merge(
920
+ :operation => :"TradingApi.place_force_order",
921
+ :header_params => header_params,
922
+ :query_params => query_params,
923
+ :form_params => form_params,
924
+ :body => post_body,
925
+ :auth_names => auth_names,
926
+ :return_type => return_type
927
+ )
928
+
929
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
930
+ if @api_client.config.debugging
931
+ @api_client.config.logger.debug "API called: TradingApi#place_force_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
932
+ end
933
+ return data, status_code, headers, response
934
+ end
935
+
936
+
937
+ # Place a OCO (One Cancels Other) order
938
+ # @param user_id [String]
939
+ # @param user_secret [String]
940
+ # @param first_trade_id [Object] The ID of first trade object obtained from trade/impact endpoint
941
+ # @param second_trade_id [Object] The ID of second trade object obtained from trade/impact endpoint
942
+ # @param body [TradingPlaceOCOOrderRequest]
943
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
944
+ def place_oco_order(user_id:, user_secret:, first_trade_id: SENTINEL, second_trade_id: SENTINEL, extra: {})
945
+ _body = {}
946
+ _body[:first_trade_id] = first_trade_id if first_trade_id != SENTINEL
947
+ _body[:second_trade_id] = second_trade_id if second_trade_id != SENTINEL
948
+ trading_place_oco_order_request = _body
949
+
950
+ data, _status_code, _headers = place_oco_order_with_http_info_impl(user_id, user_secret, trading_place_oco_order_request, extra)
951
+ data
952
+ end
953
+
954
+ # Place a OCO (One Cancels Other) order
955
+ # @param user_id [String]
956
+ # @param user_secret [String]
957
+ # @param first_trade_id [Object] The ID of first trade object obtained from trade/impact endpoint
958
+ # @param second_trade_id [Object] The ID of second trade object obtained from trade/impact endpoint
959
+ # @param body [TradingPlaceOCOOrderRequest]
960
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
961
+ def place_oco_order_with_http_info(user_id:, user_secret:, first_trade_id: SENTINEL, second_trade_id: SENTINEL, extra: {})
962
+ _body = {}
963
+ _body[:first_trade_id] = first_trade_id if first_trade_id != SENTINEL
964
+ _body[:second_trade_id] = second_trade_id if second_trade_id != SENTINEL
965
+ trading_place_oco_order_request = _body
966
+
967
+ place_oco_order_with_http_info_impl(user_id, user_secret, trading_place_oco_order_request, extra)
968
+ end
969
+
970
+ # Place a OCO (One Cancels Other) order
971
+ # @param user_id [String]
972
+ # @param user_secret [String]
973
+ # @param trading_place_oco_order_request [TradingPlaceOCOOrderRequest]
974
+ # @param [Hash] opts the optional parameters
975
+ # @return [AccountOrderRecord]
976
+ def place_oco_order_impl(user_id, user_secret, trading_place_oco_order_request, opts = {})
977
+ data, _status_code, _headers = place_oco_order_with_http_info(user_id, user_secret, trading_place_oco_order_request, opts)
978
+ data
979
+ end
980
+
981
+ # Place a OCO (One Cancels Other) order
982
+ # @param user_id [String]
983
+ # @param user_secret [String]
984
+ # @param trading_place_oco_order_request [TradingPlaceOCOOrderRequest]
985
+ # @param [Hash] opts the optional parameters
986
+ # @return [Array<(AccountOrderRecord, Integer, Hash)>] AccountOrderRecord data, response status code and response headers
987
+ def place_oco_order_with_http_info_impl(user_id, user_secret, trading_place_oco_order_request, opts = {})
988
+ if @api_client.config.debugging
989
+ @api_client.config.logger.debug 'Calling API: TradingApi.place_oco_order ...'
990
+ end
991
+ # verify the required parameter 'user_id' is set
992
+ if @api_client.config.client_side_validation && user_id.nil?
993
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.place_oco_order"
994
+ end
995
+ # verify the required parameter 'user_secret' is set
996
+ if @api_client.config.client_side_validation && user_secret.nil?
997
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.place_oco_order"
998
+ end
999
+ # verify the required parameter 'trading_place_oco_order_request' is set
1000
+ if @api_client.config.client_side_validation && trading_place_oco_order_request.nil?
1001
+ fail ArgumentError, "Missing the required parameter 'trading_place_oco_order_request' when calling TradingApi.place_oco_order"
1002
+ end
1003
+ # resource path
1004
+ local_var_path = '/trade/oco'
1005
+
1006
+ # query parameters
1007
+ query_params = opts[:query_params] || {}
1008
+ query_params[:'userId'] = user_id
1009
+ query_params[:'userSecret'] = user_secret
1010
+
1011
+ # header parameters
1012
+ header_params = opts[:header_params] || {}
1013
+ # HTTP header 'Accept' (if needed)
1014
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1015
+ # HTTP header 'Content-Type'
1016
+ content_type = @api_client.select_header_content_type(['application/json'])
1017
+ if !content_type.nil?
1018
+ header_params['Content-Type'] = content_type
1019
+ end
1020
+
1021
+ # form parameters
1022
+ form_params = opts[:form_params] || {}
1023
+
1024
+ # http body (model)
1025
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(trading_place_oco_order_request)
1026
+
1027
+ # return_type
1028
+ return_type = opts[:debug_return_type] || 'AccountOrderRecord'
1029
+
1030
+ # auth_names
1031
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
1032
+
1033
+ new_options = opts.merge(
1034
+ :operation => :"TradingApi.place_oco_order",
1035
+ :header_params => header_params,
1036
+ :query_params => query_params,
1037
+ :form_params => form_params,
1038
+ :body => post_body,
1039
+ :auth_names => auth_names,
1040
+ :return_type => return_type
1041
+ )
1042
+
1043
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
1044
+ if @api_client.config.debugging
1045
+ @api_client.config.logger.debug "API called: TradingApi#place_oco_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1046
+ end
1047
+ return data, status_code, headers, response
1048
+ end
1049
+
1050
+
1051
+ # Place order
1052
+ # @param trade_id [String] The ID of trade object obtained from trade/impact endpoint
1053
+ # @param user_id [String]
1054
+ # @param user_secret [String]
1055
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1056
+ def place_order(trade_id:, user_id:, user_secret:, extra: {})
1057
+
1058
+ data, _status_code, _headers = place_order_with_http_info_impl(trade_id, user_id, user_secret, extra)
1059
+ data
1060
+ end
1061
+
1062
+ # Place order
1063
+ # @param trade_id [String] The ID of trade object obtained from trade/impact endpoint
1064
+ # @param user_id [String]
1065
+ # @param user_secret [String]
1066
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1067
+ def place_order_with_http_info(trade_id:, user_id:, user_secret:, extra: {})
1068
+
1069
+ place_order_with_http_info_impl(trade_id, user_id, user_secret, extra)
1070
+ end
1071
+
1072
+ # Place order
1073
+ # @param trade_id [String] The ID of trade object obtained from trade/impact endpoint
1074
+ # @param user_id [String]
1075
+ # @param user_secret [String]
1076
+ # @param [Hash] opts the optional parameters
1077
+ # @return [AccountOrderRecord]
1078
+ def place_order_impl(trade_id, user_id, user_secret, opts = {})
1079
+ data, _status_code, _headers = place_order_with_http_info(trade_id, user_id, user_secret, opts)
1080
+ data
1081
+ end
1082
+
1083
+ # Place order
1084
+ # @param trade_id [String] The ID of trade object obtained from trade/impact endpoint
1085
+ # @param user_id [String]
1086
+ # @param user_secret [String]
1087
+ # @param [Hash] opts the optional parameters
1088
+ # @return [Array<(AccountOrderRecord, Integer, Hash)>] AccountOrderRecord data, response status code and response headers
1089
+ def place_order_with_http_info_impl(trade_id, user_id, user_secret, opts = {})
1090
+ if @api_client.config.debugging
1091
+ @api_client.config.logger.debug 'Calling API: TradingApi.place_order ...'
1092
+ end
1093
+ # verify the required parameter 'trade_id' is set
1094
+ if @api_client.config.client_side_validation && trade_id.nil?
1095
+ fail ArgumentError, "Missing the required parameter 'trade_id' when calling TradingApi.place_order"
1096
+ end
1097
+ # verify the required parameter 'user_id' is set
1098
+ if @api_client.config.client_side_validation && user_id.nil?
1099
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling TradingApi.place_order"
1100
+ end
1101
+ # verify the required parameter 'user_secret' is set
1102
+ if @api_client.config.client_side_validation && user_secret.nil?
1103
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling TradingApi.place_order"
1104
+ end
1105
+ # resource path
1106
+ local_var_path = '/trade/{tradeId}'.sub('{' + 'tradeId' + '}', CGI.escape(trade_id.to_s))
1107
+
1108
+ # query parameters
1109
+ query_params = opts[:query_params] || {}
1110
+ query_params[:'userId'] = user_id
1111
+ query_params[:'userSecret'] = user_secret
1112
+
1113
+ # header parameters
1114
+ header_params = opts[:header_params] || {}
1115
+ # HTTP header 'Accept' (if needed)
1116
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1117
+
1118
+ # form parameters
1119
+ form_params = opts[:form_params] || {}
1120
+
1121
+ # http body (model)
1122
+ post_body = opts[:debug_body]
1123
+
1124
+ # return_type
1125
+ return_type = opts[:debug_return_type] || 'AccountOrderRecord'
1126
+
1127
+ # auth_names
1128
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
1129
+
1130
+ new_options = opts.merge(
1131
+ :operation => :"TradingApi.place_order",
1132
+ :header_params => header_params,
1133
+ :query_params => query_params,
1134
+ :form_params => form_params,
1135
+ :body => post_body,
1136
+ :auth_names => auth_names,
1137
+ :return_type => return_type
1138
+ )
1139
+
1140
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
1141
+ if @api_client.config.debugging
1142
+ @api_client.config.logger.debug "API called: TradingApi#place_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1143
+ end
1144
+ return data, status_code, headers, response
1145
+ end
1146
+ end
1147
+
1148
+ # top-level client access to avoid having the user to insantiate their own API instances
1149
+ Trading = TradingApi::new
1150
+ end