/**
 * EMS - REST API
 * This section will provide necessary information about the `CoinAPI EMS REST API` protocol. This API is also available in the Postman application: <a href=\"https://postman.coinapi.io/\" target=\"_blank\">https://postman.coinapi.io/</a>        Implemented Standards:    * [HTTP1.0](https://datatracker.ietf.org/doc/html/rfc1945)   * [HTTP1.1](https://datatracker.ietf.org/doc/html/rfc2616)   * [HTTP2.0](https://datatracker.ietf.org/doc/html/rfc7540)     ### Endpoints  <table>   <thead>     <tr>       <th>Deployment method</th>       <th>Environment</th>       <th>Url</th>     </tr>   </thead>   <tbody>     <tr>       <td>Managed Cloud</td>       <td>Production</td>       <td>Use <a href=\"#ems-docs-sh\">Managed Cloud REST API /v1/locations</a> to get specific endpoints to each server site where your deployments span</td>     </tr>     <tr>       <td>Self Hosted</td>       <td>Production</td>       <td>IP Address of the <code>ems-gateway</code> container/excecutable in the closest server site to the caller location</td>     </tr>   </tbody> </table>  ### Authentication If the software is deployed as `Self-Hosted` then API do not require authentication as inside your infrastructure, your company is responsible for the security and access controls.  If the software is deployed in our `Managed Cloud`, there are 2 methods for authenticating with us, you only need to use one:   1. Custom authorization header named `X-CoinAPI-Key` with the API Key  2. Query string parameter named `apikey` with the API Key  3. <a href=\"#certificate\">TLS Client Certificate</a> from the `Managed Cloud REST API` (/v1/certificate/pem endpoint) while establishing a TLS session with us.  #### Custom authorization header You can authorize by providing additional custom header named `X-CoinAPI-Key` and API key as its value. Assuming that your API key is `73034021-THIS-IS-SAMPLE-KEY`, then the authorization header you should send to us will look like: `X-CoinAPI-Key: 73034021-THIS-IS-SAMPLE-KEY` <aside class=\"success\">This method is recommended by us and you should use it in production environments.</aside> #### Query string authorization parameter You can authorize by providing an additional parameter named `apikey` with a value equal to your API key in the query string of your HTTP request. Assuming that your API key is `73034021-THIS-IS-SAMPLE-KEY` and that you want to request all balances, then your query string should look like this: `GET /v1/balances?apikey=73034021-THIS-IS-SAMPLE-KEY` <aside class=\"notice\">Query string method may be more practical for development activities.</aside> 
 *
 * The version of the OpenAPI document: v1
 * Contact: support@coinapi.io
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 *
 */


import ApiClient from './ApiClient';
import Balance from './model/Balance';
import BalanceDataInner from './model/BalanceDataInner';
import Fills from './model/Fills';
import MessageError from './model/MessageError';
import MessageReject from './model/MessageReject';
import OrdSide from './model/OrdSide';
import OrdStatus from './model/OrdStatus';
import OrdType from './model/OrdType';
import OrderCancelAllRequest from './model/OrderCancelAllRequest';
import OrderCancelSingleRequest from './model/OrderCancelSingleRequest';
import OrderExecutionReport from './model/OrderExecutionReport';
import OrderExecutionReportAllOf from './model/OrderExecutionReportAllOf';
import OrderHistory from './model/OrderHistory';
import OrderNewSingleRequest from './model/OrderNewSingleRequest';
import Position from './model/Position';
import PositionDataInner from './model/PositionDataInner';
import RejectReason from './model/RejectReason';
import TimeInForce from './model/TimeInForce';
import ValidationError from './model/ValidationError';
import BalancesApi from './api/BalancesApi';
import OrdersApi from './api/OrdersApi';
import PositionsApi from './api/PositionsApi';


