snaptrade 1.7.0 → 1.8.0

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