github.com/vmpartner/bitmex@v1.1.0/swagger/instrument_api.go (about)

     1  /* 
     2   * BitMEX API
     3   *
     4   * ## REST API for the BitMEX Trading Platform  [View Changelog](/app/apiChangelog)    #### Getting Started   ##### Fetching Data  All REST endpoints are documented below. You can try out any query right from this interface.  Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first.  Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](https://www.bitmex.com/app/restAPI).  *All* table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits.  ##### Return Types  By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data.  ##### Trade Data Queries  *This is only a small subset of what is available, to get you started.*  Fill in the parameters and click the `Try it out!` button to try any of these queries.  * [Pricing Data](#!/Quote/Quote_get)  * [Trade Data](#!/Trade/Trade_get)  * [OrderBook Data](#!/OrderBook/OrderBook_getL2)  * [Settlement Data](#!/Settlement/Settlement_get)  * [Exchange Statistics](#!/Stats/Stats_history)  Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available.  ##### Swagger Specification  [⇩ Download Swagger JSON](swagger.json)    ## All API Endpoints  Click to expand a section. 
     5   *
     6   * OpenAPI spec version: 1.2.0
     7   * Contact: support@bitmex.com
     8   * Generated by: https://github.com/swagger-api/swagger-codegen.git
     9   */
    10  
    11  package swagger
    12  
    13  import (
    14  	"net/url"
    15  	"net/http"
    16  	"strings"
    17  	"golang.org/x/net/context"
    18  	"time"
    19  	"encoding/json"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type InstrumentApiService service
    28  
    29  /* InstrumentApiService Get instruments.
    30   This returns all instruments and indices, including those that have settled or are unlisted. Use this endpoint if you want to query for individual instruments or use a complex filter. Use `/instrument/active` to return active instruments, or use a filter like `{\"state\": \"Open\"}`.
    31  
    32   @param optional (nil or map[string]interface{}) with one or more of:
    33       @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series.  You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`.
    34       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
    35       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
    36       @param "count" (float32) Number of results to fetch.
    37       @param "start" (float32) Starting point for results.
    38       @param "reverse" (bool) If true, will sort results newest first.
    39       @param "startTime" (time.Time) Starting date filter for results.
    40       @param "endTime" (time.Time) Ending date filter for results.
    41   @return []Instrument*/
    42  func (a *InstrumentApiService) InstrumentGet(localVarOptionals map[string]interface{}) ([]Instrument, *http.Response, error) {
    43  	var (
    44  		localVarHttpMethod = strings.ToUpper("Get")
    45  		localVarPostBody   interface{}
    46  		localVarFileName   string
    47  		localVarFileBytes  []byte
    48  		successPayload     []Instrument
    49  	)
    50  
    51  	// create path and map variables
    52  	localVarPath := a.client.cfg.BasePath + "/instrument"
    53  
    54  	localVarHeaderParams := make(map[string]string)
    55  	localVarQueryParams := url.Values{}
    56  	localVarFormParams := url.Values{}
    57  
    58  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
    59  		return successPayload, nil, err
    60  	}
    61  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
    62  		return successPayload, nil, err
    63  	}
    64  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
    65  		return successPayload, nil, err
    66  	}
    67  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
    68  		return successPayload, nil, err
    69  	}
    70  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
    71  		return successPayload, nil, err
    72  	}
    73  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
    74  		return successPayload, nil, err
    75  	}
    76  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
    77  		return successPayload, nil, err
    78  	}
    79  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
    80  		return successPayload, nil, err
    81  	}
    82  
    83  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
    84  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
    85  	}
    86  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
    87  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
    88  	}
    89  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
    90  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
    91  	}
    92  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
    93  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
    94  	}
    95  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
    96  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
    97  	}
    98  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
    99  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   100  	}
   101  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   102  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   103  	}
   104  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   105  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   106  	}
   107  	// to determine the Content-Type header
   108  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   109  
   110  	// set Content-Type header
   111  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   112  	if localVarHttpContentType != "" {
   113  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   114  	}
   115  
   116  	// to determine the Accept header
   117  	localVarHttpHeaderAccepts := []string{
   118  		"application/json",
   119  		"application/xml",
   120  		"text/xml",
   121  		"application/javascript",
   122  		"text/javascript",
   123  	}
   124  
   125  	// set Accept header
   126  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   127  	if localVarHttpHeaderAccept != "" {
   128  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   129  	}
   130  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   131  	if err != nil {
   132  		return successPayload, nil, err
   133  	}
   134  
   135  	localVarHttpResponse, err := a.client.callAPI(r)
   136  	if err != nil || localVarHttpResponse == nil {
   137  		return successPayload, localVarHttpResponse, err
   138  	}
   139  	defer localVarHttpResponse.Body.Close()
   140  	if localVarHttpResponse.StatusCode >= 300 {
   141  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   142  	}
   143  
   144  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   145  		return successPayload, localVarHttpResponse, err
   146  	}
   147  
   148  	return successPayload, localVarHttpResponse, err
   149  }
   150  
   151  /* InstrumentApiService Get all active instruments and instruments that have expired in <24hrs.
   152  
   153   @return []Instrument*/
   154  func (a *InstrumentApiService) InstrumentGetActive() ([]Instrument, *http.Response, error) {
   155  	var (
   156  		localVarHttpMethod = strings.ToUpper("Get")
   157  		localVarPostBody   interface{}
   158  		localVarFileName   string
   159  		localVarFileBytes  []byte
   160  		successPayload     []Instrument
   161  	)
   162  
   163  	// create path and map variables
   164  	localVarPath := a.client.cfg.BasePath + "/instrument/active"
   165  
   166  	localVarHeaderParams := make(map[string]string)
   167  	localVarQueryParams := url.Values{}
   168  	localVarFormParams := url.Values{}
   169  
   170  	// to determine the Content-Type header
   171  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   172  
   173  	// set Content-Type header
   174  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   175  	if localVarHttpContentType != "" {
   176  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   177  	}
   178  
   179  	// to determine the Accept header
   180  	localVarHttpHeaderAccepts := []string{
   181  		"application/json",
   182  		"application/xml",
   183  		"text/xml",
   184  		"application/javascript",
   185  		"text/javascript",
   186  	}
   187  
   188  	// set Accept header
   189  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   190  	if localVarHttpHeaderAccept != "" {
   191  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   192  	}
   193  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   194  	if err != nil {
   195  		return successPayload, nil, err
   196  	}
   197  
   198  	localVarHttpResponse, err := a.client.callAPI(r)
   199  	if err != nil || localVarHttpResponse == nil {
   200  		return successPayload, localVarHttpResponse, err
   201  	}
   202  	defer localVarHttpResponse.Body.Close()
   203  	if localVarHttpResponse.StatusCode >= 300 {
   204  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   205  	}
   206  
   207  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   208  		return successPayload, localVarHttpResponse, err
   209  	}
   210  
   211  	return successPayload, localVarHttpResponse, err
   212  }
   213  
   214  /* InstrumentApiService Helper method. Gets all active instruments and all indices. This is a join of the result of /indices and /active.
   215  
   216   @return []Instrument*/
   217  func (a *InstrumentApiService) InstrumentGetActiveAndIndices() ([]Instrument, *http.Response, error) {
   218  	var (
   219  		localVarHttpMethod = strings.ToUpper("Get")
   220  		localVarPostBody   interface{}
   221  		localVarFileName   string
   222  		localVarFileBytes  []byte
   223  		successPayload     []Instrument
   224  	)
   225  
   226  	// create path and map variables
   227  	localVarPath := a.client.cfg.BasePath + "/instrument/activeAndIndices"
   228  
   229  	localVarHeaderParams := make(map[string]string)
   230  	localVarQueryParams := url.Values{}
   231  	localVarFormParams := url.Values{}
   232  
   233  	// to determine the Content-Type header
   234  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   235  
   236  	// set Content-Type header
   237  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   238  	if localVarHttpContentType != "" {
   239  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   240  	}
   241  
   242  	// to determine the Accept header
   243  	localVarHttpHeaderAccepts := []string{
   244  		"application/json",
   245  		"application/xml",
   246  		"text/xml",
   247  		"application/javascript",
   248  		"text/javascript",
   249  	}
   250  
   251  	// set Accept header
   252  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   253  	if localVarHttpHeaderAccept != "" {
   254  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   255  	}
   256  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   257  	if err != nil {
   258  		return successPayload, nil, err
   259  	}
   260  
   261  	localVarHttpResponse, err := a.client.callAPI(r)
   262  	if err != nil || localVarHttpResponse == nil {
   263  		return successPayload, localVarHttpResponse, err
   264  	}
   265  	defer localVarHttpResponse.Body.Close()
   266  	if localVarHttpResponse.StatusCode >= 300 {
   267  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   268  	}
   269  
   270  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   271  		return successPayload, localVarHttpResponse, err
   272  	}
   273  
   274  	return successPayload, localVarHttpResponse, err
   275  }
   276  
   277  /* InstrumentApiService Return all active contract series and interval pairs.
   278   This endpoint is useful for determining which pairs are live. It returns two arrays of   strings. The first is intervals, such as `[\"BVOL:daily\", \"BVOL:weekly\", \"XBU:daily\", \"XBU:monthly\", ...]`. These identifiers are usable in any query's `symbol` param. The second array is the current resolution of these intervals. Results are mapped at the same index.
   279  
   280   @return InstrumentInterval*/
   281  func (a *InstrumentApiService) InstrumentGetActiveIntervals() (InstrumentInterval, *http.Response, error) {
   282  	var (
   283  		localVarHttpMethod = strings.ToUpper("Get")
   284  		localVarPostBody   interface{}
   285  		localVarFileName   string
   286  		localVarFileBytes  []byte
   287  		successPayload     InstrumentInterval
   288  	)
   289  
   290  	// create path and map variables
   291  	localVarPath := a.client.cfg.BasePath + "/instrument/activeIntervals"
   292  
   293  	localVarHeaderParams := make(map[string]string)
   294  	localVarQueryParams := url.Values{}
   295  	localVarFormParams := url.Values{}
   296  
   297  	// to determine the Content-Type header
   298  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   299  
   300  	// set Content-Type header
   301  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   302  	if localVarHttpContentType != "" {
   303  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   304  	}
   305  
   306  	// to determine the Accept header
   307  	localVarHttpHeaderAccepts := []string{
   308  		"application/json",
   309  		"application/xml",
   310  		"text/xml",
   311  		"application/javascript",
   312  		"text/javascript",
   313  	}
   314  
   315  	// set Accept header
   316  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   317  	if localVarHttpHeaderAccept != "" {
   318  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   319  	}
   320  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   321  	if err != nil {
   322  		return successPayload, nil, err
   323  	}
   324  
   325  	localVarHttpResponse, err := a.client.callAPI(r)
   326  	if err != nil || localVarHttpResponse == nil {
   327  		return successPayload, localVarHttpResponse, err
   328  	}
   329  	defer localVarHttpResponse.Body.Close()
   330  	if localVarHttpResponse.StatusCode >= 300 {
   331  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   332  	}
   333  
   334  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   335  		return successPayload, localVarHttpResponse, err
   336  	}
   337  
   338  	return successPayload, localVarHttpResponse, err
   339  }
   340  
   341  /* InstrumentApiService Show constituent parts of an index.
   342   Composite indices are built from multiple external price sources.  Use this endpoint to get the underlying prices of an index. For example, send a `symbol` of `.XBT` to get the ticks and weights of the constituent exchanges that build the \".XBT\" index.  A tick with reference `\"BMI\"` and weight `null` is the composite index tick. 
   343  
   344   @param optional (nil or map[string]interface{}) with one or more of:
   345       @param "account" (float64) 
   346       @param "symbol" (string) The composite index symbol.
   347       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
   348       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
   349       @param "count" (float32) Number of results to fetch.
   350       @param "start" (float32) Starting point for results.
   351       @param "reverse" (bool) If true, will sort results newest first.
   352       @param "startTime" (time.Time) Starting date filter for results.
   353       @param "endTime" (time.Time) Ending date filter for results.
   354   @return []IndexComposite*/
   355  func (a *InstrumentApiService) InstrumentGetCompositeIndex(localVarOptionals map[string]interface{}) ([]IndexComposite, *http.Response, error) {
   356  	var (
   357  		localVarHttpMethod = strings.ToUpper("Get")
   358  		localVarPostBody   interface{}
   359  		localVarFileName   string
   360  		localVarFileBytes  []byte
   361  		successPayload     []IndexComposite
   362  	)
   363  
   364  	// create path and map variables
   365  	localVarPath := a.client.cfg.BasePath + "/instrument/compositeIndex"
   366  
   367  	localVarHeaderParams := make(map[string]string)
   368  	localVarQueryParams := url.Values{}
   369  	localVarFormParams := url.Values{}
   370  
   371  	if err := typeCheckParameter(localVarOptionals["account"], "float64", "account"); err != nil {
   372  		return successPayload, nil, err
   373  	}
   374  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
   375  		return successPayload, nil, err
   376  	}
   377  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
   378  		return successPayload, nil, err
   379  	}
   380  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
   381  		return successPayload, nil, err
   382  	}
   383  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
   384  		return successPayload, nil, err
   385  	}
   386  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
   387  		return successPayload, nil, err
   388  	}
   389  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
   390  		return successPayload, nil, err
   391  	}
   392  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
   393  		return successPayload, nil, err
   394  	}
   395  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
   396  		return successPayload, nil, err
   397  	}
   398  
   399  	if localVarTempParam, localVarOk := localVarOptionals["account"].(float64); localVarOk {
   400  		localVarQueryParams.Add("account", parameterToString(localVarTempParam, ""))
   401  	}
   402  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
   403  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
   404  	}
   405  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
   406  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
   407  	}
   408  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
   409  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
   410  	}
   411  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
   412  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
   413  	}
   414  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
   415  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
   416  	}
   417  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
   418  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   419  	}
   420  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   421  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   422  	}
   423  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   424  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   425  	}
   426  	// to determine the Content-Type header
   427  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   428  
   429  	// set Content-Type header
   430  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   431  	if localVarHttpContentType != "" {
   432  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   433  	}
   434  
   435  	// to determine the Accept header
   436  	localVarHttpHeaderAccepts := []string{
   437  		"application/json",
   438  		"application/xml",
   439  		"text/xml",
   440  		"application/javascript",
   441  		"text/javascript",
   442  	}
   443  
   444  	// set Accept header
   445  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   446  	if localVarHttpHeaderAccept != "" {
   447  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   448  	}
   449  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   450  	if err != nil {
   451  		return successPayload, nil, err
   452  	}
   453  
   454  	localVarHttpResponse, err := a.client.callAPI(r)
   455  	if err != nil || localVarHttpResponse == nil {
   456  		return successPayload, localVarHttpResponse, err
   457  	}
   458  	defer localVarHttpResponse.Body.Close()
   459  	if localVarHttpResponse.StatusCode >= 300 {
   460  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   461  	}
   462  
   463  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   464  		return successPayload, localVarHttpResponse, err
   465  	}
   466  
   467  	return successPayload, localVarHttpResponse, err
   468  }
   469  
   470  /* InstrumentApiService Get all price indices.
   471  
   472   @return []Instrument*/
   473  func (a *InstrumentApiService) InstrumentGetIndices() ([]Instrument, *http.Response, error) {
   474  	var (
   475  		localVarHttpMethod = strings.ToUpper("Get")
   476  		localVarPostBody   interface{}
   477  		localVarFileName   string
   478  		localVarFileBytes  []byte
   479  		successPayload     []Instrument
   480  	)
   481  
   482  	// create path and map variables
   483  	localVarPath := a.client.cfg.BasePath + "/instrument/indices"
   484  
   485  	localVarHeaderParams := make(map[string]string)
   486  	localVarQueryParams := url.Values{}
   487  	localVarFormParams := url.Values{}
   488  
   489  	// to determine the Content-Type header
   490  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   491  
   492  	// set Content-Type header
   493  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   494  	if localVarHttpContentType != "" {
   495  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   496  	}
   497  
   498  	// to determine the Accept header
   499  	localVarHttpHeaderAccepts := []string{
   500  		"application/json",
   501  		"application/xml",
   502  		"text/xml",
   503  		"application/javascript",
   504  		"text/javascript",
   505  	}
   506  
   507  	// set Accept header
   508  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   509  	if localVarHttpHeaderAccept != "" {
   510  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   511  	}
   512  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   513  	if err != nil {
   514  		return successPayload, nil, err
   515  	}
   516  
   517  	localVarHttpResponse, err := a.client.callAPI(r)
   518  	if err != nil || localVarHttpResponse == nil {
   519  		return successPayload, localVarHttpResponse, err
   520  	}
   521  	defer localVarHttpResponse.Body.Close()
   522  	if localVarHttpResponse.StatusCode >= 300 {
   523  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   524  	}
   525  
   526  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   527  		return successPayload, localVarHttpResponse, err
   528  	}
   529  
   530  	return successPayload, localVarHttpResponse, err
   531  }