snaptrade 1.13.0 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -10
  3. data/Gemfile.lock +11 -13
  4. data/README.md +221 -220
  5. data/docs/APIStatusApi.md +57 -57
  6. data/docs/AccountInformationApi.md +535 -535
  7. data/docs/AuthenticationApi.md +314 -314
  8. data/docs/BrokerageSymbol.md +28 -28
  9. data/docs/BrokerageSymbolOptionSymbol.md +32 -38
  10. data/docs/BrokerageSymbolSymbol.md +32 -32
  11. data/docs/ConnectionsApi.md +265 -265
  12. data/docs/ErrorLogsApi.md +68 -68
  13. data/docs/OptionsApi.md +378 -378
  14. data/docs/OptionsPosition.md +10 -8
  15. data/docs/OptionsPositionCurrency.md +22 -0
  16. data/docs/OptionsSymbol.md +3 -9
  17. data/docs/Position.md +3 -1
  18. data/docs/ReferenceDataApi.md +595 -595
  19. data/docs/TradingApi.md +478 -478
  20. data/docs/TransactionsAndReportingApi.md +183 -183
  21. data/docs/UniversalActivity.md +48 -48
  22. data/docs/UserIDandSecret.md +20 -20
  23. data/lib/snaptrade/api/account_information_api.rb +801 -801
  24. data/lib/snaptrade/api/api_status_api.rb +98 -98
  25. data/lib/snaptrade/api/authentication_api.rb +481 -481
  26. data/lib/snaptrade/api/connections_api.rb +398 -398
  27. data/lib/snaptrade/api/error_logs_api.rb +112 -112
  28. data/lib/snaptrade/api/options_api.rb +591 -591
  29. data/lib/snaptrade/api/reference_data_api.rb +894 -894
  30. data/lib/snaptrade/api/trading_api.rb +741 -741
  31. data/lib/snaptrade/api/transactions_and_reporting_api.rb +283 -283
  32. data/lib/snaptrade/api_client.rb +427 -427
  33. data/lib/snaptrade/api_client_custom.rb +32 -32
  34. data/lib/snaptrade/api_error.rb +6 -6
  35. data/lib/snaptrade/configuration.rb +334 -334
  36. data/lib/snaptrade/models/account.rb +6 -6
  37. data/lib/snaptrade/models/account_holdings.rb +6 -6
  38. data/lib/snaptrade/models/account_holdings_account.rb +6 -6
  39. data/lib/snaptrade/models/account_order_record.rb +6 -6
  40. data/lib/snaptrade/models/account_order_record_status.rb +6 -6
  41. data/lib/snaptrade/models/account_simple.rb +6 -6
  42. data/lib/snaptrade/models/account_sync_status.rb +6 -6
  43. data/lib/snaptrade/models/action.rb +6 -6
  44. data/lib/snaptrade/models/auth_type.rb +6 -6
  45. data/lib/snaptrade/models/authentication_login_snap_trade_user200_response.rb +6 -6
  46. data/lib/snaptrade/models/balance.rb +6 -6
  47. data/lib/snaptrade/models/brokerage.rb +6 -6
  48. data/lib/snaptrade/models/brokerage_authorization.rb +6 -6
  49. data/lib/snaptrade/models/brokerage_authorization_type.rb +6 -6
  50. data/lib/snaptrade/models/brokerage_authorization_type_read_only.rb +6 -6
  51. data/lib/snaptrade/models/brokerage_authorization_type_read_only_brokerage.rb +6 -6
  52. data/lib/snaptrade/models/brokerage_authorization_type_read_only_type.rb +6 -6
  53. data/lib/snaptrade/models/brokerage_authorization_type_type.rb +6 -6
  54. data/lib/snaptrade/models/brokerage_symbol.rb +266 -266
  55. data/lib/snaptrade/models/brokerage_symbol_option_symbol.rb +287 -316
  56. data/lib/snaptrade/models/brokerage_symbol_symbol.rb +290 -290
  57. data/lib/snaptrade/models/brokerage_type.rb +6 -6
  58. data/lib/snaptrade/models/calculated_trade.rb +6 -6
  59. data/lib/snaptrade/models/cash_restriction.rb +6 -6
  60. data/lib/snaptrade/models/connection_type.rb +6 -6
  61. data/lib/snaptrade/models/connections_session_events200_response_inner.rb +6 -6
  62. data/lib/snaptrade/models/currency.rb +6 -6
  63. data/lib/snaptrade/models/delete_user_response.rb +6 -6
  64. data/lib/snaptrade/models/dividend_at_date.rb +6 -6
  65. data/lib/snaptrade/models/encrypted_response.rb +6 -6
  66. data/lib/snaptrade/models/encrypted_response_encrypted_message_data.rb +6 -6
  67. data/lib/snaptrade/models/exchange.rb +6 -6
  68. data/lib/snaptrade/models/exchange_rate_pairs.rb +6 -6
  69. data/lib/snaptrade/models/excluded_asset.rb +6 -6
  70. data/lib/snaptrade/models/jwt.rb +6 -6
  71. data/lib/snaptrade/models/login_redirect_uri.rb +6 -6
  72. data/lib/snaptrade/models/manual_trade.rb +6 -6
  73. data/lib/snaptrade/models/manual_trade_and_impact.rb +6 -6
  74. data/lib/snaptrade/models/manual_trade_balance.rb +6 -6
  75. data/lib/snaptrade/models/manual_trade_form.rb +6 -6
  76. data/lib/snaptrade/models/manual_trade_symbol.rb +6 -6
  77. data/lib/snaptrade/models/model400_failed_request_response.rb +6 -6
  78. data/lib/snaptrade/models/model401_failed_request_response.rb +6 -6
  79. data/lib/snaptrade/models/model403_failed_request_response.rb +6 -6
  80. data/lib/snaptrade/models/model404_failed_request_response.rb +6 -6
  81. data/lib/snaptrade/models/model_asset_class.rb +6 -6
  82. data/lib/snaptrade/models/model_asset_class_details.rb +6 -6
  83. data/lib/snaptrade/models/model_asset_class_target.rb +6 -6
  84. data/lib/snaptrade/models/model_portfolio.rb +6 -6
  85. data/lib/snaptrade/models/model_portfolio_asset_class.rb +6 -6
  86. data/lib/snaptrade/models/model_portfolio_details.rb +6 -6
  87. data/lib/snaptrade/models/model_portfolio_security.rb +6 -6
  88. data/lib/snaptrade/models/model_type.rb +6 -6
  89. data/lib/snaptrade/models/monthly_dividends.rb +6 -6
  90. data/lib/snaptrade/models/net_contributions.rb +6 -6
  91. data/lib/snaptrade/models/net_dividend.rb +6 -6
  92. data/lib/snaptrade/models/option_chain_inner.rb +6 -6
  93. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner.rb +6 -6
  94. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner.rb +6 -6
  95. data/lib/snaptrade/models/option_leg.rb +6 -6
  96. data/lib/snaptrade/models/option_leg_action.rb +6 -6
  97. data/lib/snaptrade/models/option_strategy.rb +6 -6
  98. data/lib/snaptrade/models/option_strategy_legs_inner.rb +6 -6
  99. data/lib/snaptrade/models/options_get_option_strategy_request.rb +6 -6
  100. data/lib/snaptrade/models/options_holdings.rb +6 -6
  101. data/lib/snaptrade/models/options_place_option_strategy_request.rb +6 -6
  102. data/lib/snaptrade/models/options_position.rb +46 -31
  103. data/lib/snaptrade/models/options_position_currency.rb +242 -0
  104. data/lib/snaptrade/models/options_symbol.rb +13 -42
  105. data/lib/snaptrade/models/order_strategy_execute_body_order_type.rb +6 -6
  106. data/lib/snaptrade/models/order_strategy_execute_body_time_in_force.rb +6 -6
  107. data/lib/snaptrade/models/order_type.rb +6 -6
  108. data/lib/snaptrade/models/partner_data.rb +6 -6
  109. data/lib/snaptrade/models/past_value.rb +6 -6
  110. data/lib/snaptrade/models/performance_custom.rb +6 -6
  111. data/lib/snaptrade/models/portfolio_group.rb +6 -6
  112. data/lib/snaptrade/models/portfolio_group_info.rb +6 -6
  113. data/lib/snaptrade/models/portfolio_group_position.rb +6 -6
  114. data/lib/snaptrade/models/portfolio_group_settings.rb +6 -6
  115. data/lib/snaptrade/models/position.rb +22 -11
  116. data/lib/snaptrade/models/position_symbol.rb +6 -6
  117. data/lib/snaptrade/models/redirect_tokenand_pin.rb +6 -6
  118. data/lib/snaptrade/models/security_type.rb +6 -6
  119. data/lib/snaptrade/models/session_event.rb +6 -6
  120. data/lib/snaptrade/models/session_event_type.rb +6 -6
  121. data/lib/snaptrade/models/snap_trade_api_disclaimer_accept_status.rb +6 -6
  122. data/lib/snaptrade/models/snap_trade_holdings_account.rb +6 -6
  123. data/lib/snaptrade/models/snap_trade_holdings_account_account_id.rb +6 -6
  124. data/lib/snaptrade/models/snap_trade_holdings_total_value.rb +6 -6
  125. data/lib/snaptrade/models/snap_trade_login_user_request_body.rb +6 -6
  126. data/lib/snaptrade/models/snap_trade_register_user_request_body.rb +6 -6
  127. data/lib/snaptrade/models/state.rb +6 -6
  128. data/lib/snaptrade/models/status.rb +6 -6
  129. data/lib/snaptrade/models/strategy_impact.rb +6 -6
  130. data/lib/snaptrade/models/strategy_impact_legs_inner.rb +6 -6
  131. data/lib/snaptrade/models/strategy_order_place.rb +6 -6
  132. data/lib/snaptrade/models/strategy_order_place_orders_inner.rb +6 -6
  133. data/lib/snaptrade/models/strategy_order_place_orders_inner_legs_inner.rb +6 -6
  134. data/lib/snaptrade/models/strategy_order_record.rb +6 -6
  135. data/lib/snaptrade/models/strategy_order_record_order_type.rb +6 -6
  136. data/lib/snaptrade/models/strategy_order_record_status.rb +6 -6
  137. data/lib/snaptrade/models/strategy_order_record_time_in_force.rb +6 -6
  138. data/lib/snaptrade/models/strategy_quotes.rb +6 -6
  139. data/lib/snaptrade/models/strategy_quotes_greek.rb +6 -6
  140. data/lib/snaptrade/models/strategy_type.rb +6 -6
  141. data/lib/snaptrade/models/sub_period_return_rate.rb +6 -6
  142. data/lib/snaptrade/models/symbol.rb +6 -6
  143. data/lib/snaptrade/models/symbol_query.rb +6 -6
  144. data/lib/snaptrade/models/symbols_quotes_inner.rb +6 -6
  145. data/lib/snaptrade/models/target_asset.rb +6 -6
  146. data/lib/snaptrade/models/time_in_force.rb +6 -6
  147. data/lib/snaptrade/models/trade.rb +6 -6
  148. data/lib/snaptrade/models/trade_action.rb +6 -6
  149. data/lib/snaptrade/models/trade_execution_status.rb +6 -6
  150. data/lib/snaptrade/models/trade_execution_status_action.rb +6 -6
  151. data/lib/snaptrade/models/trade_impact.rb +6 -6
  152. data/lib/snaptrade/models/trading_cancel_user_account_order_request.rb +6 -6
  153. data/lib/snaptrade/models/trading_place_oco_order_request.rb +6 -6
  154. data/lib/snaptrade/models/transactions_status.rb +6 -6
  155. data/lib/snaptrade/models/type.rb +6 -6
  156. data/lib/snaptrade/models/underlying_symbol.rb +6 -6
  157. data/lib/snaptrade/models/universal_activity.rb +360 -360
  158. data/lib/snaptrade/models/universal_symbol.rb +6 -6
  159. data/lib/snaptrade/models/universal_symbol_ticker.rb +6 -6
  160. data/lib/snaptrade/models/us_exchange.rb +6 -6
  161. data/lib/snaptrade/models/user_error_log.rb +6 -6
  162. data/lib/snaptrade/models/user_i_dand_secret.rb +229 -229
  163. data/lib/snaptrade/models/user_settings.rb +6 -6
  164. data/lib/snaptrade/version.rb +13 -13
  165. data/lib/snaptrade.rb +214 -213
  166. data/snaptrade.gemspec +41 -41
  167. data/spec/api/account_information_api_spec.rb +135 -135
  168. data/spec/api/api_status_api_spec.rb +42 -42
  169. data/spec/api/authentication_api_spec.rb +88 -88
  170. data/spec/api/connections_api_spec.rb +82 -82
  171. data/spec/api/error_logs_api_spec.rb +43 -43
  172. data/spec/api/options_api_spec.rb +101 -101
  173. data/spec/api/reference_data_api_spec.rb +150 -150
  174. data/spec/api/trading_api_spec.rb +112 -112
  175. data/spec/api/transactions_and_reporting_api_spec.rb +67 -67
  176. data/spec/api_client_spec.rb +193 -193
  177. data/spec/configuration_spec.rb +6 -6
  178. data/spec/getting_started_spec.rb +108 -108
  179. data/spec/models/account_holdings_account_spec.rb +54 -54
  180. data/spec/models/account_holdings_spec.rb +48 -48
  181. data/spec/models/account_order_record_spec.rb +132 -132
  182. data/spec/models/account_order_record_status_spec.rb +24 -24
  183. data/spec/models/account_simple_spec.rb +48 -48
  184. data/spec/models/account_spec.rb +84 -84
  185. data/spec/models/account_sync_status_spec.rb +30 -30
  186. data/spec/models/action_spec.rb +24 -24
  187. data/spec/models/auth_type_spec.rb +24 -24
  188. data/spec/models/authentication_login_snap_trade_user200_response_spec.rb +27 -27
  189. data/spec/models/balance_spec.rb +36 -36
  190. data/spec/models/brokerage_authorization_spec.rb +78 -78
  191. data/spec/models/brokerage_authorization_type_read_only_brokerage_spec.rb +42 -42
  192. data/spec/models/brokerage_authorization_type_read_only_spec.rb +48 -48
  193. data/spec/models/brokerage_authorization_type_read_only_type_spec.rb +24 -24
  194. data/spec/models/brokerage_authorization_type_spec.rb +30 -30
  195. data/spec/models/brokerage_authorization_type_type_spec.rb +24 -24
  196. data/spec/models/brokerage_spec.rb +132 -132
  197. data/spec/models/brokerage_symbol_option_symbol_spec.rb +72 -90
  198. data/spec/models/brokerage_symbol_spec.rb +60 -60
  199. data/spec/models/brokerage_symbol_symbol_spec.rb +72 -72
  200. data/spec/models/brokerage_type_spec.rb +36 -36
  201. data/spec/models/calculated_trade_spec.rb +36 -36
  202. data/spec/models/cash_restriction_spec.rb +54 -54
  203. data/spec/models/connection_type_spec.rb +24 -24
  204. data/spec/models/connections_session_events200_response_inner_spec.rb +66 -66
  205. data/spec/models/currency_spec.rb +42 -42
  206. data/spec/models/delete_user_response_spec.rb +36 -36
  207. data/spec/models/dividend_at_date_spec.rb +42 -42
  208. data/spec/models/encrypted_response_encrypted_message_data_spec.rb +42 -42
  209. data/spec/models/encrypted_response_spec.rb +36 -36
  210. data/spec/models/exchange_rate_pairs_spec.rb +42 -42
  211. data/spec/models/exchange_spec.rb +72 -72
  212. data/spec/models/excluded_asset_spec.rb +30 -30
  213. data/spec/models/jwt_spec.rb +30 -30
  214. data/spec/models/login_redirect_uri_spec.rb +36 -36
  215. data/spec/models/manual_trade_and_impact_spec.rb +42 -42
  216. data/spec/models/manual_trade_balance_spec.rb +42 -42
  217. data/spec/models/manual_trade_form_spec.rb +72 -72
  218. data/spec/models/manual_trade_spec.rb +72 -72
  219. data/spec/models/manual_trade_symbol_spec.rb +60 -60
  220. data/spec/models/model400_failed_request_response_spec.rb +36 -36
  221. data/spec/models/model401_failed_request_response_spec.rb +36 -36
  222. data/spec/models/model403_failed_request_response_spec.rb +36 -36
  223. data/spec/models/model404_failed_request_response_spec.rb +36 -36
  224. data/spec/models/model_asset_class_details_spec.rb +36 -36
  225. data/spec/models/model_asset_class_spec.rb +36 -36
  226. data/spec/models/model_asset_class_target_spec.rb +30 -30
  227. data/spec/models/model_portfolio_asset_class_spec.rb +36 -36
  228. data/spec/models/model_portfolio_details_spec.rb +42 -42
  229. data/spec/models/model_portfolio_security_spec.rb +36 -36
  230. data/spec/models/model_portfolio_spec.rb +42 -42
  231. data/spec/models/model_type_spec.rb +24 -24
  232. data/spec/models/monthly_dividends_spec.rb +36 -36
  233. data/spec/models/net_contributions_spec.rb +42 -42
  234. data/spec/models/net_dividend_spec.rb +42 -42
  235. data/spec/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner_spec.rb +42 -42
  236. data/spec/models/option_chain_inner_chain_per_root_inner_spec.rb +42 -42
  237. data/spec/models/option_chain_inner_spec.rb +54 -54
  238. data/spec/models/option_leg_action_spec.rb +24 -24
  239. data/spec/models/option_leg_spec.rb +42 -42
  240. data/spec/models/option_strategy_legs_inner_spec.rb +48 -48
  241. data/spec/models/option_strategy_spec.rb +54 -54
  242. data/spec/models/options_get_option_strategy_request_spec.rb +42 -42
  243. data/spec/models/options_holdings_spec.rb +60 -60
  244. data/spec/models/options_place_option_strategy_request_spec.rb +42 -42
  245. data/spec/models/options_position_currency_spec.rb +42 -0
  246. data/spec/models/options_position_spec.rb +72 -66
  247. data/spec/models/options_symbol_spec.rb +72 -90
  248. data/spec/models/order_strategy_execute_body_order_type_spec.rb +24 -24
  249. data/spec/models/order_strategy_execute_body_time_in_force_spec.rb +24 -24
  250. data/spec/models/order_type_spec.rb +24 -24
  251. data/spec/models/partner_data_spec.rb +96 -96
  252. data/spec/models/past_value_spec.rb +42 -42
  253. data/spec/models/performance_custom_spec.rb +138 -138
  254. data/spec/models/portfolio_group_info_spec.rb +90 -90
  255. data/spec/models/portfolio_group_position_spec.rb +42 -42
  256. data/spec/models/portfolio_group_settings_spec.rb +54 -54
  257. data/spec/models/portfolio_group_spec.rb +36 -36
  258. data/spec/models/position_spec.rb +66 -60
  259. data/spec/models/position_symbol_spec.rb +60 -60
  260. data/spec/models/redirect_tokenand_pin_spec.rb +36 -36
  261. data/spec/models/security_type_spec.rb +48 -48
  262. data/spec/models/session_event_spec.rb +66 -66
  263. data/spec/models/session_event_type_spec.rb +24 -24
  264. data/spec/models/snap_trade_api_disclaimer_accept_status_spec.rb +36 -36
  265. data/spec/models/snap_trade_holdings_account_account_id_spec.rb +78 -78
  266. data/spec/models/snap_trade_holdings_account_spec.rb +72 -72
  267. data/spec/models/snap_trade_holdings_total_value_spec.rb +36 -36
  268. data/spec/models/snap_trade_login_user_request_body_spec.rb +54 -54
  269. data/spec/models/snap_trade_register_user_request_body_spec.rb +36 -36
  270. data/spec/models/state_spec.rb +24 -24
  271. data/spec/models/status_spec.rb +42 -42
  272. data/spec/models/strategy_impact_legs_inner_spec.rb +66 -66
  273. data/spec/models/strategy_impact_spec.rb +90 -90
  274. data/spec/models/strategy_order_place_orders_inner_legs_inner_spec.rb +66 -66
  275. data/spec/models/strategy_order_place_orders_inner_spec.rb +282 -282
  276. data/spec/models/strategy_order_place_spec.rb +36 -36
  277. data/spec/models/strategy_order_record_order_type_spec.rb +24 -24
  278. data/spec/models/strategy_order_record_spec.rb +90 -90
  279. data/spec/models/strategy_order_record_status_spec.rb +24 -24
  280. data/spec/models/strategy_order_record_time_in_force_spec.rb +24 -24
  281. data/spec/models/strategy_quotes_greek_spec.rb +54 -54
  282. data/spec/models/strategy_quotes_spec.rb +60 -60
  283. data/spec/models/strategy_type_spec.rb +24 -24
  284. data/spec/models/sub_period_return_rate_spec.rb +42 -42
  285. data/spec/models/symbol_query_spec.rb +30 -30
  286. data/spec/models/symbol_spec.rb +66 -66
  287. data/spec/models/symbols_quotes_inner_spec.rb +60 -60
  288. data/spec/models/target_asset_spec.rb +60 -60
  289. data/spec/models/time_in_force_spec.rb +24 -24
  290. data/spec/models/trade_action_spec.rb +24 -24
  291. data/spec/models/trade_execution_status_action_spec.rb +24 -24
  292. data/spec/models/trade_execution_status_spec.rb +78 -78
  293. data/spec/models/trade_impact_spec.rb +54 -54
  294. data/spec/models/trade_spec.rb +72 -72
  295. data/spec/models/trading_cancel_user_account_order_request_spec.rb +30 -30
  296. data/spec/models/trading_place_oco_order_request_spec.rb +36 -36
  297. data/spec/models/transactions_status_spec.rb +36 -36
  298. data/spec/models/type_spec.rb +24 -24
  299. data/spec/models/underlying_symbol_spec.rb +66 -66
  300. data/spec/models/universal_activity_spec.rb +120 -120
  301. data/spec/models/universal_symbol_spec.rb +72 -72
  302. data/spec/models/universal_symbol_ticker_spec.rb +72 -72
  303. data/spec/models/us_exchange_spec.rb +78 -78
  304. data/spec/models/user_error_log_spec.rb +60 -60
  305. data/spec/models/user_i_dand_secret_spec.rb +36 -36
  306. data/spec/models/user_settings_spec.rb +84 -84
  307. data/spec/spec_helper.rb +6 -6
  308. metadata +119 -115
