docs: def document_create(index, doc_type, body=None, id=None, hosts=None, profile=None, source=None):
      '''
      Create a document in a specified index
  
      index
          Index name where the document should reside
      doc_type
          Type of the document
      body
          Document to store
      source
          URL of file specifying document to store. Cannot be used in combination with ``body``.
      id
          Optional unique document identifier for specified doc_type (empty for random)
  
      CLI example::
  
          salt myminion elasticsearch.document_create testindex doctype1 '{}'
      '''
      es = _get_instance(hosts, profile)
      if source and body:
          message = 'Either body or source should be specified but not both.'
          raise SaltInvocationError(message)
      if source:
          body = __salt__['cp.get_file_str'](
                    source,
                    saltenv=__opts__.get('saltenv', 'base'))
      try:
          return es.index(index=index, doc_type=doc_type, body=body, id=id)
      except elasticsearch.TransportError as e:
          raise CommandExecutionError("Cannot create document in index {0}, server returned code {1} with message {2}".format(index, e.status_code, e.error))