text: /**
   * tvapi
   * The TV Backend api v3.0
   *
   * OpenAPI spec version: 3.0
   * 
   *
   * NOTE: This class is auto generated by the swagger code generator program.
   * https://github.com/swagger-api/swagger-codegen.git
   * Do not edit the class manually.
   *
   */
  
  
  import ApiClient from "../ApiClient";
  import CommonResponse from '../model/CommonResponse';
  import Error from '../model/Error';
  import Event from '../model/Event';
  import InlineResponse2002 from '../model/InlineResponse2002';
  import InlineResponse2003 from '../model/InlineResponse2003';
  import InlineResponse2004 from '../model/InlineResponse2004';
  import InlineResponse2005 from '../model/InlineResponse2005';
  
  /**
  * Events service.
  * @module api/EventsApi
  * @version 3.0
  */
  export default class EventsApi {
  
      /**
      * Constructs a new EventsApi. 
      * @alias module:api/EventsApi
      * @class
      * @param {module:ApiClient} apiClient Optional API client implementation to use,
      * default to {@link module:ApiClient#instance} if unspecified.
      */
      constructor(apiClient) {
          this.apiClient = apiClient || ApiClient.instance;
      }
  
  
  
      /**
       * @param {String} eventId 
       * @param {String} startTime 
       * @param {String} endTime 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InlineResponse2003} and HTTP response
       */
      eventsEventIdGetWithHttpInfo(eventId, startTime, endTime) {
        let postBody = null;
  
        // verify the required parameter 'eventId' is set
        if (eventId === undefined || eventId === null) {
          throw new Error("Missing the required parameter 'eventId' when calling eventsEventIdGet");
        }
  
        // verify the required parameter 'startTime' is set
        if (startTime === undefined || startTime === null) {
          throw new Error("Missing the required parameter 'startTime' when calling eventsEventIdGet");
        }
  
        // verify the required parameter 'endTime' is set
        if (endTime === undefined || endTime === null) {
          throw new Error("Missing the required parameter 'endTime' when calling eventsEventIdGet");
        }
  
  
        let pathParams = {
          'eventId': eventId
        };
        let queryParams = {
          'startTime': startTime,
          'endTime': endTime
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json'];
        let accepts = ['application/json'];
        let returnType = InlineResponse2003;
  
        return this.apiClient.callApi(
          '/events/{eventId}', 'GET',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType
        );
      }
  
      /**
       * @param {String} eventId 
       * @param {String} startTime 
       * @param {String} endTime 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InlineResponse2003}
       */
      eventsEventIdGet(eventId, startTime, endTime) {
        return this.eventsEventIdGetWithHttpInfo(eventId, startTime, endTime)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * get event extra_parameter_detail.
       * get event extra_parameter_detail.
       * @param {String} startTime 
       * @param {String} endTime 
       * @param {String} eventId 
       * @param {String} parameter 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InlineResponse2005} and HTTP response
       */
      eventsExtraParameterDetailGetWithHttpInfo(startTime, endTime, eventId, parameter) {
        let postBody = null;
  
        // verify the required parameter 'startTime' is set
        if (startTime === undefined || startTime === null) {
          throw new Error("Missing the required parameter 'startTime' when calling eventsExtraParameterDetailGet");
        }
  
        // verify the required parameter 'endTime' is set
        if (endTime === undefined || endTime === null) {
          throw new Error("Missing the required parameter 'endTime' when calling eventsExtraParameterDetailGet");
        }
  
        // verify the required parameter 'eventId' is set
        if (eventId === undefined || eventId === null) {
          throw new Error("Missing the required parameter 'eventId' when calling eventsExtraParameterDetailGet");
        }
  
        // verify the required parameter 'parameter' is set
        if (parameter === undefined || parameter === null) {
          throw new Error("Missing the required parameter 'parameter' when calling eventsExtraParameterDetailGet");
        }
  
  
        let pathParams = {
        };
        let queryParams = {
          'startTime': startTime,
          'endTime': endTime,
          'event_id': eventId,
          'parameter': parameter
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json'];
        let accepts = ['application/json'];
        let returnType = InlineResponse2005;
  
        return this.apiClient.callApi(
          '/events/extra_parameter_detail', 'GET',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType
        );
      }
  
      /**
       * get event extra_parameter_detail.
       * get event extra_parameter_detail.
       * @param {String} startTime 
       * @param {String} endTime 
       * @param {String} eventId 
       * @param {String} parameter 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InlineResponse2005}
       */
      eventsExtraParameterDetailGet(startTime, endTime, eventId, parameter) {
        return this.eventsExtraParameterDetailGetWithHttpInfo(startTime, endTime, eventId, parameter)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * get event extra_parameter_key.
       * get event extra_parameter_key.
       * @param {String} eventId 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InlineResponse2004} and HTTP response
       */
      eventsExtraParameterKeyGetWithHttpInfo(eventId) {
        let postBody = null;
  
        // verify the required parameter 'eventId' is set
        if (eventId === undefined || eventId === null) {
          throw new Error("Missing the required parameter 'eventId' when calling eventsExtraParameterKeyGet");
        }
  
  
        let pathParams = {
        };
        let queryParams = {
          'event_id': eventId
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json'];
        let accepts = ['application/json'];
        let returnType = InlineResponse2004;
  
        return this.apiClient.callApi(
          '/events/extra_parameter_key', 'GET',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType
        );
      }
  
      /**
       * get event extra_parameter_key.
       * get event extra_parameter_key.
       * @param {String} eventId 
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InlineResponse2004}
       */
      eventsExtraParameterKeyGet(eventId) {
        return this.eventsExtraParameterKeyGetWithHttpInfo(eventId)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * get event statistics detail.
       * get event statistics detail.
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InlineResponse2002} and HTTP response
       */
      eventsGetWithHttpInfo() {
        let postBody = null;
  
  
        let pathParams = {
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json'];
        let accepts = ['application/json'];
        let returnType = InlineResponse2002;
  
        return this.apiClient.callApi(
          '/events', 'GET',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType
        );
      }
  
      /**
       * get event statistics detail.
       * get event statistics detail.
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InlineResponse2002}
       */
      eventsGet() {
        return this.eventsGetWithHttpInfo()
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * create a events
       * create a events
       * @param {module:model/Event} body create a events
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/CommonResponse} and HTTP response
       */
      eventsPostWithHttpInfo(body) {
        let postBody = body;
  
        // verify the required parameter 'body' is set
        if (body === undefined || body === null) {
          throw new Error("Missing the required parameter 'body' when calling eventsPost");
        }
  
  
        let pathParams = {
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json'];
        let accepts = ['application/json'];
        let returnType = CommonResponse;
  
        return this.apiClient.callApi(
          '/events', 'POST',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType
        );
      }
  
      /**
       * create a events
       * create a events
       * @param {module:model/Event} body create a events
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/CommonResponse}
       */
      eventsPost(body) {
        return this.eventsPostWithHttpInfo(body)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
  }
  