{{#isDescription}}
/*
{{#description}}
 * {{.}}
{{/description}}
 */
{{/isDescription}}
{{functionName}} = async ({{#isPathParameters}}pathParameter: {{pathParameterClassName}}, {{/isPathParameters}}{{#isHeaderParameters}}headerParameter: {{headerParameterClassName}}, {{/isHeaderParameters}}{{#isQueryParameters}}queryParameter: {{queryParameterClassName}}, {{/isQueryParameters}}{{#isRequestBody}}body: {{{requestBodyClass}}}, {{/isRequestBody}}interceptor: RequestInterceptor{{^forceInterceptor}} = openApi.requestInterceptor{{/forceInterceptor}}, errorHandler: ErrorHandler = openApi.errorHandler, responseInterceptor: ResponseInterceptor<any> = openApi.responseInterceptor): Promise<{{#isResponse}}{{{responseClass}}}{{/isResponse}}{{^isResponse}}void{{/isResponse}}> => {
{{#isQueryParameters}}

    const queryParam = [
    {{#queryParameters}}
        {name: '{{.}}', value: queryParameter.{{.}}},
    {{/queryParameters}}
    ];
{{/isQueryParameters}}
{{#isPathParameters}}

    const pathParam = {
    {{#pathParameters}}
        '{{.}}': pathParameter.{{.}},
    {{/pathParameters}}
    };
{{/isPathParameters}}

    {{#isResponse}}const response = {{/isResponse}}await http({
            method: '{{httpMethod}}',
            url: `${openApi.endpointUrl}{{{originalPath}}}`,
{{#isQueryParameters}}
            queryParameter: queryParam,
{{/isQueryParameters}}
{{#isPathParameters}}
            urlParameter: pathParam,
{{/isPathParameters}}
            header: {
{{#isJsonResponse}}
                Accept: 'application/json',
{{/isJsonResponse}}
{{#isDownloadResponse}}
                Accept: 'application/octet-stream',
{{/isDownloadResponse}}
{{#isPlaintextResponse}}
                Accept: 'text/plain',
{{/isPlaintextResponse}}
{{#isRequestBodyJson}}
                'Content-Type': 'application/json',
{{/isRequestBodyJson}}
{{#isHeaderParameters}}
{{#headerParameters}}
                '{{.}}': headerParameter.{{.}},
{{/headerParameters}}
{{/isHeaderParameters}}
            },
{{#isRequestBody}}
            body: JSON.stringify(body),
{{/isRequestBody}}
        },
        interceptor,
        errorHandler,
        responseInterceptor
    );
{{#isJsonResponse}}
    return JSON.parse(response);
{{/isJsonResponse}}
{{#isPlaintextResponse}}
    return response;
{{/isPlaintextResponse}}
};
