text: /**
   * SQE API
   * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
   *
   * The version of the OpenAPI document: v1
   * 
   *
   * 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 BatchEditRoiDTO from '../model/BatchEditRoiDTO';
  import BatchEditRoiResponseDTO from '../model/BatchEditRoiResponseDTO';
  import InterpretationRoiDTO from '../model/InterpretationRoiDTO';
  import InterpretationRoiDTOList from '../model/InterpretationRoiDTOList';
  import SetInterpretationRoiDTO from '../model/SetInterpretationRoiDTO';
  import SetInterpretationRoiDTOList from '../model/SetInterpretationRoiDTOList';
  import UpdateInterpretationRoiDTOList from '../model/UpdateInterpretationRoiDTOList';
  import UpdatedInterpretationRoiDTO from '../model/UpdatedInterpretationRoiDTO';
  import UpdatedInterpretationRoiDTOList from '../model/UpdatedInterpretationRoiDTOList';
  
  /**
  * Roi service.
  * @module api/RoiApi
  * @version 0.7.2
  */
  export default class RoiApi {
  
      /**
      * Constructs a new RoiApi. 
      * @alias module:api/RoiApi
      * @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;
      }
  
  
  
      /**
       * Processes a series of create/update/delete ROI requests in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/BatchEditRoiDTO} opts.batchEditRoiDTO A JSON object with all the roi edits to be performed
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/BatchEditRoiResponseDTO} and HTTP response
       */
      v1EditionsEditionIdRoisBatchEditPostWithHttpInfo(editionId, opts) {
        opts = opts || {};
        let postBody = opts['batchEditRoiDTO'];
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisBatchEditPost");
        }
  
        let pathParams = {
          'editionId': editionId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json', 'text/json', 'application/_*+json'];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = BatchEditRoiResponseDTO;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/batch-edit', 'POST',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Processes a series of create/update/delete ROI requests in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/BatchEditRoiDTO} opts.batchEditRoiDTO A JSON object with all the roi edits to be performed
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/BatchEditRoiResponseDTO}
       */
      v1EditionsEditionIdRoisBatchEditPost(editionId, opts) {
        return this.v1EditionsEditionIdRoisBatchEditPostWithHttpInfo(editionId, opts)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Creates new sign ROI's in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTOList} opts.setInterpretationRoiDTOList A JSON object with an array of the new ROI's to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InterpretationRoiDTOList} and HTTP response
       */
      v1EditionsEditionIdRoisBatchPostWithHttpInfo(editionId, opts) {
        opts = opts || {};
        let postBody = opts['setInterpretationRoiDTOList'];
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisBatchPost");
        }
  
        let pathParams = {
          'editionId': editionId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json', 'text/json', 'application/_*+json'];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = InterpretationRoiDTOList;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/batch', 'POST',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Creates new sign ROI's in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTOList} opts.setInterpretationRoiDTOList A JSON object with an array of the new ROI's to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InterpretationRoiDTOList}
       */
      v1EditionsEditionIdRoisBatchPost(editionId, opts) {
        return this.v1EditionsEditionIdRoisBatchPostWithHttpInfo(editionId, opts)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Update existing sign ROI's in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/UpdateInterpretationRoiDTOList} opts.updateInterpretationRoiDTOList A JSON object with an array of the updated ROI details
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/UpdatedInterpretationRoiDTOList} and HTTP response
       */
      v1EditionsEditionIdRoisBatchPutWithHttpInfo(editionId, opts) {
        opts = opts || {};
        let postBody = opts['updateInterpretationRoiDTOList'];
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisBatchPut");
        }
  
        let pathParams = {
          'editionId': editionId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json', 'text/json', 'application/_*+json'];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = UpdatedInterpretationRoiDTOList;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/batch', 'PUT',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Update existing sign ROI's in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/UpdateInterpretationRoiDTOList} opts.updateInterpretationRoiDTOList A JSON object with an array of the updated ROI details
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/UpdatedInterpretationRoiDTOList}
       */
      v1EditionsEditionIdRoisBatchPut(editionId, opts) {
        return this.v1EditionsEditionIdRoisBatchPutWithHttpInfo(editionId, opts)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Creates new sign ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTO} opts.setInterpretationRoiDTO A JSON object with the new ROI to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InterpretationRoiDTO} and HTTP response
       */
      v1EditionsEditionIdRoisPostWithHttpInfo(editionId, opts) {
        opts = opts || {};
        let postBody = opts['setInterpretationRoiDTO'];
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisPost");
        }
  
        let pathParams = {
          'editionId': editionId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json', 'text/json', 'application/_*+json'];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = InterpretationRoiDTO;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois', 'POST',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Creates new sign ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTO} opts.setInterpretationRoiDTO A JSON object with the new ROI to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InterpretationRoiDTO}
       */
      v1EditionsEditionIdRoisPost(editionId, opts) {
        return this.v1EditionsEditionIdRoisPostWithHttpInfo(editionId, opts)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Deletes a sign ROI from the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId Id of the ROI to be deleted
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
       */
      v1EditionsEditionIdRoisRoiIdDeleteWithHttpInfo(editionId, roiId) {
        let postBody = null;
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisRoiIdDelete");
        }
        // verify the required parameter 'roiId' is set
        if (roiId === undefined || roiId === null) {
          throw new Error("Missing the required parameter 'roiId' when calling v1EditionsEditionIdRoisRoiIdDelete");
        }
  
        let pathParams = {
          'editionId': editionId,
          'roiId': roiId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = [];
        let accepts = [];
        let returnType = null;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/{roiId}', 'DELETE',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Deletes a sign ROI from the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId Id of the ROI to be deleted
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}
       */
      v1EditionsEditionIdRoisRoiIdDelete(editionId, roiId) {
        return this.v1EditionsEditionIdRoisRoiIdDeleteWithHttpInfo(editionId, roiId)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Get the details for a ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId A JSON object with the new ROI to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/InterpretationRoiDTO} and HTTP response
       */
      v1EditionsEditionIdRoisRoiIdGetWithHttpInfo(editionId, roiId) {
        let postBody = null;
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisRoiIdGet");
        }
        // verify the required parameter 'roiId' is set
        if (roiId === undefined || roiId === null) {
          throw new Error("Missing the required parameter 'roiId' when calling v1EditionsEditionIdRoisRoiIdGet");
        }
  
        let pathParams = {
          'editionId': editionId,
          'roiId': roiId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = [];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = InterpretationRoiDTO;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/{roiId}', 'GET',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Get the details for a ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId A JSON object with the new ROI to be created
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/InterpretationRoiDTO}
       */
      v1EditionsEditionIdRoisRoiIdGet(editionId, roiId) {
        return this.v1EditionsEditionIdRoisRoiIdGetWithHttpInfo(editionId, roiId)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
      /**
       * Update an existing sign ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId Id of the ROI to be updated
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTO} opts.setInterpretationRoiDTO A JSON object with the updated ROI details
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/UpdatedInterpretationRoiDTO} and HTTP response
       */
      v1EditionsEditionIdRoisRoiIdPutWithHttpInfo(editionId, roiId, opts) {
        opts = opts || {};
        let postBody = opts['setInterpretationRoiDTO'];
        // verify the required parameter 'editionId' is set
        if (editionId === undefined || editionId === null) {
          throw new Error("Missing the required parameter 'editionId' when calling v1EditionsEditionIdRoisRoiIdPut");
        }
        // verify the required parameter 'roiId' is set
        if (roiId === undefined || roiId === null) {
          throw new Error("Missing the required parameter 'roiId' when calling v1EditionsEditionIdRoisRoiIdPut");
        }
  
        let pathParams = {
          'editionId': editionId,
          'roiId': roiId
        };
        let queryParams = {
        };
        let headerParams = {
        };
        let formParams = {
        };
  
        let authNames = ['Bearer'];
        let contentTypes = ['application/json', 'text/json', 'application/_*+json'];
        let accepts = ['text/plain', 'application/json', 'text/json'];
        let returnType = UpdatedInterpretationRoiDTO;
        return this.apiClient.callApi(
          '/v1/editions/{editionId}/rois/{roiId}', 'PUT',
          pathParams, queryParams, headerParams, formParams, postBody,
          authNames, contentTypes, accepts, returnType, null
        );
      }
  
      /**
       * Update an existing sign ROI in the given edition of a scroll
       * @param {Number} editionId Id of the edition
       * @param {Number} roiId Id of the ROI to be updated
       * @param {Object} opts Optional parameters
       * @param {module:model/SetInterpretationRoiDTO} opts.setInterpretationRoiDTO A JSON object with the updated ROI details
       * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/UpdatedInterpretationRoiDTO}
       */
      v1EditionsEditionIdRoisRoiIdPut(editionId, roiId, opts) {
        return this.v1EditionsEditionIdRoisRoiIdPutWithHttpInfo(editionId, roiId, opts)
          .then(function(response_and_data) {
            return response_and_data.data;
          });
      }
  
  
  }
  