in lib/logstash/outputs/amazon_es/common.rb [65:107]
def event_action_tuple(event)
action = event.sprintf(@action)
params = {
:_id => @document_id ? event.sprintf(@document_id) : nil,
:_index => event.sprintf(@index),
:_type => get_event_type(event),
:_routing => @routing ? event.sprintf(@routing) : nil
}
if @pipeline
params[:pipeline] = event.sprintf(@pipeline)
end
if @parent
if @join_field
join_value = event.get(@join_field)
parent_value = event.sprintf(@parent)
event.set(@join_field, { "name" => join_value, "parent" => parent_value })
params[:_routing] = event.sprintf(@parent)
else
params[:parent] = event.sprintf(@parent)
end
end
if action == 'update'
params[:_upsert] = LogStash::Json.load(event.sprintf(@upsert)) if @upsert != ""
params[:_script] = event.sprintf(@script) if @script != ""
params[:_retry_on_conflict] = @retry_on_conflict
end
if @version
params[:version] = event.sprintf(@version)
end
if @version_type
params[:version_type] = event.sprintf(@version_type)
end
[action, params, event]
end