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,799 @@
1
+ # SnapTrade::TradingApi
2
+
3
+ All URIs are relative to *https://api.snaptrade.com/api/v1*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**cancel_user_account_order**](TradingApi.md#cancel_user_account_order) | **POST** /accounts/{accountId}/orders/cancel | Cancel open order in account |
8
+ | [**get_calculated_trade_impact_by_id**](TradingApi.md#get_calculated_trade_impact_by_id) | **GET** /portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/modify/{tradeId} | Return details of a specific trade before it's placed |
9
+ | [**get_calculated_trades_impact**](TradingApi.md#get_calculated_trades_impact) | **GET** /portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/impact | Return the impact of placing a series of trades on the portfolio |
10
+ | [**get_order_impact**](TradingApi.md#get_order_impact) | **POST** /trade/impact | Check impact of trades on account. |
11
+ | [**get_user_account_quotes**](TradingApi.md#get_user_account_quotes) | **GET** /accounts/{accountId}/quotes | Get symbol quotes |
12
+ | [**modify_calculated_trade_by_id**](TradingApi.md#modify_calculated_trade_by_id) | **PATCH** /portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/modify/{tradeId} | Modify units of a trade before it is placed |
13
+ | [**place_calculated_trades**](TradingApi.md#place_calculated_trades) | **POST** /portfolioGroups/{portfolioGroupId}/calculatedtrades/{calculatedTradeId}/placeOrders | Place orders for the CalculatedTrades in series |
14
+ | [**place_force_order**](TradingApi.md#place_force_order) | **POST** /trade/place | Place a trade with NO validation. |
15
+ | [**place_oco_order**](TradingApi.md#place_oco_order) | **POST** /trade/oco | Place a OCO (One Cancels Other) order |
16
+ | [**place_order**](TradingApi.md#place_order) | **POST** /trade/{tradeId} | Place order |
17
+
18
+ ## cancel_user_account_order
19
+
20
+ Cancel open order in account
21
+
22
+ ### Example
23
+
24
+ ```ruby
25
+ require 'snaptrade'
26
+
27
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
28
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
29
+
30
+ user_id = "John.doe@snaptrade.com"
31
+ user_secret = "USERSECRET123"
32
+ account_id = "accountId_example"
33
+ brokerage_order_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
34
+
35
+ begin
36
+ # Cancel open order in account
37
+ result = SnapTrade::Trading.cancel_user_account_order(
38
+ user_id: user_id,
39
+ user_secret: user_secret,
40
+ account_id: account_id,
41
+ brokerage_order_id: brokerage_order_id,
42
+ )
43
+ p result
44
+ rescue SnapTrade::ApiError => e
45
+ puts "Exception when calling SnapTrade::Trading.cancel_user_account_order: #{e}"
46
+ end
47
+ ```
48
+
49
+ #### Using the cancel_user_account_order_with_http_info variant
50
+
51
+ This returns an Array which contains the response data, status code and headers.
52
+
53
+ ```ruby
54
+ user_id = "John.doe@snaptrade.com"
55
+ user_secret = "USERSECRET123"
56
+ account_id = "accountId_example"
57
+ brokerage_order_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
58
+
59
+ begin
60
+ # Cancel open order in account
61
+ data, status_code, headers, response = SnapTrade::Trading.cancel_user_account_order_with_http_info(
62
+ user_id: user_id,
63
+ user_secret: user_secret,
64
+ account_id: account_id,
65
+ brokerage_order_id: brokerage_order_id,
66
+ )
67
+ p status_code # => 2xx
68
+ p headers # => { ... }
69
+ p data # => AccountOrderRecord
70
+ rescue SnapTrade::ApiError => e
71
+ puts "Exception when calling SnapTrade::Trading.cancel_user_account_order: #{e}"
72
+ end
73
+ ```
74
+
75
+ ### Parameters
76
+
77
+ | Name | Type | Description | Notes |
78
+ | ---- | ---- | ----------- | ----- |
79
+ | **user_id** | **String** | | |
80
+ | **user_secret** | **String** | | |
81
+ | **account_id** | **String** | The ID of the account get positions. | |
82
+ | **trading_cancel_user_account_order_request** | [**TradingCancelUserAccountOrderRequest**](TradingCancelUserAccountOrderRequest.md) | The Order ID to be canceled | |
83
+
84
+ ### Return type
85
+
86
+ [**AccountOrderRecord**](AccountOrderRecord.md)
87
+
88
+ ## get_calculated_trade_impact_by_id
89
+
90
+ Return details of a specific trade before it's placed
91
+
92
+ ### Example
93
+
94
+ ```ruby
95
+ require 'snaptrade'
96
+
97
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
98
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
99
+
100
+ portfolio_group_id = "portfolioGroupId_example"
101
+ calculated_trade_id = "calculatedTradeId_example"
102
+ trade_id = "tradeId_example"
103
+
104
+ begin
105
+ # Return details of a specific trade before it's placed
106
+ result = SnapTrade::Trading.get_calculated_trade_impact_by_id(
107
+ portfolio_group_id: portfolio_group_id,
108
+ calculated_trade_id: calculated_trade_id,
109
+ trade_id: trade_id,
110
+ )
111
+ p result
112
+ rescue SnapTrade::ApiError => e
113
+ puts "Exception when calling SnapTrade::Trading.get_calculated_trade_impact_by_id: #{e}"
114
+ end
115
+ ```
116
+
117
+ #### Using the get_calculated_trade_impact_by_id_with_http_info variant
118
+
119
+ This returns an Array which contains the response data, status code and headers.
120
+
121
+ ```ruby
122
+ portfolio_group_id = "portfolioGroupId_example"
123
+ calculated_trade_id = "calculatedTradeId_example"
124
+ trade_id = "tradeId_example"
125
+
126
+ begin
127
+ # Return details of a specific trade before it's placed
128
+ data, status_code, headers, response = SnapTrade::Trading.get_calculated_trade_impact_by_id_with_http_info(
129
+ portfolio_group_id: portfolio_group_id,
130
+ calculated_trade_id: calculated_trade_id,
131
+ trade_id: trade_id,
132
+ )
133
+ p status_code # => 2xx
134
+ p headers # => { ... }
135
+ p data # => Trade
136
+ rescue SnapTrade::ApiError => e
137
+ puts "Exception when calling SnapTrade::Trading.get_calculated_trade_impact_by_id: #{e}"
138
+ end
139
+ ```
140
+
141
+ ### Parameters
142
+
143
+ | Name | Type | Description | Notes |
144
+ | ---- | ---- | ----------- | ----- |
145
+ | **portfolio_group_id** | **String** | The ID of the PortfolioGroup to perform rebalancing calculations | |
146
+ | **calculated_trade_id** | **String** | The ID of calculated trade to get account impact | |
147
+ | **trade_id** | **String** | The ID of trade object | |
148
+
149
+ ### Return type
150
+
151
+ [**Trade**](Trade.md)
152
+
153
+ ## get_calculated_trades_impact
154
+
155
+ Return the impact of placing a series of trades on the portfolio
156
+
157
+ ### Example
158
+
159
+ ```ruby
160
+ require 'snaptrade'
161
+
162
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
163
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
164
+
165
+ portfolio_group_id = "portfolioGroupId_example"
166
+ calculated_trade_id = "calculatedTradeId_example"
167
+
168
+ begin
169
+ # Return the impact of placing a series of trades on the portfolio
170
+ result = SnapTrade::Trading.get_calculated_trades_impact(
171
+ portfolio_group_id: portfolio_group_id,
172
+ calculated_trade_id: calculated_trade_id,
173
+ )
174
+ p result
175
+ rescue SnapTrade::ApiError => e
176
+ puts "Exception when calling SnapTrade::Trading.get_calculated_trades_impact: #{e}"
177
+ end
178
+ ```
179
+
180
+ #### Using the get_calculated_trades_impact_with_http_info variant
181
+
182
+ This returns an Array which contains the response data, status code and headers.
183
+
184
+ ```ruby
185
+ portfolio_group_id = "portfolioGroupId_example"
186
+ calculated_trade_id = "calculatedTradeId_example"
187
+
188
+ begin
189
+ # Return the impact of placing a series of trades on the portfolio
190
+ data, status_code, headers, response = SnapTrade::Trading.get_calculated_trades_impact_with_http_info(
191
+ portfolio_group_id: portfolio_group_id,
192
+ calculated_trade_id: calculated_trade_id,
193
+ )
194
+ p status_code # => 2xx
195
+ p headers # => { ... }
196
+ p data # => Array<TradeImpact>
197
+ rescue SnapTrade::ApiError => e
198
+ puts "Exception when calling SnapTrade::Trading.get_calculated_trades_impact: #{e}"
199
+ end
200
+ ```
201
+
202
+ ### Parameters
203
+
204
+ | Name | Type | Description | Notes |
205
+ | ---- | ---- | ----------- | ----- |
206
+ | **portfolio_group_id** | **String** | The ID of the PortfolioGroup to perform rebalancing calculations | |
207
+ | **calculated_trade_id** | **String** | The ID of calculated trade to get account impact | |
208
+
209
+ ### Return type
210
+
211
+ [**Array&lt;TradeImpact&gt;**](TradeImpact.md)
212
+
213
+ ## get_order_impact
214
+
215
+ Check impact of trades on account.
216
+
217
+ ### Example
218
+
219
+ ```ruby
220
+ require 'snaptrade'
221
+
222
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
223
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
224
+
225
+ user_id = "John.doe@snaptrade.com"
226
+ user_secret = "USERSECRET123"
227
+ account_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
228
+ action = "BUY"
229
+ order_type = "Limit"
230
+ price = 31.33
231
+ stop = 31.33
232
+ time_in_force = "Day"
233
+ units = 3.14
234
+ universal_symbol_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
235
+
236
+ begin
237
+ # Check impact of trades on account.
238
+ result = SnapTrade::Trading.get_order_impact(
239
+ user_id: user_id,
240
+ user_secret: user_secret,
241
+ account_id: account_id,
242
+ action: action,
243
+ order_type: order_type,
244
+ price: price,
245
+ stop: stop,
246
+ time_in_force: time_in_force,
247
+ units: units,
248
+ universal_symbol_id: universal_symbol_id,
249
+ )
250
+ p result
251
+ rescue SnapTrade::ApiError => e
252
+ puts "Exception when calling SnapTrade::Trading.get_order_impact: #{e}"
253
+ end
254
+ ```
255
+
256
+ #### Using the get_order_impact_with_http_info variant
257
+
258
+ This returns an Array which contains the response data, status code and headers.
259
+
260
+ ```ruby
261
+ user_id = "John.doe@snaptrade.com"
262
+ user_secret = "USERSECRET123"
263
+ account_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
264
+ action = "BUY"
265
+ order_type = "Limit"
266
+ price = 31.33
267
+ stop = 31.33
268
+ time_in_force = "Day"
269
+ units = 3.14
270
+ universal_symbol_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
271
+
272
+ begin
273
+ # Check impact of trades on account.
274
+ data, status_code, headers, response = SnapTrade::Trading.get_order_impact_with_http_info(
275
+ user_id: user_id,
276
+ user_secret: user_secret,
277
+ account_id: account_id,
278
+ action: action,
279
+ order_type: order_type,
280
+ price: price,
281
+ stop: stop,
282
+ time_in_force: time_in_force,
283
+ units: units,
284
+ universal_symbol_id: universal_symbol_id,
285
+ )
286
+ p status_code # => 2xx
287
+ p headers # => { ... }
288
+ p data # => ManualTradeAndImpact
289
+ rescue SnapTrade::ApiError => e
290
+ puts "Exception when calling SnapTrade::Trading.get_order_impact: #{e}"
291
+ end
292
+ ```
293
+
294
+ ### Parameters
295
+
296
+ | Name | Type | Description | Notes |
297
+ | ---- | ---- | ----------- | ----- |
298
+ | **user_id** | **String** | | |
299
+ | **user_secret** | **String** | | |
300
+ | **manual_trade_form** | [**ManualTradeForm**](ManualTradeForm.md) | | |
301
+
302
+ ### Return type
303
+
304
+ [**ManualTradeAndImpact**](ManualTradeAndImpact.md)
305
+
306
+ ## get_user_account_quotes
307
+
308
+ Get symbol quotes
309
+
310
+ ### Example
311
+
312
+ ```ruby
313
+ require 'snaptrade'
314
+
315
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
316
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
317
+
318
+ user_id = "John.doe@snaptrade.com"
319
+ user_secret = "USERSECRET123"
320
+ symbols = "symbols_example"
321
+ account_id = "accountId_example"
322
+ use_ticker = True
323
+
324
+ begin
325
+ # Get symbol quotes
326
+ result = SnapTrade::Trading.get_user_account_quotes(
327
+ user_id: user_id,
328
+ user_secret: user_secret,
329
+ symbols: symbols,
330
+ account_id: account_id,
331
+ use_ticker: use_ticker,
332
+ )
333
+ p result
334
+ rescue SnapTrade::ApiError => e
335
+ puts "Exception when calling SnapTrade::Trading.get_user_account_quotes: #{e}"
336
+ end
337
+ ```
338
+
339
+ #### Using the get_user_account_quotes_with_http_info variant
340
+
341
+ This returns an Array which contains the response data, status code and headers.
342
+
343
+ ```ruby
344
+ user_id = "John.doe@snaptrade.com"
345
+ user_secret = "USERSECRET123"
346
+ symbols = "symbols_example"
347
+ account_id = "accountId_example"
348
+ use_ticker = True
349
+
350
+ begin
351
+ # Get symbol quotes
352
+ data, status_code, headers, response = SnapTrade::Trading.get_user_account_quotes_with_http_info(
353
+ user_id: user_id,
354
+ user_secret: user_secret,
355
+ symbols: symbols,
356
+ account_id: account_id,
357
+ use_ticker: use_ticker,
358
+ )
359
+ p status_code # => 2xx
360
+ p headers # => { ... }
361
+ p data # => SymbolsQuotes
362
+ rescue SnapTrade::ApiError => e
363
+ puts "Exception when calling SnapTrade::Trading.get_user_account_quotes: #{e}"
364
+ end
365
+ ```
366
+
367
+ ### Parameters
368
+
369
+ | Name | Type | Description | Notes |
370
+ | ---- | ---- | ----------- | ----- |
371
+ | **user_id** | **String** | | |
372
+ | **user_secret** | **String** | | |
373
+ | **symbols** | **String** | List of universal_symbol_id or tickers to get quotes for. | |
374
+ | **account_id** | **String** | The ID of the account to get quotes. | |
375
+ | **use_ticker** | **Boolean** | Should be set to True if providing tickers. | [optional] |
376
+
377
+ ### Return type
378
+
379
+ [**SymbolsQuotes**](SymbolsQuotes.md)
380
+
381
+ ## modify_calculated_trade_by_id
382
+
383
+ Modify units of a trade before it is placed
384
+
385
+ ### Example
386
+
387
+ ```ruby
388
+ require 'snaptrade'
389
+
390
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
391
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
392
+
393
+ portfolio_group_id = "portfolioGroupId_example"
394
+ calculated_trade_id = "calculatedTradeId_example"
395
+ trade_id = "tradeId_example"
396
+ id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
397
+ account = {
398
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
399
+ "brokerage_authorization" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
400
+ "portfolio_group" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
401
+ "name" => "Registered Retirement Savings Account",
402
+ "number" => "Q6542138443",
403
+ "institution_name" => "Alpaca",
404
+ "created_date" => "2021-06-04T16:26:46.523Z",
405
+ }
406
+ symbol = {
407
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
408
+ "description" => "VANGUARD CDN AGGREGATE BOND INDEX ETF",
409
+ "allows_fractional_units" => True,
410
+ }
411
+ universal_symbol = {
412
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
413
+ "symbol" => "VAB.TO",
414
+ "raw_symbol" => "VAB",
415
+ "description" => "VANGUARD CDN AGGREGATE BOND INDEX ETF",
416
+ }
417
+ action = "BUY"
418
+ units = 6
419
+ price = 24.81
420
+ sequence = 1
421
+
422
+ begin
423
+ # Modify units of a trade before it is placed
424
+ result = SnapTrade::Trading.modify_calculated_trade_by_id(
425
+ portfolio_group_id: portfolio_group_id,
426
+ calculated_trade_id: calculated_trade_id,
427
+ trade_id: trade_id,
428
+ id: id,
429
+ account: account,
430
+ symbol: symbol,
431
+ universal_symbol: universal_symbol,
432
+ action: action,
433
+ units: units,
434
+ price: price,
435
+ sequence: sequence,
436
+ )
437
+ p result
438
+ rescue SnapTrade::ApiError => e
439
+ puts "Exception when calling SnapTrade::Trading.modify_calculated_trade_by_id: #{e}"
440
+ end
441
+ ```
442
+
443
+ #### Using the modify_calculated_trade_by_id_with_http_info variant
444
+
445
+ This returns an Array which contains the response data, status code and headers.
446
+
447
+ ```ruby
448
+ portfolio_group_id = "portfolioGroupId_example"
449
+ calculated_trade_id = "calculatedTradeId_example"
450
+ trade_id = "tradeId_example"
451
+ id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
452
+ account = {
453
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
454
+ "brokerage_authorization" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
455
+ "portfolio_group" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
456
+ "name" => "Registered Retirement Savings Account",
457
+ "number" => "Q6542138443",
458
+ "institution_name" => "Alpaca",
459
+ "created_date" => "2021-06-04T16:26:46.523Z",
460
+ }
461
+ symbol = {
462
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
463
+ "description" => "VANGUARD CDN AGGREGATE BOND INDEX ETF",
464
+ "allows_fractional_units" => True,
465
+ }
466
+ universal_symbol = {
467
+ "id" => "2bcd7cc3-e922-4976-bce1-9858296801c3",
468
+ "symbol" => "VAB.TO",
469
+ "raw_symbol" => "VAB",
470
+ "description" => "VANGUARD CDN AGGREGATE BOND INDEX ETF",
471
+ }
472
+ action = "BUY"
473
+ units = 6
474
+ price = 24.81
475
+ sequence = 1
476
+
477
+ begin
478
+ # Modify units of a trade before it is placed
479
+ data, status_code, headers, response = SnapTrade::Trading.modify_calculated_trade_by_id_with_http_info(
480
+ portfolio_group_id: portfolio_group_id,
481
+ calculated_trade_id: calculated_trade_id,
482
+ trade_id: trade_id,
483
+ id: id,
484
+ account: account,
485
+ symbol: symbol,
486
+ universal_symbol: universal_symbol,
487
+ action: action,
488
+ units: units,
489
+ price: price,
490
+ sequence: sequence,
491
+ )
492
+ p status_code # => 2xx
493
+ p headers # => { ... }
494
+ p data # => Trade
495
+ rescue SnapTrade::ApiError => e
496
+ puts "Exception when calling SnapTrade::Trading.modify_calculated_trade_by_id: #{e}"
497
+ end
498
+ ```
499
+
500
+ ### Parameters
501
+
502
+ | Name | Type | Description | Notes |
503
+ | ---- | ---- | ----------- | ----- |
504
+ | **portfolio_group_id** | **String** | The ID of the PortfolioGroup to perform rebalancing calculations | |
505
+ | **calculated_trade_id** | **String** | The ID of calculated trade to get account impact | |
506
+ | **trade_id** | **String** | The ID of trade object | |
507
+ | **trade** | [**Trade**](Trade.md) | | [optional] |
508
+
509
+ ### Return type
510
+
511
+ [**Trade**](Trade.md)
512
+
513
+ ## place_calculated_trades
514
+
515
+ Place orders for the CalculatedTrades in series
516
+
517
+ ### Example
518
+
519
+ ```ruby
520
+ require 'snaptrade'
521
+
522
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
523
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
524
+
525
+ portfolio_group_id = "portfolioGroupId_example"
526
+ calculated_trade_id = "calculatedTradeId_example"
527
+
528
+ begin
529
+ # Place orders for the CalculatedTrades in series
530
+ result = SnapTrade::Trading.place_calculated_trades(
531
+ portfolio_group_id: portfolio_group_id,
532
+ calculated_trade_id: calculated_trade_id,
533
+ )
534
+ p result
535
+ rescue SnapTrade::ApiError => e
536
+ puts "Exception when calling SnapTrade::Trading.place_calculated_trades: #{e}"
537
+ end
538
+ ```
539
+
540
+ #### Using the place_calculated_trades_with_http_info variant
541
+
542
+ This returns an Array which contains the response data, status code and headers.
543
+
544
+ ```ruby
545
+ portfolio_group_id = "portfolioGroupId_example"
546
+ calculated_trade_id = "calculatedTradeId_example"
547
+
548
+ begin
549
+ # Place orders for the CalculatedTrades in series
550
+ data, status_code, headers, response = SnapTrade::Trading.place_calculated_trades_with_http_info(
551
+ portfolio_group_id: portfolio_group_id,
552
+ calculated_trade_id: calculated_trade_id,
553
+ )
554
+ p status_code # => 2xx
555
+ p headers # => { ... }
556
+ p data # => Array<TradeExecutionStatus>
557
+ rescue SnapTrade::ApiError => e
558
+ puts "Exception when calling SnapTrade::Trading.place_calculated_trades: #{e}"
559
+ end
560
+ ```
561
+
562
+ ### Parameters
563
+
564
+ | Name | Type | Description | Notes |
565
+ | ---- | ---- | ----------- | ----- |
566
+ | **portfolio_group_id** | **String** | The ID of the PortfolioGroup to perform rebalancing calculations | |
567
+ | **calculated_trade_id** | **String** | The ID of calculated trade to get account impact | |
568
+
569
+ ### Return type
570
+
571
+ [**Array&lt;TradeExecutionStatus&gt;**](TradeExecutionStatus.md)
572
+
573
+ ## place_force_order
574
+
575
+ Place a trade with NO validation.
576
+
577
+ ### Example
578
+
579
+ ```ruby
580
+ require 'snaptrade'
581
+
582
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
583
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
584
+
585
+ user_id = "John.doe@snaptrade.com"
586
+ user_secret = "USERSECRET123"
587
+ account_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
588
+ action = "BUY"
589
+ order_type = "Limit"
590
+ price = 31.33
591
+ stop = 31.33
592
+ time_in_force = "Day"
593
+ units = 3.14
594
+ universal_symbol_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
595
+
596
+ begin
597
+ # Place a trade with NO validation.
598
+ result = SnapTrade::Trading.place_force_order(
599
+ user_id: user_id,
600
+ user_secret: user_secret,
601
+ account_id: account_id,
602
+ action: action,
603
+ order_type: order_type,
604
+ price: price,
605
+ stop: stop,
606
+ time_in_force: time_in_force,
607
+ units: units,
608
+ universal_symbol_id: universal_symbol_id,
609
+ )
610
+ p result
611
+ rescue SnapTrade::ApiError => e
612
+ puts "Exception when calling SnapTrade::Trading.place_force_order: #{e}"
613
+ end
614
+ ```
615
+
616
+ #### Using the place_force_order_with_http_info variant
617
+
618
+ This returns an Array which contains the response data, status code and headers.
619
+
620
+ ```ruby
621
+ user_id = "John.doe@snaptrade.com"
622
+ user_secret = "USERSECRET123"
623
+ account_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
624
+ action = "BUY"
625
+ order_type = "Limit"
626
+ price = 31.33
627
+ stop = 31.33
628
+ time_in_force = "Day"
629
+ units = 3.14
630
+ universal_symbol_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
631
+
632
+ begin
633
+ # Place a trade with NO validation.
634
+ data, status_code, headers, response = SnapTrade::Trading.place_force_order_with_http_info(
635
+ user_id: user_id,
636
+ user_secret: user_secret,
637
+ account_id: account_id,
638
+ action: action,
639
+ order_type: order_type,
640
+ price: price,
641
+ stop: stop,
642
+ time_in_force: time_in_force,
643
+ units: units,
644
+ universal_symbol_id: universal_symbol_id,
645
+ )
646
+ p status_code # => 2xx
647
+ p headers # => { ... }
648
+ p data # => AccountOrderRecord
649
+ rescue SnapTrade::ApiError => e
650
+ puts "Exception when calling SnapTrade::Trading.place_force_order: #{e}"
651
+ end
652
+ ```
653
+
654
+ ### Parameters
655
+
656
+ | Name | Type | Description | Notes |
657
+ | ---- | ---- | ----------- | ----- |
658
+ | **user_id** | **String** | | |
659
+ | **user_secret** | **String** | | |
660
+ | **manual_trade_form** | [**ManualTradeForm**](ManualTradeForm.md) | | |
661
+
662
+ ### Return type
663
+
664
+ [**AccountOrderRecord**](AccountOrderRecord.md)
665
+
666
+ ## place_oco_order
667
+
668
+ Place a OCO (One Cancels Other) order
669
+
670
+ ### Example
671
+
672
+ ```ruby
673
+ require 'snaptrade'
674
+
675
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
676
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
677
+
678
+ user_id = "John.doe@snaptrade.com"
679
+ user_secret = "USERSECRET123"
680
+ first_trade_id = None
681
+ second_trade_id = None
682
+
683
+ begin
684
+ # Place a OCO (One Cancels Other) order
685
+ result = SnapTrade::Trading.place_oco_order(
686
+ user_id: user_id,
687
+ user_secret: user_secret,
688
+ first_trade_id: first_trade_id,
689
+ second_trade_id: second_trade_id,
690
+ )
691
+ p result
692
+ rescue SnapTrade::ApiError => e
693
+ puts "Exception when calling SnapTrade::Trading.place_oco_order: #{e}"
694
+ end
695
+ ```
696
+
697
+ #### Using the place_oco_order_with_http_info variant
698
+
699
+ This returns an Array which contains the response data, status code and headers.
700
+
701
+ ```ruby
702
+ user_id = "John.doe@snaptrade.com"
703
+ user_secret = "USERSECRET123"
704
+ first_trade_id = None
705
+ second_trade_id = None
706
+
707
+ begin
708
+ # Place a OCO (One Cancels Other) order
709
+ data, status_code, headers, response = SnapTrade::Trading.place_oco_order_with_http_info(
710
+ user_id: user_id,
711
+ user_secret: user_secret,
712
+ first_trade_id: first_trade_id,
713
+ second_trade_id: second_trade_id,
714
+ )
715
+ p status_code # => 2xx
716
+ p headers # => { ... }
717
+ p data # => AccountOrderRecord
718
+ rescue SnapTrade::ApiError => e
719
+ puts "Exception when calling SnapTrade::Trading.place_oco_order: #{e}"
720
+ end
721
+ ```
722
+
723
+ ### Parameters
724
+
725
+ | Name | Type | Description | Notes |
726
+ | ---- | ---- | ----------- | ----- |
727
+ | **user_id** | **String** | | |
728
+ | **user_secret** | **String** | | |
729
+ | **trading_place_oco_order_request** | [**TradingPlaceOCOOrderRequest**](TradingPlaceOCOOrderRequest.md) | | |
730
+
731
+ ### Return type
732
+
733
+ [**AccountOrderRecord**](AccountOrderRecord.md)
734
+
735
+ ## place_order
736
+
737
+ Place order
738
+
739
+ ### Example
740
+
741
+ ```ruby
742
+ require 'snaptrade'
743
+
744
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
745
+ SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
746
+
747
+ trade_id = "tradeId_example"
748
+ user_id = "John.doe@snaptrade.com"
749
+ user_secret = "USERSECRET123"
750
+
751
+ begin
752
+ # Place order
753
+ result = SnapTrade::Trading.place_order(
754
+ trade_id: trade_id,
755
+ user_id: user_id,
756
+ user_secret: user_secret,
757
+ )
758
+ p result
759
+ rescue SnapTrade::ApiError => e
760
+ puts "Exception when calling SnapTrade::Trading.place_order: #{e}"
761
+ end
762
+ ```
763
+
764
+ #### Using the place_order_with_http_info variant
765
+
766
+ This returns an Array which contains the response data, status code and headers.
767
+
768
+ ```ruby
769
+ trade_id = "tradeId_example"
770
+ user_id = "John.doe@snaptrade.com"
771
+ user_secret = "USERSECRET123"
772
+
773
+ begin
774
+ # Place order
775
+ data, status_code, headers, response = SnapTrade::Trading.place_order_with_http_info(
776
+ trade_id: trade_id,
777
+ user_id: user_id,
778
+ user_secret: user_secret,
779
+ )
780
+ p status_code # => 2xx
781
+ p headers # => { ... }
782
+ p data # => AccountOrderRecord
783
+ rescue SnapTrade::ApiError => e
784
+ puts "Exception when calling SnapTrade::Trading.place_order: #{e}"
785
+ end
786
+ ```
787
+
788
+ ### Parameters
789
+
790
+ | Name | Type | Description | Notes |
791
+ | ---- | ---- | ----------- | ----- |
792
+ | **trade_id** | **String** | The ID of trade object obtained from trade/impact endpoint | |
793
+ | **user_id** | **String** | | |
794
+ | **user_secret** | **String** | | |
795
+
796
+ ### Return type
797
+
798
+ [**AccountOrderRecord**](AccountOrderRecord.md)
799
+