snaptrade 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,591 @@
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 OptionsApi
15
+ attr_accessor :api_client
16
+
17
+ def initialize(api_client = ApiClient.default)
18
+ @api_client = api_client
19
+ end
20
+
21
+ # Creates an option strategy object that will be used to place an option strategy order
22
+ # @param underlying_symbol_id [String]
23
+ # @param legs [Array<OptionLeg>]
24
+ # @param strategy_type [StrategyType]
25
+ # @param user_id [String]
26
+ # @param user_secret [String]
27
+ # @param account_id [String] The ID of the account get positions.
28
+ # @param body [OptionsGetOptionStrategyRequest]
29
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
30
+ def get_option_strategy(underlying_symbol_id:, legs:, strategy_type:, user_id:, user_secret:, account_id:, extra: {})
31
+ _body = {}
32
+ _body[:underlying_symbol_id] = underlying_symbol_id if underlying_symbol_id != SENTINEL
33
+ _body[:legs] = legs if legs != SENTINEL
34
+ _body[:strategy_type] = strategy_type if strategy_type != SENTINEL
35
+ options_get_option_strategy_request = _body
36
+
37
+ data, _status_code, _headers = get_option_strategy_with_http_info_impl(user_id, user_secret, account_id, options_get_option_strategy_request, extra)
38
+ data
39
+ end
40
+
41
+ # Creates an option strategy object that will be used to place an option strategy order
42
+ # @param underlying_symbol_id [String]
43
+ # @param legs [Array<OptionLeg>]
44
+ # @param strategy_type [StrategyType]
45
+ # @param user_id [String]
46
+ # @param user_secret [String]
47
+ # @param account_id [String] The ID of the account get positions.
48
+ # @param body [OptionsGetOptionStrategyRequest]
49
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
50
+ def get_option_strategy_with_http_info(underlying_symbol_id:, legs:, strategy_type:, user_id:, user_secret:, account_id:, extra: {})
51
+ _body = {}
52
+ _body[:underlying_symbol_id] = underlying_symbol_id if underlying_symbol_id != SENTINEL
53
+ _body[:legs] = legs if legs != SENTINEL
54
+ _body[:strategy_type] = strategy_type if strategy_type != SENTINEL
55
+ options_get_option_strategy_request = _body
56
+
57
+ get_option_strategy_with_http_info_impl(user_id, user_secret, account_id, options_get_option_strategy_request, extra)
58
+ end
59
+
60
+ # Creates an option strategy object that will be used to place an option strategy order
61
+ # @param user_id [String]
62
+ # @param user_secret [String]
63
+ # @param account_id [String] The ID of the account get positions.
64
+ # @param options_get_option_strategy_request [OptionsGetOptionStrategyRequest]
65
+ # @param [Hash] opts the optional parameters
66
+ # @return [StrategyQuotes]
67
+ def get_option_strategy_impl(user_id, user_secret, account_id, options_get_option_strategy_request, opts = {})
68
+ data, _status_code, _headers = get_option_strategy_with_http_info(user_id, user_secret, account_id, options_get_option_strategy_request, opts)
69
+ data
70
+ end
71
+
72
+ # Creates an option strategy object that will be used to place an option strategy order
73
+ # @param user_id [String]
74
+ # @param user_secret [String]
75
+ # @param account_id [String] The ID of the account get positions.
76
+ # @param options_get_option_strategy_request [OptionsGetOptionStrategyRequest]
77
+ # @param [Hash] opts the optional parameters
78
+ # @return [Array<(StrategyQuotes, Integer, Hash)>] StrategyQuotes data, response status code and response headers
79
+ def get_option_strategy_with_http_info_impl(user_id, user_secret, account_id, options_get_option_strategy_request, opts = {})
80
+ if @api_client.config.debugging
81
+ @api_client.config.logger.debug 'Calling API: OptionsApi.get_option_strategy ...'
82
+ end
83
+ # verify the required parameter 'user_id' is set
84
+ if @api_client.config.client_side_validation && user_id.nil?
85
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OptionsApi.get_option_strategy"
86
+ end
87
+ # verify the required parameter 'user_secret' is set
88
+ if @api_client.config.client_side_validation && user_secret.nil?
89
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling OptionsApi.get_option_strategy"
90
+ end
91
+ # verify the required parameter 'account_id' is set
92
+ if @api_client.config.client_side_validation && account_id.nil?
93
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling OptionsApi.get_option_strategy"
94
+ end
95
+ # verify the required parameter 'options_get_option_strategy_request' is set
96
+ if @api_client.config.client_side_validation && options_get_option_strategy_request.nil?
97
+ fail ArgumentError, "Missing the required parameter 'options_get_option_strategy_request' when calling OptionsApi.get_option_strategy"
98
+ end
99
+ # resource path
100
+ local_var_path = '/accounts/{accountId}/optionStrategy'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
101
+
102
+ # query parameters
103
+ query_params = opts[:query_params] || {}
104
+ query_params[:'userId'] = user_id
105
+ query_params[:'userSecret'] = user_secret
106
+
107
+ # header parameters
108
+ header_params = opts[:header_params] || {}
109
+ # HTTP header 'Accept' (if needed)
110
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
111
+ # HTTP header 'Content-Type'
112
+ content_type = @api_client.select_header_content_type(['application/json'])
113
+ if !content_type.nil?
114
+ header_params['Content-Type'] = content_type
115
+ end
116
+
117
+ # form parameters
118
+ form_params = opts[:form_params] || {}
119
+
120
+ # http body (model)
121
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(options_get_option_strategy_request)
122
+
123
+ # return_type
124
+ return_type = opts[:debug_return_type] || 'StrategyQuotes'
125
+
126
+ # auth_names
127
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
128
+
129
+ new_options = opts.merge(
130
+ :operation => :"OptionsApi.get_option_strategy",
131
+ :header_params => header_params,
132
+ :query_params => query_params,
133
+ :form_params => form_params,
134
+ :body => post_body,
135
+ :auth_names => auth_names,
136
+ :return_type => return_type
137
+ )
138
+
139
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
140
+ if @api_client.config.debugging
141
+ @api_client.config.logger.debug "API called: OptionsApi#get_option_strategy\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
142
+ end
143
+ return data, status_code, headers, response
144
+ end
145
+
146
+
147
+ # Get the options chain
148
+ # @param user_id [String]
149
+ # @param user_secret [String]
150
+ # @param account_id [String] The ID of the account get positions.
151
+ # @param symbol [String] Universal symbol ID if symbol
152
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
153
+ def get_options_chain(user_id:, user_secret:, account_id:, symbol:, extra: {})
154
+
155
+ data, _status_code, _headers = get_options_chain_with_http_info_impl(user_id, user_secret, account_id, symbol, extra)
156
+ data
157
+ end
158
+
159
+ # Get the options chain
160
+ # @param user_id [String]
161
+ # @param user_secret [String]
162
+ # @param account_id [String] The ID of the account get positions.
163
+ # @param symbol [String] Universal symbol ID if symbol
164
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
165
+ def get_options_chain_with_http_info(user_id:, user_secret:, account_id:, symbol:, extra: {})
166
+
167
+ get_options_chain_with_http_info_impl(user_id, user_secret, account_id, symbol, extra)
168
+ end
169
+
170
+ # Get the options chain
171
+ # @param user_id [String]
172
+ # @param user_secret [String]
173
+ # @param account_id [String] The ID of the account get positions.
174
+ # @param symbol [String] Universal symbol ID if symbol
175
+ # @param [Hash] opts the optional parameters
176
+ # @return [Array<OptionChainInner>]
177
+ def get_options_chain_impl(user_id, user_secret, account_id, symbol, opts = {})
178
+ data, _status_code, _headers = get_options_chain_with_http_info(user_id, user_secret, account_id, symbol, opts)
179
+ data
180
+ end
181
+
182
+ # Get the options chain
183
+ # @param user_id [String]
184
+ # @param user_secret [String]
185
+ # @param account_id [String] The ID of the account get positions.
186
+ # @param symbol [String] Universal symbol ID if symbol
187
+ # @param [Hash] opts the optional parameters
188
+ # @return [Array<(Array<OptionChainInner>, Integer, Hash)>] Array<OptionChainInner> data, response status code and response headers
189
+ def get_options_chain_with_http_info_impl(user_id, user_secret, account_id, symbol, opts = {})
190
+ if @api_client.config.debugging
191
+ @api_client.config.logger.debug 'Calling API: OptionsApi.get_options_chain ...'
192
+ end
193
+ # verify the required parameter 'user_id' is set
194
+ if @api_client.config.client_side_validation && user_id.nil?
195
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OptionsApi.get_options_chain"
196
+ end
197
+ # verify the required parameter 'user_secret' is set
198
+ if @api_client.config.client_side_validation && user_secret.nil?
199
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling OptionsApi.get_options_chain"
200
+ end
201
+ # verify the required parameter 'account_id' is set
202
+ if @api_client.config.client_side_validation && account_id.nil?
203
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling OptionsApi.get_options_chain"
204
+ end
205
+ # verify the required parameter 'symbol' is set
206
+ if @api_client.config.client_side_validation && symbol.nil?
207
+ fail ArgumentError, "Missing the required parameter 'symbol' when calling OptionsApi.get_options_chain"
208
+ end
209
+ # resource path
210
+ local_var_path = '/accounts/{accountId}/optionsChain'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
211
+
212
+ # query parameters
213
+ query_params = opts[:query_params] || {}
214
+ query_params[:'userId'] = user_id
215
+ query_params[:'userSecret'] = user_secret
216
+ query_params[:'symbol'] = symbol
217
+
218
+ # header parameters
219
+ header_params = opts[:header_params] || {}
220
+ # HTTP header 'Accept' (if needed)
221
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
222
+
223
+ # form parameters
224
+ form_params = opts[:form_params] || {}
225
+
226
+ # http body (model)
227
+ post_body = opts[:debug_body]
228
+
229
+ # return_type
230
+ return_type = opts[:debug_return_type] || 'Array<OptionChainInner>'
231
+
232
+ # auth_names
233
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
234
+
235
+ new_options = opts.merge(
236
+ :operation => :"OptionsApi.get_options_chain",
237
+ :header_params => header_params,
238
+ :query_params => query_params,
239
+ :form_params => form_params,
240
+ :body => post_body,
241
+ :auth_names => auth_names,
242
+ :return_type => return_type
243
+ )
244
+
245
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug "API called: OptionsApi#get_options_chain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
248
+ end
249
+ return data, status_code, headers, response
250
+ end
251
+
252
+
253
+ # Get latest market data of option strategy
254
+ # @param user_id [String]
255
+ # @param user_secret [String]
256
+ # @param account_id [String] The ID of the account get positions.
257
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
258
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
259
+ def get_options_strategy_quote(user_id:, user_secret:, account_id:, option_strategy_id:, extra: {})
260
+
261
+ data, _status_code, _headers = get_options_strategy_quote_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, extra)
262
+ data
263
+ end
264
+
265
+ # Get latest market data of option strategy
266
+ # @param user_id [String]
267
+ # @param user_secret [String]
268
+ # @param account_id [String] The ID of the account get positions.
269
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
270
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
271
+ def get_options_strategy_quote_with_http_info(user_id:, user_secret:, account_id:, option_strategy_id:, extra: {})
272
+
273
+ get_options_strategy_quote_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, extra)
274
+ end
275
+
276
+ # Get latest market data of option strategy
277
+ # @param user_id [String]
278
+ # @param user_secret [String]
279
+ # @param account_id [String] The ID of the account get positions.
280
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
281
+ # @param [Hash] opts the optional parameters
282
+ # @return [StrategyQuotes]
283
+ def get_options_strategy_quote_impl(user_id, user_secret, account_id, option_strategy_id, opts = {})
284
+ data, _status_code, _headers = get_options_strategy_quote_with_http_info(user_id, user_secret, account_id, option_strategy_id, opts)
285
+ data
286
+ end
287
+
288
+ # Get latest market data of option strategy
289
+ # @param user_id [String]
290
+ # @param user_secret [String]
291
+ # @param account_id [String] The ID of the account get positions.
292
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
293
+ # @param [Hash] opts the optional parameters
294
+ # @return [Array<(StrategyQuotes, Integer, Hash)>] StrategyQuotes data, response status code and response headers
295
+ def get_options_strategy_quote_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, opts = {})
296
+ if @api_client.config.debugging
297
+ @api_client.config.logger.debug 'Calling API: OptionsApi.get_options_strategy_quote ...'
298
+ end
299
+ # verify the required parameter 'user_id' is set
300
+ if @api_client.config.client_side_validation && user_id.nil?
301
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OptionsApi.get_options_strategy_quote"
302
+ end
303
+ # verify the required parameter 'user_secret' is set
304
+ if @api_client.config.client_side_validation && user_secret.nil?
305
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling OptionsApi.get_options_strategy_quote"
306
+ end
307
+ # verify the required parameter 'account_id' is set
308
+ if @api_client.config.client_side_validation && account_id.nil?
309
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling OptionsApi.get_options_strategy_quote"
310
+ end
311
+ # verify the required parameter 'option_strategy_id' is set
312
+ if @api_client.config.client_side_validation && option_strategy_id.nil?
313
+ fail ArgumentError, "Missing the required parameter 'option_strategy_id' when calling OptionsApi.get_options_strategy_quote"
314
+ end
315
+ # resource path
316
+ local_var_path = '/accounts/{accountId}/optionStrategy/{optionStrategyId}'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)).sub('{' + 'optionStrategyId' + '}', CGI.escape(option_strategy_id.to_s))
317
+
318
+ # query parameters
319
+ query_params = opts[:query_params] || {}
320
+ query_params[:'userId'] = user_id
321
+ query_params[:'userSecret'] = user_secret
322
+
323
+ # header parameters
324
+ header_params = opts[:header_params] || {}
325
+ # HTTP header 'Accept' (if needed)
326
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
327
+
328
+ # form parameters
329
+ form_params = opts[:form_params] || {}
330
+
331
+ # http body (model)
332
+ post_body = opts[:debug_body]
333
+
334
+ # return_type
335
+ return_type = opts[:debug_return_type] || 'StrategyQuotes'
336
+
337
+ # auth_names
338
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
339
+
340
+ new_options = opts.merge(
341
+ :operation => :"OptionsApi.get_options_strategy_quote",
342
+ :header_params => header_params,
343
+ :query_params => query_params,
344
+ :form_params => form_params,
345
+ :body => post_body,
346
+ :auth_names => auth_names,
347
+ :return_type => return_type
348
+ )
349
+
350
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
351
+ if @api_client.config.debugging
352
+ @api_client.config.logger.debug "API called: OptionsApi#get_options_strategy_quote\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
353
+ end
354
+ return data, status_code, headers, response
355
+ end
356
+
357
+
358
+ # Get the options holdings in the account
359
+ # @param user_id [String]
360
+ # @param user_secret [String]
361
+ # @param account_id [String] The ID of the account get positions.
362
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
363
+ def list_option_holdings(user_id:, user_secret:, account_id:, extra: {})
364
+
365
+ data, _status_code, _headers = list_option_holdings_with_http_info_impl(user_id, user_secret, account_id, extra)
366
+ data
367
+ end
368
+
369
+ # Get the options holdings in the account
370
+ # @param user_id [String]
371
+ # @param user_secret [String]
372
+ # @param account_id [String] The ID of the account get positions.
373
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
374
+ def list_option_holdings_with_http_info(user_id:, user_secret:, account_id:, extra: {})
375
+
376
+ list_option_holdings_with_http_info_impl(user_id, user_secret, account_id, extra)
377
+ end
378
+
379
+ # Get the options holdings in the account
380
+ # @param user_id [String]
381
+ # @param user_secret [String]
382
+ # @param account_id [String] The ID of the account get positions.
383
+ # @param [Hash] opts the optional parameters
384
+ # @return [OptionsHoldings]
385
+ def list_option_holdings_impl(user_id, user_secret, account_id, opts = {})
386
+ data, _status_code, _headers = list_option_holdings_with_http_info(user_id, user_secret, account_id, opts)
387
+ data
388
+ end
389
+
390
+ # Get the options holdings in the account
391
+ # @param user_id [String]
392
+ # @param user_secret [String]
393
+ # @param account_id [String] The ID of the account get positions.
394
+ # @param [Hash] opts the optional parameters
395
+ # @return [Array<(OptionsHoldings, Integer, Hash)>] OptionsHoldings data, response status code and response headers
396
+ def list_option_holdings_with_http_info_impl(user_id, user_secret, account_id, opts = {})
397
+ if @api_client.config.debugging
398
+ @api_client.config.logger.debug 'Calling API: OptionsApi.list_option_holdings ...'
399
+ end
400
+ # verify the required parameter 'user_id' is set
401
+ if @api_client.config.client_side_validation && user_id.nil?
402
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OptionsApi.list_option_holdings"
403
+ end
404
+ # verify the required parameter 'user_secret' is set
405
+ if @api_client.config.client_side_validation && user_secret.nil?
406
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling OptionsApi.list_option_holdings"
407
+ end
408
+ # verify the required parameter 'account_id' is set
409
+ if @api_client.config.client_side_validation && account_id.nil?
410
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling OptionsApi.list_option_holdings"
411
+ end
412
+ # resource path
413
+ local_var_path = '/accounts/{accountId}/options'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
414
+
415
+ # query parameters
416
+ query_params = opts[:query_params] || {}
417
+ query_params[:'userId'] = user_id
418
+ query_params[:'userSecret'] = user_secret
419
+
420
+ # header parameters
421
+ header_params = opts[:header_params] || {}
422
+ # HTTP header 'Accept' (if needed)
423
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
424
+
425
+ # form parameters
426
+ form_params = opts[:form_params] || {}
427
+
428
+ # http body (model)
429
+ post_body = opts[:debug_body]
430
+
431
+ # return_type
432
+ return_type = opts[:debug_return_type] || 'OptionsHoldings'
433
+
434
+ # auth_names
435
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
436
+
437
+ new_options = opts.merge(
438
+ :operation => :"OptionsApi.list_option_holdings",
439
+ :header_params => header_params,
440
+ :query_params => query_params,
441
+ :form_params => form_params,
442
+ :body => post_body,
443
+ :auth_names => auth_names,
444
+ :return_type => return_type
445
+ )
446
+
447
+ data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options)
448
+ if @api_client.config.debugging
449
+ @api_client.config.logger.debug "API called: OptionsApi#list_option_holdings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
450
+ end
451
+ return data, status_code, headers, response
452
+ end
453
+
454
+
455
+ # Place an option strategy order on the brokerage
456
+ # @param order_type [OrderStrategyExecuteBodyOrderType]
457
+ # @param time_in_force [OrderStrategyExecuteBodyTimeInForce]
458
+ # @param price [Float] Trade Price if limit or stop limit order
459
+ # @param user_id [String]
460
+ # @param user_secret [String]
461
+ # @param account_id [String] The ID of the account get positions.
462
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
463
+ # @param body [OptionsPlaceOptionStrategyRequest]
464
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
465
+ def place_option_strategy(order_type:, time_in_force:, price:, user_id:, user_secret:, account_id:, option_strategy_id:, extra: {})
466
+ _body = {}
467
+ _body[:order_type] = order_type if order_type != SENTINEL
468
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
469
+ _body[:price] = price if price != SENTINEL
470
+ options_place_option_strategy_request = _body
471
+
472
+ data, _status_code, _headers = place_option_strategy_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, options_place_option_strategy_request, extra)
473
+ data
474
+ end
475
+
476
+ # Place an option strategy order on the brokerage
477
+ # @param order_type [OrderStrategyExecuteBodyOrderType]
478
+ # @param time_in_force [OrderStrategyExecuteBodyTimeInForce]
479
+ # @param price [Float] Trade Price if limit or stop limit order
480
+ # @param user_id [String]
481
+ # @param user_secret [String]
482
+ # @param account_id [String] The ID of the account get positions.
483
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
484
+ # @param body [OptionsPlaceOptionStrategyRequest]
485
+ # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
486
+ def place_option_strategy_with_http_info(order_type:, time_in_force:, price:, user_id:, user_secret:, account_id:, option_strategy_id:, extra: {})
487
+ _body = {}
488
+ _body[:order_type] = order_type if order_type != SENTINEL
489
+ _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
490
+ _body[:price] = price if price != SENTINEL
491
+ options_place_option_strategy_request = _body
492
+
493
+ place_option_strategy_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, options_place_option_strategy_request, extra)
494
+ end
495
+
496
+ # Place an option strategy order on the brokerage
497
+ # @param user_id [String]
498
+ # @param user_secret [String]
499
+ # @param account_id [String] The ID of the account get positions.
500
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
501
+ # @param options_place_option_strategy_request [OptionsPlaceOptionStrategyRequest]
502
+ # @param [Hash] opts the optional parameters
503
+ # @return [StrategyOrderRecord]
504
+ def place_option_strategy_impl(user_id, user_secret, account_id, option_strategy_id, options_place_option_strategy_request, opts = {})
505
+ data, _status_code, _headers = place_option_strategy_with_http_info(user_id, user_secret, account_id, option_strategy_id, options_place_option_strategy_request, opts)
506
+ data
507
+ end
508
+
509
+ # Place an option strategy order on the brokerage
510
+ # @param user_id [String]
511
+ # @param user_secret [String]
512
+ # @param account_id [String] The ID of the account get positions.
513
+ # @param option_strategy_id [String] Option strategy id obtained from response when creating option strategy object
514
+ # @param options_place_option_strategy_request [OptionsPlaceOptionStrategyRequest]
515
+ # @param [Hash] opts the optional parameters
516
+ # @return [Array<(StrategyOrderRecord, Integer, Hash)>] StrategyOrderRecord data, response status code and response headers
517
+ def place_option_strategy_with_http_info_impl(user_id, user_secret, account_id, option_strategy_id, options_place_option_strategy_request, opts = {})
518
+ if @api_client.config.debugging
519
+ @api_client.config.logger.debug 'Calling API: OptionsApi.place_option_strategy ...'
520
+ end
521
+ # verify the required parameter 'user_id' is set
522
+ if @api_client.config.client_side_validation && user_id.nil?
523
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OptionsApi.place_option_strategy"
524
+ end
525
+ # verify the required parameter 'user_secret' is set
526
+ if @api_client.config.client_side_validation && user_secret.nil?
527
+ fail ArgumentError, "Missing the required parameter 'user_secret' when calling OptionsApi.place_option_strategy"
528
+ end
529
+ # verify the required parameter 'account_id' is set
530
+ if @api_client.config.client_side_validation && account_id.nil?
531
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling OptionsApi.place_option_strategy"
532
+ end
533
+ # verify the required parameter 'option_strategy_id' is set
534
+ if @api_client.config.client_side_validation && option_strategy_id.nil?
535
+ fail ArgumentError, "Missing the required parameter 'option_strategy_id' when calling OptionsApi.place_option_strategy"
536
+ end
537
+ # verify the required parameter 'options_place_option_strategy_request' is set
538
+ if @api_client.config.client_side_validation && options_place_option_strategy_request.nil?
539
+ fail ArgumentError, "Missing the required parameter 'options_place_option_strategy_request' when calling OptionsApi.place_option_strategy"
540
+ end
541
+ # resource path
542
+ local_var_path = '/accounts/{accountId}/optionStrategy/{optionStrategyId}/execute'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)).sub('{' + 'optionStrategyId' + '}', CGI.escape(option_strategy_id.to_s))
543
+
544
+ # query parameters
545
+ query_params = opts[:query_params] || {}
546
+ query_params[:'userId'] = user_id
547
+ query_params[:'userSecret'] = user_secret
548
+
549
+ # header parameters
550
+ header_params = opts[:header_params] || {}
551
+ # HTTP header 'Accept' (if needed)
552
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
553
+ # HTTP header 'Content-Type'
554
+ content_type = @api_client.select_header_content_type(['application/json'])
555
+ if !content_type.nil?
556
+ header_params['Content-Type'] = content_type
557
+ end
558
+
559
+ # form parameters
560
+ form_params = opts[:form_params] || {}
561
+
562
+ # http body (model)
563
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(options_place_option_strategy_request)
564
+
565
+ # return_type
566
+ return_type = opts[:debug_return_type] || 'StrategyOrderRecord'
567
+
568
+ # auth_names
569
+ auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp']
570
+
571
+ new_options = opts.merge(
572
+ :operation => :"OptionsApi.place_option_strategy",
573
+ :header_params => header_params,
574
+ :query_params => query_params,
575
+ :form_params => form_params,
576
+ :body => post_body,
577
+ :auth_names => auth_names,
578
+ :return_type => return_type
579
+ )
580
+
581
+ data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
582
+ if @api_client.config.debugging
583
+ @api_client.config.logger.debug "API called: OptionsApi#place_option_strategy\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
584
+ end
585
+ return data, status_code, headers, response
586
+ end
587
+ end
588
+
589
+ # top-level client access to avoid having the user to insantiate their own API instances
590
+ Options = OptionsApi::new
591
+ end