snaptrade-python-sdk 10.9.0__py3-none-any.whl → 11.0.152__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (920) hide show
  1. snaptrade_client/__init__.py +2 -2
  2. snaptrade_client/api_client.py +348 -97
  3. snaptrade_client/api_response.py +22 -2
  4. snaptrade_client/apis/path_to_api.py +102 -132
  5. snaptrade_client/apis/paths/accounts_account_id_activities.py +7 -0
  6. snaptrade_client/apis/paths/accounts_account_id_orders_details.py +7 -0
  7. snaptrade_client/apis/paths/accounts_account_id_orders_v2.py +7 -0
  8. snaptrade_client/apis/paths/accounts_account_id_recent_orders.py +7 -0
  9. snaptrade_client/apis/paths/accounts_account_id_recent_orders_v2.py +7 -0
  10. snaptrade_client/apis/paths/accounts_account_id_return_rates.py +7 -0
  11. snaptrade_client/apis/paths/accounts_account_id_trading_bracket.py +7 -0
  12. snaptrade_client/apis/paths/accounts_account_id_trading_cancel.py +7 -0
  13. snaptrade_client/apis/paths/accounts_account_id_trading_crypto.py +7 -0
  14. snaptrade_client/apis/paths/accounts_account_id_trading_crypto_preview.py +7 -0
  15. snaptrade_client/apis/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs.py +7 -0
  16. snaptrade_client/apis/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs_instrument_symbol_quote.py +7 -0
  17. snaptrade_client/apis/paths/accounts_account_id_trading_options.py +7 -0
  18. snaptrade_client/apis/paths/accounts_account_id_trading_replace.py +7 -0
  19. snaptrade_client/apis/paths/authorizations_authorization_id_disable.py +7 -0
  20. snaptrade_client/apis/paths/authorizations_authorization_id_refresh.py +7 -0
  21. snaptrade_client/apis/paths/authorizations_authorization_id_return_rates.py +7 -0
  22. snaptrade_client/apis/paths/brokerages_slug_instruments.py +7 -0
  23. snaptrade_client/apis/paths/snap_trade_reset_user_secret.py +7 -0
  24. snaptrade_client/apis/paths/symbols_query.py +7 -0
  25. snaptrade_client/apis/tag_to_api.py +6 -12
  26. snaptrade_client/apis/tags/__init__.py +2 -4
  27. snaptrade_client/apis/tags/account_information_api.py +2 -32
  28. snaptrade_client/apis/tags/account_information_api_generated.py +43 -0
  29. snaptrade_client/apis/tags/api_status_api.py +2 -18
  30. snaptrade_client/apis/tags/{api_disclaimer_api.py → api_status_api_generated.py} +4 -5
  31. snaptrade_client/apis/tags/authentication_api.py +2 -26
  32. snaptrade_client/apis/tags/authentication_api_generated.py +29 -0
  33. snaptrade_client/apis/tags/connections_api.py +2 -24
  34. snaptrade_client/apis/tags/connections_api_generated.py +33 -0
  35. snaptrade_client/apis/tags/experimental_endpoints_api.py +6 -0
  36. snaptrade_client/apis/tags/experimental_endpoints_api_generated.py +23 -0
  37. snaptrade_client/apis/tags/options_api.py +2 -26
  38. snaptrade_client/apis/tags/options_api_generated.py +23 -0
  39. snaptrade_client/apis/tags/reference_data_api.py +2 -38
  40. snaptrade_client/apis/tags/reference_data_api_generated.py +43 -0
  41. snaptrade_client/apis/tags/trading_api.py +2 -36
  42. snaptrade_client/apis/tags/trading_api_generated.py +45 -0
  43. snaptrade_client/apis/tags/transactions_and_reporting_api.py +2 -20
  44. snaptrade_client/apis/tags/{error_logs_api.py → transactions_and_reporting_api_generated.py} +6 -5
  45. snaptrade_client/client.py +21 -18
  46. snaptrade_client/client.pyi +48 -0
  47. snaptrade_client/client_custom.py +29 -0
  48. snaptrade_client/configuration.py +40 -40
  49. snaptrade_client/exceptions.py +65 -50
  50. snaptrade_client/model/account.py +209 -71
  51. snaptrade_client/model/account.pyi +209 -71
  52. snaptrade_client/model/account_balance.py +140 -0
  53. snaptrade_client/model/account_balance.pyi +140 -0
  54. snaptrade_client/model/{target_asset_list.py → account_cash_restrictions.py} +7 -12
  55. snaptrade_client/model/{target_asset_list.pyi → account_cash_restrictions.pyi} +7 -12
  56. snaptrade_client/model/account_holdings.py +17 -15
  57. snaptrade_client/model/account_holdings.pyi +17 -15
  58. snaptrade_client/model/account_holdings_account.py +99 -23
  59. snaptrade_client/model/account_holdings_account.pyi +99 -23
  60. snaptrade_client/model/{signature.py → account_id.py} +2 -2
  61. snaptrade_client/model/{signature.pyi → account_id.pyi} +2 -2
  62. snaptrade_client/model/account_ids.py +1 -1
  63. snaptrade_client/model/account_ids.pyi +1 -1
  64. snaptrade_client/model/account_meta.py +58 -0
  65. snaptrade_client/model/account_meta.pyi +58 -0
  66. snaptrade_client/model/account_order_record.py +455 -64
  67. snaptrade_client/model/account_order_record.pyi +455 -64
  68. snaptrade_client/model/account_order_record_leg.py +252 -0
  69. snaptrade_client/model/account_order_record_leg.pyi +252 -0
  70. snaptrade_client/model/{brokerage_symbol.py → account_order_record_leg_instrument.py} +34 -43
  71. snaptrade_client/model/{brokerage_symbol.pyi → account_order_record_leg_instrument.pyi} +34 -43
  72. snaptrade_client/model/account_order_record_status.py +21 -1
  73. snaptrade_client/model/account_order_record_status.pyi +21 -1
  74. snaptrade_client/model/account_order_record_status_v2.py +90 -0
  75. snaptrade_client/model/account_order_record_status_v2.pyi +75 -0
  76. snaptrade_client/model/account_order_record_status_v2_nullable.py +105 -0
  77. snaptrade_client/model/account_order_record_status_v2_nullable.pyi +105 -0
  78. snaptrade_client/model/account_order_record_v2.py +309 -0
  79. snaptrade_client/model/account_order_record_v2.pyi +309 -0
  80. snaptrade_client/model/account_orders_v2_response.py +110 -0
  81. snaptrade_client/model/account_orders_v2_response.pyi +110 -0
  82. snaptrade_client/model/account_simple.py +2 -2
  83. snaptrade_client/model/account_simple.pyi +2 -2
  84. snaptrade_client/model/account_sync_status.py +18 -4
  85. snaptrade_client/model/account_sync_status.pyi +18 -4
  86. snaptrade_client/model/account_universal_activity.py +354 -0
  87. snaptrade_client/model/account_universal_activity.pyi +354 -0
  88. snaptrade_client/model/action.py +2 -27
  89. snaptrade_client/model/action.pyi +2 -20
  90. snaptrade_client/model/action_strict.py +50 -0
  91. snaptrade_client/model/{percent.pyi → action_strict.pyi} +14 -4
  92. snaptrade_client/model/{consumer_key.py → action_strict_v2.py} +2 -2
  93. snaptrade_client/model/{consumer_key.pyi → action_strict_v2.pyi} +2 -2
  94. snaptrade_client/model/action_strict_with_options.py +70 -0
  95. snaptrade_client/model/action_strict_with_options.pyi +59 -0
  96. snaptrade_client/model/balance.py +72 -11
  97. snaptrade_client/model/balance.pyi +72 -11
  98. snaptrade_client/model/brokerage.py +69 -68
  99. snaptrade_client/model/brokerage.pyi +69 -68
  100. snaptrade_client/model/brokerage_auth_id.py +25 -0
  101. snaptrade_client/model/brokerage_auth_id.pyi +25 -0
  102. snaptrade_client/model/brokerage_auth_ids.py +1 -1
  103. snaptrade_client/model/brokerage_auth_ids.pyi +1 -1
  104. snaptrade_client/model/brokerage_authorization.py +46 -48
  105. snaptrade_client/model/brokerage_authorization.pyi +46 -48
  106. snaptrade_client/model/{model_asset_class_target.py → brokerage_authorization_disabled_confirmation.py} +13 -16
  107. snaptrade_client/model/{model_asset_class_target.pyi → brokerage_authorization_disabled_confirmation.pyi} +13 -16
  108. snaptrade_client/model/brokerage_authorization_meta.py +58 -0
  109. snaptrade_client/model/brokerage_authorization_meta.pyi +58 -0
  110. snaptrade_client/model/brokerage_authorization_refresh_confirmation.py +78 -0
  111. snaptrade_client/model/brokerage_authorization_refresh_confirmation.pyi +78 -0
  112. snaptrade_client/model/brokerage_authorization_type_read_only.py +10 -73
  113. snaptrade_client/model/brokerage_authorization_type_read_only.pyi +10 -73
  114. snaptrade_client/model/{portfolio_group.py → brokerage_authorization_type_read_only_brokerage.py} +15 -5
  115. snaptrade_client/model/{model_asset_class.py → brokerage_authorization_type_read_only_brokerage.pyi} +15 -5
  116. snaptrade_client/model/brokerage_exchanges.py +52 -0
  117. snaptrade_client/model/brokerage_exchanges.pyi +52 -0
  118. snaptrade_client/model/brokerage_id.py +25 -0
  119. snaptrade_client/model/brokerage_id.pyi +25 -0
  120. snaptrade_client/model/brokerage_instrument.py +202 -0
  121. snaptrade_client/model/brokerage_instrument.pyi +202 -0
  122. snaptrade_client/model/{model_portfolio_asset_class.py → brokerage_instruments_response.py} +31 -28
  123. snaptrade_client/model/brokerage_instruments_response.pyi +103 -0
  124. snaptrade_client/model/brokerage_order_id.py +25 -0
  125. snaptrade_client/model/brokerage_order_id.pyi +25 -0
  126. snaptrade_client/model/brokerage_symbol_id.py +25 -0
  127. snaptrade_client/model/brokerage_symbol_id.pyi +25 -0
  128. snaptrade_client/model/brokerage_type.py +2 -2
  129. snaptrade_client/model/brokerage_type.pyi +2 -2
  130. snaptrade_client/model/cancel_order_response.py +96 -0
  131. snaptrade_client/model/cancel_order_response.pyi +96 -0
  132. snaptrade_client/model/cancel_order_response_raw_response.py +62 -0
  133. snaptrade_client/model/cancel_order_response_raw_response.pyi +62 -0
  134. snaptrade_client/model/child_brokerage_order_ids.py +86 -0
  135. snaptrade_client/model/child_brokerage_order_ids.pyi +86 -0
  136. snaptrade_client/model/child_brokerage_order_ids_nullable.py +90 -0
  137. snaptrade_client/model/child_brokerage_order_ids_nullable.pyi +90 -0
  138. snaptrade_client/model/client_id.py +1 -1
  139. snaptrade_client/model/client_id.pyi +1 -1
  140. snaptrade_client/model/crypto_order_form.py +249 -0
  141. snaptrade_client/model/crypto_order_form.pyi +229 -0
  142. snaptrade_client/model/{excluded_asset.py → crypto_order_preview.py} +14 -14
  143. snaptrade_client/model/{excluded_asset.pyi → crypto_order_preview.pyi} +14 -14
  144. snaptrade_client/model/{redirect_tokenand_pin.py → crypto_order_preview_estimated_fee.py} +25 -18
  145. snaptrade_client/model/{redirect_tokenand_pin.pyi → crypto_order_preview_estimated_fee.pyi} +25 -18
  146. snaptrade_client/model/{model_portfolio_security.py → crypto_trading_instrument.py} +36 -23
  147. snaptrade_client/model/{brokerage_authorization_type.py → crypto_trading_instrument.pyi} +28 -18
  148. snaptrade_client/model/cryptocurrency_base_symbol.py +25 -0
  149. snaptrade_client/model/cryptocurrency_base_symbol.pyi +25 -0
  150. snaptrade_client/model/cryptocurrency_increment.py +25 -0
  151. snaptrade_client/model/cryptocurrency_increment.pyi +25 -0
  152. snaptrade_client/model/{stop_price.pyi → cryptocurrency_increment_nullable.py} +8 -7
  153. snaptrade_client/model/{stop_price.py → cryptocurrency_increment_nullable.pyi} +8 -7
  154. snaptrade_client/model/cryptocurrency_pair.py +120 -0
  155. snaptrade_client/model/cryptocurrency_pair.pyi +120 -0
  156. snaptrade_client/model/{snap_trade_api_disclaimer_accept_status.pyi → cryptocurrency_pair_quote.py} +40 -15
  157. snaptrade_client/model/{snap_trade_api_disclaimer_accept_status.py → cryptocurrency_pair_quote.pyi} +40 -15
  158. snaptrade_client/model/cryptocurrency_pair_symbol.py +25 -0
  159. snaptrade_client/model/cryptocurrency_pair_symbol.pyi +25 -0
  160. snaptrade_client/model/cryptocurrency_quote_symbol.py +25 -0
  161. snaptrade_client/model/cryptocurrency_quote_symbol.pyi +25 -0
  162. snaptrade_client/model/cryptocurrency_symbol.py +25 -0
  163. snaptrade_client/model/cryptocurrency_symbol.pyi +25 -0
  164. snaptrade_client/model/currency.py +2 -2
  165. snaptrade_client/model/currency.pyi +2 -2
  166. snaptrade_client/model/currency_id.py +25 -0
  167. snaptrade_client/model/currency_id.pyi +25 -0
  168. snaptrade_client/model/{model_asset_class.pyi → currency_nullable.py} +23 -7
  169. snaptrade_client/model/{portfolio_group.pyi → currency_nullable.pyi} +23 -7
  170. snaptrade_client/model/delete_user_response.py +13 -5
  171. snaptrade_client/model/delete_user_response.pyi +13 -5
  172. snaptrade_client/model/dividend_at_date.py +1 -1
  173. snaptrade_client/model/dividend_at_date.pyi +1 -1
  174. snaptrade_client/model/encrypted_response.py +11 -73
  175. snaptrade_client/model/encrypted_response.pyi +11 -73
  176. snaptrade_client/model/encrypted_response_encrypted_message_data.py +96 -0
  177. snaptrade_client/model/encrypted_response_encrypted_message_data.pyi +96 -0
  178. snaptrade_client/model/exchange.py +2 -2
  179. snaptrade_client/model/exchange.pyi +2 -2
  180. snaptrade_client/model/exchange_id.py +25 -0
  181. snaptrade_client/model/exchange_id.pyi +25 -0
  182. snaptrade_client/model/exchange_rate_pairs.py +1 -1
  183. snaptrade_client/model/exchange_rate_pairs.pyi +1 -1
  184. snaptrade_client/model/figi_instrument.py +126 -0
  185. snaptrade_client/model/figi_instrument.pyi +126 -0
  186. snaptrade_client/model/figi_instrument_nullable.py +130 -0
  187. snaptrade_client/model/figi_instrument_nullable.pyi +130 -0
  188. snaptrade_client/model/holdings_status.py +99 -0
  189. snaptrade_client/model/holdings_status.pyi +99 -0
  190. snaptrade_client/model/holdings_sync_status_date.py +54 -0
  191. snaptrade_client/model/holdings_sync_status_date.pyi +54 -0
  192. snaptrade_client/model/holdings_sync_status_date_nullable.py +54 -0
  193. snaptrade_client/model/holdings_sync_status_date_nullable.pyi +54 -0
  194. snaptrade_client/model/id.py +1 -1
  195. snaptrade_client/model/id.pyi +1 -1
  196. snaptrade_client/model/login_redirect_uri.py +3 -3
  197. snaptrade_client/model/login_redirect_uri.pyi +3 -3
  198. snaptrade_client/model/manual_trade.py +40 -36
  199. snaptrade_client/model/manual_trade.pyi +40 -36
  200. snaptrade_client/model/manual_trade_and_impact.py +6 -7
  201. snaptrade_client/model/manual_trade_and_impact.pyi +6 -7
  202. snaptrade_client/model/manual_trade_balance.py +31 -16
  203. snaptrade_client/model/manual_trade_balance.pyi +31 -16
  204. snaptrade_client/model/manual_trade_form.py +111 -46
  205. snaptrade_client/model/manual_trade_form.pyi +111 -46
  206. snaptrade_client/model/manual_trade_form_bracket.py +237 -0
  207. snaptrade_client/model/manual_trade_form_bracket.pyi +237 -0
  208. snaptrade_client/model/manual_trade_form_with_options.py +308 -0
  209. snaptrade_client/model/manual_trade_form_with_options.pyi +308 -0
  210. snaptrade_client/model/{trade_impact.py → manual_trade_impact.py} +80 -34
  211. snaptrade_client/model/{trade_impact.pyi → manual_trade_impact.pyi} +80 -34
  212. snaptrade_client/model/manual_trade_replace_form.py +215 -0
  213. snaptrade_client/model/manual_trade_replace_form.pyi +215 -0
  214. snaptrade_client/model/manual_trade_symbol.py +14 -14
  215. snaptrade_client/model/manual_trade_symbol.pyi +14 -14
  216. snaptrade_client/model/mleg_action_strict.py +70 -0
  217. snaptrade_client/model/mleg_action_strict.pyi +59 -0
  218. snaptrade_client/model/mleg_instrument_type.py +50 -0
  219. snaptrade_client/model/{percent.py → mleg_instrument_type.pyi} +14 -8
  220. snaptrade_client/model/mleg_leg.py +114 -0
  221. snaptrade_client/model/mleg_leg.pyi +114 -0
  222. snaptrade_client/model/mleg_order_response.py +120 -0
  223. snaptrade_client/model/mleg_order_response.pyi +120 -0
  224. snaptrade_client/model/mleg_order_type_strict.py +60 -0
  225. snaptrade_client/model/mleg_order_type_strict.pyi +51 -0
  226. snaptrade_client/model/mleg_price_effect_strict.py +55 -0
  227. snaptrade_client/model/mleg_price_effect_strict.pyi +47 -0
  228. snaptrade_client/model/mleg_price_effect_strict_nullable.py +70 -0
  229. snaptrade_client/model/mleg_price_effect_strict_nullable.pyi +70 -0
  230. snaptrade_client/model/mleg_trade_form.py +223 -0
  231. snaptrade_client/model/mleg_trade_form.pyi +223 -0
  232. snaptrade_client/model/{model_portfolio_security.pyi → mleg_trading_instrument.py} +24 -22
  233. snaptrade_client/model/mleg_trading_instrument.pyi +98 -0
  234. snaptrade_client/model/model400_failed_request_response.py +1 -1
  235. snaptrade_client/model/model400_failed_request_response.pyi +1 -1
  236. snaptrade_client/model/model401_failed_request_response.py +1 -1
  237. snaptrade_client/model/model401_failed_request_response.pyi +1 -1
  238. snaptrade_client/model/model402_brokerage_auth_already_disabled_exception.py +88 -0
  239. snaptrade_client/model/model402_brokerage_auth_already_disabled_exception.pyi +88 -0
  240. snaptrade_client/model/model402_brokerage_auth_disabled_response.py +88 -0
  241. snaptrade_client/model/model402_brokerage_auth_disabled_response.pyi +88 -0
  242. snaptrade_client/model/model403_failed_request_response.py +1 -1
  243. snaptrade_client/model/model403_failed_request_response.pyi +1 -1
  244. snaptrade_client/model/model403_feature_not_enabled_response.py +88 -0
  245. snaptrade_client/model/model403_feature_not_enabled_response.pyi +88 -0
  246. snaptrade_client/model/model404_failed_request_response.py +1 -1
  247. snaptrade_client/model/model404_failed_request_response.pyi +1 -1
  248. snaptrade_client/model/model425_failed_request_response.py +88 -0
  249. snaptrade_client/model/model425_failed_request_response.pyi +88 -0
  250. snaptrade_client/model/model500_unexpected_exception_response.py +98 -0
  251. snaptrade_client/model/model500_unexpected_exception_response.pyi +98 -0
  252. snaptrade_client/model/monthly_dividends.py +1 -1
  253. snaptrade_client/model/monthly_dividends.pyi +1 -1
  254. snaptrade_client/model/net_contributions.py +1 -1
  255. snaptrade_client/model/net_contributions.pyi +1 -1
  256. snaptrade_client/model/net_dividend.py +1 -1
  257. snaptrade_client/model/net_dividend.pyi +1 -1
  258. snaptrade_client/model/notional_value.py +68 -0
  259. snaptrade_client/model/notional_value.pyi +68 -0
  260. snaptrade_client/model/notional_value_nullable.py +68 -0
  261. snaptrade_client/model/notional_value_nullable.pyi +68 -0
  262. snaptrade_client/model/{model_portfolio.pyi → option_brokerage_symbol.py} +26 -36
  263. snaptrade_client/model/option_brokerage_symbol.pyi +103 -0
  264. snaptrade_client/model/option_chain.py +8 -343
  265. snaptrade_client/model/option_chain.pyi +8 -343
  266. snaptrade_client/model/option_chain_item.py +121 -0
  267. snaptrade_client/model/option_chain_item.pyi +121 -0
  268. snaptrade_client/model/option_chain_item_chain_per_root.py +55 -0
  269. snaptrade_client/model/option_chain_item_chain_per_root.pyi +55 -0
  270. snaptrade_client/model/option_chain_item_chain_per_root_item.py +101 -0
  271. snaptrade_client/model/option_chain_item_chain_per_root_item.pyi +101 -0
  272. snaptrade_client/model/option_chain_item_chain_per_root_item_chain_per_strike_price.py +55 -0
  273. snaptrade_client/model/option_chain_item_chain_per_root_item_chain_per_strike_price.pyi +55 -0
  274. snaptrade_client/model/option_chain_item_chain_per_root_item_chain_per_strike_price_item.py +168 -0
  275. snaptrade_client/model/option_chain_item_chain_per_root_item_chain_per_strike_price_item.pyi +168 -0
  276. snaptrade_client/model/option_leg.py +1 -1
  277. snaptrade_client/model/option_leg.pyi +1 -1
  278. snaptrade_client/model/option_strategy.py +9 -107
  279. snaptrade_client/model/option_strategy.pyi +9 -107
  280. snaptrade_client/model/option_strategy_legs.py +130 -0
  281. snaptrade_client/model/option_strategy_legs.pyi +130 -0
  282. snaptrade_client/model/option_symbol_id.py +25 -0
  283. snaptrade_client/model/option_symbol_id.pyi +25 -0
  284. snaptrade_client/model/options_position.py +43 -44
  285. snaptrade_client/model/options_position.pyi +43 -44
  286. snaptrade_client/model/options_symbol.py +66 -71
  287. snaptrade_client/model/options_symbol.pyi +59 -71
  288. snaptrade_client/model/options_symbol_nullable.py +170 -0
  289. snaptrade_client/model/options_symbol_nullable.pyi +163 -0
  290. snaptrade_client/model/order_type.py +16 -27
  291. snaptrade_client/model/order_type.pyi +18 -20
  292. snaptrade_client/model/order_type_strict.py +64 -0
  293. snaptrade_client/model/order_type_strict.pyi +55 -0
  294. snaptrade_client/model/{model_portfolio_asset_class.pyi → order_updated_response.py} +24 -24
  295. snaptrade_client/model/order_updated_response.pyi +96 -0
  296. snaptrade_client/model/paginated_universal_activity.py +119 -0
  297. snaptrade_client/model/paginated_universal_activity.pyi +119 -0
  298. snaptrade_client/model/pagination_details.py +98 -0
  299. snaptrade_client/model/pagination_details.pyi +98 -0
  300. snaptrade_client/model/partner_data.py +37 -37
  301. snaptrade_client/model/partner_data.pyi +37 -37
  302. snaptrade_client/model/past_value.py +1 -1
  303. snaptrade_client/model/past_value.pyi +1 -1
  304. snaptrade_client/model/performance_custom.py +9 -46
  305. snaptrade_client/model/performance_custom.pyi +9 -46
  306. snaptrade_client/model/performance_custom_bad_tickers.py +71 -0
  307. snaptrade_client/model/performance_custom_bad_tickers.pyi +71 -0
  308. snaptrade_client/model/portfolio_group_id.py +25 -0
  309. snaptrade_client/model/portfolio_group_id.pyi +25 -0
  310. snaptrade_client/model/position.py +88 -13
  311. snaptrade_client/model/position.pyi +88 -13
  312. snaptrade_client/model/position_symbol.py +15 -15
  313. snaptrade_client/model/position_symbol.pyi +15 -15
  314. snaptrade_client/model/price.py +26 -2
  315. snaptrade_client/model/price.pyi +26 -2
  316. snaptrade_client/model/rate_of_return_object.py +133 -0
  317. snaptrade_client/model/rate_of_return_object.pyi +123 -0
  318. snaptrade_client/model/rate_of_return_response.py +105 -0
  319. snaptrade_client/model/rate_of_return_response.pyi +105 -0
  320. snaptrade_client/model/{calculated_trade.py → recent_orders_response.py} +18 -28
  321. snaptrade_client/model/{calculated_trade.pyi → recent_orders_response.pyi} +18 -28
  322. snaptrade_client/model/reporting_date.py +1 -1
  323. snaptrade_client/model/reporting_date.pyi +1 -1
  324. snaptrade_client/model/reporting_frequency.py +1 -1
  325. snaptrade_client/model/reporting_frequency.pyi +1 -1
  326. snaptrade_client/model/security_type.py +2 -2
  327. snaptrade_client/model/security_type.pyi +2 -2
  328. snaptrade_client/model/security_type_id.py +25 -0
  329. snaptrade_client/model/security_type_id.pyi +25 -0
  330. snaptrade_client/model/session_event.py +47 -7
  331. snaptrade_client/model/session_event.pyi +37 -5
  332. snaptrade_client/model/simple_order_form.py +248 -0
  333. snaptrade_client/model/simple_order_form.pyi +228 -0
  334. snaptrade_client/model/snap_trade_holdings_account.py +9 -33
  335. snaptrade_client/model/snap_trade_holdings_account.pyi +9 -33
  336. snaptrade_client/model/snap_trade_holdings_account_meta.py +56 -0
  337. snaptrade_client/model/snap_trade_holdings_account_meta.pyi +56 -0
  338. snaptrade_client/model/snap_trade_holdings_total_value.py +47 -6
  339. snaptrade_client/model/snap_trade_holdings_total_value.pyi +47 -6
  340. snaptrade_client/model/snap_trade_login_user_request_body.py +63 -3
  341. snaptrade_client/model/snap_trade_login_user_request_body.pyi +54 -3
  342. snaptrade_client/model/snap_trade_register_user_request_body.py +10 -15
  343. snaptrade_client/model/snap_trade_register_user_request_body.pyi +10 -15
  344. snaptrade_client/model/status.py +1 -1
  345. snaptrade_client/model/status.pyi +1 -1
  346. snaptrade_client/model/{portfolio_group_position.py → stop_loss.py} +22 -37
  347. snaptrade_client/model/{portfolio_group_position.pyi → stop_loss.pyi} +22 -37
  348. snaptrade_client/model/strategy_order_record.py +25 -64
  349. snaptrade_client/model/strategy_order_record.pyi +25 -48
  350. snaptrade_client/model/strategy_quotes.py +31 -105
  351. snaptrade_client/model/strategy_quotes.pyi +31 -105
  352. snaptrade_client/model/strategy_quotes_greek.py +116 -0
  353. snaptrade_client/model/strategy_quotes_greek.pyi +116 -0
  354. snaptrade_client/model/sub_period_return_rate.py +1 -1
  355. snaptrade_client/model/sub_period_return_rate.pyi +1 -1
  356. snaptrade_client/model/symbol.py +150 -24
  357. snaptrade_client/model/symbol.pyi +150 -24
  358. snaptrade_client/model/symbol_nullable.py +281 -0
  359. snaptrade_client/model/symbol_nullable.pyi +281 -0
  360. snaptrade_client/model/symbol_query.py +1 -3
  361. snaptrade_client/model/symbol_query.pyi +1 -3
  362. snaptrade_client/model/symbols_quotes.py +111 -87
  363. snaptrade_client/model/symbols_quotes.pyi +111 -87
  364. snaptrade_client/model/sync_status_date.py +1 -1
  365. snaptrade_client/model/sync_status_date.pyi +1 -1
  366. snaptrade_client/model/sync_status_date_nullable.py +54 -0
  367. snaptrade_client/model/sync_status_date_nullable.pyi +54 -0
  368. snaptrade_client/model/{jwt.py → take_profit.py} +12 -12
  369. snaptrade_client/model/{jwt.pyi → take_profit.pyi} +12 -12
  370. snaptrade_client/model/time.py +1 -1
  371. snaptrade_client/model/time.pyi +1 -1
  372. snaptrade_client/model/time_in_force.py +2 -36
  373. snaptrade_client/model/time_in_force.pyi +2 -28
  374. snaptrade_client/model/time_in_force_strict.py +65 -0
  375. snaptrade_client/model/time_in_force_strict.pyi +56 -0
  376. snaptrade_client/model/{email.py → trade_id.py} +2 -2
  377. snaptrade_client/model/{email.pyi → trade_id.pyi} +2 -2
  378. snaptrade_client/model/trading_instrument.py +123 -0
  379. snaptrade_client/model/{brokerage_authorization_type.pyi → trading_instrument.pyi} +36 -11
  380. snaptrade_client/model/trading_session.py +53 -0
  381. snaptrade_client/model/trading_session.pyi +46 -0
  382. snaptrade_client/model/transactions_status.py +59 -9
  383. snaptrade_client/model/transactions_status.pyi +59 -9
  384. snaptrade_client/model/underlying_symbol.py +172 -23
  385. snaptrade_client/model/underlying_symbol.pyi +172 -23
  386. snaptrade_client/model/units.py +1 -1
  387. snaptrade_client/model/units.pyi +1 -1
  388. snaptrade_client/model/{cash.py → units_nullable.py} +4 -4
  389. snaptrade_client/model/{cash.pyi → units_nullable.pyi} +4 -4
  390. snaptrade_client/model/universal_activity.py +168 -73
  391. snaptrade_client/model/universal_activity.pyi +168 -73
  392. snaptrade_client/model/universal_symbol.py +171 -50
  393. snaptrade_client/model/universal_symbol.pyi +171 -50
  394. snaptrade_client/model/universal_symbol_id.py +25 -0
  395. snaptrade_client/model/universal_symbol_id.pyi +25 -0
  396. snaptrade_client/model/universal_symbol_id_nullable.py +54 -0
  397. snaptrade_client/model/universal_symbol_id_nullable.pyi +54 -0
  398. snaptrade_client/model/us_exchange.py +1 -1
  399. snaptrade_client/model/us_exchange.pyi +1 -1
  400. snaptrade_client/model/user_i_dand_secret.py +8 -9
  401. snaptrade_client/model/user_i_dand_secret.pyi +8 -9
  402. snaptrade_client/model/user_id.py +1 -1
  403. snaptrade_client/model/user_id.pyi +1 -1
  404. snaptrade_client/model/user_list.py +2 -2
  405. snaptrade_client/model/user_list.pyi +2 -2
  406. snaptrade_client/model/user_secret.py +1 -1
  407. snaptrade_client/model/user_secret.pyi +1 -1
  408. snaptrade_client/model/validated_trade_body.py +96 -0
  409. snaptrade_client/model/validated_trade_body.pyi +96 -0
  410. snaptrade_client/models/__init__.py +104 -43
  411. snaptrade_client/operation_parameter_map.py +895 -0
  412. snaptrade_client/paths/__init__.py +34 -44
  413. snaptrade_client/paths/accounts/get.py +244 -39
  414. snaptrade_client/paths/accounts/get.pyi +244 -39
  415. snaptrade_client/paths/accounts_account_id/get.py +284 -73
  416. snaptrade_client/paths/accounts_account_id/get.pyi +284 -73
  417. snaptrade_client/paths/accounts_account_id/put.py +285 -49
  418. snaptrade_client/paths/accounts_account_id/put.pyi +285 -49
  419. snaptrade_client/paths/{model_portfolio → accounts_account_id_activities}/__init__.py +2 -2
  420. snaptrade_client/paths/accounts_account_id_activities/get.py +647 -0
  421. snaptrade_client/paths/accounts_account_id_activities/get.pyi +628 -0
  422. snaptrade_client/paths/accounts_account_id_balances/get.py +291 -55
  423. snaptrade_client/paths/accounts_account_id_balances/get.pyi +291 -55
  424. snaptrade_client/paths/accounts_account_id_holdings/get.py +322 -59
  425. snaptrade_client/paths/accounts_account_id_holdings/get.pyi +321 -59
  426. snaptrade_client/paths/accounts_account_id_options/get.py +311 -50
  427. snaptrade_client/paths/accounts_account_id_options/get.pyi +311 -50
  428. snaptrade_client/paths/accounts_account_id_options_chain/get.py +298 -56
  429. snaptrade_client/paths/accounts_account_id_options_chain/get.pyi +298 -56
  430. snaptrade_client/paths/accounts_account_id_orders/get.py +329 -57
  431. snaptrade_client/paths/accounts_account_id_orders/get.pyi +325 -57
  432. snaptrade_client/paths/accounts_account_id_orders_cancel/post.py +356 -74
  433. snaptrade_client/paths/accounts_account_id_orders_cancel/post.pyi +356 -74
  434. snaptrade_client/paths/{model_portfolio_model_portfolio_id → accounts_account_id_orders_details}/__init__.py +2 -2
  435. snaptrade_client/paths/accounts_account_id_orders_details/post.py +691 -0
  436. snaptrade_client/paths/accounts_account_id_orders_details/post.pyi +678 -0
  437. snaptrade_client/paths/{portfolio_groups → accounts_account_id_orders_v2}/__init__.py +2 -2
  438. snaptrade_client/paths/accounts_account_id_orders_v2/get.py +592 -0
  439. snaptrade_client/paths/accounts_account_id_orders_v2/get.pyi +569 -0
  440. snaptrade_client/paths/accounts_account_id_positions/get.py +291 -55
  441. snaptrade_client/paths/accounts_account_id_positions/get.pyi +291 -55
  442. snaptrade_client/paths/accounts_account_id_quotes/get.py +310 -62
  443. snaptrade_client/paths/accounts_account_id_quotes/get.pyi +310 -62
  444. snaptrade_client/paths/accounts_account_id_recent_orders/__init__.py +7 -0
  445. snaptrade_client/paths/accounts_account_id_recent_orders/get.py +561 -0
  446. snaptrade_client/paths/accounts_account_id_recent_orders/get.pyi +549 -0
  447. snaptrade_client/paths/accounts_account_id_recent_orders_v2/__init__.py +7 -0
  448. snaptrade_client/paths/accounts_account_id_recent_orders_v2/get.py +561 -0
  449. snaptrade_client/paths/accounts_account_id_recent_orders_v2/get.pyi +549 -0
  450. snaptrade_client/paths/{model_asset_class → accounts_account_id_return_rates}/__init__.py +2 -2
  451. snaptrade_client/paths/accounts_account_id_return_rates/get.py +540 -0
  452. snaptrade_client/paths/accounts_account_id_return_rates/get.pyi +528 -0
  453. snaptrade_client/paths/accounts_account_id_symbols/post.py +338 -71
  454. snaptrade_client/paths/accounts_account_id_symbols/post.pyi +338 -71
  455. snaptrade_client/paths/{accounts_account_id_option_strategy → accounts_account_id_trading_bracket}/__init__.py +2 -2
  456. snaptrade_client/paths/accounts_account_id_trading_bracket/post.py +732 -0
  457. snaptrade_client/paths/accounts_account_id_trading_bracket/post.pyi +719 -0
  458. snaptrade_client/paths/accounts_account_id_trading_cancel/__init__.py +7 -0
  459. snaptrade_client/paths/accounts_account_id_trading_cancel/post.py +660 -0
  460. snaptrade_client/paths/accounts_account_id_trading_cancel/post.pyi +648 -0
  461. snaptrade_client/paths/accounts_account_id_trading_crypto/__init__.py +7 -0
  462. snaptrade_client/paths/accounts_account_id_trading_crypto/post.py +700 -0
  463. snaptrade_client/paths/accounts_account_id_trading_crypto/post.pyi +688 -0
  464. snaptrade_client/paths/accounts_account_id_trading_crypto_preview/__init__.py +7 -0
  465. snaptrade_client/paths/accounts_account_id_trading_crypto_preview/post.py +700 -0
  466. snaptrade_client/paths/accounts_account_id_trading_crypto_preview/post.pyi +688 -0
  467. snaptrade_client/paths/{accounts_account_id_option_strategy_option_strategy_id → accounts_account_id_trading_instruments_cryptocurrency_pairs}/__init__.py +2 -2
  468. snaptrade_client/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs/get.py +653 -0
  469. snaptrade_client/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs/get.pyi +641 -0
  470. snaptrade_client/paths/{accounts_account_id_option_strategy_option_strategy_id_execute → accounts_account_id_trading_instruments_cryptocurrency_pairs_instrument_symbol_quote}/__init__.py +2 -2
  471. snaptrade_client/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs_instrument_symbol_quote/get.py +554 -0
  472. snaptrade_client/paths/accounts_account_id_trading_instruments_cryptocurrency_pairs_instrument_symbol_quote/get.pyi +542 -0
  473. snaptrade_client/paths/accounts_account_id_trading_options/__init__.py +7 -0
  474. snaptrade_client/paths/accounts_account_id_trading_options/post.py +671 -0
  475. snaptrade_client/paths/accounts_account_id_trading_options/post.pyi +659 -0
  476. snaptrade_client/paths/accounts_account_id_trading_replace/__init__.py +7 -0
  477. snaptrade_client/paths/accounts_account_id_trading_replace/post.py +717 -0
  478. snaptrade_client/paths/accounts_account_id_trading_replace/post.pyi +704 -0
  479. snaptrade_client/paths/activities/get.py +316 -62
  480. snaptrade_client/paths/activities/get.pyi +316 -62
  481. snaptrade_client/paths/authorizations/get.py +244 -39
  482. snaptrade_client/paths/authorizations/get.pyi +244 -39
  483. snaptrade_client/paths/authorizations_authorization_id/delete.py +291 -43
  484. snaptrade_client/paths/authorizations_authorization_id/delete.pyi +291 -43
  485. snaptrade_client/paths/authorizations_authorization_id/get.py +285 -49
  486. snaptrade_client/paths/authorizations_authorization_id/get.pyi +285 -49
  487. snaptrade_client/paths/{model_asset_class_model_asset_class_id → authorizations_authorization_id_disable}/__init__.py +2 -2
  488. snaptrade_client/paths/authorizations_authorization_id_disable/post.py +588 -0
  489. snaptrade_client/paths/authorizations_authorization_id_disable/post.pyi +574 -0
  490. snaptrade_client/paths/authorizations_authorization_id_refresh/__init__.py +7 -0
  491. snaptrade_client/paths/authorizations_authorization_id_refresh/post.py +588 -0
  492. snaptrade_client/paths/authorizations_authorization_id_refresh/post.pyi +574 -0
  493. snaptrade_client/paths/authorizations_authorization_id_return_rates/__init__.py +7 -0
  494. snaptrade_client/paths/authorizations_authorization_id_return_rates/get.py +540 -0
  495. snaptrade_client/paths/authorizations_authorization_id_return_rates/get.pyi +528 -0
  496. snaptrade_client/paths/brokerage_authorization_types/get.py +232 -33
  497. snaptrade_client/paths/brokerage_authorization_types/get.pyi +232 -33
  498. snaptrade_client/paths/brokerages/get.py +188 -21
  499. snaptrade_client/paths/brokerages/get.pyi +188 -21
  500. snaptrade_client/paths/{snap_trade_list_user_errors → brokerages_slug_instruments}/__init__.py +2 -2
  501. snaptrade_client/paths/brokerages_slug_instruments/get.py +417 -0
  502. snaptrade_client/paths/brokerages_slug_instruments/get.pyi +406 -0
  503. snaptrade_client/paths/currencies/get.py +188 -21
  504. snaptrade_client/paths/currencies/get.pyi +188 -21
  505. snaptrade_client/paths/currencies_rates/get.py +175 -21
  506. snaptrade_client/paths/currencies_rates/get.pyi +175 -21
  507. snaptrade_client/paths/currencies_rates_currency_pair/get.py +218 -33
  508. snaptrade_client/paths/currencies_rates_currency_pair/get.pyi +218 -33
  509. snaptrade_client/paths/exchanges/get.py +175 -21
  510. snaptrade_client/paths/exchanges/get.pyi +175 -21
  511. snaptrade_client/paths/holdings/get.py +297 -55
  512. snaptrade_client/paths/holdings/get.pyi +296 -55
  513. snaptrade_client/paths/performance_custom/get.py +306 -67
  514. snaptrade_client/paths/performance_custom/get.pyi +306 -67
  515. snaptrade_client/paths/root/get.py +183 -19
  516. snaptrade_client/paths/root/get.pyi +183 -19
  517. snaptrade_client/paths/security_types/get.py +188 -21
  518. snaptrade_client/paths/security_types/get.pyi +188 -21
  519. snaptrade_client/paths/session_events/get.py +254 -43
  520. snaptrade_client/paths/session_events/get.pyi +254 -43
  521. snaptrade_client/paths/snap_trade_delete_user/delete.py +254 -47
  522. snaptrade_client/paths/snap_trade_delete_user/delete.pyi +254 -47
  523. snaptrade_client/paths/snap_trade_list_users/get.py +208 -31
  524. snaptrade_client/paths/snap_trade_list_users/get.pyi +208 -31
  525. snaptrade_client/paths/snap_trade_login/post.py +391 -93
  526. snaptrade_client/paths/snap_trade_login/post.pyi +391 -93
  527. snaptrade_client/paths/snap_trade_partners/get.py +210 -35
  528. snaptrade_client/paths/snap_trade_partners/get.pyi +210 -35
  529. snaptrade_client/paths/snap_trade_register_user/post.py +259 -55
  530. snaptrade_client/paths/snap_trade_register_user/post.pyi +259 -55
  531. snaptrade_client/paths/{snap_trade_accept_disclaimer → snap_trade_reset_user_secret}/__init__.py +2 -2
  532. snaptrade_client/paths/snap_trade_reset_user_secret/post.py +459 -0
  533. snaptrade_client/paths/snap_trade_reset_user_secret/post.pyi +446 -0
  534. snaptrade_client/paths/symbols/post.py +237 -39
  535. snaptrade_client/paths/symbols/post.pyi +237 -39
  536. snaptrade_client/paths/{trade_oco → symbols_query}/__init__.py +2 -2
  537. snaptrade_client/paths/symbols_query/get.py +441 -0
  538. snaptrade_client/paths/symbols_query/get.pyi +429 -0
  539. snaptrade_client/paths/trade_impact/post.py +403 -106
  540. snaptrade_client/paths/trade_impact/post.pyi +403 -106
  541. snaptrade_client/paths/trade_place/post.py +429 -108
  542. snaptrade_client/paths/trade_place/post.pyi +429 -108
  543. snaptrade_client/paths/trade_trade_id/post.py +358 -54
  544. snaptrade_client/paths/trade_trade_id/post.pyi +358 -54
  545. snaptrade_client/pydantic/__init__.py +0 -0
  546. snaptrade_client/request_before_hook.py +1 -0
  547. snaptrade_client/request_before_url_hook.py +26 -0
  548. snaptrade_client/rest.py +10 -3
  549. snaptrade_client/schemas.py +45 -37
  550. snaptrade_client/type/__init__.py +0 -0
  551. snaptrade_client/type/account.py +68 -0
  552. snaptrade_client/type/account_balance.py +27 -0
  553. snaptrade_client/type/account_cash_restrictions.py +19 -0
  554. snaptrade_client/type/account_holdings.py +37 -0
  555. snaptrade_client/type/account_holdings_account.py +47 -0
  556. snaptrade_client/type/account_id.py +19 -0
  557. snaptrade_client/type/account_ids.py +19 -0
  558. snaptrade_client/type/account_meta.py +19 -0
  559. snaptrade_client/type/account_order_record.py +94 -0
  560. snaptrade_client/type/account_order_record_leg.py +48 -0
  561. snaptrade_client/type/account_order_record_leg_instrument.py +39 -0
  562. snaptrade_client/type/account_order_record_status.py +19 -0
  563. snaptrade_client/type/account_order_record_status_v2.py +19 -0
  564. snaptrade_client/type/account_order_record_status_v2_nullable.py +19 -0
  565. snaptrade_client/type/account_order_record_v2.py +58 -0
  566. snaptrade_client/type/account_orders_v2_response.py +28 -0
  567. snaptrade_client/type/account_simple.py +36 -0
  568. snaptrade_client/type/account_sync_status.py +30 -0
  569. snaptrade_client/type/account_universal_activity.py +73 -0
  570. snaptrade_client/type/action.py +19 -0
  571. snaptrade_client/type/action_strict.py +19 -0
  572. snaptrade_client/type/action_strict_v2.py +19 -0
  573. snaptrade_client/type/action_strict_with_options.py +19 -0
  574. snaptrade_client/type/balance.py +34 -0
  575. snaptrade_client/type/brokerage.py +80 -0
  576. snaptrade_client/type/brokerage_auth_id.py +19 -0
  577. snaptrade_client/type/brokerage_auth_ids.py +19 -0
  578. snaptrade_client/type/brokerage_authorization.py +56 -0
  579. snaptrade_client/type/brokerage_authorization_disabled_confirmation.py +27 -0
  580. snaptrade_client/type/brokerage_authorization_meta.py +19 -0
  581. snaptrade_client/type/brokerage_authorization_refresh_confirmation.py +27 -0
  582. snaptrade_client/type/brokerage_authorization_type_read_only.py +33 -0
  583. snaptrade_client/type/brokerage_authorization_type_read_only_brokerage.py +32 -0
  584. snaptrade_client/type/brokerage_exchanges.py +19 -0
  585. snaptrade_client/type/brokerage_id.py +19 -0
  586. snaptrade_client/type/brokerage_instrument.py +38 -0
  587. snaptrade_client/type/brokerage_instruments_response.py +27 -0
  588. snaptrade_client/type/brokerage_order_id.py +19 -0
  589. snaptrade_client/type/brokerage_symbol_id.py +19 -0
  590. snaptrade_client/type/brokerage_type.py +28 -0
  591. snaptrade_client/type/cancel_order_response.py +29 -0
  592. snaptrade_client/type/cancel_order_response_raw_response.py +19 -0
  593. snaptrade_client/type/child_brokerage_order_ids.py +30 -0
  594. snaptrade_client/type/child_brokerage_order_ids_nullable.py +30 -0
  595. snaptrade_client/type/client_id.py +19 -0
  596. snaptrade_client/type/crypto_order_form.py +50 -0
  597. snaptrade_client/type/crypto_order_preview.py +27 -0
  598. snaptrade_client/type/crypto_order_preview_estimated_fee.py +29 -0
  599. snaptrade_client/type/crypto_trading_instrument.py +30 -0
  600. snaptrade_client/type/cryptocurrency_base_symbol.py +19 -0
  601. snaptrade_client/type/cryptocurrency_increment.py +19 -0
  602. snaptrade_client/type/cryptocurrency_increment_nullable.py +19 -0
  603. snaptrade_client/type/cryptocurrency_pair.py +35 -0
  604. snaptrade_client/type/cryptocurrency_pair_quote.py +35 -0
  605. snaptrade_client/type/cryptocurrency_pair_symbol.py +19 -0
  606. snaptrade_client/type/cryptocurrency_quote_symbol.py +19 -0
  607. snaptrade_client/type/cryptocurrency_symbol.py +19 -0
  608. snaptrade_client/type/currency.py +33 -0
  609. snaptrade_client/type/currency_id.py +19 -0
  610. snaptrade_client/type/currency_nullable.py +33 -0
  611. snaptrade_client/type/delete_user_response.py +33 -0
  612. snaptrade_client/type/dividend_at_date.py +33 -0
  613. snaptrade_client/type/encrypted_response.py +29 -0
  614. snaptrade_client/type/encrypted_response_encrypted_message_data.py +30 -0
  615. snaptrade_client/type/exchange.py +48 -0
  616. snaptrade_client/type/exchange_id.py +19 -0
  617. snaptrade_client/type/exchange_rate_pairs.py +31 -0
  618. snaptrade_client/type/figi_instrument.py +30 -0
  619. snaptrade_client/type/figi_instrument_nullable.py +30 -0
  620. snaptrade_client/type/holdings_status.py +30 -0
  621. snaptrade_client/type/holdings_sync_status_date.py +19 -0
  622. snaptrade_client/type/holdings_sync_status_date_nullable.py +19 -0
  623. snaptrade_client/type/id.py +19 -0
  624. snaptrade_client/type/login_redirect_uri.py +30 -0
  625. snaptrade_client/type/manual_trade.py +48 -0
  626. snaptrade_client/type/manual_trade_and_impact.py +34 -0
  627. snaptrade_client/type/manual_trade_balance.py +33 -0
  628. snaptrade_client/type/manual_trade_form.py +50 -0
  629. snaptrade_client/type/manual_trade_form_bracket.py +50 -0
  630. snaptrade_client/type/manual_trade_form_with_options.py +57 -0
  631. snaptrade_client/type/manual_trade_impact.py +39 -0
  632. snaptrade_client/type/manual_trade_replace_form.py +47 -0
  633. snaptrade_client/type/manual_trade_symbol.py +46 -0
  634. snaptrade_client/type/mleg_action_strict.py +19 -0
  635. snaptrade_client/type/mleg_instrument_type.py +19 -0
  636. snaptrade_client/type/mleg_leg.py +33 -0
  637. snaptrade_client/type/mleg_order_response.py +30 -0
  638. snaptrade_client/type/mleg_order_type_strict.py +19 -0
  639. snaptrade_client/type/mleg_price_effect_strict.py +19 -0
  640. snaptrade_client/type/mleg_price_effect_strict_nullable.py +19 -0
  641. snaptrade_client/type/mleg_trade_form.py +41 -0
  642. snaptrade_client/type/mleg_trading_instrument.py +30 -0
  643. snaptrade_client/type/model400_failed_request_response.py +28 -0
  644. snaptrade_client/type/model401_failed_request_response.py +28 -0
  645. snaptrade_client/type/model402_brokerage_auth_already_disabled_exception.py +28 -0
  646. snaptrade_client/type/model402_brokerage_auth_disabled_response.py +28 -0
  647. snaptrade_client/type/model403_failed_request_response.py +28 -0
  648. snaptrade_client/type/model403_feature_not_enabled_response.py +28 -0
  649. snaptrade_client/type/model404_failed_request_response.py +28 -0
  650. snaptrade_client/type/model425_failed_request_response.py +28 -0
  651. snaptrade_client/type/model500_unexpected_exception_response.py +30 -0
  652. snaptrade_client/type/monthly_dividends.py +30 -0
  653. snaptrade_client/type/net_contributions.py +31 -0
  654. snaptrade_client/type/net_dividend.py +31 -0
  655. snaptrade_client/type/notional_value.py +19 -0
  656. snaptrade_client/type/notional_value_nullable.py +19 -0
  657. snaptrade_client/type/option_brokerage_symbol.py +35 -0
  658. snaptrade_client/type/option_chain.py +20 -0
  659. snaptrade_client/type/option_chain_item.py +35 -0
  660. snaptrade_client/type/option_chain_item_chain_per_root.py +20 -0
  661. snaptrade_client/type/option_chain_item_chain_per_root_item.py +31 -0
  662. snaptrade_client/type/option_chain_item_chain_per_root_item_chain_per_strike_price.py +20 -0
  663. snaptrade_client/type/option_chain_item_chain_per_root_item_chain_per_strike_price_item.py +30 -0
  664. snaptrade_client/type/option_leg.py +31 -0
  665. snaptrade_client/type/option_strategy.py +36 -0
  666. snaptrade_client/type/option_strategy_legs.py +19 -0
  667. snaptrade_client/type/option_symbol_id.py +19 -0
  668. snaptrade_client/type/options_position.py +39 -0
  669. snaptrade_client/type/options_symbol.py +44 -0
  670. snaptrade_client/type/options_symbol_nullable.py +44 -0
  671. snaptrade_client/type/order_type.py +19 -0
  672. snaptrade_client/type/order_type_strict.py +19 -0
  673. snaptrade_client/type/order_updated_response.py +29 -0
  674. snaptrade_client/type/paginated_universal_activity.py +30 -0
  675. snaptrade_client/type/pagination_details.py +33 -0
  676. snaptrade_client/type/partner_data.py +62 -0
  677. snaptrade_client/type/past_value.py +31 -0
  678. snaptrade_client/type/performance_custom.py +78 -0
  679. snaptrade_client/type/performance_custom_bad_tickers.py +19 -0
  680. snaptrade_client/type/portfolio_group_id.py +19 -0
  681. snaptrade_client/type/position.py +50 -0
  682. snaptrade_client/type/position_symbol.py +47 -0
  683. snaptrade_client/type/price.py +19 -0
  684. snaptrade_client/type/rate_of_return_object.py +33 -0
  685. snaptrade_client/type/rate_of_return_response.py +28 -0
  686. snaptrade_client/type/recent_orders_response.py +28 -0
  687. snaptrade_client/type/reporting_date.py +19 -0
  688. snaptrade_client/type/reporting_frequency.py +19 -0
  689. snaptrade_client/type/security_type.py +37 -0
  690. snaptrade_client/type/security_type_id.py +19 -0
  691. snaptrade_client/type/session_event.py +40 -0
  692. snaptrade_client/type/simple_order_form.py +50 -0
  693. snaptrade_client/type/snap_trade_holdings_account.py +43 -0
  694. snaptrade_client/type/snap_trade_holdings_account_meta.py +19 -0
  695. snaptrade_client/type/snap_trade_holdings_total_value.py +30 -0
  696. snaptrade_client/type/snap_trade_login_user_request_body.py +48 -0
  697. snaptrade_client/type/snap_trade_register_user_request_body.py +27 -0
  698. snaptrade_client/type/status.py +30 -0
  699. snaptrade_client/type/stop_loss.py +28 -0
  700. snaptrade_client/type/strategy_order_record.py +52 -0
  701. snaptrade_client/type/strategy_quotes.py +39 -0
  702. snaptrade_client/type/strategy_quotes_greek.py +34 -0
  703. snaptrade_client/type/sub_period_return_rate.py +33 -0
  704. snaptrade_client/type/symbol.py +53 -0
  705. snaptrade_client/type/symbol_nullable.py +53 -0
  706. snaptrade_client/type/symbol_query.py +27 -0
  707. snaptrade_client/type/symbols_quotes.py +20 -0
  708. snaptrade_client/type/sync_status_date.py +19 -0
  709. snaptrade_client/type/sync_status_date_nullable.py +19 -0
  710. snaptrade_client/type/take_profit.py +26 -0
  711. snaptrade_client/type/time.py +19 -0
  712. snaptrade_client/type/time_in_force.py +19 -0
  713. snaptrade_client/type/time_in_force_strict.py +19 -0
  714. snaptrade_client/type/trade_id.py +19 -0
  715. snaptrade_client/type/trading_instrument.py +30 -0
  716. snaptrade_client/type/trading_session.py +19 -0
  717. snaptrade_client/type/transactions_status.py +34 -0
  718. snaptrade_client/type/underlying_symbol.py +58 -0
  719. snaptrade_client/type/units.py +19 -0
  720. snaptrade_client/type/units_nullable.py +19 -0
  721. snaptrade_client/type/universal_activity.py +76 -0
  722. snaptrade_client/type/universal_symbol.py +56 -0
  723. snaptrade_client/type/universal_symbol_id.py +19 -0
  724. snaptrade_client/type/universal_symbol_id_nullable.py +19 -0
  725. snaptrade_client/type/us_exchange.py +42 -0
  726. snaptrade_client/type/user_i_dand_secret.py +30 -0
  727. snaptrade_client/type/user_id.py +19 -0
  728. snaptrade_client/type/user_list.py +19 -0
  729. snaptrade_client/type/user_secret.py +19 -0
  730. snaptrade_client/type/validated_trade_body.py +27 -0
  731. snaptrade_client/type_util.py +23 -0
  732. {snaptrade_python_sdk-10.9.0.dist-info → snaptrade_python_sdk-11.0.152.dist-info}/LICENSE +1 -1
  733. snaptrade_python_sdk-11.0.152.dist-info/METADATA +2683 -0
  734. snaptrade_python_sdk-11.0.152.dist-info/RECORD +809 -0
  735. {snaptrade_python_sdk-10.9.0.dist-info → snaptrade_python_sdk-11.0.152.dist-info}/WHEEL +1 -1
  736. snaptrade_client/apis/paths/accounts_account_id_option_strategy.py +0 -7
  737. snaptrade_client/apis/paths/accounts_account_id_option_strategy_option_strategy_id.py +0 -7
  738. snaptrade_client/apis/paths/accounts_account_id_option_strategy_option_strategy_id_execute.py +0 -7
  739. snaptrade_client/apis/paths/model_asset_class.py +0 -9
  740. snaptrade_client/apis/paths/model_asset_class_model_asset_class_id.py +0 -11
  741. snaptrade_client/apis/paths/model_portfolio.py +0 -9
  742. snaptrade_client/apis/paths/model_portfolio_model_portfolio_id.py +0 -11
  743. snaptrade_client/apis/paths/portfolio_groups.py +0 -9
  744. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id.py +0 -11
  745. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_accounts.py +0 -7
  746. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_balances.py +0 -7
  747. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_calculatedtrades.py +0 -7
  748. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_impact.py +0 -7
  749. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id.py +0 -9
  750. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_place_orders.py +0 -7
  751. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_trade_id.py +0 -7
  752. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_excludedassets.py +0 -9
  753. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_excludedassets_symbol_id.py +0 -7
  754. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_import.py +0 -7
  755. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_info.py +0 -7
  756. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_positions.py +0 -7
  757. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_settings.py +0 -9
  758. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_symbols.py +0 -7
  759. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_targets.py +0 -9
  760. snaptrade_client/apis/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id.py +0 -11
  761. snaptrade_client/apis/paths/snap_trade_accept_disclaimer.py +0 -7
  762. snaptrade_client/apis/paths/snap_trade_encrypted_jwt.py +0 -7
  763. snaptrade_client/apis/paths/snap_trade_list_user_errors.py +0 -7
  764. snaptrade_client/apis/paths/symbols_ticker.py +0 -7
  765. snaptrade_client/apis/paths/trade_oco.py +0 -7
  766. snaptrade_client/apis/tags/portfolio_management_api.py +0 -86
  767. snaptrade_client/model/cash_restriction.py +0 -138
  768. snaptrade_client/model/cash_restriction.pyi +0 -131
  769. snaptrade_client/model/model_asset_class_details.py +0 -118
  770. snaptrade_client/model/model_asset_class_details.pyi +0 -118
  771. snaptrade_client/model/model_portfolio.py +0 -121
  772. snaptrade_client/model/model_portfolio_details.py +0 -154
  773. snaptrade_client/model/model_portfolio_details.pyi +0 -154
  774. snaptrade_client/model/options_holdings.py +0 -156
  775. snaptrade_client/model/options_holdings.pyi +0 -156
  776. snaptrade_client/model/portfolio_group_info.py +0 -415
  777. snaptrade_client/model/portfolio_group_info.pyi +0 -415
  778. snaptrade_client/model/portfolio_group_settings.py +0 -125
  779. snaptrade_client/model/portfolio_group_settings.pyi +0 -125
  780. snaptrade_client/model/rsa_public_key.py +0 -25
  781. snaptrade_client/model/rsa_public_key.pyi +0 -25
  782. snaptrade_client/model/signed_content.py +0 -25
  783. snaptrade_client/model/signed_content.pyi +0 -25
  784. snaptrade_client/model/snap_trade_holdings_account_account_id.py +0 -232
  785. snaptrade_client/model/snap_trade_holdings_account_account_id.pyi +0 -232
  786. snaptrade_client/model/snap_trade_user_id.py +0 -25
  787. snaptrade_client/model/snap_trade_user_id.pyi +0 -25
  788. snaptrade_client/model/snap_trade_user_secret.py +0 -25
  789. snaptrade_client/model/snap_trade_user_secret.pyi +0 -25
  790. snaptrade_client/model/strategy_impact.py +0 -308
  791. snaptrade_client/model/strategy_impact.pyi +0 -308
  792. snaptrade_client/model/strategy_order_place.py +0 -708
  793. snaptrade_client/model/strategy_order_place.pyi +0 -708
  794. snaptrade_client/model/strategy_order_quotes.py +0 -25
  795. snaptrade_client/model/strategy_order_quotes.pyi +0 -25
  796. snaptrade_client/model/target_asset.py +0 -170
  797. snaptrade_client/model/target_asset.pyi +0 -170
  798. snaptrade_client/model/timestamp.py +0 -25
  799. snaptrade_client/model/timestamp.pyi +0 -25
  800. snaptrade_client/model/trade.py +0 -182
  801. snaptrade_client/model/trade.pyi +0 -175
  802. snaptrade_client/model/trade_execution_status.py +0 -254
  803. snaptrade_client/model/trade_execution_status.pyi +0 -237
  804. snaptrade_client/model/universal_symbol_ticker.py +0 -186
  805. snaptrade_client/model/universal_symbol_ticker.pyi +0 -186
  806. snaptrade_client/model/user_error_log.py +0 -128
  807. snaptrade_client/model/user_error_log.pyi +0 -128
  808. snaptrade_client/model/user_settings.py +0 -173
  809. snaptrade_client/model/user_settings.pyi +0 -173
  810. snaptrade_client/paths/accounts_account_id_option_strategy/post.py +0 -452
  811. snaptrade_client/paths/accounts_account_id_option_strategy/post.pyi +0 -435
  812. snaptrade_client/paths/accounts_account_id_option_strategy_option_strategy_id/get.py +0 -295
  813. snaptrade_client/paths/accounts_account_id_option_strategy_option_strategy_id/get.pyi +0 -284
  814. snaptrade_client/paths/accounts_account_id_option_strategy_option_strategy_id_execute/post.py +0 -476
  815. snaptrade_client/paths/accounts_account_id_option_strategy_option_strategy_id_execute/post.pyi +0 -449
  816. snaptrade_client/paths/model_asset_class/get.py +0 -174
  817. snaptrade_client/paths/model_asset_class/get.pyi +0 -164
  818. snaptrade_client/paths/model_asset_class/post.py +0 -149
  819. snaptrade_client/paths/model_asset_class/post.pyi +0 -139
  820. snaptrade_client/paths/model_asset_class_model_asset_class_id/delete.py +0 -180
  821. snaptrade_client/paths/model_asset_class_model_asset_class_id/delete.pyi +0 -170
  822. snaptrade_client/paths/model_asset_class_model_asset_class_id/get.py +0 -200
  823. snaptrade_client/paths/model_asset_class_model_asset_class_id/get.pyi +0 -190
  824. snaptrade_client/paths/model_asset_class_model_asset_class_id/post.py +0 -233
  825. snaptrade_client/paths/model_asset_class_model_asset_class_id/post.pyi +0 -223
  826. snaptrade_client/paths/model_portfolio/get.py +0 -174
  827. snaptrade_client/paths/model_portfolio/get.pyi +0 -164
  828. snaptrade_client/paths/model_portfolio/post.py +0 -149
  829. snaptrade_client/paths/model_portfolio/post.pyi +0 -139
  830. snaptrade_client/paths/model_portfolio_model_portfolio_id/delete.py +0 -180
  831. snaptrade_client/paths/model_portfolio_model_portfolio_id/delete.pyi +0 -170
  832. snaptrade_client/paths/model_portfolio_model_portfolio_id/get.py +0 -200
  833. snaptrade_client/paths/model_portfolio_model_portfolio_id/get.pyi +0 -190
  834. snaptrade_client/paths/model_portfolio_model_portfolio_id/post.py +0 -239
  835. snaptrade_client/paths/model_portfolio_model_portfolio_id/post.pyi +0 -229
  836. snaptrade_client/paths/portfolio_groups/get.py +0 -262
  837. snaptrade_client/paths/portfolio_groups/get.pyi +0 -251
  838. snaptrade_client/paths/portfolio_groups/post.py +0 -320
  839. snaptrade_client/paths/portfolio_groups/post.pyi +0 -308
  840. snaptrade_client/paths/portfolio_groups_portfolio_group_id/__init__.py +0 -7
  841. snaptrade_client/paths/portfolio_groups_portfolio_group_id/delete.py +0 -241
  842. snaptrade_client/paths/portfolio_groups_portfolio_group_id/delete.pyi +0 -228
  843. snaptrade_client/paths/portfolio_groups_portfolio_group_id/get.py +0 -219
  844. snaptrade_client/paths/portfolio_groups_portfolio_group_id/get.pyi +0 -208
  845. snaptrade_client/paths/portfolio_groups_portfolio_group_id/patch.py +0 -288
  846. snaptrade_client/paths/portfolio_groups_portfolio_group_id/patch.pyi +0 -275
  847. snaptrade_client/paths/portfolio_groups_portfolio_group_id_accounts/__init__.py +0 -7
  848. snaptrade_client/paths/portfolio_groups_portfolio_group_id_accounts/get.py +0 -244
  849. snaptrade_client/paths/portfolio_groups_portfolio_group_id_accounts/get.pyi +0 -233
  850. snaptrade_client/paths/portfolio_groups_portfolio_group_id_balances/__init__.py +0 -7
  851. snaptrade_client/paths/portfolio_groups_portfolio_group_id_balances/get.py +0 -266
  852. snaptrade_client/paths/portfolio_groups_portfolio_group_id_balances/get.pyi +0 -253
  853. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades/__init__.py +0 -7
  854. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades/get.py +0 -200
  855. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades/get.pyi +0 -190
  856. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_impact/__init__.py +0 -7
  857. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_impact/get.py +0 -240
  858. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_impact/get.pyi +0 -230
  859. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id/__init__.py +0 -7
  860. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id/get.py +0 -230
  861. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id/get.pyi +0 -220
  862. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id/patch.py +0 -310
  863. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_modify_trade_id/patch.pyi +0 -300
  864. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_place_orders/__init__.py +0 -7
  865. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_place_orders/post.py +0 -240
  866. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_place_orders/post.pyi +0 -230
  867. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_trade_id/__init__.py +0 -7
  868. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_trade_id/get.py +0 -255
  869. snaptrade_client/paths/portfolio_groups_portfolio_group_id_calculatedtrades_calculated_trade_id_trade_id/get.pyi +0 -245
  870. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets/__init__.py +0 -7
  871. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets/get.py +0 -244
  872. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets/get.pyi +0 -233
  873. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets/post.py +0 -281
  874. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets/post.pyi +0 -271
  875. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets_symbol_id/__init__.py +0 -7
  876. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets_symbol_id/delete.py +0 -195
  877. snaptrade_client/paths/portfolio_groups_portfolio_group_id_excludedassets_symbol_id/delete.pyi +0 -185
  878. snaptrade_client/paths/portfolio_groups_portfolio_group_id_import/__init__.py +0 -7
  879. snaptrade_client/paths/portfolio_groups_portfolio_group_id_import/post.py +0 -244
  880. snaptrade_client/paths/portfolio_groups_portfolio_group_id_import/post.pyi +0 -233
  881. snaptrade_client/paths/portfolio_groups_portfolio_group_id_info/__init__.py +0 -7
  882. snaptrade_client/paths/portfolio_groups_portfolio_group_id_info/get.py +0 -219
  883. snaptrade_client/paths/portfolio_groups_portfolio_group_id_info/get.pyi +0 -208
  884. snaptrade_client/paths/portfolio_groups_portfolio_group_id_positions/__init__.py +0 -7
  885. snaptrade_client/paths/portfolio_groups_portfolio_group_id_positions/get.py +0 -266
  886. snaptrade_client/paths/portfolio_groups_portfolio_group_id_positions/get.pyi +0 -253
  887. snaptrade_client/paths/portfolio_groups_portfolio_group_id_settings/__init__.py +0 -7
  888. snaptrade_client/paths/portfolio_groups_portfolio_group_id_settings/get.py +0 -219
  889. snaptrade_client/paths/portfolio_groups_portfolio_group_id_settings/get.pyi +0 -208
  890. snaptrade_client/paths/portfolio_groups_portfolio_group_id_settings/patch.py +0 -219
  891. snaptrade_client/paths/portfolio_groups_portfolio_group_id_settings/patch.pyi +0 -208
  892. snaptrade_client/paths/portfolio_groups_portfolio_group_id_symbols/__init__.py +0 -7
  893. snaptrade_client/paths/portfolio_groups_portfolio_group_id_symbols/post.py +0 -283
  894. snaptrade_client/paths/portfolio_groups_portfolio_group_id_symbols/post.pyi +0 -272
  895. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets/__init__.py +0 -7
  896. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets/get.py +0 -266
  897. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets/get.pyi +0 -253
  898. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets/post.py +0 -273
  899. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets/post.pyi +0 -260
  900. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/__init__.py +0 -7
  901. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/delete.py +0 -256
  902. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/delete.pyi +0 -243
  903. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/get.py +0 -234
  904. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/get.pyi +0 -223
  905. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/patch.py +0 -321
  906. snaptrade_client/paths/portfolio_groups_portfolio_group_id_targets_target_asset_id/patch.pyi +0 -308
  907. snaptrade_client/paths/snap_trade_accept_disclaimer/post.py +0 -319
  908. snaptrade_client/paths/snap_trade_accept_disclaimer/post.pyi +0 -308
  909. snaptrade_client/paths/snap_trade_encrypted_jwt/__init__.py +0 -7
  910. snaptrade_client/paths/snap_trade_encrypted_jwt/get.py +0 -286
  911. snaptrade_client/paths/snap_trade_encrypted_jwt/get.pyi +0 -272
  912. snaptrade_client/paths/snap_trade_list_user_errors/get.py +0 -243
  913. snaptrade_client/paths/snap_trade_list_user_errors/get.pyi +0 -233
  914. snaptrade_client/paths/symbols_ticker/__init__.py +0 -7
  915. snaptrade_client/paths/symbols_ticker/get.py +0 -282
  916. snaptrade_client/paths/symbols_ticker/get.pyi +0 -270
  917. snaptrade_client/paths/trade_oco/post.py +0 -354
  918. snaptrade_client/paths/trade_oco/post.pyi +0 -342
  919. snaptrade_python_sdk-10.9.0.dist-info/METADATA +0 -314
  920. snaptrade_python_sdk-10.9.0.dist-info/RECORD +0 -563
