{"size": 42965, "ext": "js", "max_stars_repo_path": "javascript/src/api/SimulationApi.js", "max_stars_repo_name": "thracesystems/powermeter-api", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "javascript/src/api/SimulationApi.js", "max_issues_repo_name": "thracesystems/powermeter-api", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "javascript/src/api/SimulationApi.js", "max_forks_repo_name": "thracesystems/powermeter-api", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 36.659556314, "max_line_length": 162, "alphanum_fraction": 0.6403584313}
/**
 * PowerMeter API
 * API
 *
 * The version of the OpenAPI document: 2021.4.1
 * 
 *
 * 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 MeasuredDataJSON from '../model/MeasuredDataJSON';
import PagedMeasuredData from '../model/PagedMeasuredData';
import PagedSimScope from '../model/PagedSimScope';
import PagedSimVar from '../model/PagedSimVar';
import SimMeasurement from '../model/SimMeasurement';
import SimScope from '../model/SimScope';
import SimVar from '../model/SimVar';
import Simulation from '../model/Simulation';

/**
* Simulation service.
* @module api/SimulationApi
* @version 2021.4.1
*/
export default class SimulationApi {

    /**
    * Constructs a new SimulationApi. 
    * @alias module:api/SimulationApi
    * @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;
    }


    /**
     * Callback function to receive the result of the apiSimulationScopeDeleteAll operation.
     * @callback module:api/SimulationApi~apiSimulationScopeDeleteAllCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Delete all scope
     * @param {Number} simid 
     * @param {module:api/SimulationApi~apiSimulationScopeDeleteAllCallback} callback The callback function, accepting three arguments: error, data, response
     */
    apiSimulationScopeDeleteAll(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling apiSimulationScopeDeleteAll");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/', 'DELETE',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationAccessCreate operation.
     * @callback module:api/SimulationApi~simulationAccessCreateCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Update design access
     * @param {Number} simid 
     * @param {module:api/SimulationApi~simulationAccessCreateCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationAccessCreate(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationAccessCreate");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/access/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementCloneCreate operation.
     * @callback module:api/SimulationApi~simulationMeasurementCloneCreateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimMeasurement} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Clone a measurement
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:api/SimulationApi~simulationMeasurementCloneCreateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimMeasurement}
     */
    simulationMeasurementCloneCreate(simid, measureid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementCloneCreate");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementCloneCreate");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = SimMeasurement;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/clone/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementCreate operation.
     * @callback module:api/SimulationApi~simulationMeasurementCreateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimMeasurement} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Create a new simulation
     * @param {Number} simid 
     * @param {module:model/SimMeasurement} data 
     * @param {module:api/SimulationApi~simulationMeasurementCreateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimMeasurement}
     */
    simulationMeasurementCreate(simid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementCreate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationMeasurementCreate");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = SimMeasurement;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementDataCreate operation.
     * @callback module:api/SimulationApi~simulationMeasurementDataCreateCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Append data
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {Array.<module:model/MeasuredDataJSON>} data 
     * @param {module:api/SimulationApi~simulationMeasurementDataCreateCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationMeasurementDataCreate(simid, measureid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementDataCreate");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementDataCreate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationMeasurementDataCreate");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/data/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementDataDelete operation.
     * @callback module:api/SimulationApi~simulationMeasurementDataDeleteCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Delete all data
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:api/SimulationApi~simulationMeasurementDataDeleteCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationMeasurementDataDelete(simid, measureid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementDataDelete");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementDataDelete");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/data/', 'DELETE',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementDataList operation.
     * @callback module:api/SimulationApi~simulationMeasurementDataListCallback
     * @param {String} error Error message, if any.
     * @param {module:model/PagedMeasuredData} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get data for a measure
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:api/SimulationApi~simulationMeasurementDataListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/PagedMeasuredData}
     */
    simulationMeasurementDataList(simid, measureid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementDataList");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementDataList");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = PagedMeasuredData;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/data/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementDelete operation.
     * @callback module:api/SimulationApi~simulationMeasurementDeleteCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Delete a measurement
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:api/SimulationApi~simulationMeasurementDeleteCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationMeasurementDelete(simid, measureid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementDelete");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementDelete");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/', 'DELETE',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementList operation.
     * @callback module:api/SimulationApi~simulationMeasurementListCallback
     * @param {String} error Error message, if any.
     * @param {Array.<module:model/SimMeasurement>} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get list of simulations
     * @param {Number} simid 
     * @param {module:api/SimulationApi~simulationMeasurementListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link Array.<module:model/SimMeasurement>}
     */
    simulationMeasurementList(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementList");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = [SimMeasurement];
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementRead operation.
     * @callback module:api/SimulationApi~simulationMeasurementReadCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimMeasurement} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get measurement
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:api/SimulationApi~simulationMeasurementReadCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimMeasurement}
     */
    simulationMeasurementRead(simid, measureid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementRead");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementRead");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = SimMeasurement;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationMeasurementUpdate operation.
     * @callback module:api/SimulationApi~simulationMeasurementUpdateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimMeasurement} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Update a measurement
     * @param {Number} simid 
     * @param {Number} measureid 
     * @param {module:model/SimMeasurement} data 
     * @param {module:api/SimulationApi~simulationMeasurementUpdateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimMeasurement}
     */
    simulationMeasurementUpdate(simid, measureid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationMeasurementUpdate");
      }
      // verify the required parameter 'measureid' is set
      if (measureid === undefined || measureid === null) {
        throw new Error("Missing the required parameter 'measureid' when calling simulationMeasurementUpdate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationMeasurementUpdate");
      }

      let pathParams = {
        'simid': simid,
        'measureid': measureid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = SimMeasurement;
      return this.apiClient.callApi(
        '/simulation/{simid}/measurement/{measureid}/', 'PUT',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationPermissionsList operation.
     * @callback module:api/SimulationApi~simulationPermissionsListCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get list of permissions
     * @param {Number} simid 
     * @param {module:api/SimulationApi~simulationPermissionsListCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationPermissionsList(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationPermissionsList");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/permissions/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationPermissionsUpdate operation.
     * @callback module:api/SimulationApi~simulationPermissionsUpdateCallback
     * @param {String} error Error message, if any.
     * @param data This operation does not return a value.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get list of permissions
     * @param {Number} simid 
     * @param {module:api/SimulationApi~simulationPermissionsUpdateCallback} callback The callback function, accepting three arguments: error, data, response
     */
    simulationPermissionsUpdate(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationPermissionsUpdate");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = [];
      let returnType = null;
      return this.apiClient.callApi(
        '/simulation/{simid}/permissions/', 'PUT',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationRead operation.
     * @callback module:api/SimulationApi~simulationReadCallback
     * @param {String} error Error message, if any.
     * @param {module:model/Simulation} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get a simulation
     * @param {Number} simid 
     * @param {module:api/SimulationApi~simulationReadCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/Simulation}
     */
    simulationRead(simid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationRead");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = Simulation;
      return this.apiClient.callApi(
        '/simulation/{simid}/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeCreate operation.
     * @callback module:api/SimulationApi~simulationScopeCreateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Create a scope
     * @param {Number} simid 
     * @param {module:model/SimScope} data 
     * @param {module:api/SimulationApi~simulationScopeCreateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimScope}
     */
    simulationScopeCreate(simid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeCreate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationScopeCreate");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = SimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeDelete operation.
     * @callback module:api/SimulationApi~simulationScopeDeleteCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get a scope
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:api/SimulationApi~simulationScopeDeleteCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimScope}
     */
    simulationScopeDelete(simid, scopeid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeDelete");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeDelete");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = SimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/', 'DELETE',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeList operation.
     * @callback module:api/SimulationApi~simulationScopeListCallback
     * @param {String} error Error message, if any.
     * @param {module:model/PagedSimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get scopes
     * @param {Number} simid 
     * @param {Object} opts Optional parameters
     * @param {Number} opts.page 
     * @param {Number} opts._number 
     * @param {module:api/SimulationApi~simulationScopeListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/PagedSimScope}
     */
    simulationScopeList(simid, opts, callback) {
      opts = opts || {};
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeList");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
        'page': opts['page'],
        'number': opts['_number']
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = PagedSimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeRead operation.
     * @callback module:api/SimulationApi~simulationScopeReadCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get a scope
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:api/SimulationApi~simulationScopeReadCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimScope}
     */
    simulationScopeRead(simid, scopeid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeRead");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeRead");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = SimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeScopeCreate operation.
     * @callback module:api/SimulationApi~simulationScopeScopeCreateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Create a scope
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:model/SimScope} data 
     * @param {module:api/SimulationApi~simulationScopeScopeCreateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimScope}
     */
    simulationScopeScopeCreate(simid, scopeid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeScopeCreate");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeScopeCreate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationScopeScopeCreate");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = SimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/scope/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeScopeList operation.
     * @callback module:api/SimulationApi~simulationScopeScopeListCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimScope} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get scopes
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:api/SimulationApi~simulationScopeScopeListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimScope}
     */
    simulationScopeScopeList(simid, scopeid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeScopeList");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeScopeList");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = SimScope;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/scope/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeVarCreate operation.
     * @callback module:api/SimulationApi~simulationScopeVarCreateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/SimVar} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Create a var
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:model/SimVar} data 
     * @param {module:api/SimulationApi~simulationScopeVarCreateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/SimVar}
     */
    simulationScopeVarCreate(simid, scopeid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeVarCreate");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeVarCreate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationScopeVarCreate");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = SimVar;
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/var/', 'POST',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationScopeVarList operation.
     * @callback module:api/SimulationApi~simulationScopeVarListCallback
     * @param {String} error Error message, if any.
     * @param {Array.<module:model/SimVar>} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get vars
     * @param {Number} simid 
     * @param {Number} scopeid 
     * @param {module:api/SimulationApi~simulationScopeVarListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link Array.<module:model/SimVar>}
     */
    simulationScopeVarList(simid, scopeid, callback) {
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationScopeVarList");
      }
      // verify the required parameter 'scopeid' is set
      if (scopeid === undefined || scopeid === null) {
        throw new Error("Missing the required parameter 'scopeid' when calling simulationScopeVarList");
      }

      let pathParams = {
        'simid': simid,
        'scopeid': scopeid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = [SimVar];
      return this.apiClient.callApi(
        '/simulation/{simid}/scope/{scopeid}/var/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationUpdate operation.
     * @callback module:api/SimulationApi~simulationUpdateCallback
     * @param {String} error Error message, if any.
     * @param {module:model/Simulation} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Update a simulation
     * @param {Number} simid 
     * @param {module:model/Simulation} data 
     * @param {module:api/SimulationApi~simulationUpdateCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/Simulation}
     */
    simulationUpdate(simid, data, callback) {
      let postBody = data;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationUpdate");
      }
      // verify the required parameter 'data' is set
      if (data === undefined || data === null) {
        throw new Error("Missing the required parameter 'data' when calling simulationUpdate");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = ['application/json'];
      let accepts = ['application/json'];
      let returnType = Simulation;
      return this.apiClient.callApi(
        '/simulation/{simid}/', 'PUT',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }

    /**
     * Callback function to receive the result of the simulationVarList operation.
     * @callback module:api/SimulationApi~simulationVarListCallback
     * @param {String} error Error message, if any.
     * @param {module:model/PagedSimVar} data The data returned by the service call.
     * @param {String} response The complete HTTP response.
     */

    /**
     * Get vars
     * @param {Number} simid 
     * @param {Object} opts Optional parameters
     * @param {Number} opts.page 
     * @param {Number} opts._number 
     * @param {module:api/SimulationApi~simulationVarListCallback} callback The callback function, accepting three arguments: error, data, response
     * data is of type: {@link module:model/PagedSimVar}
     */
    simulationVarList(simid, opts, callback) {
      opts = opts || {};
      let postBody = null;
      // verify the required parameter 'simid' is set
      if (simid === undefined || simid === null) {
        throw new Error("Missing the required parameter 'simid' when calling simulationVarList");
      }

      let pathParams = {
        'simid': simid
      };
      let queryParams = {
        'page': opts['page'],
        'number': opts['_number']
      };
      let headerParams = {
      };
      let formParams = {
      };

      let authNames = ['Basic'];
      let contentTypes = [];
      let accepts = ['application/json'];
      let returnType = PagedSimVar;
      return this.apiClient.callApi(
        '/simulation/{simid}/var/', 'GET',
        pathParams, queryParams, headerParams, formParams, postBody,
        authNames, contentTypes, accepts, returnType, null, callback
      );
    }


}