@@ -1,109 +1,109 @@
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
- module SnapTrade
12
- class Configuration
13
- # Defines url scheme
14
- attr_accessor :scheme
15
-
16
- # Defines url host
17
- attr_accessor :host
18
-
19
- # Defines url base path
20
- attr_accessor :base_path
21
-
22
- # Define server configuration index
23
- attr_accessor :server_index
24
-
25
- # Define server operation configuration index
26
- attr_accessor :server_operation_index
27
-
28
- # Default server variables
29
- attr_accessor :server_variables
30
-
31
- # Default server operation variables
32
- attr_accessor :server_operation_variables
33
-
34
- def client_id=(value)
35
- @api_key['PartnerClientId'] = value
36
- end
37
-
38
- def signature=(value)
39
- @api_key['PartnerSignature'] = value
40
- end
41
-
42
- def timestamp=(value)
43
- @api_key['PartnerTimestamp'] = value
44
- end
45
-
46
- # client state configured through konfig.yaml
47
- attr_accessor :consumer_key
48
-
49
- # Defines API keys used with API Key authentications.
50
- #
51
- # @return [Hash] key: parameter name, value: parameter value (API key)
52
- #
53
- # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
54
- # config.api_key['api_key'] = 'xxx'
55
- attr_accessor :api_key
56
-
57
- # Defines API key prefixes used with API Key authentications.
58
- #
59
- # @return [Hash] key: parameter name, value: API key prefix
60
- #
61
- # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
62
- # config.api_key_prefix['api_key'] = 'Token'
63
- attr_accessor :api_key_prefix
64
-
65
- # Defines the username used with HTTP basic authentication.
66
- #
67
- # @return [String]
68
- attr_accessor :username
69
-
70
- # Defines the password used with HTTP basic authentication.
71
- #
72
- # @return [String]
73
- attr_accessor :password
74
-
75
- # Defines the access token (Bearer) used with OAuth2.
76
- attr_accessor :access_token
77
-
78
- # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
79
- # details will be logged with `logger.debug` (see the `logger` attribute).
80
- # Default to false.
81
- #
82
- # @return [true, false]
83
- attr_accessor :debugging
84
-
85
- # Defines the logger used for debugging.
86
- # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
87
- #
88
- # @return [#debug]
89
- attr_accessor :logger
90
-
91
- # Defines the temporary folder to store downloaded files
92
- # (for API endpoints that have file response).
93
- # Default to use `Tempfile`.
94
- #
95
- # @return [String]
96
- attr_accessor :temp_folder_path
97
-
98
- # The time limit for HTTP request in seconds.
99
- # Default to 0 (never times out).
100
- attr_accessor :timeout
101
-
102
- # Set this to false to skip client side validation in the operation.
103
- # Default to true.
104
- # @return [true, false]
105
- attr_accessor :client_side_validation
106
-
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
+ module SnapTrade
12
+ class Configuration
13
+ # Defines url scheme
14
+ attr_accessor :scheme
15
+
16
+ # Defines url host
17
+ attr_accessor :host
18
+
19
+ # Defines url base path
20
+ attr_accessor :base_path
21
+
22
+ # Define server configuration index
23
+ attr_accessor :server_index
24
+
25
+ # Define server operation configuration index
26
+ attr_accessor :server_operation_index
27
+
28
+ # Default server variables
29
+ attr_accessor :server_variables
30
+
31
+ # Default server operation variables
32
+ attr_accessor :server_operation_variables
33
+
34
+ def client_id=(value)
35
+ @api_key['PartnerClientId'] = value
36
+ end
37
+
38
+ def signature=(value)
39
+ @api_key['PartnerSignature'] = value
40
+ end
41
+
42
+ def timestamp=(value)
43
+ @api_key['PartnerTimestamp'] = value
44
+ end
45
+
46
+ # client state configured through konfig.yaml
47
+ attr_accessor :consumer_key
48
+
49
+ # Defines API keys used with API Key authentications.
50
+ #
51
+ # @return [Hash] key: parameter name, value: parameter value (API key)
52
+ #
53
+ # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
54
+ # config.api_key['api_key'] = 'xxx'
55
+ attr_accessor :api_key
56
+
57
+ # Defines API key prefixes used with API Key authentications.
58
+ #
59
+ # @return [Hash] key: parameter name, value: API key prefix
60
+ #
61
+ # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
62
+ # config.api_key_prefix['api_key'] = 'Token'
63
+ attr_accessor :api_key_prefix
64
+
65
+ # Defines the username used with HTTP basic authentication.
66
+ #
67
+ # @return [String]
68
+ attr_accessor :username
69
+
70
+ # Defines the password used with HTTP basic authentication.
71
+ #
72
+ # @return [String]
73
+ attr_accessor :password
74
+
75
+ # Defines the access token (Bearer) used with OAuth2.
76
+ attr_accessor :access_token
77
+
78
+ # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
79
+ # details will be logged with `logger.debug` (see the `logger` attribute).
80
+ # Default to false.
81
+ #
82
+ # @return [true, false]
83
+ attr_accessor :debugging
84
+
85
+ # Defines the logger used for debugging.
86
+ # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
87
+ #
88
+ # @return [#debug]
89
+ attr_accessor :logger
90
+
91
+ # Defines the temporary folder to store downloaded files
92
+ # (for API endpoints that have file response).
93
+ # Default to use `Tempfile`.
94
+ #
95
+ # @return [String]
96
+ attr_accessor :temp_folder_path
97
+
98
+ # The time limit for HTTP request in seconds.
99
+ # Default to 0 (never times out).
100
+ attr_accessor :timeout
101
+
102
+ # Set this to false to skip client side validation in the operation.
103
+ # Default to true.
104
+ # @return [true, false]
105
+ attr_accessor :client_side_validation
106
+
107
107
  ### TLS/SSL setting