@@ -9,10 +9,10 @@
9
9
 
10
10
  The version of the OpenAPI document: 1.0.0
11
11
  Contact: api@snaptrade.com
12
- Generated by: https://konfigthis.com
12
+ Created by: https://snaptrade.com/
13
13
  """
14
14
 
15
- __version__ = "10.9.0"
15
+ __version__ = "11.0.152"
16
16
 
17
17
  # import ApiClient
18
18
  from snaptrade_client.api_client import ApiClient
@@ -6,7 +6,7 @@
6
6
 
7
7
  The version of the OpenAPI document: 1.0.0
8
8
  Contact: api@snaptrade.com
9
- Generated by: https://konfigthis.com
9
+ Created by: https://snaptrade.com/
10
10
  """
11
11
 
12
12
  from dataclasses import dataclass
@@ -20,23 +20,27 @@ import atexit
20
20
  from multiprocessing.pool import ThreadPool
21
21
  import re
22
22
  import tempfile
23
+ import time
23
24
  import typing
24
25
  import typing_extensions
26
+ import aiohttp
25
27
  import urllib3
26
28
  from urllib3._collections import HTTPHeaderDict
27
29
  from urllib.parse import urlparse, quote
28
30
  from urllib3.fields import RequestField as RequestFieldBase
29
31
  from urllib3.fields import guess_content_type
