/*
 * Swagger of Opencellsoft Api
 * @#Introduction
 *
 * The version of the OpenAPI document: 7.3.1-SNAPSHOT
 * Contact: contact@opencellsoft.fr
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package org.openapitools.client.api;

import org.openapitools.client.ApiCallback;
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.ApiResponse;
import org.openapitools.client.Configuration;
import org.openapitools.client.Pair;
import org.openapitools.client.ProgressRequestBody;
import org.openapitools.client.ProgressResponseBody;

import com.google.gson.reflect.TypeToken;

import java.io.IOException;


import org.openapitools.client.model.ActionStatus;
import org.openapitools.client.model.CustomerBrandDto;
import org.openapitools.client.model.CustomerCategoryDto;
import org.openapitools.client.model.CustomerDto;
import org.openapitools.client.model.CustomerSequenceDto;
import org.openapitools.client.model.CustomersResponseDto;
import org.openapitools.client.model.GenericSequenceDto;
import org.openapitools.client.model.GenericSequenceValueResponseDto;
import org.openapitools.client.model.GetCustomerCategoryResponseDto;
import org.openapitools.client.model.GetCustomerResponseDto;
import org.openapitools.client.model.PagingAndFiltering;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CustomerApi {
    private ApiClient localVarApiClient;

    public CustomerApi() {
        this(Configuration.getDefaultApiClient());
    }

    public CustomerApi(ApiClient apiClient) {
        this.localVarApiClient = apiClient;
    }

    public ApiClient getApiClient() {
        return localVarApiClient;
    }

    public void setApiClient(ApiClient apiClient) {
        this.localVarApiClient = apiClient;
    }

    /**
     * Build call for dELETECustomerCustomerCode1
     * @param customerCode  customerCode The customer&#39;s code  (required)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerCustomerCode1Call(String customerCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/{customerCode}"
            .replaceAll("\\{" + "customerCode" + "\\}", localVarApiClient.escapeString(customerCode.toString()));

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call dELETECustomerCustomerCode1ValidateBeforeCall(String customerCode, final ApiCallback _callback) throws ApiException {
        
        // verify the required parameter 'customerCode' is set
        if (customerCode == null) {
            throw new ApiException("Missing the required parameter 'customerCode' when calling dELETECustomerCustomerCode1(Async)");
        }
        

        okhttp3.Call localVarCall = dELETECustomerCustomerCode1Call(customerCode, _callback);
        return localVarCall;

    }

    /**
     *  Remove customer with a given code 
     *  Remove customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (required)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus dELETECustomerCustomerCode1(String customerCode) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = dELETECustomerCustomerCode1WithHttpInfo(customerCode);
        return localVarResp.getData();
    }

    /**
     *  Remove customer with a given code 
     *  Remove customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (required)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> dELETECustomerCustomerCode1WithHttpInfo(String customerCode) throws ApiException {
        okhttp3.Call localVarCall = dELETECustomerCustomerCode1ValidateBeforeCall(customerCode, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Remove customer with a given code  (asynchronously)
     *  Remove customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (required)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerCustomerCode1Async(String customerCode, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = dELETECustomerCustomerCode1ValidateBeforeCall(customerCode, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for dELETECustomerRemoveBrandBrandCode1
     * @param brandCode  brandCode The brand&#39;s code  (required)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerRemoveBrandBrandCode1Call(String brandCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/removeBrand/{brandCode}"
            .replaceAll("\\{" + "brandCode" + "\\}", localVarApiClient.escapeString(brandCode.toString()));

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call dELETECustomerRemoveBrandBrandCode1ValidateBeforeCall(String brandCode, final ApiCallback _callback) throws ApiException {
        
        // verify the required parameter 'brandCode' is set
        if (brandCode == null) {
            throw new ApiException("Missing the required parameter 'brandCode' when calling dELETECustomerRemoveBrandBrandCode1(Async)");
        }
        

        okhttp3.Call localVarCall = dELETECustomerRemoveBrandBrandCode1Call(brandCode, _callback);
        return localVarCall;

    }

    /**
     *  Remove existing customer brand with a given brand code 
     *  Remove existing customer brand with a given brand code 
     * @param brandCode  brandCode The brand&#39;s code  (required)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus dELETECustomerRemoveBrandBrandCode1(String brandCode) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = dELETECustomerRemoveBrandBrandCode1WithHttpInfo(brandCode);
        return localVarResp.getData();
    }

    /**
     *  Remove existing customer brand with a given brand code 
     *  Remove existing customer brand with a given brand code 
     * @param brandCode  brandCode The brand&#39;s code  (required)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> dELETECustomerRemoveBrandBrandCode1WithHttpInfo(String brandCode) throws ApiException {
        okhttp3.Call localVarCall = dELETECustomerRemoveBrandBrandCode1ValidateBeforeCall(brandCode, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Remove existing customer brand with a given brand code  (asynchronously)
     *  Remove existing customer brand with a given brand code 
     * @param brandCode  brandCode The brand&#39;s code  (required)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerRemoveBrandBrandCode1Async(String brandCode, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = dELETECustomerRemoveBrandBrandCode1ValidateBeforeCall(brandCode, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for dELETECustomerRemoveCategoryCategoryCode1
     * @param categoryCode  categoryCode The category&#39;s code  (required)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerRemoveCategoryCategoryCode1Call(String categoryCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/removeCategory/{categoryCode}"
            .replaceAll("\\{" + "categoryCode" + "\\}", localVarApiClient.escapeString(categoryCode.toString()));

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call dELETECustomerRemoveCategoryCategoryCode1ValidateBeforeCall(String categoryCode, final ApiCallback _callback) throws ApiException {
        
        // verify the required parameter 'categoryCode' is set
        if (categoryCode == null) {
            throw new ApiException("Missing the required parameter 'categoryCode' when calling dELETECustomerRemoveCategoryCategoryCode1(Async)");
        }
        

        okhttp3.Call localVarCall = dELETECustomerRemoveCategoryCategoryCode1Call(categoryCode, _callback);
        return localVarCall;

    }

    /**
     *  Remove an existing customer category with a given category code 
     *  Remove an existing customer category with a given category code 
     * @param categoryCode  categoryCode The category&#39;s code  (required)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus dELETECustomerRemoveCategoryCategoryCode1(String categoryCode) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = dELETECustomerRemoveCategoryCategoryCode1WithHttpInfo(categoryCode);
        return localVarResp.getData();
    }

    /**
     *  Remove an existing customer category with a given category code 
     *  Remove an existing customer category with a given category code 
     * @param categoryCode  categoryCode The category&#39;s code  (required)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> dELETECustomerRemoveCategoryCategoryCode1WithHttpInfo(String categoryCode) throws ApiException {
        okhttp3.Call localVarCall = dELETECustomerRemoveCategoryCategoryCode1ValidateBeforeCall(categoryCode, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Remove an existing customer category with a given category code  (asynchronously)
     *  Remove an existing customer category with a given category code 
     * @param categoryCode  categoryCode The category&#39;s code  (required)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call dELETECustomerRemoveCategoryCategoryCode1Async(String categoryCode, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = dELETECustomerRemoveCategoryCategoryCode1ValidateBeforeCall(categoryCode, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETCustomerAnonymizeGpdr1
     * @param customerCode  customerCode The code of the customer  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerAnonymizeGpdr1Call(String customerCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/anonymizeGpdr";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        if (customerCode != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("customerCode", customerCode));
        }

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETCustomerAnonymizeGpdr1ValidateBeforeCall(String customerCode, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = gETCustomerAnonymizeGpdr1Call(customerCode, _callback);
        return localVarCall;

    }

    /**
     *  Right to be forgotten
     *  Right to be forgotten. This concerns listing of risky or grey/black listed customers and their data.   Upon request, they can require their data to be erased.   In such case, mandatory information (accounting, invoicing, payments) must be preserved but the data tables including the customer&#39;s data must be anonymize (firstname/name/emails/phones/addresses/etc) so if this person register back it will be treated as a new customer without history. 
     * @param customerCode  customerCode The code of the customer  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus gETCustomerAnonymizeGpdr1(String customerCode) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = gETCustomerAnonymizeGpdr1WithHttpInfo(customerCode);
        return localVarResp.getData();
    }

    /**
     *  Right to be forgotten
     *  Right to be forgotten. This concerns listing of risky or grey/black listed customers and their data.   Upon request, they can require their data to be erased.   In such case, mandatory information (accounting, invoicing, payments) must be preserved but the data tables including the customer&#39;s data must be anonymize (firstname/name/emails/phones/addresses/etc) so if this person register back it will be treated as a new customer without history. 
     * @param customerCode  customerCode The code of the customer  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> gETCustomerAnonymizeGpdr1WithHttpInfo(String customerCode) throws ApiException {
        okhttp3.Call localVarCall = gETCustomerAnonymizeGpdr1ValidateBeforeCall(customerCode, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Right to be forgotten (asynchronously)
     *  Right to be forgotten. This concerns listing of risky or grey/black listed customers and their data.   Upon request, they can require their data to be erased.   In such case, mandatory information (accounting, invoicing, payments) must be preserved but the data tables including the customer&#39;s data must be anonymize (firstname/name/emails/phones/addresses/etc) so if this person register back it will be treated as a new customer without history. 
     * @param customerCode  customerCode The code of the customer  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerAnonymizeGpdr1Async(String customerCode, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETCustomerAnonymizeGpdr1ValidateBeforeCall(customerCode, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETCustomerCategoryCategoryCode1
     * @param categoryCode  categoryCode The customer category&#39;s code  (required)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer category&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerCategoryCategoryCode1Call(String categoryCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/category/{categoryCode}"
            .replaceAll("\\{" + "categoryCode" + "\\}", localVarApiClient.escapeString(categoryCode.toString()));

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETCustomerCategoryCategoryCode1ValidateBeforeCall(String categoryCode, final ApiCallback _callback) throws ApiException {
        
        // verify the required parameter 'categoryCode' is set
        if (categoryCode == null) {
            throw new ApiException("Missing the required parameter 'categoryCode' when calling gETCustomerCategoryCategoryCode1(Async)");
        }
        

        okhttp3.Call localVarCall = gETCustomerCategoryCategoryCode1Call(categoryCode, _callback);
        return localVarCall;

    }

    /**
     *  Search for a customer category with a given code  
     *  Search for a customer category with a given code  
     * @param categoryCode  categoryCode The customer category&#39;s code  (required)
     * @return GetCustomerCategoryResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer category&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public GetCustomerCategoryResponseDto gETCustomerCategoryCategoryCode1(String categoryCode) throws ApiException {
        ApiResponse<GetCustomerCategoryResponseDto> localVarResp = gETCustomerCategoryCategoryCode1WithHttpInfo(categoryCode);
        return localVarResp.getData();
    }

    /**
     *  Search for a customer category with a given code  
     *  Search for a customer category with a given code  
     * @param categoryCode  categoryCode The customer category&#39;s code  (required)
     * @return ApiResponse&lt;GetCustomerCategoryResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer category&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<GetCustomerCategoryResponseDto> gETCustomerCategoryCategoryCode1WithHttpInfo(String categoryCode) throws ApiException {
        okhttp3.Call localVarCall = gETCustomerCategoryCategoryCode1ValidateBeforeCall(categoryCode, null);
        Type localVarReturnType = new TypeToken<GetCustomerCategoryResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Search for a customer category with a given code   (asynchronously)
     *  Search for a customer category with a given code  
     * @param categoryCode  categoryCode The customer category&#39;s code  (required)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer category&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerCategoryCategoryCode1Async(String categoryCode, final ApiCallback<GetCustomerCategoryResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETCustomerCategoryCategoryCode1ValidateBeforeCall(categoryCode, _callback);
        Type localVarReturnType = new TypeToken<GetCustomerCategoryResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETCustomerExportCustomerHierarchy1
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerExportCustomerHierarchy1Call(String customerCode, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/exportCustomerHierarchy";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        if (customerCode != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("customerCode", customerCode));
        }

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETCustomerExportCustomerHierarchy1ValidateBeforeCall(String customerCode, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = gETCustomerExportCustomerHierarchy1Call(customerCode, _callback);
        return localVarCall;

    }

    /**
     *    Exports an account hierarchy given a specific customer selected in the GUI
     *    Exports an account hierarchy given a specific customer selected in the GUI.   It includes Subscription, AccountOperation and Invoice details. It packaged the json output   as a zipped file along with the pdf invoices.      
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status    </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus gETCustomerExportCustomerHierarchy1(String customerCode) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = gETCustomerExportCustomerHierarchy1WithHttpInfo(customerCode);
        return localVarResp.getData();
    }

    /**
     *    Exports an account hierarchy given a specific customer selected in the GUI
     *    Exports an account hierarchy given a specific customer selected in the GUI.   It includes Subscription, AccountOperation and Invoice details. It packaged the json output   as a zipped file along with the pdf invoices.      
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> gETCustomerExportCustomerHierarchy1WithHttpInfo(String customerCode) throws ApiException {
        okhttp3.Call localVarCall = gETCustomerExportCustomerHierarchy1ValidateBeforeCall(customerCode, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Exports an account hierarchy given a specific customer selected in the GUI (asynchronously)
     *    Exports an account hierarchy given a specific customer selected in the GUI.   It includes Subscription, AccountOperation and Invoice details. It packaged the json output   as a zipped file along with the pdf invoices.      
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerExportCustomerHierarchy1Async(String customerCode, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETCustomerExportCustomerHierarchy1ValidateBeforeCall(customerCode, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETCustomerList1
     * @param query  query Search criteria  (optional)
     * @param fields  fields Data retrieval options/fieldnames separated by a comma  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy Sorting - field to sort by - a field from a main entity being searched. See Data model for a list of fields.  (optional, default to &quot;code&quot;)
     * @param sortOrder  sortOrder Sorting - sort order.  (optional, default to ASCENDING)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE..  (optional, default to INHERIT_NO_MERGE)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerList1Call(String query, String fields, Integer offset, Integer limit, String sortBy, String sortOrder, String inheritCF, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/list";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        if (query != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("query", query));
        }

        if (fields != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("fields", fields));
        }

        if (offset != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset));
        }

        if (limit != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit));
        }

        if (sortBy != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy));
        }

        if (sortOrder != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder));
        }

        if (inheritCF != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritCF", inheritCF));
        }

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETCustomerList1ValidateBeforeCall(String query, String fields, Integer offset, Integer limit, String sortBy, String sortOrder, String inheritCF, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = gETCustomerList1Call(query, fields, offset, limit, sortBy, sortOrder, inheritCF, _callback);
        return localVarCall;

    }

    /**
     *  List customers matching a given criteria 
     *  List customers matching a given criteria 
     * @param query  query Search criteria  (optional)
     * @param fields  fields Data retrieval options/fieldnames separated by a comma  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy Sorting - field to sort by - a field from a main entity being searched. See Data model for a list of fields.  (optional, default to &quot;code&quot;)
     * @param sortOrder  sortOrder Sorting - sort order.  (optional, default to ASCENDING)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE..  (optional, default to INHERIT_NO_MERGE)
     * @return CustomersResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public CustomersResponseDto gETCustomerList1(String query, String fields, Integer offset, Integer limit, String sortBy, String sortOrder, String inheritCF) throws ApiException {
        ApiResponse<CustomersResponseDto> localVarResp = gETCustomerList1WithHttpInfo(query, fields, offset, limit, sortBy, sortOrder, inheritCF);
        return localVarResp.getData();
    }

    /**
     *  List customers matching a given criteria 
     *  List customers matching a given criteria 
     * @param query  query Search criteria  (optional)
     * @param fields  fields Data retrieval options/fieldnames separated by a comma  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy Sorting - field to sort by - a field from a main entity being searched. See Data model for a list of fields.  (optional, default to &quot;code&quot;)
     * @param sortOrder  sortOrder Sorting - sort order.  (optional, default to ASCENDING)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE..  (optional, default to INHERIT_NO_MERGE)
     * @return ApiResponse&lt;CustomersResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<CustomersResponseDto> gETCustomerList1WithHttpInfo(String query, String fields, Integer offset, Integer limit, String sortBy, String sortOrder, String inheritCF) throws ApiException {
        okhttp3.Call localVarCall = gETCustomerList1ValidateBeforeCall(query, fields, offset, limit, sortBy, sortOrder, inheritCF, null);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  List customers matching a given criteria  (asynchronously)
     *  List customers matching a given criteria 
     * @param query  query Search criteria  (optional)
     * @param fields  fields Data retrieval options/fieldnames separated by a comma  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy Sorting - field to sort by - a field from a main entity being searched. See Data model for a list of fields.  (optional, default to &quot;code&quot;)
     * @param sortOrder  sortOrder Sorting - sort order.  (optional, default to ASCENDING)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE..  (optional, default to INHERIT_NO_MERGE)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerList1Async(String query, String fields, Integer offset, Integer limit, String sortBy, String sortOrder, String inheritCF, final ApiCallback<CustomersResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETCustomerList1ValidateBeforeCall(query, fields, offset, limit, sortBy, sortOrder, inheritCF, _callback);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETCustomerSearch1
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE.  (optional, default to INHERIT_NO_MERGE)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerSearch1Call(String customerCode, String inheritCF, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        if (customerCode != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("customerCode", customerCode));
        }

        if (inheritCF != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritCF", inheritCF));
        }

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETCustomerSearch1ValidateBeforeCall(String customerCode, String inheritCF, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = gETCustomerSearch1Call(customerCode, inheritCF, _callback);
        return localVarCall;

    }

    /**
     *  Search for a customer with a given code 
     *  Search for a customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE.  (optional, default to INHERIT_NO_MERGE)
     * @return GetCustomerResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public GetCustomerResponseDto gETCustomerSearch1(String customerCode, String inheritCF) throws ApiException {
        ApiResponse<GetCustomerResponseDto> localVarResp = gETCustomerSearch1WithHttpInfo(customerCode, inheritCF);
        return localVarResp.getData();
    }

    /**
     *  Search for a customer with a given code 
     *  Search for a customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE.  (optional, default to INHERIT_NO_MERGE)
     * @return ApiResponse&lt;GetCustomerResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<GetCustomerResponseDto> gETCustomerSearch1WithHttpInfo(String customerCode, String inheritCF) throws ApiException {
        okhttp3.Call localVarCall = gETCustomerSearch1ValidateBeforeCall(customerCode, inheritCF, null);
        Type localVarReturnType = new TypeToken<GetCustomerResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Search for a customer with a given code  (asynchronously)
     *  Search for a customer with a given code 
     * @param customerCode  customerCode The customer&#39;s code  (optional)
     * @param inheritCF  inheritCF Should inherited custom fields be retrieved. Defaults to INHERIT_NO_MERGE.  (optional, default to INHERIT_NO_MERGE)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  The customer&#39;s data  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETCustomerSearch1Async(String customerCode, String inheritCF, final ApiCallback<GetCustomerResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETCustomerSearch1ValidateBeforeCall(customerCode, inheritCF, _callback);
        Type localVarReturnType = new TypeToken<GetCustomerResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for gETIBaseVersion30
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Action status with version number as a message  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETIBaseVersion30Call(final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/version";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call gETIBaseVersion30ValidateBeforeCall(final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = gETIBaseVersion30Call(_callback);
        return localVarCall;

    }

    /**
     *  Get version of application  
     *  Get version of application  
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Action status with version number as a message  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus gETIBaseVersion30() throws ApiException {
        ApiResponse<ActionStatus> localVarResp = gETIBaseVersion30WithHttpInfo();
        return localVarResp.getData();
    }

    /**
     *  Get version of application  
     *  Get version of application  
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Action status with version number as a message  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> gETIBaseVersion30WithHttpInfo() throws ApiException {
        okhttp3.Call localVarCall = gETIBaseVersion30ValidateBeforeCall(null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Get version of application   (asynchronously)
     *  Get version of application  
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Action status with version number as a message  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call gETIBaseVersion30Async(final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = gETIBaseVersion30ValidateBeforeCall(_callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreate1
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreate1Call(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerDto;

        // create path and map variables
        String localVarPath = "/account/customer";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreate1ValidateBeforeCall(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreate1Call(customerDto, _callback);
        return localVarCall;

    }

    /**
     *  Create a new customer 
     *  Create a new customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreate1(CustomerDto customerDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreate1WithHttpInfo(customerDto);
        return localVarResp.getData();
    }

    /**
     *  Create a new customer 
     *  Create a new customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreate1WithHttpInfo(CustomerDto customerDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreate1ValidateBeforeCall(customerDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create a new customer  (asynchronously)
     *  Create a new customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreate1Async(CustomerDto customerDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreate1ValidateBeforeCall(customerDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreateBrand1
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateBrand1Call(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerBrandDto;

        // create path and map variables
        String localVarPath = "/account/customer/createBrand";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreateBrand1ValidateBeforeCall(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreateBrand1Call(customerBrandDto, _callback);
        return localVarCall;

    }

    /**
     *  Create a new customer brand 
     *  Create a new customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreateBrand1(CustomerBrandDto customerBrandDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreateBrand1WithHttpInfo(customerBrandDto);
        return localVarResp.getData();
    }

    /**
     *  Create a new customer brand 
     *  Create a new customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreateBrand1WithHttpInfo(CustomerBrandDto customerBrandDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreateBrand1ValidateBeforeCall(customerBrandDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create a new customer brand  (asynchronously)
     *  Create a new customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateBrand1Async(CustomerBrandDto customerBrandDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreateBrand1ValidateBeforeCall(customerBrandDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreateCategory1
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateCategory1Call(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerCategoryDto;

        // create path and map variables
        String localVarPath = "/account/customer/createCategory";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreateCategory1ValidateBeforeCall(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreateCategory1Call(customerCategoryDto, _callback);
        return localVarCall;

    }

    /**
     *  Create a new customer category 
     *  Create a new customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreateCategory1(CustomerCategoryDto customerCategoryDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreateCategory1WithHttpInfo(customerCategoryDto);
        return localVarResp.getData();
    }

    /**
     *  Create a new customer category 
     *  Create a new customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreateCategory1WithHttpInfo(CustomerCategoryDto customerCategoryDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreateCategory1ValidateBeforeCall(customerCategoryDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create a new customer category  (asynchronously)
     *  Create a new customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateCategory1Async(CustomerCategoryDto customerCategoryDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreateCategory1ValidateBeforeCall(customerCategoryDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreateOrUpdate1
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdate1Call(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerDto;

        // create path and map variables
        String localVarPath = "/account/customer/createOrUpdate";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreateOrUpdate1ValidateBeforeCall(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdate1Call(customerDto, _callback);
        return localVarCall;

    }

    /**
     *  Create new or update existing customer 
     *  Create new or update existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreateOrUpdate1(CustomerDto customerDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreateOrUpdate1WithHttpInfo(customerDto);
        return localVarResp.getData();
    }

    /**
     *  Create new or update existing customer 
     *  Create new or update existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreateOrUpdate1WithHttpInfo(CustomerDto customerDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdate1ValidateBeforeCall(customerDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create new or update existing customer  (asynchronously)
     *  Create new or update existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdate1Async(CustomerDto customerDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdate1ValidateBeforeCall(customerDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreateOrUpdateBrand1
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdateBrand1Call(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerBrandDto;

        // create path and map variables
        String localVarPath = "/account/customer/createOrUpdateBrand";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreateOrUpdateBrand1ValidateBeforeCall(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateBrand1Call(customerBrandDto, _callback);
        return localVarCall;

    }

    /**
     *  Create new or update an existing customer brand 
     *  Create new or update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreateOrUpdateBrand1(CustomerBrandDto customerBrandDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreateOrUpdateBrand1WithHttpInfo(customerBrandDto);
        return localVarResp.getData();
    }

    /**
     *  Create new or update an existing customer brand 
     *  Create new or update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreateOrUpdateBrand1WithHttpInfo(CustomerBrandDto customerBrandDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateBrand1ValidateBeforeCall(customerBrandDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create new or update an existing customer brand  (asynchronously)
     *  Create new or update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdateBrand1Async(CustomerBrandDto customerBrandDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateBrand1ValidateBeforeCall(customerBrandDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCreateOrUpdateCategory1
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdateCategory1Call(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerCategoryDto;

        // create path and map variables
        String localVarPath = "/account/customer/createOrUpdateCategory";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCreateOrUpdateCategory1ValidateBeforeCall(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateCategory1Call(customerCategoryDto, _callback);
        return localVarCall;

    }

    /**
     *  Create new or update an existing customer category 
     *  Create new or update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerCreateOrUpdateCategory1(CustomerCategoryDto customerCategoryDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerCreateOrUpdateCategory1WithHttpInfo(customerCategoryDto);
        return localVarResp.getData();
    }

    /**
     *  Create new or update an existing customer category 
     *  Create new or update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerCreateOrUpdateCategory1WithHttpInfo(CustomerCategoryDto customerCategoryDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateCategory1ValidateBeforeCall(customerCategoryDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Create new or update an existing customer category  (asynchronously)
     *  Create new or update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCreateOrUpdateCategory1Async(CustomerCategoryDto customerCategoryDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCreateOrUpdateCategory1ValidateBeforeCall(customerCategoryDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerCustomerNumberSequence1
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  next customer no value    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCustomerNumberSequence1Call(final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/customerNumberSequence";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerCustomerNumberSequence1ValidateBeforeCall(final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerCustomerNumberSequence1Call(_callback);
        return localVarCall;

    }

    /**
     *    Calculates and returns the next value of the mandate number.      
     *    Calculates and returns the next value of the mandate number.      
     * @return GenericSequenceValueResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  next customer no value    </td><td>  -  </td></tr>
     </table>
     */
    public GenericSequenceValueResponseDto pOSTCustomerCustomerNumberSequence1() throws ApiException {
        ApiResponse<GenericSequenceValueResponseDto> localVarResp = pOSTCustomerCustomerNumberSequence1WithHttpInfo();
        return localVarResp.getData();
    }

    /**
     *    Calculates and returns the next value of the mandate number.      
     *    Calculates and returns the next value of the mandate number.      
     * @return ApiResponse&lt;GenericSequenceValueResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  next customer no value    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<GenericSequenceValueResponseDto> pOSTCustomerCustomerNumberSequence1WithHttpInfo() throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerCustomerNumberSequence1ValidateBeforeCall(null);
        Type localVarReturnType = new TypeToken<GenericSequenceValueResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Calculates and returns the next value of the mandate number.       (asynchronously)
     *    Calculates and returns the next value of the mandate number.      
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  next customer no value    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerCustomerNumberSequence1Async(final ApiCallback<GenericSequenceValueResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerCustomerNumberSequence1ValidateBeforeCall(_callback);
        Type localVarReturnType = new TypeToken<GenericSequenceValueResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerList1
     * @param pagingAndFiltering  pagingAndFiltering Pagination and filtering criteria  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerList1Call(PagingAndFiltering pagingAndFiltering, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = pagingAndFiltering;

        // create path and map variables
        String localVarPath = "/account/customer/list";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerList1ValidateBeforeCall(PagingAndFiltering pagingAndFiltering, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerList1Call(pagingAndFiltering, _callback);
        return localVarCall;

    }

    /**
     *  List customers matching a given criteria 
     *  List customers matching a given criteria 
     * @param pagingAndFiltering  pagingAndFiltering Pagination and filtering criteria  (optional)
     * @return CustomersResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public CustomersResponseDto pOSTCustomerList1(PagingAndFiltering pagingAndFiltering) throws ApiException {
        ApiResponse<CustomersResponseDto> localVarResp = pOSTCustomerList1WithHttpInfo(pagingAndFiltering);
        return localVarResp.getData();
    }

    /**
     *  List customers matching a given criteria 
     *  List customers matching a given criteria 
     * @param pagingAndFiltering  pagingAndFiltering Pagination and filtering criteria  (optional)
     * @return ApiResponse&lt;CustomersResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<CustomersResponseDto> pOSTCustomerList1WithHttpInfo(PagingAndFiltering pagingAndFiltering) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerList1ValidateBeforeCall(pagingAndFiltering, null);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  List customers matching a given criteria  (asynchronously)
     *  List customers matching a given criteria 
     * @param pagingAndFiltering  pagingAndFiltering Pagination and filtering criteria  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  List of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerList1Async(PagingAndFiltering pagingAndFiltering, final ApiCallback<CustomersResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerList1ValidateBeforeCall(pagingAndFiltering, _callback);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerList471
     * @param firstRow  firstRow Pagination - from record number. Deprecated in v.4.7 use from instead  (optional)
     * @param numberOfRows  numberOfRows Pagination - number of records to retrieve. Deprecated in v.4.7 use limit instead  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy sortBy field  (optional, default to &quot;c.code&quot;)
     * @param sortOrder  sortOrder ASC/DESC  (optional, default to ASCENDING)
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  list of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerList471Call(Integer firstRow, Integer numberOfRows, Integer offset, Integer limit, String sortBy, String sortOrder, CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerDto;

        // create path and map variables
        String localVarPath = "/account/customer/list47";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        if (firstRow != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("firstRow", firstRow));
        }

        if (numberOfRows != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("numberOfRows", numberOfRows));
        }

        if (offset != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset));
        }

        if (limit != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit));
        }

        if (sortBy != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy));
        }

        if (sortOrder != null) {
            localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder));
        }

        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerList471ValidateBeforeCall(Integer firstRow, Integer numberOfRows, Integer offset, Integer limit, String sortBy, String sortOrder, CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerList471Call(firstRow, numberOfRows, offset, limit, sortBy, sortOrder, customerDto, _callback);
        return localVarCall;

    }

    /**
     *  Filters are: category, seller, brand and provider. 
     *  Filters are: category, seller, brand and provider. 
     * @param firstRow  firstRow Pagination - from record number. Deprecated in v.4.7 use from instead  (optional)
     * @param numberOfRows  numberOfRows Pagination - number of records to retrieve. Deprecated in v.4.7 use limit instead  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy sortBy field  (optional, default to &quot;c.code&quot;)
     * @param sortOrder  sortOrder ASC/DESC  (optional, default to ASCENDING)
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return CustomersResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  list of customers  </td><td>  -  </td></tr>
     </table>
     */
    public CustomersResponseDto pOSTCustomerList471(Integer firstRow, Integer numberOfRows, Integer offset, Integer limit, String sortBy, String sortOrder, CustomerDto customerDto) throws ApiException {
        ApiResponse<CustomersResponseDto> localVarResp = pOSTCustomerList471WithHttpInfo(firstRow, numberOfRows, offset, limit, sortBy, sortOrder, customerDto);
        return localVarResp.getData();
    }

    /**
     *  Filters are: category, seller, brand and provider. 
     *  Filters are: category, seller, brand and provider. 
     * @param firstRow  firstRow Pagination - from record number. Deprecated in v.4.7 use from instead  (optional)
     * @param numberOfRows  numberOfRows Pagination - number of records to retrieve. Deprecated in v.4.7 use limit instead  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy sortBy field  (optional, default to &quot;c.code&quot;)
     * @param sortOrder  sortOrder ASC/DESC  (optional, default to ASCENDING)
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ApiResponse&lt;CustomersResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  list of customers  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<CustomersResponseDto> pOSTCustomerList471WithHttpInfo(Integer firstRow, Integer numberOfRows, Integer offset, Integer limit, String sortBy, String sortOrder, CustomerDto customerDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerList471ValidateBeforeCall(firstRow, numberOfRows, offset, limit, sortBy, sortOrder, customerDto, null);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Filters are: category, seller, brand and provider.  (asynchronously)
     *  Filters are: category, seller, brand and provider. 
     * @param firstRow  firstRow Pagination - from record number. Deprecated in v.4.7 use from instead  (optional)
     * @param numberOfRows  numberOfRows Pagination - number of records to retrieve. Deprecated in v.4.7 use limit instead  (optional)
     * @param offset  offset Pagination - from record number  (optional)
     * @param limit  limit Pagination - number of records to retrieve  (optional)
     * @param sortBy  sortBy sortBy field  (optional, default to &quot;c.code&quot;)
     * @param sortOrder  sortOrder ASC/DESC  (optional, default to ASCENDING)
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  list of customers  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerList471Async(Integer firstRow, Integer numberOfRows, Integer offset, Integer limit, String sortBy, String sortOrder, CustomerDto customerDto, final ApiCallback<CustomersResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerList471ValidateBeforeCall(firstRow, numberOfRows, offset, limit, sortBy, sortOrder, customerDto, _callback);
        Type localVarReturnType = new TypeToken<CustomersResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerSequence1
     * @param customerSequenceDto  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerSequence1Call(CustomerSequenceDto customerSequenceDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerSequenceDto;

        // create path and map variables
        String localVarPath = "/account/customer/sequence";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerSequence1ValidateBeforeCall(CustomerSequenceDto customerSequenceDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pOSTCustomerSequence1Call(customerSequenceDto, _callback);
        return localVarCall;

    }

    /**
     *    Creates a new customer sequence.   
     *    Creates a new customer sequence.   
     * @param customerSequenceDto  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pOSTCustomerSequence1(CustomerSequenceDto customerSequenceDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pOSTCustomerSequence1WithHttpInfo(customerSequenceDto);
        return localVarResp.getData();
    }

    /**
     *    Creates a new customer sequence.   
     *    Creates a new customer sequence.   
     * @param customerSequenceDto  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pOSTCustomerSequence1WithHttpInfo(CustomerSequenceDto customerSequenceDto) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerSequence1ValidateBeforeCall(customerSequenceDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Creates a new customer sequence.    (asynchronously)
     *    Creates a new customer sequence.   
     * @param customerSequenceDto  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerSequence1Async(CustomerSequenceDto customerSequenceDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerSequence1ValidateBeforeCall(customerSequenceDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pOSTCustomerSequenceCodeNext1
     * @param code  (required)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  sequence value dto    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerSequenceCodeNext1Call(String code, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/sequence/{code}/next"
            .replaceAll("\\{" + "code" + "\\}", localVarApiClient.escapeString(code.toString()));

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pOSTCustomerSequenceCodeNext1ValidateBeforeCall(String code, final ApiCallback _callback) throws ApiException {
        
        // verify the required parameter 'code' is set
        if (code == null) {
            throw new ApiException("Missing the required parameter 'code' when calling pOSTCustomerSequenceCodeNext1(Async)");
        }
        

        okhttp3.Call localVarCall = pOSTCustomerSequenceCodeNext1Call(code, _callback);
        return localVarCall;

    }

    /**
     *    Generates the next customer sequence number.   
     *    Generates the next customer sequence number.   
     * @param code  (required)
     * @return GenericSequenceValueResponseDto
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  sequence value dto    </td><td>  -  </td></tr>
     </table>
     */
    public GenericSequenceValueResponseDto pOSTCustomerSequenceCodeNext1(String code) throws ApiException {
        ApiResponse<GenericSequenceValueResponseDto> localVarResp = pOSTCustomerSequenceCodeNext1WithHttpInfo(code);
        return localVarResp.getData();
    }

    /**
     *    Generates the next customer sequence number.   
     *    Generates the next customer sequence number.   
     * @param code  (required)
     * @return ApiResponse&lt;GenericSequenceValueResponseDto&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  sequence value dto    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<GenericSequenceValueResponseDto> pOSTCustomerSequenceCodeNext1WithHttpInfo(String code) throws ApiException {
        okhttp3.Call localVarCall = pOSTCustomerSequenceCodeNext1ValidateBeforeCall(code, null);
        Type localVarReturnType = new TypeToken<GenericSequenceValueResponseDto>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Generates the next customer sequence number.    (asynchronously)
     *    Generates the next customer sequence number.   
     * @param code  (required)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  sequence value dto    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pOSTCustomerSequenceCodeNext1Async(String code, final ApiCallback<GenericSequenceValueResponseDto> _callback) throws ApiException {

        okhttp3.Call localVarCall = pOSTCustomerSequenceCodeNext1ValidateBeforeCall(code, _callback);
        Type localVarReturnType = new TypeToken<GenericSequenceValueResponseDto>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pUTCustomerCustomerNumberSequence1
     * @param genericSequenceDto  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  status of the operation    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerCustomerNumberSequence1Call(GenericSequenceDto genericSequenceDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = genericSequenceDto;

        // create path and map variables
        String localVarPath = "/account/customer/customerNumberSequence";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pUTCustomerCustomerNumberSequence1ValidateBeforeCall(GenericSequenceDto genericSequenceDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pUTCustomerCustomerNumberSequence1Call(genericSequenceDto, _callback);
        return localVarCall;

    }

    /**
     *    Update the Provider&#39;s customer number sequence configuration.      
     *    Update the Provider&#39;s customer number sequence configuration.      
     * @param genericSequenceDto  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  status of the operation    </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pUTCustomerCustomerNumberSequence1(GenericSequenceDto genericSequenceDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pUTCustomerCustomerNumberSequence1WithHttpInfo(genericSequenceDto);
        return localVarResp.getData();
    }

    /**
     *    Update the Provider&#39;s customer number sequence configuration.      
     *    Update the Provider&#39;s customer number sequence configuration.      
     * @param genericSequenceDto  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  status of the operation    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pUTCustomerCustomerNumberSequence1WithHttpInfo(GenericSequenceDto genericSequenceDto) throws ApiException {
        okhttp3.Call localVarCall = pUTCustomerCustomerNumberSequence1ValidateBeforeCall(genericSequenceDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Update the Provider&#39;s customer number sequence configuration.       (asynchronously)
     *    Update the Provider&#39;s customer number sequence configuration.      
     * @param genericSequenceDto  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  status of the operation    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerCustomerNumberSequence1Async(GenericSequenceDto genericSequenceDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pUTCustomerCustomerNumberSequence1ValidateBeforeCall(genericSequenceDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pUTCustomerSequence1
     * @param customerSequenceDto  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerSequence1Call(CustomerSequenceDto customerSequenceDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerSequenceDto;

        // create path and map variables
        String localVarPath = "/account/customer/sequence";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pUTCustomerSequence1ValidateBeforeCall(CustomerSequenceDto customerSequenceDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pUTCustomerSequence1Call(customerSequenceDto, _callback);
        return localVarCall;

    }

    /**
     *    Updates a new customer sequence with a given code.   
     *    Updates a new customer sequence with a given code.   
     * @param customerSequenceDto  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pUTCustomerSequence1(CustomerSequenceDto customerSequenceDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pUTCustomerSequence1WithHttpInfo(customerSequenceDto);
        return localVarResp.getData();
    }

    /**
     *    Updates a new customer sequence with a given code.   
     *    Updates a new customer sequence with a given code.   
     * @param customerSequenceDto  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pUTCustomerSequence1WithHttpInfo(CustomerSequenceDto customerSequenceDto) throws ApiException {
        okhttp3.Call localVarCall = pUTCustomerSequence1ValidateBeforeCall(customerSequenceDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *    Updates a new customer sequence with a given code.    (asynchronously)
     *    Updates a new customer sequence with a given code.   
     * @param customerSequenceDto  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  request status    </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerSequence1Async(CustomerSequenceDto customerSequenceDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pUTCustomerSequence1ValidateBeforeCall(customerSequenceDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pUTCustomerUpdate1
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdate1Call(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerDto;

        // create path and map variables
        String localVarPath = "/account/customer";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pUTCustomerUpdate1ValidateBeforeCall(CustomerDto customerDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pUTCustomerUpdate1Call(customerDto, _callback);
        return localVarCall;

    }

    /**
     *  Update an existing customer 
     *  Update an existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pUTCustomerUpdate1(CustomerDto customerDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pUTCustomerUpdate1WithHttpInfo(customerDto);
        return localVarResp.getData();
    }

    /**
     *  Update an existing customer 
     *  Update an existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pUTCustomerUpdate1WithHttpInfo(CustomerDto customerDto) throws ApiException {
        okhttp3.Call localVarCall = pUTCustomerUpdate1ValidateBeforeCall(customerDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Update an existing customer  (asynchronously)
     *  Update an existing customer 
     * @param customerDto  postData The customer&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdate1Async(CustomerDto customerDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pUTCustomerUpdate1ValidateBeforeCall(customerDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pUTCustomerUpdateBrand1
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdateBrand1Call(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerBrandDto;

        // create path and map variables
        String localVarPath = "/account/customer/updateBrand";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pUTCustomerUpdateBrand1ValidateBeforeCall(CustomerBrandDto customerBrandDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pUTCustomerUpdateBrand1Call(customerBrandDto, _callback);
        return localVarCall;

    }

    /**
     *  Update an existing customer brand 
     *  Update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pUTCustomerUpdateBrand1(CustomerBrandDto customerBrandDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pUTCustomerUpdateBrand1WithHttpInfo(customerBrandDto);
        return localVarResp.getData();
    }

    /**
     *  Update an existing customer brand 
     *  Update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pUTCustomerUpdateBrand1WithHttpInfo(CustomerBrandDto customerBrandDto) throws ApiException {
        okhttp3.Call localVarCall = pUTCustomerUpdateBrand1ValidateBeforeCall(customerBrandDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Update an existing customer brand  (asynchronously)
     *  Update an existing customer brand 
     * @param customerBrandDto  postData The customer brand&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdateBrand1Async(CustomerBrandDto customerBrandDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pUTCustomerUpdateBrand1ValidateBeforeCall(customerBrandDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for pUTCustomerUpdateCategory1
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdateCategory1Call(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = customerCategoryDto;

        // create path and map variables
        String localVarPath = "/account/customer/updateCategory";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            "application/json", "application/xml"
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call pUTCustomerUpdateCategory1ValidateBeforeCall(CustomerCategoryDto customerCategoryDto, final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = pUTCustomerUpdateCategory1Call(customerCategoryDto, _callback);
        return localVarCall;

    }

    /**
     *  Update an existing customer category 
     *  Update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus pUTCustomerUpdateCategory1(CustomerCategoryDto customerCategoryDto) throws ApiException {
        ApiResponse<ActionStatus> localVarResp = pUTCustomerUpdateCategory1WithHttpInfo(customerCategoryDto);
        return localVarResp.getData();
    }

    /**
     *  Update an existing customer category 
     *  Update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> pUTCustomerUpdateCategory1WithHttpInfo(CustomerCategoryDto customerCategoryDto) throws ApiException {
        okhttp3.Call localVarCall = pUTCustomerUpdateCategory1ValidateBeforeCall(customerCategoryDto, null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  Update an existing customer category  (asynchronously)
     *  Update an existing customer category 
     * @param customerCategoryDto  postData The customer category&#39;s data  (optional)
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td>  Request processing status  </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call pUTCustomerUpdateCategory1Async(CustomerCategoryDto customerCategoryDto, final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = pUTCustomerUpdateCategory1ValidateBeforeCall(customerCategoryDto, _callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
    /**
     * Build call for user5
     * @param _callback Callback for upload/download progress
     * @return Call to execute
     * @throws ApiException If fail to serialize the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td> default response </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call user5Call(final ApiCallback _callback) throws ApiException {
        Object localVarPostBody = null;

        // create path and map variables
        String localVarPath = "/account/customer/user";

        List<Pair> localVarQueryParams = new ArrayList<Pair>();
        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
        final String[] localVarAccepts = {
            "application/json", "application/xml"
        };
        final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
        if (localVarAccept != null) {
            localVarHeaderParams.put("Accept", localVarAccept);
        }

        final String[] localVarContentTypes = {
            
        };
        final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
        localVarHeaderParams.put("Content-Type", localVarContentType);

        String[] localVarAuthNames = new String[] { "auth" };
        return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, _callback);
    }

    @SuppressWarnings("rawtypes")
    private okhttp3.Call user5ValidateBeforeCall(final ApiCallback _callback) throws ApiException {
        

        okhttp3.Call localVarCall = user5Call(_callback);
        return localVarCall;

    }

    /**
     * 
     * 
     * @return ActionStatus
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td> default response </td><td>  -  </td></tr>
     </table>
     */
    public ActionStatus user5() throws ApiException {
        ApiResponse<ActionStatus> localVarResp = user5WithHttpInfo();
        return localVarResp.getData();
    }

    /**
     * 
     * 
     * @return ApiResponse&lt;ActionStatus&gt;
     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td> default response </td><td>  -  </td></tr>
     </table>
     */
    public ApiResponse<ActionStatus> user5WithHttpInfo() throws ApiException {
        okhttp3.Call localVarCall = user5ValidateBeforeCall(null);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        return localVarApiClient.execute(localVarCall, localVarReturnType);
    }

    /**
     *  (asynchronously)
     * 
     * @param _callback The callback to be executed when the API call finishes
     * @return The request call
     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
     * @http.response.details
     <table summary="Response Details" border="1">
        <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
        <tr><td> 0 </td><td> default response </td><td>  -  </td></tr>
     </table>
     */
    public okhttp3.Call user5Async(final ApiCallback<ActionStatus> _callback) throws ApiException {

        okhttp3.Call localVarCall = user5ValidateBeforeCall(_callback);
        Type localVarReturnType = new TypeToken<ActionStatus>(){}.getType();
        localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
        return localVarCall;
    }
}