108
108
  # Set this to false to skip verifying SSL certificate when calling API from https server.
109
109
  # Default to true.
@@ -144,231 +144,231 @@ module SnapTrade
144
144
  # @see The params_encoder option of Faraday. Related source code:
145
145
  # https://github.com/lostisland/faraday/tree/main/lib/faraday/encoders
146
146
  attr_accessor :params_encoder
147
-
148
-
149
- attr_accessor :inject_format
150
-
151
- attr_accessor :force_ending_format
152
-
153
- def initialize
154
- @scheme = 'https'
155
- @host = 'api.snaptrade.com'
156
- @base_path = '/api/v1'
157
- @server_index = 0
158
- @server_operation_index = {}
159
- @server_variables = {}
160
- @server_operation_variables = {}
161
- @api_key = {}
162
- @api_key_prefix = {}
163
- @client_side_validation = true
164
- @ssl_verify = true
165
- @ssl_verify_mode = nil
166
- @ssl_ca_file = nil
167
- @ssl_client_cert = nil
168
- @ssl_client_key = nil
169
- @middlewares = Hash.new { |h, k| h[k] = [] }
170
- @timeout = 60
171
- # return data as binary instead of file
172
- @return_binary_data = false
173
- @params_encoder = nil
174
- @debugging = false
175
- @inject_format = false
176
- @force_ending_format = false
177
- @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
178
-
179
- yield(self) if block_given?
180
- end
181
-
182
- # The default Configuration object.
183
- def self.default
184
- @@default ||= Configuration.new
185
- end
186
-
187
- def configure
188
- yield(self) if block_given?
189
- end
190
-
191
- def scheme=(scheme)
192
- # remove :// from scheme
193
- @scheme = scheme.sub(/:\/\//, '')
194
- end
195
-
196
- def host=(host)
197
- # remove http(s):// and anything after a slash
198
- @host = host.sub(/https?:\/\//, '').split('/').first
199
-
200
- # try to set @scheme and @base_path if possible
201
- begin
202
- uri = URI.parse(host)
203
- @scheme = uri.scheme
204
- @base_path = uri.path
205
- rescue InvalidURIError
206
- end
207
-
208
- # unset server_index so host is used when getting request url (see ApiClient#build_request_url)
209
- @server_index = nil
210
- end
211
-
212
- def base_path=(base_path)
213
- # Add leading and trailing slashes to base_path
214
- @base_path = "/#{base_path}".gsub(/\/+/, '/')
215
- @base_path = '' if @base_path == '/'
216
- end
217
-
218
- # Returns base URL for specified operation based on server settings
219
- def base_url(operation = nil)
220
- index = server_operation_index.fetch(operation, server_index)
221
- return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
222
-
223
- server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
224
- end
225
-
226
- # Gets API key (with prefix if set).
227
- # @param [String] param_name the parameter name of API key auth
228
- def api_key_with_prefix(param_name, param_alias = nil)
229
- key = @api_key[param_name]
230
- key = @api_key.fetch(param_alias, key) unless param_alias.nil?
231
- if @api_key_prefix[param_name]
232
- "#{@api_key_prefix[param_name]} #{key}"
233
- else
234
- key
235
- end
236
- end
237
-
238
- # Gets Basic Auth token string
239
- def basic_auth_token
240
- 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
241
- end
242
-
243
- # Returns Auth Settings hash for api client.
244
- def auth_settings
245
- {
246
- 'PartnerClientId' =>
247
- {
248
- type: 'api_key',
249
- in: 'query',
250
- key: 'clientId',
251
- value: api_key_with_prefix('PartnerClientId')
252
- },
253
- 'PartnerSignature' =>
254
- {
255
- type: 'api_key',
256
- in: 'header',
257
- key: 'Signature',
258
- value: api_key_with_prefix('PartnerSignature')
259
- },
260
- 'PartnerTimestamp' =>
261
- {
262
- type: 'api_key',
263
- in: 'query',
264
- key: 'timestamp',
265
- value: api_key_with_prefix('PartnerTimestamp')
266
- },
267
- }
268
- end
269
-
270
- # Returns an array of Server setting
271
- def server_settings
272
- [
273
- {
274
- url: "https://api.snaptrade.com/api/v1",
275
- description: "SnapTrade Production API",
276
- }
277
- ]
278
- end
279
-
280
- def operation_server_settings
281
- {
282
- }
283
- end
284
-
285
- # Returns URL based on server settings
286
- #
287
- # @param index array index of the server settings
288
- # @param variables hash of variable and the corresponding value
289
- def server_url(index, variables = {}, servers = nil)
290
- servers = server_settings if servers == nil
291
-
292
- # check array index out of bound
293
- if (index < 0 || index >= servers.size)
294
- fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
295
- end
296
-
297
- server = servers[index]
298
- url = server[:url]
299
-
300
- return url unless server.key? :variables
301
-
302
- # go through variable and assign a value
303
- server[:variables].each do |name, variable|
304
- if variables.key?(name)
305
- if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
306
- url.gsub! "{" + name.to_s + "}", variables[name]
307
- else
308
- fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
309
- end
310
- else
311
- # use default value
312
- url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
313
- end
314
- end
315
-
316
- url
317
- end
318
-
319
- # Adds middleware to the stack
320
- def use(*middleware)
321
- set_faraday_middleware(:use, *middleware)
322
- end
323
-
324
- # Adds request middleware to the stack
325
- def request(*middleware)
326
- set_faraday_middleware(:request, *middleware)
327
- end
328
-
329
- # Adds response middleware to the stack
330
- def response(*middleware)
331
- set_faraday_middleware(:response, *middleware)
332
- end
333
-
334
- # Adds Faraday middleware setting information to the stack
335
- #
336
- # @example Use the `set_faraday_middleware` method to set middleware information
337
- # config.set_faraday_middleware(:request, :retry, max: 3, methods: [:get, :post], retry_statuses: [503])
338
- # config.set_faraday_middleware(:response, :logger, nil, { bodies: true, log_level: :debug })
339
- # config.set_faraday_middleware(:use, Faraday::HttpCache, store: Rails.cache, shared_cache: false)
340
- # config.set_faraday_middleware(:insert, 0, FaradayMiddleware::FollowRedirects, { standards_compliant: true, limit: 1 })
341
- # config.set_faraday_middleware(:swap, 0, Faraday::Response::Logger)
342
- # config.set_faraday_middleware(:delete, Faraday::Multipart::Middleware)
343
- #
344
- # @see https://github.com/lostisland/faraday/blob/v2.3.0/lib/faraday/rack_builder.rb#L92-L143
345
- def set_faraday_middleware(operation, key, *args, &block)
346
- unless [:request, :response, :use, :insert, :insert_before, :insert_after, :swap, :delete].include?(operation)
347
- fail ArgumentError, "Invalid faraday middleware operation #{operation}. Must be" \
348
- " :request, :response, :use, :insert, :insert_before, :insert_after, :swap or :delete."
349
- end
350
-
351
- @middlewares[operation] << [key, args, block]
352
- end
353
- ruby2_keywords(:set_faraday_middleware) if respond_to?(:ruby2_keywords, true)
354
-
355
- # Set up middleware on the connection
356
- def configure_middleware(connection)
357
- return if @middlewares.empty?
358
-
359
- [:request, :response, :use, :insert, :insert_before, :insert_after, :swap].each do |operation|
360
- next unless @middlewares.key?(operation)
361
-
362
- @middlewares[operation].each do |key, args, block|
363
- connection.builder.send(operation, key, *args, &block)
364
- end
365
- end
366
-
367
- if @middlewares.key?(:delete)
368
- @middlewares[:delete].each do |key, _args, _block|
369
- connection.builder.delete(key)
370
- end
371
- end
372
- end
373
- end
374
- end
147
+
148
+
149
+ attr_accessor :inject_format
150
+
151
+ attr_accessor :force_ending_format
152
+
153
+ def initialize
154
+ @scheme = 'https'
155
+ @host = 'api.snaptrade.com'
156
+ @base_path = '/api/v1'
157
+ @server_index = 0
158
+ @server_operation_index = {}
159
+ @server_variables = {}
160
+ @server_operation_variables = {}
161
+ @api_key = {}
162
+ @api_key_prefix = {}
163
+ @client_side_validation = true
164
+ @ssl_verify = true
165
+ @ssl_verify_mode = nil
166
+ @ssl_ca_file = nil
167
+ @ssl_client_cert = nil
168
+ @ssl_client_key = nil
169
+ @middlewares = Hash.new { |h, k| h[k] = [] }
170
+ @timeout = 60
171
+ # return data as binary instead of file
172
+ @return_binary_data = false
173
+ @params_encoder = nil
174
+ @debugging = false
175
+ @inject_format = false
176
+ @force_ending_format = false
177
+ @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
178
+
179
+ yield(self) if block_given?
180
+ end
181
+
182
+ # The default Configuration object.
183
+ def self.default
184
+ @@default ||= Configuration.new
185
+ end
186
+
187
+ def configure
188
+ yield(self) if block_given?
189
+ end
190
+
191
+ def scheme=(scheme)
192
+ # remove :// from scheme
193
+ @scheme = scheme.sub(/:\/\//, '')
194
+ end
195
+
196
+ def host=(host)
197
+ # remove http(s):// and anything after a slash
198
+ @host = host.sub(/https?:\/\//, '').split('/').first
199
+
200
+ # try to set @scheme and @base_path if possible
201
+ begin
202
+ uri = URI.parse(host)
203
+ @scheme = uri.scheme
204
+ @base_path = uri.path
205
+ rescue InvalidURIError
206
+ end
207
+
208
+ # unset server_index so host is used when getting request url (see ApiClient#build_request_url)
209
+ @server_index = nil
210
+ end
211
+
212
+ def base_path=(base_path)
213
+ # Add leading and trailing slashes to base_path
214
+ @base_path = "/#{base_path}".gsub(/\/+/, '/')
215
+ @base_path = '' if @base_path == '/'
216
+ end
217
+
218
+ # Returns base URL for specified operation based on server settings
219
+ def base_url(operation = nil)
220
+ index = server_operation_index.fetch(operation, server_index)
221
+ return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
222
+
223
+ server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
224
+ end
225
+
226
+ # Gets API key (with prefix if set).
227
+ # @param [String] param_name the parameter name of API key auth
228
+ def api_key_with_prefix(param_name, param_alias = nil)
229
+ key = @api_key[param_name]
230
+ key = @api_key.fetch(param_alias, key) unless param_alias.nil?
231
+ if @api_key_prefix[param_name]
232
+ "#{@api_key_prefix[param_name]} #{key}"
233
+ else
234
+ key
235
+ end
236
+ end
237
+
238
+ # Gets Basic Auth token string
239
+ def basic_auth_token
240
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
241
+ end
242
+
243
+ # Returns Auth Settings hash for api client.
244
+ def auth_settings
245
+ {
246
+ 'PartnerClientId' =>
247
+ {
248
+ type: 'api_key',
249
+ in: 'query',
250
+ key: 'clientId',
251
+ value: api_key_with_prefix('PartnerClientId')
252
+ },
253
+ 'PartnerSignature' =>
254
+ {
255
+ type: 'api_key',
256
+ in: 'header',
257
+ key: 'Signature',
258
+ value: api_key_with_prefix('PartnerSignature')
259
+ },
260
+ 'PartnerTimestamp' =>
261
+ {
262
+ type: 'api_key',
263
+ in: 'query',
264
+ key: 'timestamp',
265
+ value: api_key_with_prefix('PartnerTimestamp')
266
+ },
267
+ }
268
+ end
269
+
270
+ # Returns an array of Server setting
271
+ def server_settings
272
+ [
273
+ {
274
+ url: "https://api.snaptrade.com/api/v1",
275
+ description: "SnapTrade Production API",
276
+ }
277
+ ]
278
+ end
279
+
280
+ def operation_server_settings
281
+ {
282
+ }
283
+ end
284
+
285
+ # Returns URL based on server settings
286
+ #
287
+ # @param index array index of the server settings
288
+ # @param variables hash of variable and the corresponding value
289
+ def server_url(index, variables = {}, servers = nil)
290
+ servers = server_settings if servers == nil
291
+
292
+ # check array index out of bound
293
+ if (index < 0 || index >= servers.size)
294
+ fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
295
+ end
296
+
297
+ server = servers[index]
298
+ url = server[:url]
299
+
300
+ return url unless server.key? :variables
301
+
302
+ # go through variable and assign a value
303
+ server[:variables].each do |name, variable|
304
+ if variables.key?(name)
305
+ if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
306
+ url.gsub! "{" + name.to_s + "}", variables[name]
307
+ else
308
+ fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
309
+ end
310
+ else
311
+ # use default value
312
+ url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
313
+ end
314
+ end
315
+
316
+ url
317
+ end
318
+
319
+ # Adds middleware to the stack
320
+ def use(*middleware)
321
+ set_faraday_middleware(:use, *middleware)
322
+ end
323
+
324
+ # Adds request middleware to the stack
325
+ def request(*middleware)
326
+ set_faraday_middleware(:request, *middleware)
327
+ end
328
+
329
+ # Adds response middleware to the stack
330
+ def response(*middleware)
331
+ set_faraday_middleware(:response, *middleware)
332
+ end
333
+
334
+ # Adds Faraday middleware setting information to the stack
335
+ #
336
+ # @example Use the `set_faraday_middleware` method to set middleware information
337
+ # config.set_faraday_middleware(:request, :retry, max: 3, methods: [:get, :post], retry_statuses: [503])
338
+ # config.set_faraday_middleware(:response, :logger, nil, { bodies: true, log_level: :debug })
339
+ # config.set_faraday_middleware(:use, Faraday::HttpCache, store: Rails.cache, shared_cache: false)
340
+ # config.set_faraday_middleware(:insert, 0, FaradayMiddleware::FollowRedirects, { standards_compliant: true, limit: 1 })
341
+ # config.set_faraday_middleware(:swap, 0, Faraday::Response::Logger)
342
+ # config.set_faraday_middleware(:delete, Faraday::Multipart::Middleware)
343
+ #
344
+ # @see https://github.com/lostisland/faraday/blob/v2.3.0/lib/faraday/rack_builder.rb#L92-L143
345
+ def set_faraday_middleware(operation, key, *args, &block)
346
+ unless [:request, :response, :use, :insert, :insert_before, :insert_after, :swap, :delete].include?(operation)
347
+ fail ArgumentError, "Invalid faraday middleware operation #{operation}. Must be" \
348
+ " :request, :response, :use, :insert, :insert_before, :insert_after, :swap or :delete."
349
+ end
350
+
351
+ @middlewares[operation] << [key, args, block]
352
+ end
353
+ ruby2_keywords(:set_faraday_middleware) if respond_to?(:ruby2_keywords, true)
354
+
355
+ # Set up middleware on the connection
356
+ def configure_middleware(connection)
357
+ return if @middlewares.empty?
358
+
359
+ [:request, :response, :use, :insert, :insert_before, :insert_after, :swap].each do |operation|
360
+ next unless @middlewares.key?(operation)
361
+
362
+ @middlewares[operation].each do |key, args, block|
363
+ connection.builder.send(operation, key, *args, &block)
364
+ end
365
+ end
366
+
367
+ if @middlewares.key?(:delete)
368
+ @middlewares[:delete].each do |key, _args, _block|
369
+ connection.builder.delete(key)
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end