32
+ from dateutil import parser
33
+ from datetime import datetime as dt
30
34
 
31
35
  import frozendict
32
36
 
33
37
  from snaptrade_client import rest
34
- from snaptrade_client.api_response import ApiResponse
35
- from snaptrade_client.rest import ResponseWrapper
38
+ from snaptrade_client.api_response import ApiResponse, AsyncApiResponse
39
+ from snaptrade_client.rest import AsyncResponseWrapper, ResponseWrapper
36
40
  from snaptrade_client.configuration import Configuration
37
41
  from snaptrade_client.exceptions import ApiTypeError, ApiValueError, MissingRequiredParametersError
38
42
  from snaptrade_client.request_after_hook import request_after_hook
39
- from snaptrade_client.request_before_hook import request_before_hook
43
+ from snaptrade_client.request_before_url_hook import request_before_url_hook
40
44
  from snaptrade_client.schemas import (
41
45
  NoneClass,
42
46
  BoolClass,
@@ -51,6 +55,14 @@ from snaptrade_client.schemas import (
51
55
  )
52
56
 
53
57
 
58
+ @dataclass
59
+ class MappedArgs:
60
+ body: typing.Any = None
61
+ query: typing.Optional[dict] = None
62
+ path: typing.Optional[dict] = None
63
+ header: typing.Optional[dict] = None
64
+ cookie: typing.Optional[dict] = None
65
+
54
66
  class RequestField(RequestFieldBase):
55
67
  def __eq__(self, other):
56
68
  if not isinstance(other, RequestField):
@@ -58,6 +70,24 @@ class RequestField(RequestFieldBase):
58
70
  return self.__dict__ == other.__dict__
59
71
 
60
72
 
73
+ def DeprecationWarningOnce(func=None, *, prefix=None):
74
+ def decorator(func):
75
+ warned = False
76
+ def wrapper(instance, *args, **kwargs):
77
+ nonlocal warned
78
+ if not warned:
79
+ msg = f"{func.__name__} is deprecated"
80
+ if prefix:
81
+ msg = f"{prefix}.{msg}"
82
+ instance.api_client.configuration.logger.warning(msg)
83
+ warned = True
84
+ return func(instance, *args, **kwargs)
85
+ return wrapper
86
+ if func is None:
87
+ return decorator
88
+ else:
89
+ return decorator(func)
90
+
61
91
  class JSONEncoder(json.JSONEncoder):
62
92
  compact_separators = (',', ':')
63
93
 
@@ -829,8 +859,11 @@ class MediaType:
829
859
 
830
860
  @dataclass
831
861
  class ApiResponseWithoutDeserialization(ApiResponse):
832
- response: urllib3.HTTPResponse
833
- body: typing.Union[Unset, typing.Type[Schema]] = unset
862
+ pass
863
+
864
+ @dataclass
865
+ class ApiResponseWithoutDeserializationAsync(AsyncApiResponse):
866
+ pass
834
867
 
835
868
 
836
869
  class OpenApiResponse(JSONDetector):
@@ -839,6 +872,7 @@ class OpenApiResponse(JSONDetector):
839
872
  def __init__(
840
873
  self,
841
874
  response_cls: typing.Type[ApiResponse] = ApiResponse,
875
+ response_cls_async: typing.Type[AsyncApiResponse] = AsyncApiResponse,
842
876
  content: typing.Optional[typing.Dict[str, MediaType]] = None,
843
877
  headers: typing.Optional[typing.List[HeaderParameter]] = None,
844
878
  ):
@@ -847,11 +881,12 @@ class OpenApiResponse(JSONDetector):
847
881
  raise ValueError('Invalid value for content, the content dict must have >= 1 entry')
848
882
  self.content = content
849
883
  self.response_cls = response_cls
884
+ self.response_cls_async = response_cls_async
850
885
 
851
886
  @staticmethod
852
- def __deserialize_json(response: urllib3.HTTPResponse) -> typing.Any:
887
+ def __deserialize_json(response: bytes) -> typing.Any:
853
888
  # python must be >= 3.9 so we can pass in bytes into json.loads
854
- return json.loads(response.data)
889
+ return json.loads(response)
855
890
 
856
891
  @staticmethod
857
892
  def __file_name_from_response_url(response_url: typing.Optional[str]) -> typing.Optional[str]:
@@ -911,9 +946,9 @@ class OpenApiResponse(JSONDetector):
911
946
 
912
947
  @staticmethod
913
948
  def __deserialize_multipart_form_data(
914
- response: urllib3.HTTPResponse
949
+ response: bytes
915
950
  ) -> typing.Dict[str, typing.Any]:
916
- msg = email.message_from_bytes(response.data)
951
+ msg = email.message_from_bytes(response)
917
952
  return {
918
953
  part.get_param("name", header="Content-Disposition"): part.get_payload(
919
954
  decode=True
@@ -965,20 +1000,16 @@ class OpenApiResponse(JSONDetector):
965
1000
 
966
1001
  return None
967
1002
 
968
- def deserialize(self, response: ResponseWrapper, configuration: Configuration, skip_deserialization = False) -> ApiResponse:
969
- content_type = response.http_response.headers.get('content-type')
1003
+ async def deserialize_async(self, response: AsyncResponseWrapper, configuration: Configuration, skip_deserialization = False) -> AsyncApiResponse:
1004
+ """
1005
+ Deserializes an HTTP response body into an object.
1006
+ """
1007
+ content_type = response.http_response.content_type
970
1008
  deserialized_body = unset
971
- streamed = response.http_response.supports_chunked_reads()
972
-
973
- deserialized_headers = unset
974
- if self.headers is not None:
975
- # TODO add header deserialiation here
976
- pass
977
-
978
1009
  if self.content is not None:
979
1010
  if len(self.content) == 0:
980
1011
  # some specs do not define response content media type schemas
981
- return self.response_cls(
1012
+ return self.response_cls_async(
982
1013
  round_trip_time=response.round_trip_time,
983
1014
  response=response.http_response,
984
1015
  body=unset,
@@ -991,25 +1022,20 @@ class OpenApiResponse(JSONDetector):
991
1022
  f"Invalid content_type returned. Content_type='{content_type}' was returned "
992
1023
  f"when only {str(set(self.content))} are defined for status_code={str(response.http_response.status)}"
993
1024
  )
994
-
995
1025
  if self._content_type_is_json(content_type):
996
- body_data = self.__deserialize_json(response.http_response)
997
- elif content_type == 'application/octet-stream':
998
- body_data = self.__deserialize_application_octet_stream(response.http_response)
1026
+ body_data = self.__deserialize_json(await response.http_response.read())
999
1027
  elif content_type.startswith('multipart/form-data'):
1000
- body_data = self.__deserialize_multipart_form_data(response.http_response)
1001
- content_type = 'multipart/form-data'
1028
+ body_data = self.__deserialize_multipart_form_data(await response.http_response.read())
1002
1029
  else:
1003
1030
  raise NotImplementedError('Deserialization of {} has not yet been implemented'.format(content_type))
1004
1031
  if skip_deserialization:
1005
- return self.response_cls(
1032
+ return self.response_cls_async(
1006
1033
  round_trip_time=response.round_trip_time,
1007
1034
  response=response.http_response,
1008
1035
  body=body_data,
1009
1036
  headers=response.http_response.headers,
1010
1037
  status=response.http_response.status
1011
1038
  )
1012
-
1013
1039
  # Execute validation and throw as a side effect if validation fails
1014
1040
  body_schema.from_openapi_data_oapg(
1015
1041
  body_data,
@@ -1017,7 +1043,66 @@ class OpenApiResponse(JSONDetector):
1017
1043
  )
1018
1044
  # Validation passed, set deserialized_body to plain old deserialized data
1019
1045
  deserialized_body = body_data
1020
- elif streamed:
1046
+
1047
+ return self.response_cls_async(
1048
+ round_trip_time=response.round_trip_time,
1049
+ response=response.http_response,
1050
+ body=deserialized_body,
1051
+ headers=response.http_response.headers,
1052
+ status=response.http_response.status
1053
+ )
1054
+
1055
+ def deserialize_body(self, response: ResponseWrapper, content_type: str) -> (any, str):
1056
+ if self._content_type_is_json(content_type):
1057
+ deserialized_body = self.__deserialize_json(response.http_response.data)
1058
+ elif content_type == 'application/octet-stream':
1059
+ deserialized_body = self.__deserialize_application_octet_stream(response.http_response)
1060
+ elif content_type.startswith('multipart/form-data'):
1061
+ deserialized_body = self.__deserialize_multipart_form_data(response.http_response.data)
1062
+ content_type = 'multipart/form-data'
1063
+ else: # If we don't know how to deserialize, use raw body string
1064
+ deserialized_body = response.http_response.data.decode()
1065
+ return deserialized_body, content_type
1066
+
1067
+ def deserialize(self, response: ResponseWrapper, configuration: Configuration, skip_deserialization = False) -> ApiResponse:
1068
+ content_type = response.http_response.headers.get('content-type')
1069
+ streamed = response.http_response.supports_chunked_reads()
1070
+
1071
+ deserialized_headers = unset
1072
+ if self.headers is not None:
1073
+ # TODO add header deserialization here
1074
+ pass
1075
+
1076
+ if self.content is not None and len(self.content) == 0:
1077
+ # some specs do not define response content media type schemas
1078
+ return self.response_cls(
1079
+ round_trip_time=response.round_trip_time,
1080
+ response=response.http_response,
1081
+ body=unset,
1082
+ headers=response.http_response.headers,
1083
+ status=response.http_response.status
1084
+ )
1085
+
1086
+ try:
1087
+ deserialized_body, content_type = self.deserialize_body(response, content_type)
1088
+ except Exception:
1089
+ # Most likely content-type did not match actual body
1090
+ deserialized_body = unset
1091
+
1092
+ if not skip_deserialization:
1093
+ body_schema = self.__get_schema_for_content_type(content_type)
1094
+ if body_schema is None:
1095
+ raise ApiValueError(
1096
+ f"Invalid content_type returned. Content_type='{content_type}' was returned "
1097
+ f"when only {str(set(self.content))} are defined for status_code={str(response.http_response.status)}"
1098
+ )
1099
+ # Execute validation and throw as a side effect if validation fails
1100
+ body_schema.from_openapi_data_oapg(
1101
+ body_data,
1102
+ _configuration=configuration
1103
+ )
1104
+
1105
+ if streamed:
1021
1106
  response.http_response.release_conn()
1022
1107
 
1023
1108
  return self.response_cls(
@@ -1070,7 +1155,7 @@ class ApiClient:
1070
1155
  self.default_headers[header_name] = header_value
1071
1156
  self.cookie = cookie
1072
1157
  # Set default User-Agent.
1073
- self.user_agent = 'Konfig/10.9.0/python'
1158
+ self.user_agent = 'Konfig/11.0.152/python'
1074
1159
 
1075
1160
  def __enter__(self):
1076
1161
  return self
@@ -1108,7 +1193,7 @@ class ApiClient:
1108
1193
  def set_default_header(self, header_name, header_value):
1109
1194
  self.default_headers[header_name] = header_value
1110
1195
 
1111
- def __call_api(
1196
+ async def __async_call_api(
1112
1197
  self,
1113
1198
  resource_path: str,
1114
1199
  method: str,
@@ -1118,49 +1203,126 @@ class ApiClient:
1118
1203
  fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1119
1204
  auth_settings: typing.Optional[typing.List[str]] = None,
1120
1205
  stream: bool = False,
1121
- timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
1206
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1122
1207
  host: typing.Optional[str] = None,
1123
1208
  prefix_separator_iterator: PrefixSeparatorIterator = None,
1124
- ) -> ResponseWrapper:
1209
+ **kwargs
1210
+ ) -> AsyncResponseWrapper:
1125
1211
 
1126
- request_before_hook(
1127
- resource_path=resource_path,
1212
+ # header parameters
1213
+ used_headers = HTTPHeaderDict(self.default_headers)
1214
+ if self.cookie:
1215
+ headers['Cookie'] = self.cookie
1216
+
1217
+ # auth setting
1218
+ resource_path_ref = [self.update_params_for_auth(
1219
+ used_headers,
1220
+ auth_settings,
1221
+ resource_path,
1222
+ method,
1223
+ body,
1224
+ prefix_separator_iterator
1225
+ )]
1226
+
1227
+ # must happen after cookie setting and auth setting in case user is overriding those
1228
+ if headers:
1229
+ used_headers.update(headers)
1230
+
1231
+ request_before_url_hook(
1232
+ resource_path_ref=resource_path_ref,
1128
1233
  method=method,
1129
1234
  configuration=self.configuration,
1130
1235
  body=body,
1131
1236
  fields=fields,
1132
1237
  auth_settings=auth_settings,
1133
- headers=headers,
1238
+ headers=used_headers,
1134
1239
  )
1135
1240
 
1241
+ # request url
1242
+ if host is None:
1243
+ url = self.configuration.host + resource_path_ref[0]
1244
+ else:
1245
+ # use server/host defined in path or operation instead
1246
+ url = host + resource_path_ref[0]
1247
+
1248
+ request_after_hook(
1249
+ resource_path=resource_path_ref[0],
1250
+ method=method,
1251
+ configuration=self.configuration,
1252
+ body=body,
1253
+ fields=fields,
1254
+ auth_settings=auth_settings,
1255
+ headers=used_headers,
1256
+ )
1257
+
1258
+ # perform request and return response
1259
+ response = await self.async_request(
1260
+ method,
1261
+ url,
1262
+ headers=used_headers,
1263
+ fields=fields,
1264
+ body=serialized_body,
1265
+ stream=stream,
1266
+ timeout=timeout,
1267
+ **kwargs
1268
+ )
1269
+
1270
+
1271
+ return response
1272
+
1273
+ def __call_api(
1274
+ self,
1275
+ resource_path: str,
1276
+ method: str,
1277
+ headers: typing.Optional[HTTPHeaderDict] = None,
1278
+ serialized_body: typing.Optional[typing.Union[str, bytes]] = None,
1279
+ body: typing.Any = None,
1280
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1281
+ auth_settings: typing.Optional[typing.List[str]] = None,
1282
+ stream: bool = False,
1283
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1284
+ host: typing.Optional[str] = None,
1285
+ prefix_separator_iterator: PrefixSeparatorIterator = None,
1286
+ ) -> ResponseWrapper:
1287
+
1136
1288
  # header parameters
1137
1289
  used_headers = HTTPHeaderDict(self.default_headers)
1138
1290
  if self.cookie:
1139
1291
  headers['Cookie'] = self.cookie
1140
1292
 
1141
1293
  # auth setting
1142
- resource_path = self.update_params_for_auth(
1294
+ resource_path_ref = [self.update_params_for_auth(
1143
1295
  used_headers,
1144
1296
  auth_settings,
1145
1297
  resource_path,
1146
1298
  method,
1147
1299
  body,
1148
1300
  prefix_separator_iterator
1149
- )
1301
+ )]
1150
1302
 
1151
1303
  # must happen after cookie setting and auth setting in case user is overriding those
1152
1304
  if headers:
1153
1305
  used_headers.update(headers)
1154
1306
 
1307
+ request_before_url_hook(
1308
+ resource_path_ref=resource_path_ref,
1309
+ method=method,
1310
+ configuration=self.configuration,
1311
+ body=body,
1312
+ fields=fields,
1313
+ auth_settings=auth_settings,
1314
+ headers=used_headers,
1315
+ )
1316
+
1155
1317
  # request url
1156
1318
  if host is None:
1157
- url = self.configuration.host + resource_path
1319
+ url = self.configuration.host + resource_path_ref[0]
1158
1320
  else:
1159
1321
  # use server/host defined in path or operation instead
1160
- url = host + resource_path
1322
+ url = host + resource_path_ref[0]
1161
1323
 
1162
1324
  request_after_hook(
1163
- resource_path=resource_path,
1325
+ resource_path=resource_path_ref[0],
1164
1326
  method=method,
1165
1327
  configuration=self.configuration,
1166
1328
  body=body,
@@ -1183,6 +1345,60 @@ class ApiClient:
1183
1345
 
1184
1346
  return response
1185
1347
 
1348
+ async def async_call_api(
1349
+ self,
1350
+ resource_path: str,
1351
+ method: str,
1352
+ headers: typing.Optional[HTTPHeaderDict] = None,
1353
+ serialized_body: typing.Optional[typing.Union[str, bytes]] = None,
1354
+ body: typing.Any = None,
1355
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1356
+ auth_settings: typing.Optional[typing.List[str]] = None,
1357
+ stream: bool = False,
1358
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1359
+ host: typing.Optional[str] = None,
1360
+ prefix_separator_iterator: PrefixSeparatorIterator = None,
1361
+ **kwargs
1362
+ ) -> AsyncResponseWrapper:
1363
+ """Makes the HTTP request (synchronous) and returns deserialized data.
1364
+
1365
+ :param resource_path: Path to method endpoint.
1366
+ :param method: Method to call.
1367
+ :param headers: Header parameters to be
1368
+ placed in the request header.
1369
+ :param body: Request body.
1370
+ :param fields: Request post form parameters,
1371
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
1372
+ :param auth_settings: Auth Settings names for the request.
1373
+ :param stream: if True, the urllib3.HTTPResponse object will
1374
+ be returned without reading/decoding response
1375
+ data. Also when True, if the openapi spec describes a file download,
1376
+ the data will be written to a local filesystme file and the BinarySchema
1377
+ instance will also inherit from FileSchema and FileIO
1378
+ Default is False.
1379
+ :type stream: bool, optional
1380
+ :param timeout: timeout setting for this request. If one
1381
+ number provided, it will be total request
1382
+ timeout. It can also be a pair (tuple) of
1383
+ (connection, read) timeouts.
1384
+ :param host: api endpoint host
1385
+ :return: response
1386
+ """
1387
+ return await self.__async_call_api(
1388
+ resource_path,
1389
+ method,
1390
+ headers,
1391
+ serialized_body,
1392
+ body,
1393
+ fields,
1394
+ auth_settings,
1395
+ stream,
1396
+ timeout,
1397
+ host,
1398
+ prefix_separator_iterator,
1399
+ **kwargs
1400
+ )
1401
+
1186
1402
  def call_api(
1187
1403
  self,
1188
1404
  resource_path: str,
@@ -1192,16 +1408,13 @@ class ApiClient:
1192
1408
  body: typing.Any = None,
1193
1409
  fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1194
1410
  auth_settings: typing.Optional[typing.List[str]] = None,
1195
- async_req: typing.Optional[bool] = None,
1196
1411
  stream: bool = False,
1197
- timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
1412
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1198
1413
  host: typing.Optional[str] = None,
1199
1414
  prefix_separator_iterator: PrefixSeparatorIterator = None,
1200
1415
  ) -> ResponseWrapper:
1201
1416
  """Makes the HTTP request (synchronous) and returns deserialized data.
1202
1417
 
1203
- To make an async_req request, set the async_req parameter.
1204
-
1205
1418
  :param resource_path: Path to method endpoint.
1206
1419
  :param method: Method to call.
1207
1420
  :param headers: Header parameters to be
@@ -1210,8 +1423,6 @@ class ApiClient:
1210
1423
  :param fields: Request post form parameters,
1211
1424
  for `application/x-www-form-urlencoded`, `multipart/form-data`.
1212
1425
  :param auth_settings: Auth Settings names for the request.
1213
- :param async_req: execute request asynchronously
1214
- :type async_req: bool, optional TODO remove, unused
1215
1426
  :param stream: if True, the urllib3.HTTPResponse object will
1216
1427
  be returned without reading/decoding response
1217
1428
  data. Also when True, if the openapi spec describes a file download,
@@ -1224,45 +1435,76 @@ class ApiClient:
1224
1435
  timeout. It can also be a pair (tuple) of
1225
1436
  (connection, read) timeouts.
1226
1437
  :param host: api endpoint host
1227
- :return:
1228
- If async_req parameter is True,
1229
- the request will be called asynchronously.
1230
- The method will return the request thread.
1231
- If parameter async_req is False or missing,
1232
- then the method will return the response directly.
1438
+ :return: response
1233
1439
  """
1440
+ return self.__call_api(
1441
+ resource_path,
1442
+ method,
1443
+ headers,
1444
+ serialized_body,
1445
+ body,
1446
+ fields,
1447
+ auth_settings,
1448
+ stream,
1449
+ timeout,
1450
+ host,
1451
+ prefix_separator_iterator,
1452
+ )
1234
1453
 
1235
- if not async_req:
1236
- return self.__call_api(
1237
- resource_path,
1238
- method,
1239
- headers,
1240
- serialized_body,
1241
- body,
1242
- fields,
1243
- auth_settings,
1244
- stream,
1245
- timeout,
1246
- host,
1247
- prefix_separator_iterator,
1248
- )
1454
+ def fields_to_dict(self, fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]]):
1455
+ """Converts fields to dict.
1249
1456
 
1250
- return self.pool.apply_async(
1251
- self.__call_api,
1252
- (
1253
- resource_path,
1254
- method,
1255
- headers,
1256
- serialized_body,
1257
- body,
1258
- json,
1259
- fields,
1260
- auth_settings,
1261
- stream,
1262
- timeout,
1263
- host,
1264
- prefix_separator_iterator,
1265
- )
1457
+ :param fields: fields
1458
+ :return: dict
1459
+ """
1460
+ if fields is None:
1461
+ return None
1462
+ return {k: v for k, v in fields}
1463
+
1464
+ async def async_request(
1465
+ self,
1466
+ method: str,
1467
+ url: str,
1468
+ headers: typing.Optional[HTTPHeaderDict] = None,
1469
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1470
+ body: typing.Optional[typing.Union[str, bytes]] = None,
1471
+ stream: bool = False,
1472
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1473
+ **kwargs
1474
+ ) -> AsyncResponseWrapper:
1475
+ if body and fields:
1476
+ raise ApiValueError("body parameter cannot be used with fields parameter")
1477
+ data = None
1478
+ if body:
1479
+ data=body
1480
+ if fields:
1481
+ data=self.fields_to_dict(fields)
1482
+ session = aiohttp.ClientSession()
1483
+ t1 = time.time()
1484
+ if method == "GET":
1485
+ response = await session.get(url, headers=headers, timeout=timeout, **kwargs)
1486
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1487
+ elif method == "HEAD":
1488
+ response = await session.head(url, headers=headers, timeout=timeout, **kwargs)
1489
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1490
+ elif method == "OPTIONS":
1491
+ response = await session.options(url, data=data, headers=headers, timeout=timeout, **kwargs)
1492
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1493
+ elif method == "POST":
1494
+ response = await session.post(url, data=data, headers=headers, timeout=timeout, **kwargs)
1495
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1496
+ elif method == "PUT":
1497
+ response = await session.put(url, data=data, headers=headers, timeout=timeout, **kwargs)
1498
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1499
+ elif method == "PATCH":
1500
+ response = await session.patch(url, data=data, headers=headers, timeout=timeout, **kwargs)
1501
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1502
+ elif method == "DELETE":
1503
+ response = await session.delete(url, data=data, headers=headers, timeout=timeout, **kwargs)
1504
+ return AsyncResponseWrapper(response, time.time() - t1, session)
1505
+ raise ApiValueError(
1506
+ "http method must be `GET`, `HEAD`, `OPTIONS`,"
1507
+ " `POST`, `PATCH`, `PUT` or `DELETE`."
1266
1508
  )
1267
1509
 
1268
1510
  def request(
@@ -1273,7 +1515,7 @@ class ApiClient:
1273
1515
  fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
1274
1516
  body: typing.Optional[typing.Union[str, bytes]] = None,
1275
1517
  stream: bool = False,
1276
- timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
1518
+ timeout: typing.Optional[typing.Union[float, typing.Tuple]] = None,
1277
1519
  ) -> ResponseWrapper:
1278
1520
  """Makes the HTTP request using RESTClient."""
1279
1521
  if method == "GET":
@@ -1529,8 +1771,8 @@ class RequestBody(StyleFormSerializer, JSONDetector):
1529
1771
  def __serialize_multipart_form_data(
1530
1772
  self, in_data: Schema
1531
1773
  ) -> typing.Dict[str, typing.Tuple[RequestField, ...]]:
1532
- if not isinstance(in_data, frozendict.frozendict):
1533
- raise ValueError(f'Unable to serialize {in_data} to multipart/form-data because it is not a dict of data')
1774
+ if not isinstance(in_data, frozendict.frozendict) and not isinstance(in_data, list) and not isinstance(in_data, tuple):
1775
+ raise ValueError(f'Unable to serialize {in_data} to multipart/form-data because it is not a dict of data or a list of data')
1534
1776
  """
1535
1777
  In a multipart/form-data request body, each schema property, or each element of a schema array property,
1536
1778
  takes a section in the payload with an internal header as defined by RFC7578. The serialization strategy
@@ -1545,24 +1787,33 @@ class RequestBody(StyleFormSerializer, JSONDetector):
1545
1787
  If the property is a type: string with a contentEncoding, the default Content-Type is application/octet-stream
1546
1788
  """
1547
1789
  fields: typing.List[RequestField] = []
1548
- for key, value in in_data.items():
1549
- if isinstance(value, tuple):
1550
- if value:
1551
- # values use explode = True, so the code makes a RequestField for each item with name=key
1552
- for item in value:
1553
- request_field = self.__multipart_form_item(key=key, value=item)
1790
+
1791
+ def add_field(data):
1792
+ for key, value in data.items():
1793
+ if isinstance(value, tuple):
1794
+ if value:
1795
+ # values use explode = True, so the code makes a RequestField for each item with name=key
1796
+ for item in value:
1797
+ request_field = self.__multipart_form_item(key=key, value=item)
1798
+ fields.append(request_field)
1799
+ else:
1800
+ # send an empty array as json because exploding will not send it
1801
+ request_field = self.__multipart_json_item(key=key, value=value)
1554
1802
  fields.append(request_field)
1555
1803
  else:
1556
- # send an empty array as json because exploding will not send it
1557
- request_field = self.__multipart_json_item(key=key, value=value)
1804
+ request_field = self.__multipart_form_item(key=key, value=value)
1558
1805
  fields.append(request_field)
1559
- else:
1560
- request_field = self.__multipart_form_item(key=key, value=value)
1561
- fields.append(request_field)
1806
+
1807
+ if isinstance(in_data, list) or isinstance(in_data, tuple):
1808
+ for item in in_data:
1809
+ add_field(item)
1810
+ else:
1811
+ add_field(in_data)
1562
1812
 
1563
1813
  # This is necessary to fill the "Content-Disposition" header needed for naming fields in multipart
1564
1814
  for field in fields:
1565
1815
  field.make_multipart(content_type=field.headers["Content-Type"])
1816
+
1566
1817
  return dict(fields=tuple(fields))
1567
1818
 
1568
1819
  def __serialize_application_octet_stream(self, in_data: BinarySchema) -> typing.Dict[str, bytes]: