module Elasticsearch::API::Simulate::Actions

Public Instance Methods

ingest(arguments = {}) click to toggle source

Simulates running ingest with example documents. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

@option arguments [String] :index Default index for docs which don’t provide one @option arguments [String] :pipeline The pipeline id to preprocess incoming documents with if no pipeline is given for a particular document @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body The simulate definition (Required)

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/simulate-ingest-api.html

# File lib/elasticsearch/api/actions/simulate/ingest.rb, line 38
def ingest(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'simulate.ingest' }

  defined_params = [:index].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body   = arguments.delete(:body)

  _index = arguments.delete(:index)

  method = Elasticsearch::API::HTTP_POST
  path   = if _index
             "_ingest/#{Utils.__listify(_index)}/_simulate"
           else
             '_ingest/_simulate'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end