{{>export-description}}
public {{{name}}}(
  {{>export-operation-params-path}}
  {{>export-operation-params-query}}
  {{>export-operation-params-body}}
  requestPlugins: RequestPlugin[],
  requestGenerateOptions: RequestGenerateOptions & { type: RequestGenerateType.URL }
): string
public {{{name}}}(
  {{>export-operation-params-path}}
  {{>export-operation-params-query}}
  {{>export-operation-params-body}}
  requestPlugins?: RequestPlugin[],
  requestGenerateOptions?: RequestGenerateOptions
): {{>export-operation-response }}
public {{{name}}}(
  {{>export-operation-params-path}}
  {{>export-operation-params-query}}
  {{>export-operation-params-body}}
  requestPlugins: RequestPlugin[] = [],
  requestGenerateOptions?: RequestGenerateOptions
): {{>export-operation-response }} | string {
  const requestSendOptions = {
    service: this.service,
    path: '{{{path}}}',
    method: '{{{method}}}',
    {{#if parametersPath}}
    paramsPath: {
      {{#each parametersPath}}
      {{{name}}},
      {{/each}}
    },
    {{/if}}
    {{#if parametersQuery}}
    paramsQuery: requestQuery,
    {{/if}}
    {{#if parametersBody}}
    {{#if parametersBody.mediaType}}
    {{#unless (is-json-media parametersBody.mediaType)}}
    {{#unless (is-multipart parametersBody.mediaType)}}
    headers: { 'Content-Type': '{{parametersBody.mediaType}}' },
    {{/unless}}
    {{/unless}}
    {{/if}}
    paramsBody: requestBody,
    {{/if}}
  }

  return this.generateRequest(
    requestSendOptions,
    requestPlugins,
    requestGenerateOptions
  )


}

