<%#
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
%>
<%- if @endpoint_name == 'indices.stats' %>
  method = HTTP_GET
  parts  = Utils.__extract_parts arguments, ParamsRegistry.get(:stats_parts)
  path   = Utils.__pathify Utils.__listify(arguments[:index]), '_stats', Utils.__listify(parts)
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(:stats_params)
  params[:fields] = Utils.__listify(params[:fields], :escape => false) if params[:fields]
  params[:groups] = Utils.__listify(params[:groups], :escape => false) if params[:groups]
<%- else %>
  <%= '  '*(@namespace_depth+4) %>arguments = arguments.clone
  <%- if @method_name == 'mtermvectors' -%>
    ids = arguments.delete(:ids)
  <%- end -%>
  <%- if @method_name == 'search' -%>
    arguments[:index] = UNDERSCORE_ALL if ! arguments[:index] && arguments[:type]
  <%- end -%>
  <%- @parts.each do |name, _| %>
    <%- unless @method_name == 'get_field_mapping' && name == 'fields' %>
      <%= '  '*(@namespace_depth+3) + "_#{name}" %> = arguments.delete(:<%=name %>)
    <%- end -%>
  <%- end -%>

  <%= '  '*(@namespace_depth+4) %>method = <%= @http_method %>
  <%- if @method_name == 'termvectors' %>
    endpoint = arguments.delete(:endpoint) || '_termvectors'
  <%- end -%>
  <%= '  '*(@namespace_depth+4) %>path   = <%= @http_path %>
  <%- unless @params.empty? -%>
    <%= '  '*(@namespace_depth+4) %>params = <%= __utils %>.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
  <%- else -%>
    <%= '  '*(@namespace_depth+4) %>params = {}
  <%- end -%>
  <%- @specific_params.each do |param| -%>
    <%= param %>
  <%- end -%>
<%- end -%>
