code: func (r *BulkDeleteRequest) Source() ([]string, error) {
  	if r.source != nil {
  		return r.source, nil
  	}
  	command := bulkDeleteRequestCommand{
  		"delete": bulkDeleteRequestCommandOp{
  			Index:       r.index,
  			Type:        r.typ,
  			Id:          r.id,
  			Routing:     r.routing,
  			Parent:      r.parent,
  			Version:     r.version,
  			VersionType: r.versionType,
  		},
  	}
  
  	var err error
  	var body []byte
  	if r.useEasyJSON {
  		// easyjson
  		body, err = command.MarshalJSON()
  	} else {
  		// encoding/json
  		body, err = json.Marshal(command)
  	}
  	if err != nil {
  		return nil, err
  	}
  
  	lines := []string{string(body)}
  	r.source = lines
  
  	return lines, nil
  }
docs: // Source returns the on-wire representation of the delete request,
  // split into an action-and-meta-data line and an (optional) source line.
  // See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/docs-bulk.html
  // for details.