/**
* This section will provide necessary information about the &#x60;CoinAPI EMS REST API&#x60; protocol. This API is also available in the Postman application: &lt;a href&#x3D;\&quot;https://postman.coinapi.io/\&quot; target&#x3D;\&quot;_blank\&quot;&gt;https://postman.coinapi.io/&lt;/a&gt;        Implemented Standards:    * [HTTP1.0](https://datatracker.ietf.org/doc/html/rfc1945)   * [HTTP1.1](https://datatracker.ietf.org/doc/html/rfc2616)   * [HTTP2.0](https://datatracker.ietf.org/doc/html/rfc7540)     ### Endpoints  &lt;table&gt;   &lt;thead&gt;     &lt;tr&gt;       &lt;th&gt;Deployment method&lt;/th&gt;       &lt;th&gt;Environment&lt;/th&gt;       &lt;th&gt;Url&lt;/th&gt;     &lt;/tr&gt;   &lt;/thead&gt;   &lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;Managed Cloud&lt;/td&gt;       &lt;td&gt;Production&lt;/td&gt;       &lt;td&gt;Use &lt;a href&#x3D;\&quot;#ems-docs-sh\&quot;&gt;Managed Cloud REST API /v1/locations&lt;/a&gt; to get specific endpoints to each server site where your deployments span&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;Self Hosted&lt;/td&gt;       &lt;td&gt;Production&lt;/td&gt;       &lt;td&gt;IP Address of the &lt;code&gt;ems-gateway&lt;/code&gt; container/excecutable in the closest server site to the caller location&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt;  ### Authentication If the software is deployed as &#x60;Self-Hosted&#x60; then API do not require authentication as inside your infrastructure, your company is responsible for the security and access controls.  If the software is deployed in our &#x60;Managed Cloud&#x60;, there are 2 methods for authenticating with us, you only need to use one:   1. Custom authorization header named &#x60;X-CoinAPI-Key&#x60; with the API Key  2. Query string parameter named &#x60;apikey&#x60; with the API Key  3. &lt;a href&#x3D;\&quot;#certificate\&quot;&gt;TLS Client Certificate&lt;/a&gt; from the &#x60;Managed Cloud REST API&#x60; (/v1/certificate/pem endpoint) while establishing a TLS session with us.  #### Custom authorization header You can authorize by providing additional custom header named &#x60;X-CoinAPI-Key&#x60; and API key as its value. Assuming that your API key is &#x60;73034021-THIS-IS-SAMPLE-KEY&#x60;, then the authorization header you should send to us will look like: &#x60;X-CoinAPI-Key: 73034021-THIS-IS-SAMPLE-KEY&#x60; &lt;aside class&#x3D;\&quot;success\&quot;&gt;This method is recommended by us and you should use it in production environments.&lt;/aside&gt; #### Query string authorization parameter You can authorize by providing an additional parameter named &#x60;apikey&#x60; with a value equal to your API key in the query string of your HTTP request. Assuming that your API key is &#x60;73034021-THIS-IS-SAMPLE-KEY&#x60; and that you want to request all balances, then your query string should look like this: &#x60;GET /v1/balances?apikey&#x3D;73034021-THIS-IS-SAMPLE-KEY&#x60; &lt;aside class&#x3D;\&quot;notice\&quot;&gt;Query string method may be more practical for development activities.&lt;/aside&gt; .<br>
* The <code>index</code> module provides access to constructors for all the classes which comprise the public API.
* <p>
* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:
* <pre>
* var EmsRestApi = require('index'); // See note below*.
* var xxxSvc = new EmsRestApi.XxxApi(); // Allocate the API class we're going to use.
* var yyyModel = new EmsRestApi.Yyy(); // Construct a model instance.
* yyyModel.someProperty = 'someValue';
* ...
* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
* ...
* </pre>
* <em>*NOTE: For a top-level AMD script, use require(['index'], function(){...})
* and put the application logic within the callback function.</em>
* </p>
* <p>
* A non-AMD browser application (discouraged) might do something like this:
* <pre>
* var xxxSvc = new EmsRestApi.XxxApi(); // Allocate the API class we're going to use.
* var yyy = new EmsRestApi.Yyy(); // Construct a model instance.
* yyyModel.someProperty = 'someValue';
* ...
* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
* ...
* </pre>
* </p>
* @module index
* @version v1
*/
export {
    /**
     * The ApiClient constructor.
     * @property {module:ApiClient}
     */
    ApiClient,

    /**
     * The Balance model constructor.
     * @property {module:model/Balance}
     */
    Balance,

    /**
     * The BalanceDataInner model constructor.
     * @property {module:model/BalanceDataInner}
     */
    BalanceDataInner,

    /**
     * The Fills model constructor.
     * @property {module:model/Fills}
     */
    Fills,

    /**
     * The MessageError model constructor.
     * @property {module:model/MessageError}
     */
    MessageError,

    /**
     * The MessageReject model constructor.
     * @property {module:model/MessageReject}
     */
    MessageReject,

    /**
     * The OrdSide model constructor.
     * @property {module:model/OrdSide}
     */
    OrdSide,

    /**
     * The OrdStatus model constructor.
     * @property {module:model/OrdStatus}
     */
    OrdStatus,

    /**
     * The OrdType model constructor.
     * @property {module:model/OrdType}
     */
    OrdType,

    /**
     * The OrderCancelAllRequest model constructor.
     * @property {module:model/OrderCancelAllRequest}
     */
    OrderCancelAllRequest,

    /**
     * The OrderCancelSingleRequest model constructor.
     * @property {module:model/OrderCancelSingleRequest}
     */
    OrderCancelSingleRequest,

    /**
     * The OrderExecutionReport model constructor.
     * @property {module:model/OrderExecutionReport}
     */
    OrderExecutionReport,

    /**
     * The OrderExecutionReportAllOf model constructor.
     * @property {module:model/OrderExecutionReportAllOf}
     */
    OrderExecutionReportAllOf,

    /**
     * The OrderHistory model constructor.
     * @property {module:model/OrderHistory}
     */
    OrderHistory,

    /**
     * The OrderNewSingleRequest model constructor.
     * @property {module:model/OrderNewSingleRequest}
     */
    OrderNewSingleRequest,

    /**
     * The Position model constructor.
     * @property {module:model/Position}
     */
    Position,

    /**
     * The PositionDataInner model constructor.
     * @property {module:model/PositionDataInner}
     */
    PositionDataInner,

    /**
     * The RejectReason model constructor.
     * @property {module:model/RejectReason}
     */
    RejectReason,

    /**
     * The TimeInForce model constructor.
     * @property {module:model/TimeInForce}
     */
    TimeInForce,

    /**
     * The ValidationError model constructor.
     * @property {module:model/ValidationError}
     */
    ValidationError,

    /**
    * The BalancesApi service constructor.
    * @property {module:api/BalancesApi}
    */
    BalancesApi,

    /**
    * The OrdersApi service constructor.
    * @property {module:api/OrdersApi}
    */
    OrdersApi,

    /**
    * The PositionsApi service constructor.
    * @property {module:api/PositionsApi}
    */
    PositionsApi
};
