in lib/logstash/outputs/opensearch/http_client.rb [417:452]
def update_action_builder(args, source)
args = args.clone()
if args[:_script]
source_orig = source
source = { 'script' => {'params' => { @options[:script_var_name] => source_orig }} }
if @options[:scripted_upsert]
source['scripted_upsert'] = true
source['upsert'] = {}
elsif @options[:doc_as_upsert]
source['upsert'] = source_orig
else
source['upsert'] = args.delete(:_upsert) if args[:_upsert]
end
case @options[:script_type]
when 'indexed'
source['script']['id'] = args.delete(:_script)
when 'file'
source['script']['file'] = args.delete(:_script)
when 'inline'
source['script']['inline'] = args.delete(:_script)
end
source['script']['lang'] = @options[:script_lang] if @options[:script_lang] != ''
else
source = { 'doc' => source }
if @options[:doc_as_upsert]
source['doc_as_upsert'] = true
else
source['upsert'] = args.delete(:_upsert) if args[:_upsert]
end
end
[args, source]
end