lib/snaptrade/api/account_information_api.rb in snaptrade-1.12.0 vs lib/snaptrade/api/account_information_api.rb in snaptrade-1.13.0

- old
+ new

@@ -1,801 +1,801 @@ -=begin -#SnapTrade - -#Connect brokerage accounts to your app for live positions and trading - -The version of the OpenAPI document: 1.0.0 -Contact: api@snaptrade.com - -=end - -require 'cgi' - -module SnapTrade - class AccountInformationApi - attr_accessor :api_client - - def initialize(api_client = ApiClient.default) - @api_client = api_client - end - - # List all accounts for the user, plus balances, positions, and orders for each account. - # @param user_id [String] - # @param user_secret [String] - # @param brokerage_authorizations [String] Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_all_user_holdings(user_id:, user_secret:, brokerage_authorizations: SENTINEL, extra: {}) - extra[:brokerage_authorizations] = brokerage_authorizations if brokerage_authorizations != SENTINEL - - data, _status_code, _headers = get_all_user_holdings_with_http_info_impl(user_id, user_secret, extra) - data - end - - # List all accounts for the user, plus balances, positions, and orders for each account. - # @param user_id [String] - # @param user_secret [String] - # @param brokerage_authorizations [String] Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_all_user_holdings_with_http_info(user_id:, user_secret:, brokerage_authorizations: SENTINEL, extra: {}) - extra[:brokerage_authorizations] = brokerage_authorizations if brokerage_authorizations != SENTINEL - - get_all_user_holdings_with_http_info_impl(user_id, user_secret, extra) - end - - # List all accounts for the user, plus balances, positions, and orders for each account. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @option opts [String] :brokerage_authorizations Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). - # @return [Array<AccountHoldings>] - def get_all_user_holdings_impl(user_id, user_secret, opts = {}) - data, _status_code, _headers = get_all_user_holdings_with_http_info(user_id, user_secret, opts) - data - end - - # List all accounts for the user, plus balances, positions, and orders for each account. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @option opts [String] :brokerage_authorizations Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). - # @return [Array<(Array<AccountHoldings>, Integer, Hash)>] Array<AccountHoldings> data, response status code and response headers - def get_all_user_holdings_with_http_info_impl(user_id, user_secret, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_all_user_holdings ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_all_user_holdings" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_all_user_holdings" - end - # resource path - local_var_path = '/holdings' - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - query_params[:'brokerage_authorizations'] = opts[:'brokerage_authorizations'] if !opts[:'brokerage_authorizations'].nil? - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<AccountHoldings>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_all_user_holdings", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_all_user_holdings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # List account balances - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_balance(user_id:, user_secret:, account_id:, extra: {}) - - data, _status_code, _headers = get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, extra) - data - end - - # List account balances - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_balance_with_http_info(user_id:, user_secret:, account_id:, extra: {}) - - get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, extra) - end - - # List account balances - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @return [Array<Balance>] - def get_user_account_balance_impl(user_id, user_secret, account_id, opts = {}) - data, _status_code, _headers = get_user_account_balance_with_http_info(user_id, user_secret, account_id, opts) - data - end - - # List account balances - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @return [Array<(Array<Balance>, Integer, Hash)>] Array<Balance> data, response status code and response headers - def get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_balance ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_balance" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_balance" - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_balance" - end - # resource path - local_var_path = '/accounts/{accountId}/balances'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['*/*']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<Balance>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_user_account_balance", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # Return details of a specific investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to get detail of. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_details(user_id:, user_secret:, account_id:, extra: {}) - - data, _status_code, _headers = get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, extra) - data - end - - # Return details of a specific investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to get detail of. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_details_with_http_info(user_id:, user_secret:, account_id:, extra: {}) - - get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, extra) - end - - # Return details of a specific investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to get detail of. - # @param [Hash] opts the optional parameters - # @return [Account] - def get_user_account_details_impl(user_id, user_secret, account_id, opts = {}) - data, _status_code, _headers = get_user_account_details_with_http_info(user_id, user_secret, account_id, opts) - data - end - - # Return details of a specific investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to get detail of. - # @param [Hash] opts the optional parameters - # @return [Array<(Account, Integer, Hash)>] Account data, response status code and response headers - def get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_details ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_details" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_details" - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_details" - end - # resource path - local_var_path = '/accounts/{accountId}'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Account' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_user_account_details", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_details\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # Get all history of orders placed in account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param state [String] defaults value is set to \&quot;all\&quot; - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_orders(user_id:, user_secret:, account_id:, state: SENTINEL, extra: {}) - extra[:state] = state if state != SENTINEL - - data, _status_code, _headers = get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, extra) - data - end - - # Get all history of orders placed in account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param state [String] defaults value is set to \&quot;all\&quot; - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_orders_with_http_info(user_id:, user_secret:, account_id:, state: SENTINEL, extra: {}) - extra[:state] = state if state != SENTINEL - - get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, extra) - end - - # Get all history of orders placed in account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @option opts [String] :state defaults value is set to \&quot;all\&quot; - # @return [Array<AccountOrderRecord>] - def get_user_account_orders_impl(user_id, user_secret, account_id, opts = {}) - data, _status_code, _headers = get_user_account_orders_with_http_info(user_id, user_secret, account_id, opts) - data - end - - # Get all history of orders placed in account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @option opts [String] :state defaults value is set to \&quot;all\&quot; - # @return [Array<(Array<AccountOrderRecord>, Integer, Hash)>] Array<AccountOrderRecord> data, response status code and response headers - def get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_orders ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_orders" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_orders" - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_orders" - end - allowable_values = ["all", "open", "executed"] - if @api_client.config.client_side_validation && opts[:'state'] && !allowable_values.include?(opts[:'state']) - fail ArgumentError, "invalid value for \"state\", must be one of #{allowable_values}" - end - # resource path - local_var_path = '/accounts/{accountId}/orders'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - query_params[:'state'] = opts[:'state'] if !opts[:'state'].nil? - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<AccountOrderRecord>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_user_account_orders", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_orders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # List account positions - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_positions(user_id:, user_secret:, account_id:, extra: {}) - - data, _status_code, _headers = get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, extra) - data - end - - # List account positions - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_account_positions_with_http_info(user_id:, user_secret:, account_id:, extra: {}) - - get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, extra) - end - - # List account positions - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @return [Array<Position>] - def get_user_account_positions_impl(user_id, user_secret, account_id, opts = {}) - data, _status_code, _headers = get_user_account_positions_with_http_info(user_id, user_secret, account_id, opts) - data - end - - # List account positions - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account get positions. - # @param [Hash] opts the optional parameters - # @return [Array<(Array<Position>, Integer, Hash)>] Array<Position> data, response status code and response headers - def get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_positions ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_positions" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_positions" - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_positions" - end - # resource path - local_var_path = '/accounts/{accountId}/positions'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['*/*']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<Position>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_user_account_positions", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_positions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # List balances, positions and orders for the specified account. - # @param account_id [String] The ID of the account to fetch holdings for. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_holdings(account_id:, user_id:, user_secret:, extra: {}) - - data, _status_code, _headers = get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, extra) - data - end - - # List balances, positions and orders for the specified account. - # @param account_id [String] The ID of the account to fetch holdings for. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def get_user_holdings_with_http_info(account_id:, user_id:, user_secret:, extra: {}) - - get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, extra) - end - - # List balances, positions and orders for the specified account. - # @param account_id [String] The ID of the account to fetch holdings for. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @return [AccountHoldingsAccount] - def get_user_holdings_impl(account_id, user_id, user_secret, opts = {}) - data, _status_code, _headers = get_user_holdings_with_http_info(account_id, user_id, user_secret, opts) - data - end - - # List balances, positions and orders for the specified account. - # @param account_id [String] The ID of the account to fetch holdings for. - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @return [Array<(AccountHoldingsAccount, Integer, Hash)>] AccountHoldingsAccount data, response status code and response headers - def get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_holdings ...' - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_holdings" - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_holdings" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_holdings" - end - # resource path - local_var_path = '/accounts/{accountId}/holdings'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'AccountHoldingsAccount' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.get_user_holdings", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#get_user_holdings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # List accounts - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def list_user_accounts(user_id:, user_secret:, extra: {}) - - data, _status_code, _headers = list_user_accounts_with_http_info_impl(user_id, user_secret, extra) - data - end - - # List accounts - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def list_user_accounts_with_http_info(user_id:, user_secret:, extra: {}) - - list_user_accounts_with_http_info_impl(user_id, user_secret, extra) - end - - # List accounts - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @return [Array<Account>] - def list_user_accounts_impl(user_id, user_secret, opts = {}) - data, _status_code, _headers = list_user_accounts_with_http_info(user_id, user_secret, opts) - data - end - - # List accounts - # @param user_id [String] - # @param user_secret [String] - # @param [Hash] opts the optional parameters - # @return [Array<(Array<Account>, Integer, Hash)>] Array<Account> data, response status code and response headers - def list_user_accounts_with_http_info_impl(user_id, user_secret, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.list_user_accounts ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.list_user_accounts" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.list_user_accounts" - end - # resource path - local_var_path = '/accounts' - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<Account>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.list_user_accounts", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#list_user_accounts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - - - # Update details of an investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to update. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def update_user_account(user_id:, user_secret:, account_id:, extra: {}) - - data, _status_code, _headers = update_user_account_with_http_info_impl(user_id, user_secret, account_id, extra) - data - end - - # Update details of an investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to update. - # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name - def update_user_account_with_http_info(user_id:, user_secret:, account_id:, extra: {}) - - update_user_account_with_http_info_impl(user_id, user_secret, account_id, extra) - end - - # Update details of an investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to update. - # @param [Hash] opts the optional parameters - # @return [Array<Account>] - def update_user_account_impl(user_id, user_secret, account_id, opts = {}) - data, _status_code, _headers = update_user_account_with_http_info(user_id, user_secret, account_id, opts) - data - end - - # Update details of an investment account - # @param user_id [String] - # @param user_secret [String] - # @param account_id [String] The ID of the account to update. - # @param [Hash] opts the optional parameters - # @return [Array<(Array<Account>, Integer, Hash)>] Array<Account> data, response status code and response headers - def update_user_account_with_http_info_impl(user_id, user_secret, account_id, opts = {}) - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AccountInformationApi.update_user_account ...' - end - # verify the required parameter 'user_id' is set - if @api_client.config.client_side_validation && user_id.nil? - fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.update_user_account" - end - # verify the required parameter 'user_secret' is set - if @api_client.config.client_side_validation && user_secret.nil? - fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.update_user_account" - end - # verify the required parameter 'account_id' is set - if @api_client.config.client_side_validation && account_id.nil? - fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.update_user_account" - end - # resource path - local_var_path = '/accounts/{accountId}'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) - - # query parameters - query_params = opts[:query_params] || {} - query_params[:'userId'] = user_id - query_params[:'userSecret'] = user_secret - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'Array<Account>' - - # auth_names - auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] - - new_options = opts.merge( - :operation => :"AccountInformationApi.update_user_account", - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type - ) - - data, status_code, headers, response = @api_client.call_api(:PUT, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AccountInformationApi#update_user_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers, response - end - end - - # top-level client access to avoid having the user to insantiate their own API instances - AccountInformation = AccountInformationApi::new -end +=begin +#SnapTrade + +#Connect brokerage accounts to your app for live positions and trading + +The version of the OpenAPI document: 1.0.0 +Contact: api@snaptrade.com + +=end + +require 'cgi' + +module SnapTrade + class AccountInformationApi + attr_accessor :api_client + + def initialize(api_client = ApiClient.default) + @api_client = api_client + end + + # List all accounts for the user, plus balances, positions, and orders for each account. + # @param user_id [String] + # @param user_secret [String] + # @param brokerage_authorizations [String] Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_all_user_holdings(user_id:, user_secret:, brokerage_authorizations: SENTINEL, extra: {}) + extra[:brokerage_authorizations] = brokerage_authorizations if brokerage_authorizations != SENTINEL + + data, _status_code, _headers = get_all_user_holdings_with_http_info_impl(user_id, user_secret, extra) + data + end + + # List all accounts for the user, plus balances, positions, and orders for each account. + # @param user_id [String] + # @param user_secret [String] + # @param brokerage_authorizations [String] Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_all_user_holdings_with_http_info(user_id:, user_secret:, brokerage_authorizations: SENTINEL, extra: {}) + extra[:brokerage_authorizations] = brokerage_authorizations if brokerage_authorizations != SENTINEL + + get_all_user_holdings_with_http_info_impl(user_id, user_secret, extra) + end + + # List all accounts for the user, plus balances, positions, and orders for each account. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @option opts [String] :brokerage_authorizations Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). + # @return [Array<AccountHoldings>] + def get_all_user_holdings_impl(user_id, user_secret, opts = {}) + data, _status_code, _headers = get_all_user_holdings_with_http_info(user_id, user_secret, opts) + data + end + + # List all accounts for the user, plus balances, positions, and orders for each account. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @option opts [String] :brokerage_authorizations Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). + # @return [Array<(Array<AccountHoldings>, Integer, Hash)>] Array<AccountHoldings> data, response status code and response headers + def get_all_user_holdings_with_http_info_impl(user_id, user_secret, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_all_user_holdings ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_all_user_holdings" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_all_user_holdings" + end + # resource path + local_var_path = '/holdings' + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + query_params[:'brokerage_authorizations'] = opts[:'brokerage_authorizations'] if !opts[:'brokerage_authorizations'].nil? + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<AccountHoldings>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_all_user_holdings", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_all_user_holdings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # List account balances + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_balance(user_id:, user_secret:, account_id:, extra: {}) + + data, _status_code, _headers = get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, extra) + data + end + + # List account balances + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_balance_with_http_info(user_id:, user_secret:, account_id:, extra: {}) + + get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, extra) + end + + # List account balances + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @return [Array<Balance>] + def get_user_account_balance_impl(user_id, user_secret, account_id, opts = {}) + data, _status_code, _headers = get_user_account_balance_with_http_info(user_id, user_secret, account_id, opts) + data + end + + # List account balances + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @return [Array<(Array<Balance>, Integer, Hash)>] Array<Balance> data, response status code and response headers + def get_user_account_balance_with_http_info_impl(user_id, user_secret, account_id, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_balance ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_balance" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_balance" + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_balance" + end + # resource path + local_var_path = '/accounts/{accountId}/balances'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['*/*']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<Balance>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_user_account_balance", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_balance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # Return details of a specific investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to get detail of. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_details(user_id:, user_secret:, account_id:, extra: {}) + + data, _status_code, _headers = get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, extra) + data + end + + # Return details of a specific investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to get detail of. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_details_with_http_info(user_id:, user_secret:, account_id:, extra: {}) + + get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, extra) + end + + # Return details of a specific investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to get detail of. + # @param [Hash] opts the optional parameters + # @return [Account] + def get_user_account_details_impl(user_id, user_secret, account_id, opts = {}) + data, _status_code, _headers = get_user_account_details_with_http_info(user_id, user_secret, account_id, opts) + data + end + + # Return details of a specific investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to get detail of. + # @param [Hash] opts the optional parameters + # @return [Array<(Account, Integer, Hash)>] Account data, response status code and response headers + def get_user_account_details_with_http_info_impl(user_id, user_secret, account_id, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_details ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_details" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_details" + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_details" + end + # resource path + local_var_path = '/accounts/{accountId}'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Account' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_user_account_details", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_details\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # Get all history of orders placed in account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param state [String] defaults value is set to \&quot;all\&quot; + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_orders(user_id:, user_secret:, account_id:, state: SENTINEL, extra: {}) + extra[:state] = state if state != SENTINEL + + data, _status_code, _headers = get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, extra) + data + end + + # Get all history of orders placed in account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param state [String] defaults value is set to \&quot;all\&quot; + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_orders_with_http_info(user_id:, user_secret:, account_id:, state: SENTINEL, extra: {}) + extra[:state] = state if state != SENTINEL + + get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, extra) + end + + # Get all history of orders placed in account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @option opts [String] :state defaults value is set to \&quot;all\&quot; + # @return [Array<AccountOrderRecord>] + def get_user_account_orders_impl(user_id, user_secret, account_id, opts = {}) + data, _status_code, _headers = get_user_account_orders_with_http_info(user_id, user_secret, account_id, opts) + data + end + + # Get all history of orders placed in account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @option opts [String] :state defaults value is set to \&quot;all\&quot; + # @return [Array<(Array<AccountOrderRecord>, Integer, Hash)>] Array<AccountOrderRecord> data, response status code and response headers + def get_user_account_orders_with_http_info_impl(user_id, user_secret, account_id, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_orders ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_orders" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_orders" + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_orders" + end + allowable_values = ["all", "open", "executed"] + if @api_client.config.client_side_validation && opts[:'state'] && !allowable_values.include?(opts[:'state']) + fail ArgumentError, "invalid value for \"state\", must be one of #{allowable_values}" + end + # resource path + local_var_path = '/accounts/{accountId}/orders'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + query_params[:'state'] = opts[:'state'] if !opts[:'state'].nil? + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<AccountOrderRecord>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_user_account_orders", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_orders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # List account positions + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_positions(user_id:, user_secret:, account_id:, extra: {}) + + data, _status_code, _headers = get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, extra) + data + end + + # List account positions + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_account_positions_with_http_info(user_id:, user_secret:, account_id:, extra: {}) + + get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, extra) + end + + # List account positions + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @return [Array<Position>] + def get_user_account_positions_impl(user_id, user_secret, account_id, opts = {}) + data, _status_code, _headers = get_user_account_positions_with_http_info(user_id, user_secret, account_id, opts) + data + end + + # List account positions + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account get positions. + # @param [Hash] opts the optional parameters + # @return [Array<(Array<Position>, Integer, Hash)>] Array<Position> data, response status code and response headers + def get_user_account_positions_with_http_info_impl(user_id, user_secret, account_id, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_account_positions ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_account_positions" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_account_positions" + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_account_positions" + end + # resource path + local_var_path = '/accounts/{accountId}/positions'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['*/*']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<Position>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_user_account_positions", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_user_account_positions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # List balances, positions and orders for the specified account. + # @param account_id [String] The ID of the account to fetch holdings for. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_holdings(account_id:, user_id:, user_secret:, extra: {}) + + data, _status_code, _headers = get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, extra) + data + end + + # List balances, positions and orders for the specified account. + # @param account_id [String] The ID of the account to fetch holdings for. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def get_user_holdings_with_http_info(account_id:, user_id:, user_secret:, extra: {}) + + get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, extra) + end + + # List balances, positions and orders for the specified account. + # @param account_id [String] The ID of the account to fetch holdings for. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @return [AccountHoldingsAccount] + def get_user_holdings_impl(account_id, user_id, user_secret, opts = {}) + data, _status_code, _headers = get_user_holdings_with_http_info(account_id, user_id, user_secret, opts) + data + end + + # List balances, positions and orders for the specified account. + # @param account_id [String] The ID of the account to fetch holdings for. + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @return [Array<(AccountHoldingsAccount, Integer, Hash)>] AccountHoldingsAccount data, response status code and response headers + def get_user_holdings_with_http_info_impl(account_id, user_id, user_secret, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.get_user_holdings ...' + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.get_user_holdings" + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.get_user_holdings" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.get_user_holdings" + end + # resource path + local_var_path = '/accounts/{accountId}/holdings'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'AccountHoldingsAccount' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.get_user_holdings", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#get_user_holdings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # List accounts + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def list_user_accounts(user_id:, user_secret:, extra: {}) + + data, _status_code, _headers = list_user_accounts_with_http_info_impl(user_id, user_secret, extra) + data + end + + # List accounts + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def list_user_accounts_with_http_info(user_id:, user_secret:, extra: {}) + + list_user_accounts_with_http_info_impl(user_id, user_secret, extra) + end + + # List accounts + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @return [Array<Account>] + def list_user_accounts_impl(user_id, user_secret, opts = {}) + data, _status_code, _headers = list_user_accounts_with_http_info(user_id, user_secret, opts) + data + end + + # List accounts + # @param user_id [String] + # @param user_secret [String] + # @param [Hash] opts the optional parameters + # @return [Array<(Array<Account>, Integer, Hash)>] Array<Account> data, response status code and response headers + def list_user_accounts_with_http_info_impl(user_id, user_secret, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.list_user_accounts ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.list_user_accounts" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.list_user_accounts" + end + # resource path + local_var_path = '/accounts' + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<Account>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.list_user_accounts", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:GET, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#list_user_accounts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + + + # Update details of an investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to update. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def update_user_account(user_id:, user_secret:, account_id:, extra: {}) + + data, _status_code, _headers = update_user_account_with_http_info_impl(user_id, user_secret, account_id, extra) + data + end + + # Update details of an investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to update. + # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name + def update_user_account_with_http_info(user_id:, user_secret:, account_id:, extra: {}) + + update_user_account_with_http_info_impl(user_id, user_secret, account_id, extra) + end + + # Update details of an investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to update. + # @param [Hash] opts the optional parameters + # @return [Array<Account>] + def update_user_account_impl(user_id, user_secret, account_id, opts = {}) + data, _status_code, _headers = update_user_account_with_http_info(user_id, user_secret, account_id, opts) + data + end + + # Update details of an investment account + # @param user_id [String] + # @param user_secret [String] + # @param account_id [String] The ID of the account to update. + # @param [Hash] opts the optional parameters + # @return [Array<(Array<Account>, Integer, Hash)>] Array<Account> data, response status code and response headers + def update_user_account_with_http_info_impl(user_id, user_secret, account_id, opts = {}) + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AccountInformationApi.update_user_account ...' + end + # verify the required parameter 'user_id' is set + if @api_client.config.client_side_validation && user_id.nil? + fail ArgumentError, "Missing the required parameter 'user_id' when calling AccountInformationApi.update_user_account" + end + # verify the required parameter 'user_secret' is set + if @api_client.config.client_side_validation && user_secret.nil? + fail ArgumentError, "Missing the required parameter 'user_secret' when calling AccountInformationApi.update_user_account" + end + # verify the required parameter 'account_id' is set + if @api_client.config.client_side_validation && account_id.nil? + fail ArgumentError, "Missing the required parameter 'account_id' when calling AccountInformationApi.update_user_account" + end + # resource path + local_var_path = '/accounts/{accountId}'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s)) + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'userId'] = user_id + query_params[:'userSecret'] = user_secret + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'Array<Account>' + + # auth_names + auth_names = opts[:debug_auth_names] || ['PartnerClientId', 'PartnerSignature', 'PartnerTimestamp'] + + new_options = opts.merge( + :operation => :"AccountInformationApi.update_user_account", + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type + ) + + data, status_code, headers, response = @api_client.call_api(:PUT, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AccountInformationApi#update_user_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers, response + end + end + + # top-level client access to avoid having the user to insantiate their own API instances + AccountInformation = AccountInformationApi::new +end