code: def msearch_template(self, body, index=None, params=None):
          
          if body in SKIP_IN_PATH:
              raise ValueError("Empty value passed for a required argument 'body'.")
          return self.transport.perform_request(
              "GET",
              _make_path(index, "_msearch", "template"),
              params=params,
              body=self._bulk_body(body),
              headers={"content-type": "application/x-ndjson"},
          )
docs: The /_search/template endpoint allows to use the mustache language to
          pre render search requests, before they are executed and fill existing
          templates with template parameters.
          `<http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html>`_
  
          :arg body: The request definitions (metadata-search request definition
              pairs), separated by newlines
          :arg index: A list of index names, or a string containing a
              comma-separated list of index names, to use as the default
          :arg max_concurrent_searches: Controls the maximum number of concurrent
              searches the multi search api will execute
          :arg search_type: Search operation type, valid choices are:
              'query_then_fetch', 'query_and_fetch', 'dfs_query_then_fetch',
              'dfs_query_and_fetch'
          :arg typed_keys: Specify whether aggregation and suggester names should
              be prefixed by their respective types in the response